SN75LBC184是RS485驱动芯片。我们将S3C44B0的第二个串口(UART1)扩展为系统的RS485总线接口。该接口是CPU与“三表”及刷卡器等设备的通信接口。CPU按照主从模式与“三表”进行通信。CPU定义为主设备,“三表”为从设备。主从设备都有唯一的设备地址,通信时,主设备向指定地址的从设备发查询命令,从设备返回当前数据给主设备。4.系统软件设计4.1终端软件传统的单片机程序设计基本上都采用顺序结构,实时性低且CPU对资源的利用率
SN75LBC184是
RS485驱动芯片。我们将S3C44B0的第二个串口(UART1)扩展为系统的RS485总线接口。该接口是
CPU与“三表”及刷卡器等设备的通信接口。CPU按照主从模式与“三表”进行通信。CPU定义为主设备,“三表”为从设备。主从设备都有唯一的设备地址,通信时,主设备向指定地址的从设备发查询命令,从设备返回当前数据给主设备。
&n
bsp;
4.系统软件设计
4.1终端软件
传统的单片机程序设计基本上都采用顺序结构,实时性低且CPU对资源的利用率不高。这里,我们采用了嵌入式实时操作系统VxWorks,它是美国风河(WindRiver)公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)。终端软件设计包括针对系统硬件平台进行的操作系统的移植和在VxWorks平台上应用程序的设计两部分。操作系统的移植的重点也即难点是BSP(Board Support Package)的设计。VxWorks本身提供了针对许多处理器的BSP,但针对S3C44B0的BSP并未提供。在设计系统BSP时,我们首先仔细研究了其中一种BSP代码范例,了解并掌握了BSP的结构,然后在风河公司针对ARM处理器提供给用户的BSP模板的基础上设计了本系统的BSP,限于篇幅,对操作系统的移植部分本文将不作阐述。
监控终端的应用程序采用
模块化的设计思想。由于VxWorks支持多任务,我们将每个功能模块以一个任务来实现。从时间上看,各个任务处于并行运行的状态,极大地提高了系统对事件响应的速度,有效地提高了CPU对资源的利用率。终端应用程序包含五个任务,分别是:消息处理任务、
传感器检测任务、GPRS通信任务、RS485总线设备通信任务、按键检测及处理任务。除消息处理任务以外,
其它五个任务优先级相同。VxWorks中任务优先级从0到
255,0为最高优先级,255为最低优先级。我们将消息处理任务优先级设定为90,其它四个任务优先级都设定为
100。这样可使消息处理任务尽快的处理其它任务发送来的消息,提高系统对外部事件的响应速度。下面分别对各个任务所实现的功能进行简要的介绍。
(1)消息处理任务
该任务循环检测自己的消息队列,当有其它任务发送来的消息时,读取消息,对消息进行解析,确定事件类型,然后调用事件相应的处理函数进行处理。本系统定义了
多种事件类型,主要有如下几种事件:传感器告警事件、设置终端参数事件、传感器状态请求事件、刷卡开门事件、水表数据查询事件、电表数据查询事件、煤气表数据查询事件和按键设置事件。