微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ARM9的嵌入式电力监控系统的设计与实现

基于ARM9的嵌入式电力监控系统的设计与实现

时间:05-13 来源:电子技术应用 点击:

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网络与远程监控中心进行信息交互,传输距离远、可靠性高、实时性强,并且价格低廉,具有很高的实用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top