配电网自动化通信规约转换器的设计

2010-09-22 05:49黄世远杨如辉郭谋发杨耿杰
电气技术 2010年7期
关键词:规约缓冲区串口

黄世远 杨如辉 郭谋发 杨耿杰 高 伟

(1.福州大学电气工程与自动化学院,福州 350002;2.福建省漳浦县供电有限公司,福建 漳浦 363200)

1 引言

配电自动化系统是对配电网上的设备进行远方实时监视、协调和控制的一个集成系统。配电自动化要借助可靠的通信手段,将配电现场终端设备所采集的各种信息上传至监测中心,同时将监测中心的数据下发到现场终端设备,但由于通信规约互不兼容,彼此间无法互联,阻碍了通信的顺利进行。规约转换器是实现通信规约互联的关键,其核心技术就是规约转换的实现[1-3]。

所设计的配电网通信规约转换器可应用于小区集中抄表、大用户抄表、线路状态监测等各种配电自动化系统,作为接口设备提供多种物理通道用于数据传输,如通过ZigBee无线网络[4-6]或RS-485接口接收现场终端设备采集上传的数据,对数据解析判断后,按照《Q/GDW 130-2005电力负荷管理系统数据传输规约》[7-8](简称负控规约)通过GPRS网络与主站进行数据交换[9-11],实现不同通信规约间的互换。

2 通信规约转换器硬件设计

通信规约转换器是基于 RCM 5700模块的嵌入式系统,硬件结构如图1,分为系统和接口两部分。系统部分为核心部件,采用 RCM 5700模块,内含CPU、存储器和复位等电路。接口部分实现规约转换器的专门功能,根据应用场合特点进行专门设计。

图1 硬件结构框图

图1中,128K SRAM、1M Flash和4M Serial Flash均为RCM 5700模块板载存储器,分别为程序运行主内存、程序存储器和数据存储器;MAXIM 485E芯片实现 TTL电平的 UART到 RS-485接口的转换;SP3232实现TTL电平的UART到RS-232接口的转换,作为调试接口,为增加可用的RS-485接口,调试成功后即转为RS-485接口,复用串口A;ME3000 GPRS为GPRS模块;XBee RF模块为ZigBee模块;拨码开关控制RS-485接口功能的开启或关闭;串口状态指示灯指示处于工作状态的RS-485接口。

2.1 系统部分

系统部分是规约转换器的核心硬件,主要包括CPU、存储器、复位等电路。以下主要介绍CPU和存储器的选择与设计。

(1)中央处理器

配电网通信规约转换器要求 CPU能处理大量数据,具有较多串口、较高工作稳定性和较强的抗干扰能力。

RCM 5700模块采用Rabbit5000微处理器,工作频率可达50MHz,6个高速CMOS兼容串口均可配置为异步串口,时钟扩展频谱可减少EM I,且内置存储芯片、时钟芯片等,适合于规约转换器这种多串口多任务的嵌入式系统。此外,模块生产商为用户提供了广泛的驱动函数库和例程、免费的TCP/IP源代码,专用的编程开发系统Dynam ic C也已移植好µC/OS-II,相比单片机、ARM等易于开发和实施嵌入式系统。基于以上优点,采用 RCM 5700作为主控制器。

(2)存储系统

RCM 5700模块已内置存储芯片,在满足性能要求条件下,优先考虑使用这些存储器。RCM 5700模块的存储系统硬件包括3部分:Rabbit 5000微处理器内置的128KB SRAM、RCM 5700模块板载的1MB Flash S29AL008D和4MB Serial Flash AT45DB041B。

通常程序的运行空间采用RAM,由于在规约转换过程中涉及到大量的数据处理,且考虑到以后新规约的加入,RAM容量应尽量大,Rabbit 5000微处理器内置的 SRAM容量达128KB可满足要求;程序存储器通常采用 Flash,RCM 5700模块板载的1MB Flash S29AL008D也足以满足要求;数据存储器存储内容包括:历史故障信息、全部通信规约和通信接口的设置参数,这些设置参数控制系统的运行,系统启动时,加载到 RAM 中进行参数配置,参数更新时保存其最新状态到 Flash中,并在系统启动时再次载入到 RAM。存储的数据量较大,RCM 5700模块板载的Serial Flash AT45DB041B容量达4MB,满足存储要求。

2.2 接口部分

规约转换器的接口电路包括RS-232/485接口、GPRS模块、ZigBee模块等。

(1)GPRS模块接口电路

GPRS通信模块使用中兴公司的ME3000,模块通过UART与RCM 5700模块接口,通信波特率为115200 bps,电路如图2所示。CARD_RST、CARD_DAT、CARD_CLK、V_CARD是GPRS模块与SIM卡的接口线;/RESET是模块复位引脚,低电平有效,低脉冲持续时间超过20ms时模块正常复位;/RTS、/DTR为模块的UART控制信号,因设计中直接使用TXE和RXE与RCM 5700模块通信,故将/RTS和/DTR直接拉低;ON/OFF为模块的上/下电控制引脚,低电平有效,低脉冲持续时间超过1.5s时模块开启,低脉冲持续时间超过2s时模块关闭。

图2 GPRS模块与RCM 5700模块接口电路

GPRS模块的外围电路包括模块供电与SIM卡。需注意的是,GPRS模块在工作时需较大电流,如ME3000瞬时最大电流达1.5A以上并要求电压基本恒定(3.7V),而供电电流不足常是导致GPRS模块工作不稳定的主要原因之一,因此设计时最好应使用专用供电芯片,如 M IC29302等,保证供电质量可靠。

(2)ZigBee无线接口电路

ZigBee通信模块采用Digi公司的XBee RF模块,模块具有性价比高、功耗低、接收器灵敏度高等特点。模块分成XBee和XBee PRO两种,XBee模块一般作为网络中的终端通信模块,XBee PRO作为路由通信模块或者协调者通信模块。规约转换器采用XBee PRO模块,配置为网络协调者,负责网络的建立与维护。ZigBee模块通过 UART与RCM 5700模块接口,电路如图3所示。

图3 ZigBee模块与RCM 5700模块接口电路

规约转换器作为接口设备,也承担数据汇总的任务,需从众多的终端ZigBee模块接收数据包,设计采用API操作模式,配合多对一路由方式,可有效提高ZigBee网络的路由效率,保证ZigBee网络畅通。

XBee PRO模块作为网络协调者,使用前需对网络地址(PAN ID)、扫描信道(Scan Channel)、目的地址、串口通信参数、睡眠模式、网络安全和I/O口等进行合理设置,保证模块运行可靠。

(3)RS-485接口电路

规约转换器设计了四路RS-485接口,其中串口A可复用为RS-232接口,作为调试口,调试成功后便可切换回 RS-485接口。由MAXIM 485E转换芯片实现TTL电平UART到RS-485的转换,因四路电路相同,文中仅列举一路,如图 4所示。UART扩展RS-485包括接收、发送、流向控制3根线,光耦OP1、OP2、OP3使RS-485总线通信驱动电路与仪表内部工作电路隔离,保证仪表内部工作不受通信总线上噪声信号的干扰,提高通信可靠性。通信波特率可达115200 bps以上。

3 通信规约转换器软件设计

3.1 嵌入式操作系统µC/OS-Ⅱ

图4 RS-485接口电路

通信规约转换器完成的功能较为复杂,包括数据采集、存储、规约转换和传输,单任务系统难以满足功能要求,需采用嵌入式实时操作系统。常见的嵌入式操作系统有 uLinux、windowsCE、µC/OS-Ⅱ等[12-14]。

µC/OS-Ⅱ是针对嵌入式系统设计的实时操作系统,具有抢占式实时内核,采用用户自定优先级方式管理任务,最多可管理64个任务,任务间的调度、切换速度快,实时性高,且编译软件Dynam ic C已移植好µC/OS-Ⅱ,开发中无需移植,减少了软件设计的工作量,基于以上优点,采用µC/OS-Ⅱ嵌入式实时操作系统,设计多任务并行执行的软件。

3.2 应用的实现

基于µC/OS-Ⅱ的应用设计,首先按照接口功能划分任务,并根据任务的实时性要求分配任务优先级,数字越小,优先级越高,此外还需按照各个任务所处理数据量的大小,给每个任务分配大小合适的栈空间。

经分析,通信规约转换器的主要任务可分为ZigBee通信任务、RS-485通信任务、GPRS通信任务和负控规约解析任务,实现DL/T 645抄表规约[15]和自定义配电网规约与负控规约的相互转换。负控规约解析任务作为核心任务,实现对各个通道数据的解析、转换,要求实时性最高,故优先级设为最高;其余通信任务按照实时性要求,设置GPRS通信任务优先级第二高,ZigBee通信任务优先级次于GPRS通信任务,RS-485通信任务优先级最低。创建任务的函数段如下:

OSTaskCreate(TaskFukong,(void*)0,TASKFukong_STK_SIZE,12);//创建负控规约解析任务,优先级12

OSTaskCreate(TaskGPRS,(void*)0,TASKGPRS_STK_SIZE,13);//创建GPRS通信任务,优先级13

OSTaskCreate(TaskZigBee,(void*)0,TASKZigBee_STK_SIZE,14); //创建ZigBee通信任务,优先级14

OSTaskCreate(Task485,(void*)0,TASK485_STK_SIZE,15);//创建RS-485通信任务,优先级15

任务间相对独立但可通过全局变量、信号量、邮箱等机制通信。各个任务分别编写,能够提高软件开发效率,有助于软件的升级维护。软件升级可根据不同应用场合所需规约的特点,修改接口功能,并编写相应任务,扩展设计产品的应用范围。设计的程序流程结构如图5所示。

图5 应用程序结构

任务操作对象为缓冲区,缓冲区开辟在系统RAM中,可分为一级缓冲区和二级缓冲区,每个缓冲区均包括接收和发送两个子缓冲区,图5中显示的均为二级缓冲区。一级缓冲区是用户为使用Dynam ic C提供的读写串口的库函数,依据需求为各个串口开辟一定容量的输入输出缓冲区。图5各任务中的数据接收、数据发送模块,便是调用串口读写库函数,对相应的一级缓冲区进行读写操作。缓冲区被多个任务操作时,可通过信号量进行同步,或通过缓冲区自身结构的设计避免同步问题。此外需注意 Dynam ic C中默认的 µC/OS-Ⅱ时钟节拍为64Hz,为方便计算时钟周期,将其设为50Hz,即一个时钟周期为20ms。下面主要介绍各任务的设计与规约转换的实现。

(1)ZigBee通信任务

串口F提供ZigBee通道,采用ZigBee协议实现监控数据无线传输。

1)ZigBee网络通信规约

ZigBee采用API操作模式,API包结构如表1所示。数据帧结构由帧类型决定,当帧类型为ZigBee数据传输请求时,数据帧结构如表2所示。ZigBee网络中的每个设备都有一个16位网络地址和一个64位地址。64位地址是模块在生产期间分配的唯一设备地址,可直接获取。16位网络地址是模块在加入网络后获得的,除网络协调者的地址为固定的0x0000,其余模块(包括路由模块和终端模块)地址均是任意的,且在某些情况下还是可变的,故16位网络地址不可预知,传输时通常设16位目标地址为0xFFFE,表示16位目标网络地址未知,需搜索16位网络地址。

表1 API包结构

表2 数据帧格式

数据域存放要发送给目标节点的数据,数据格式可由用户依实际需要制定。设计的用户数据域数据格式采用自定义配电网规约,格式为一字节功能码+可变字节的数据,数据由功能码和传输方向共同决定。

2)ZigBee通信任务的执行

按照任务设计思路,将图5中所有ZigBee操作模块封装为一个任务,即任务包含接收、发送及解析三部分,任务采用查询方式无限循环执行,接收到一个有效帧后,依据自定义规约解析出用户数据域数据,对需要上传的数据,打包后放入ZigBee数据接收缓冲区,并将相应接收缓冲区标志位置位,等待负控规约解析任务对其进行处理(转换成负控规约结构帧);当发现ZigBee数据发送缓冲区有数据时,则将其打包发送。

(2)RS-485通信任务

串口A~串口D均提供RS-485接口,依据DL/T 645规约实现抄表功能。

1)DL/T 645规约

DL/T 645规约是用于多功能电能表的数据采集规约,定义了3层结构,分为物理层、链路层和应用层。

物理层提供3种接口:接触式光学接口、调制型红外接口和RS-485接口。其中RS-485接口通信速率较高,可达100kbps。

链路层规定通信帧格式。包括帧结构、字节结构、传送顺序、传送间隔。帧格式如表3所示。

表3 DL/T 645规约帧格式

应用层定义通信双方行为的集合,控制码C表示具体通信行为,决定了长度L及数据域DATA。

2)RS-485通信任务的执行

如图5所示,将所有RS-485操作模块封装为一个任务。拨码开关控制4个RS-485接口的开启,并将开启串口的对应标志位置位。任务无限循环执行,每次执行均先查询各串口标志位,确定开启的串口,任务依次对开启的串口进行操作,且只操作开启的串口。抄表过程为问答方式,即转换器提出数据请求,电能表响应数据。每个开启串口的处理流程均相同,一次处理流程为:发送询问帧、等待应答、按 DL/T 645规约解析数据并将需要上传数据置入RS-485数据接收缓冲区、将相应接收缓冲区标志位置位等待负控规约解析任务对其进行处理。

(3)GPRS通信任务

1)GPRS通信设计

ME3000模块提供AT指令接口,可方便ME3000模块与RCM 5700模块进行通信。所提供AT指令集不仅涵盖了标准的GSM语音和短信应用,还包含为方便用户使用而提供的 ZTE 专有指令。

通信规约转换器对GPRS模块的操作可分为两部分,一是实现GPRS基本通信所用到的操作,包括上/下电控制、复位、打开GPRS数据连接,建立TCP服务器链接、数据收发等;二是为保证 GPRS通信可靠所采取的必要状态监测,包括信号强度查询、SIM卡状态查询、网络注册查询、当前TCP连接状态查询等。

因 GPRS模块上电后需较长时间保证网络注册、准备好接收指令,故不应通信失败就重启GPRS模块。依据状态监测结果,采用合理的操作及合适的操作节奏可较快排除GPRS通信故障,保证GPRS通信可靠。如发现连接TCP服务器失败后,不应立即重启GPRS模块,应延时一段时间后再尝试连接TCP服务器,若连续3次连接TCP服务器均失败,则返回到上级操作,即 GPRS数据连接,若连续 3次GPRS数据连接也失败,则重启GPRS模块。整个GPRS操作流程如图6所示。

2)GPRS通信任务的执行

图5中全部GPRS操作模块封装成一个任务,完成GPRS数据链路维护、数据收发。任务采用查询方式无限循环执行,接收到一个有效帧后,即存入GPRS数据接收缓冲区,并将相应接收缓冲区标志位置位,等待负控规约解析任务对其进行处理;当发现GPRS数据发送缓冲区有数据时,即将数据上传到上位机。

图6 GPRS模块处理流程图

(4)负控规约解析任务

1)负控规约

负控规约采用3层增强型结构,分为物理层、数据链路层、应用层,采用GB/T18657.1的6.2.4FT1.2异步式传输帧格式。定义如表4所示。

表4 GB/T18657.1的6.2.4FT1.2异步式传输帧格式

为适应现代通信技术发展,负控规约提供了多种可选物理通道。其中一般串口和红外通道可作为测试使用,TCP/UDP可作为主站与终端的通道,短消息可用于通知用户紧急事件。

2)负控规约解析的执行

按照任务设计思路,将全部的负控规约解析模块封装成一个任务,即解析任务,它是规约转换器软件中最复杂的部分,封装了绝大部分的负控规约功能,是实现规约转换的核心。解析任务与各个全局数据区(包括数据接收缓冲区和全局标志位系统)接口,以获取构建规约帧所需的数据,并且无限循环执行,执行方式为查询触发式,即任务轮询全局标志位系统中表示各接收缓冲区的标志位,一旦发现某个接收缓冲区有需要处理的数据则立刻将其按照负控规约构造数据帧,实现规约的转换,然后清此标志位,继续查询其余接收缓冲区标志位,直到所有接收缓冲区标志位均清零,一次循环过程结束。一次循环流程可归纳为:轮询检查、发现待处理数据、锁定执行(读写数据缓冲区、Flash数据存储区,构造数据帧)、输出结果(将构造帧填入各个数据发送缓冲区,将事件存入Flash数据存储区)。

(5)规约转换实现

依据上述各任务的设计原理,下面以设计的通信规约转换器用于线路状态监测并通过 ZigBee无线网络接收现场采集器依自定义规约发送的数据为例,说明规约转换的实现过程。

某次 ZigBee通信任务接收到一个采集器发送的有效帧,经自定义规约解析后得到需要上传的表示线路状态变化数据,数据格式为功能码(11H)+采集器地址+状态码1+状态码2+状态码3,数据打包后放入ZigBee接收缓冲区,负控规约解析任务发现ZigBee接收缓冲区有数据等待处理,即读取Flash中的负控规约设置参数,按负控规约要求构造数据帧,实现自定义规约向负控规约的转换,所得数据帧格式如表5所示。

表5 负控规约构造帧格式

4 结论

从硬件和软件两方面系统地介绍了通信规约转换器的设计。硬件设计在满足功能、性能要求的同时突出可扩展性,将硬件分为系统部分和接口部分。软件部分侧重介绍µC/OS-Ⅱ操作系统、应用程序结构、ZigBee通信、RS-485通信、GPRS通信及自定义规约和DL/T 645规约与负控规约的相互转换。所设计的通信规约转换器具有多串口,扩展性强,可靠性高等特点。

[1]路小俊,王在军.基于ARM平台及嵌入式实时操作系统的通信管理机[J].电力自动化设备,2005,25(5): 46-49.

[2]张建周,柏嵩.嵌入式高可靠性通信管理机的设计[J].电力系统自动化, 2007, 31(16): 94-98.

[3]许红蕊,姜波,朱启晨. 基于实时操作系统 µC/OS-Ⅱ的通信管理机的研发[J].计算机工程与应用, 2007,43(11):208-210.

[4]朱莹,林基明.基于 ZigBee无线传感器网络网关的设计与实现[J].传感器与微系统, 2009,28(7): 80-82.

[5]龙玉湘,章兢,戴瑜兴. 基于 ZigBee的无线抄表系统的集中器设计[J].低压电器, 2009(20): 14-17.

[6]国家电网公司.Q/GDW 130-2005电力负荷管理系统数据传输规约[S].北京:中国电力出版社,2007.

[7]杨耿杰,郭谋发,丁国兴等. 基于嵌入式操作系统的GPRS配变抄表及监测终端[J].电力自动化设备,2009,29(8): 118-123.

[8]郭爱煌,李广宇,陈志雄,等. 基于GPRS的无线数据传输嵌入式系统设计[J].计算机工程,2009,35(18): 40-42.

[9]周航慈,吴光文.基于嵌入式实时操作系统的程序设计技术[M].北京:北京航空航天大学出版社,2006.

[10]陈是知.µC/OS-Ⅱ内核分析、移植与驱动开[M].北京:人民邮电出版社,2007.

[11]中华人民共和国电力工业部.DL/T 645-1997多功能电表通信规约[S].北京:中国电力出版社,1998.

猜你喜欢
规约缓冲区串口
浅谈AB PLC串口跟RFID传感器的通讯应用
电力系统通信规约库抽象设计与实现
一种在复杂环境中支持容错的高性能规约框架
基于网络聚类与自适应概率的数据库缓冲区替换*
一种改进的LLL模糊度规约算法
基于XML的电力二次设备异构规约建模与转换*
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
关键链技术缓冲区的确定方法研究