基于ARM9的嵌入式电力监控系统的设计与实现
3 软件设计
3.1 信息采集点与监控中心的通信
GPRS模块的控制通过AT指令完成,而模块与监控中心的通信则由WinSock完成。当信息采集点传送数据时,GPRS模块会根据预先设定在其内部的IP地址来主动访问监控中心服务器,通过防火墙和监控中心建立TCP/IP链路[3]。同时,监控中心维护接入的每个信息采集点的IP地址和序号,并且根据需要定时向某个信息采集点发出数据请求,信息采集点接收到请求后作出响应,完成通信过程[4]。具体协议栈如表1所示。
3.2 监控中心软件结构
监控中心软件结构共分为3层:操作系统和系统软件层、系统软件支持层和基础应用层。
(1) 操作系统和系统软件层
操作系统为使用者屏蔽了底层硬件的具体细节,程序员可以利用底层硬件提供的函数开发包来为上层软件服务。
(2) 系统支持软件层
系统支持软件层包括数据库系统、电力系统模型、数据采集和传输等,其主要功能是实现数据存储和转发,并为上层软件服务。
(3) 基础应用层
基础应用层的主要功能是将采集到的数据进行处理、对调度人员进行管理并通过GUI界面显示出来[5]。监控中心如图4所示。
3.3 管理中心与调度员的通信
在数据发布端,无线模块通过RS232与上位机进行通信,采用串口异步通信,波特率为9 600 Kb/s。串口程序使用的是MOXA公司的Pcomm串口通信库,Pcomm提供了简单方便的串口操作函数,常用的函数有:
int WINAPI sio_ioctl(int port, int baud, int mode);
//设置串口参数,包括波特率、数据位、停止位等
int WINAPI sio_read(int port, char *buf, int len);
//从输入缓冲区读指定个数的字符
int WINAPI sio_write(int port, char *buf, int len);
//写指定个数的字符到输出缓冲区
int WINAPI sio_cnt_irq(int port, VOID (CALLBACK *func)(int port), int count);
//中断函数,当接收到指定个数字符时响应事件
本系统基于S3C2410平台和Linux操作系统,通过SIM300C经GPRS网络与远程监控中心进行信息交互,传输距离远、可靠性高、实时性强,并且价格低廉,具有很高的实用价值。
- ARM7和ARM9双核平台的技术分析(02-27)
- 基于WinCE的液位遥测系统软件设计(04-13)
- 基于ARM920T的嵌入式电力参数检测系统设计(02-14)
- 基于ARM9的道路交通数据采集系统设计(03-12)
- 基于ARM9的电梯缓冲器复位时间测试仪的设计(06-05)
- 基于嵌入式ARM9的USB设计与实现(07-16)