基于ARM7的分布式远程测控系统设计
通信链路后进人在线状态,这时Modem不再对发给它的数据解 释,而是直接发给远端的接收系统。在线状态下,如果接收到状态转化序列十十十”,则转人在线命令状态。详细的AT指令集的介绍见。
6、系统软件设计
LPC2132 微处理器工作频率可以达到60MHz,有3级流水线,大多数指令可以单周期完成,片上带有128KB FLASH程序存储器和16KB SRAM,它的性能和存储空间,使嵌入操作系统的应用成为可能。目前市场上的大型商业嵌人式操作系统已经十分成熟,但价格昂贵。采用源码公开的免费软件是 一种好的选择。uClinux功能强大,运行稳定,但代码和需要的RAM过于庞大。uC/OS-II则简单实用,内核可剪裁到只有3K左右。本系统的软件 基于uC/OS-II嵌入式操作系统是一个理想的选择。
uC/OS-II是一个源代码完全公开、可移植、可固化、可剪裁的抢占式实时多任务操作系统。最多可以同时执行64个优先级不同的任务,任务之间的通信和同步是通过信号量(Semaphore)、邮箱(Mailbox)或队列(Queue)来完成的。信号量用来保护特定的共享资源,或同步其它任务。邮箱和队列都是用来在任 务间发送消息,只不过前者只能发一条信息,后者可以发送多条。uC/OS-II需要一个系统时钟(Clock Tick),用于实现时间延时和超时确认。时钟节拍越高,系统时间精度越高,但系统的额外开销越大。详细介绍见文献。
在uC/OS-II操作系统的管理下,本系统分为4个任务:
任务1:定时采集存储数据,按照上位机所设置的采集频率,定时采集存储各个监测参数。
任务2:数据帧处理,对串口接受到的数据进行解释。接受到效验正确的数据帧,执行相应的操作,如处理上位机的控制信息、设置系统参数、发送信号量给其他任务和发送正确接受的应答帧等。
任务3:报警任务,实时监测各个参数,发现异常立即向上位机报警,同时拨打报警电话。
任务4:自动上传数据,当采集到一定量数据,主动上传到上位机。
在多任务系统中,通过时钟中断的周期性任务,在确定的时间执行一次,其它时间都处在休眠状态。若它在各任务中处于最高优先级,就能够保证该任务严格的时间 有效性。任务1就是此类任务,所以放在最高优先级。每隔确定的时间运行一次,即采集存储一次数据,其它时间处于休眠状态。
任务3和任务4在和上位机通信的过程中,都需要数据帧处理任务给它们解释上位机发来的数据,所以任务2作为第二优先级。当串口中断接受到上位机发来的数 据,放到FIFO的队列中,同时发信号量给任务2,任务1不在执行时,任务2立即变为当前运行任务,处理串口接受到的数据,其它时间处于等待状态。
自动上传数据对实时性要求不高,所以放在最低优先级。报警任务放在第三优先级,这样可以保证在发生异常时,能及时的向上位机和有关人员报警。
多任务系统中,就要考虑对共享资源的保护,同一时间内,只能有一个任务占用此资源。本系统中,串口是四个任务都需要占用的资源,来控制Modem或向上位 机传送数据,I2C总线在任务1和任务4中要用来读写EEPROM中的监测数据。所以建立了两个互斥信号量来保护串口和I2C总线,当任务需要使用串口或 I2C总线,先申请相应共享资源的信号量,如果信号已被别的任务占用,该任务只得被挂起,直到信号被当前使用者释放。
这样安排多个任务,充分利用了系统资源,保证了整个系统各任务协调、高效的运行和系统的实时性。
7、小结
经过实际运行试验,本系统运行稳定可靠。完全开放的UC/OS-II嵌入式操作系统的采用,多任务的管理提高了开发效率,缩短了开发周期,提高了系统性 能。在升级系统时,只要加入其它任务到操作系统中,就可以扩展功能,程序的可读性和可维护性好。以ARM7和uC/OS-11为基础构成的嵌人式系统,结 构简单小巧、成本低廉、实时性强,特别适用于中小型嵌入式系统的开发。
- 实时操作系统μC/OS-II在ARM7上的移植(05-12)
- ARM7与FPGA在工业控制中的结合应用 (06-26)
- ARM7与FPGA在工业控制的结合 (07-03)
- 基于ARM7和DSP的逆变电源设计电路(01-08)
- ARM7嵌入式系统在车辆调度中的应用范畴(07-06)
- ARM系列微处理器简介之:初识ARM系列处理器(08-13)