基于GPRS通信和uC/OS-ii的网络电能表设计
状态等。
2. 2. 6 三相电能表
三相电能表实现电能量及电压电流等数据的采集与计算。它与MPU 通过一个串行口连接, 通信规约满足DT / L645 协议, 模块定时抄读三相表数据, 包括电量、需量、电压、电流等实时数据, 并将抄读到的数据进行转换和存储, 以满足主站对模块的访问要求。
3 软件设计
3. 1 总体架构
软件设计基于uC/ OS-ii嵌入式操作系统的多任务设计, 整体架构如图2 所示。
图2总体架构框图
系统软件包括: 主任务、上行任务、下行任务、模拟串口任务、事件处理任务和控制处理任务。
3. 1. 1 主任务
实现全局变量初始化, 硬件环境初始化, 信号量和消息队列的建立、其他任务的创建和启动、键盘扫描、系统时间和定时处理、复位处理等功能。
3. 1. 2 上行任务
上行任务实现GPRS 通信链路的建立、维护及与主站的数据交换, 包括链路维护、数据收发、协议解析等功能。
3. 1. 3 下行任务
实现对基表数据定时抄读、数据处理、数据存储、数据的转发等功能。
3. 1. 4 模拟串口管理任务
由于系统必须实现上行通信端口、下行通信端口、RS 485 通信端口、RS 232 通信端口和红外通信端口5 个串行通信口, 而LPC2138 内部只有两个串行口, 所以必须对串口进行扩展。在此, 用软件来模拟串口通信, 以实现串口扩展。建立一个模拟串口管理任务, 专门管理下行抄表模拟串口、红外通信模拟串口和调试模拟串口。
3. 1. 5 事件处理任务
事件处理任务处理系统发生的各类事件, 包括事件记录、事件上报等。
3. 1. 6 控制任务
控制任务执行一些控制操作, 包括预购电控制、保电控制、告警控制等。
3. 1. 7 任务间的通信
任务与任务之间数据传递通过消息发送和接收来实现, 消息结构为:
消息传递函数定义为:
3. 2 软件模块实现流程
软件采用模块化设计, 每个任务包含不同的功能模块, 由于系统包含模块较多, 在此只给出主任务模块流程图及上行任务中的GPRS 链路维护模块流程图。
3. 2. 1 主任务流程
主任务程序流程如图3 所示。
图3 主程序流程图
3. 2. 2 GPRS 链路维护流程
上行任务中的链路维护模块包括: GPRS 网络登陆、链路状态检测以及心跳维护等。其中, GPRS 网络登陆程序流程如图4 所示。在GPRS 通信链路建立后,如果长时间无数据传输, 则GPRS 网络连接将被断开,所以必须在一定时间间隔内发一个心跳帧至主站, 确认主站应答后说明链路状态正常。不同品牌GPRS 模块的AT 指令集不同, 因此在编程前须熟悉相关GPRS 模块的指令集, 以实现链路的建立和维护。
图4 GPRS 链路维护流程图
4 结 语
介绍了GPRS 网络电能表的功能和GPRS 无线通信模块的软硬件设计, 它是对GPRS 网络电能表开发项目的总结。系统软件移植了C/ OS嵌入式操作系统, 采用多任务设计, 提高了系统的实时性, 对实现远程无线抄表具有积极意义, 设计的产品已在国家电网公司成功应用, 且运行稳定, 应用效果良好。
电能表 设计 网络 uC OS-ii GPRS 通信 基于 相关文章:
- MSP430单片机的多功能复费率三相电能表(09-26)
- IP网络技术在电能表数据采集系统应用(12-20)
- modem在智能型电能表中的应用(12-20)
- 用8031控制的BDJ-3A三相功率电能表(10-15)
- I2C串行芯片X1288及其在电子电能表中的应用(10-15)
- 基于MSP430FE42x防窃电电能表应用(07-04)