金笛工业手机论坛  

返回   金笛工业手机论坛 > 开发者乐园 > 短信开发资料

短信开发资料 短信开发技巧,代码分析

回复
 
LinkBack 主题工具 显示模式
旧 2012-09-21   #1 (permalink)
普通会员
 
hek320 的头像
 
注册日期: 2012-01-12
帖子: 50
hek320 正向着好的方向发展
默认 基于GPRS通信的网络电能表的设计


0. 引言:
随着技术的发展,抄表方式也从现场人工抄表到远程自动抄表的转变,目前用于抄表的技术有多种,如RS485总线、红外和电力线载波等,这些抄表技术相对比较成熟,但应用却各有其局限性,如RS485总线抄表需要布线而增加投资,且传输距离不能大于1200米,红外抄表需要人工现场抄表,电力载波抄表由于电磁干扰等的影响传输距离受限。GPRS通信技术成熟,网络覆盖广,可以永久在线,按流量计费,费用低廉,且不受距离和空间的限制,使得在抄表行业的应用非常适合。
1. GPRS网络电能表
GPRS网络电能表就是GPRS通信技术和电表技术的结合体,他将三相多功能电能表和GPRS通信模块相结合,形成具有无线网络通信能力的电能计量装置。GPRS网络电能表由基表和GPRS无线通信模块两部分组成。
1.1. 基表
基表可实现普通三相多功能电能表的基本功能,在未接入GPRS通信模块的情况下,不影响其作为普通多功能电能表的使用。它对交流模拟量进行实时采样、处理和存储,实现电能计量、需量测量、复费率、负荷曲线计算和存储、数据冻结、事件记录、复费率等,可实现用户预购电控制、负荷控制、远程控制等功能。具备RS485通信接口、红外通信接口、GPRS通信模块接口以实现数据的抄读和设置;基表还具有本地液晶显示,支持本地巡显和键显功能。
1.2. GPRS通信模块
GPRS通信模块是GPRS网络电能表数据上传的关键节点,作为网络电能表的一个独立模块,在不影响基表计量的情况下,满足用户抄表系统的技术要求和传输规约,实现数据的可靠传输。GPRS通信模块与基表的下行通信满足多功能电能表通信协议,与主站的上行通信满足《电力用户用电信息采集系统通信协议》(Q / GDW 376.1—2009)。
在此着重描述GPRS通信模块的软硬件设计。
2. GPRS通信模块硬件结构
2.1. 系统组成
系统包括:ARM微处理器(LPC2138)、GPRS模块、Flash和铁电存储器、红外收发、232串行调试接口、485通信接口、JTAG仿真接口、LED指示及电源转换等。

2.2. 模块功能
2.2.1 微处理器
采用基于ARM7TDMI-S 内核的32位微处理器LPC2138。 LPC2138内嵌512KB的高速Flash存储器和32KB的RAM,具有丰富的外设资源:2个32位定时器(带捕获、比较通道);2个10位8路ADC;1个10位DAC;PWM 通道;47路GPIO;9个边沿或电平触发的外部中断;具有独立电源和时钟的 RTC;多个串行接口(UART、I2C、SPI、SSP)。它内含向量中断控制器,可配置中断优先级和向量地址,片内Boot装载程序可以实现在系统/在应用编程(ISP/IAP),通过片内PLL可实现60MHz的CPU操作频率,具有空闲和掉电2种低功耗模式,并且可通过外部中断唤醒。
2.2.2 GPRS模块
GPRS模块内部集成了TCP/IP协议栈,具有两个通信链路,一路标准TTL串行通信端口,精简的AT指令集,通过AT命令实现模块的参数设置和数据发送。GPRS模块与CPU通过一个TTL电平的串行口连接。
2.2.3 存储器
由于与主站的上行通信应满足《电力用户用电信息采集系统通信协议》,需要存储规约要求的一类数据(实时数据)、二类数据(曲线数据、统计数据)和三类数据(事件),特别是曲线数据要求存储的数据量大,因此采用大容量的flash存储器来存储二类和三类数据,铁电存储器由于可无限制的擦写,所以用来存储需要经常更新的实时数据和设置参数。存储器与MPU的接口为SPI接口。
2.2.4 串行接口和JTAG仿真端口
232串行口、红外通信口可实现模块参数的本地设置和维护,其中232串口可实现对啊GPRS模块状态的监测,通过485串行口可抄读满足《电力用户用电信息采集系统通信协议》的数据;JTAG仿真端口可对ARM处理器进行仿真和程序烧写。
2.2.5 LED指示
LED指示灯用来指示模块的电源状态、模块登陆状态、网络通信状态及保电状态等。
2.2.6 三相电能表
三相电能表实现电能量及电压电流等数据的采集与计算。它与MPU通过一个串行口连接,通信规约满足DT/L645协议,模块定时抄读三相表数据,包括电量、需量、电压、电流等实时数据,并将抄读到的数据进行转换和存储,以满足主站对模块的访问要求。
3. 软件设计
3.1. 总体架构:
软件设计基于uCOS嵌入式操作系统的多任务设计,
系统软件包括:主任务、上行任务、下行任务、模拟串口任务、事件处理任务和控制处理任务。
3.1.1 主任务
实现全局变量初始化,硬件环境初始化,信号量和消息队列的建立,其他任务的创建和启动、键盘扫描、系统时间和定时处理、复位处理等功能。
3.1.2 上行任务
上行任务实现GPRS通信链路的建立、维护及与主站的数据交换,包括链路维护、数据收发、协议解析等功能。
3.1.3 下行任务
实现对基表数据的定时抄读、数据处理、数据存储、数据的转发等功能。
3.1.4 模拟串口管理任务
由于系统须实现上行通信端口、下行通信端口、485通信端口、232通信端口和红外通信端口五个串行通信口,而LPC2138内部只有两个串行口,所以必须要对串口进行扩展,在此用软件来模拟串口通信实现串口的扩展,因此建立一个模拟串口管理任务,专门管理下行抄表模拟串口、红外通信模拟串口和调试模拟串口。
3.1.5 事件处理任务
事件处理任务处理系统发生的各类事件,包括事件记录、事件上报等。
3.1.6 控制任务
控制任务执行一些控制操作,包括预购电控制、保电控制、告警控制等。
3.1.7 任务间的通讯
任务与任务之间数据传递通过消息发送和接收来实现,消息结构为:
typedef struct
{
INT8U type; //消息类型
INT8U bPara; //消息参数1
INT16U wPara; //消息参数2
INT32U lPara; //消息附加信息
}MSG;
消息传递函数定义为:
MSG* getTaskMessage(void); //获得消息
void msgToTask(uint8 taskID, MSG *msg) ;//往任务发送消息,askID:_目的任务标识,msg_:消息指针。
3.2. 软件模块实现流程
软件采用模块化设计,每个任务包含不同的功能模块,由于系统包含模块较多,在此只给出主任务模块流程图及上行任务中的GPRS链路维护模块流程图。
3.2.1 主任务流程
主任务程序流程如图所示。

3.2.2 GPRS链路维护流程
上行任务中的链路维护模块包括:GPRS网络登陆、链路状态检测以及心跳维护等,其中GPRS网络登陆程序流程如图所示。

在GPRS通信链路建立后,如果长时间无数据传输,则GPRS网络连接将被断开,所以必须在一定时间间隔内发一个心跳帧至主站,确认主站应答后说明链路状态正常。不同品牌GPRS模块的AT指令集不同,因此在编程之前必须熟悉相关GPRS模块的指令集,以实现链路的建立和维护。

4. 结语
本文介绍了GPRS网络电能表的功能和GPRS无线通信模块的软硬件设计,是对GPRS网络电能表开发项目的总结。系统软件移植了uCOS嵌入式操作系统,采用多任务设计,提高了系统的实时性,对实现远程无线抄表具有积极意义,设计的产品已在国家电网公司成功应用,运行稳定,应用效果良好。
hek320 当前离线   回复时引用此帖
回复

书签


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 20:23


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.