智能电表红外通信协议的分析和验证_第1页
智能电表红外通信协议的分析和验证_第2页
智能电表红外通信协议的分析和验证_第3页
智能电表红外通信协议的分析和验证_第4页
智能电表红外通信协议的分析和验证_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于智能电表的红外通信协议的分析与验证林正红周晓彤杨沙李茂姝蒋璐(西南科技大学信息工程学院,四川绵阳)摘要:随着多功能智能仪表技术的逐步完善和单片机技术的开展,红外通信技术已经为电力系统自动抄表提供了一种可行的解决途径。本文在介绍红外线通信的根本原理的根底上,根据电力行业标准《DL/T546-2007多功能电能表通信协议》的要求,具体分析和验证了在智能电表应用中的红外通信协议。同时,设计合理的模块分别模拟真实电表和读表模块,采用软硬件相结合的方法验证智能电表红外通信协议的正确性。

关键字:智能电表;红外通信;协议Abstract:Withmulti-functionalsmartmetertechnologygraduallyimprovedandthedevelopmentofmicrocontrollertechnology,infraredcommunicationtechnologyhasprovidedaviablesolutionfortheautomaticmeterreadingofpowersystem.Thispaperdescribesthebasicprinciplesofinfraredcommunication,concretelyanalysesandverifiestheinfraredcommunicationprotocolofthesmartmeters’applicationwhichisbasedonthepowerindustrystandard"DL/T546-2007multifunctionalenergymetercommunicationprotocol".Themodulesarealsodesignedtosimulatetherealmeterandmeterreadingmodule,usingthemethodofcombiningsoftwareandhardwaretoverifysmartmeterinfraredcommunicationprotocoliscorrect.Keywords:smartmeters,infraredcommunication,protocol1、红外通信原理红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,复原为二进制数字信号后输出。红外通信是基于调制的载波通信,其载波信号是按一定频率进行幅值调制的红外光。调制频率有36kHz、38kHz、40kHz,其中38kHz应用最广泛。红外通信的载波信号由红外发射二极管产生。当传输数据“1”时,只需使发射管截止而不发射红外光即可。当传输数据“0”时,就必须按照调制频率f〔对应的周期为1/t〕的要求,控制发射管导通t/2时间然后截止t/2时间,并循环变化直至数据“0”传输结束。简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。2、智能电表的红外通信模块2.1、红外通信协议的介绍红外通信的协议有很多种,比方IRDA标准、TinyTP、IrOBEX、IrCOMM等等。但是,以下的红外通讯协议都是采用电力工业部《DL/T546-2007多功能电能表通信协议》,本协议为主从结构的半双工通讯方式。红外抄表器为主站,多功能电度表为从站,每个多功能电表均有各自的地址编码。通讯链路的建立和解除均由主站发出的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据长度、数据域、帧信息、纵向校验码及帧结束符等7个域组成。帧格式如表1所示。每次通讯都是由主站向按信息帧地址域选择的从站发出请求命令帧开始,被请求的从站根据命令帧中控制码的要求做出响应。在数据编码方面,为提高传输效率和可靠性,传输时发送方数据域按字节进行加33H处理,接收方的数据域按字节减33H处理。表1信息帧格式68HA0……A568HCLDATACS16H注:68H——帧起始标志;A0~A5——从站〔此处为电表〕的地址;C——控制码;L——数据长度;DATA——数据域;CS——校验码;16H——帧结束标志。2.2、实际电表局部TP1-读表模块红外接收头的接收引脚TP2-读表模块串口的发送引脚TP3-读表模块红外发射头的发送引脚TP4-读表模块串口的接收引脚图SEQ图\*ARABIC1红外协议验证框图—实际电表2.2.1发送数据的分析PC机通过USB转串口和读表模块的红外发送头,发送一条读电表的指令〔即利用单相红外抄表的软件发送000000000038这个表号〕,并将TP3连接到串口调试助手上观察,得到发送的数据〔即抄表头模拟主机发送的数据〕如下:FEFEFEFE6838000000000068110433333433EA16对这段数据的分析如下:FEFEFEFE为主机〔抄表头〕唤醒从机〔电表〕;68为起始域;380000000000为电表号;11为控制码〔含义为主站发送命令帧,从站正确应答,无后续数据帧,读数据〕04为数据域字节数;33333433为数据域〔包含数据标识,密码,操作者代码,数据,帧序列等,数据域的结构随着控制码的功能改变而改变〕,传输时,发送方加上33H,接收方减去33H.都减去33H以后,为00010000(字节从高到低排列)对应的是当前正向有功总电能。如果电表收到这样一串信息,会回送这个数据标识,并在其后添加上总电能的具体值〔总电能的具体值也要做减去33H的处理〕。EA为校验码,即〔68+38+00+00+00+00+00+68+11+04+33+33+34+33的值〕,但是不计超出256的值;16为结束符。以上分析与《DTL645-2007多功能电表通信协议》中的说明一致,说明该指令完全符合协议定义的发送数据的要求。2.2.2发送时序的验证通过示波器观察TP2和TP3点的信号,得到如图2所示的波形〔通道1是TP2的数据,通道2是TP3的数据〕。图SEQ图\*ARABIC2发送信号相关性分析观察发现:TP2的数据是对TP3的数据取反之后,并填充38KHz的载波以后的数据。对发送信号的同步性分析的波形如图3所示〔通道1是TP2的数据,通道2是TP3的数据〕。图SEQ图\*ARABIC3发送信号同步性分析通过观察发现:TP2和TP3的数据传输是同步传输的。2.2.3接收局部数据的分析读表模块的接收头接收到模拟电表发送的数据之后,将该数据通过串口转USB发送给PC机。同时将TP1连接到串口调试助手1,将TP4连接到串口调试助手2,观察两路信号是否相同。得到的数据如下:TP1的数据〔串口调试助手1中观察的结果〕FEFEFEFE6838000000000068110433333433EA16FEFEFE68380000000000689108333334336B3333337216TP4的数据〔串口调试助手2中观察的结果〕FEFEFE68380000000000689108333334336B3333337216现在对TP1的数据进行分析,其可以分成两局部:第一局部:FEFEFEFE6838000000000068110433333433EA16以上是读表模块发送的读表请求信号,与《DTL645-2007多功能电表通信协议》进行比对〔具体的分析过程在发送局部的验证中已有详细说明,在此不再表达〕,发现该指令确实符合协议定义的数据要求;第二局部:FEFEFE68380000000000689108333334336B3333337216以上就是电表作为从机回送给主机〔抄表头〕的数据,以下是对这组数据的具体分析:FEFEFE表示电表已经被唤醒〔但此处不是必须是4个FE,实验证明可以没有FE,或者在1至4个FE〕;68为帧起始符;380000000000为电表的地址域,不够6个字节时,之前用0补齐,低字节在前,高字节在后;68为帧起始符。91为控制码,这里表示无后续数据帧;08为数据域长度,即L.且L=04H+m(其中,m为数据长度);333334336B333333为数据域。其中33333433为数据标识,6B333333为4个数据。数据标识都减去33H以后,为00010000(字节从高到低排列)对应的是当前正向有功总电能,而6B333333减去33H之后为38000000〔同样为高字节在后,低字节在前〕,这四个数据的意义是电表给抄表头回复自己的正向有功总电能是0.38kWh。这个数据就是上位机软件发出的需要查询的结果;1A为校验码;16为结束符。以上分析也与《DTL645-2007多功能电表通信协议》中的说明一致,说明该数据也完全符合协议定义的从站应答信号的要求。最后通过对TP1的数据和TP4的数据进行比对,发现TP4的数据是TP1数据的第二局部,即读表模块使用的是透明传输。也就是说读表模块只是提取了有用数据〔即电表的回送信号〕,然后直接上传到上位机,数据的解析是由上位机软件完成的。2.3、模拟电表局部图4红外协议验证框图—模拟电表前面介绍了真实表和读表模块进行正确通信后的相关数据以及红外协议的分析及验证。为了进一步验证我们自己设计的模拟电表是否与实际电表通信的结果一致,我们在自己搭建的模拟电表的平台上,也与读表模块之间做了相同的实验。模拟电表局部的工作原理说明:在模拟电表正确接收读表模块发送的数据之后,使用ARM开发板产生PWM输出,构成红外输出的38KHz的载波。同时,使用ARM开发板上的串口发送需要发送的数据,并在模拟电表模块内,将上述两路信号进行调制后,通过红外发送头发送出去。最终,模拟电表回送给电表实际电表回复的数据时,通过上位机软件,也能得到与实际电表相同的结果,所有的数据均与实验一种采用的方法相同,并且观察到的结果也相同。2.4、使用模拟读表模块局部2.4.1模拟读表模块的硬件实现通过上位机向模拟读表模块〔包括arm7单片机和红外模块〕发送读表请求指令,通过模拟读表模块与实际电表进行通信,具体如下所示:图5模拟读表模块与实际电表通信2.4.2模拟读表模块的软件实现注:以下提到的UARTx为模拟读表模块中主处理单片机〔arm7〕的UART0、UART1。在本程序中,通过UART0完成上位机与读表模块的通信,通过UART1完成读表模块与实际电表的通信:首先上位机通过串口向arm的UART0发送数据,UART0收到数据后,进入UART0接收中断效劳程序,在中断效劳程序中,将UART1的中断关闭〔防止请求电表信号的反射数据被上传到上位机〕,同时将上位机发送过来的数据通过UART1的TXD向红外模块发送数据,在UART0的RXD收到第20个字节的数据时,在UART0中断效劳程序里面将使能UART1的接收中断。然后使UART1可以通过中断方式来接收电表回送的数据,在UART1的中断效劳程序中,通过UART0的TXD向上位机传送数据,至此完成通信过程。具体实现流程图〔主程序流程图〕如图6所示。图6主函数流程图2.4.3通信建立的结果当模拟读表模块和实际电表通信建立成功后,上位机软件中可以正确显示需要从实际电表中读取回来的数据,如下图:与电表号为000000000038的电表建立通信后的结果: 图7通信结果1与电表号为000000000038的电表通信建立成功后,上位机软件中显示如上图所示,0.39kwh为所读电表的当前功率,与实际电表中显示的数据相同,说明通信建立是成功的。2、与电表号为0123457073的电表建立通信后的结果:图8通信结果2与电表号为0123457073的电表通信建立成功后,上位机软件中显示如上图所示,0.7kwh为所读电表的当前功率,与实际电表中显示的数据相同,说明通信建立是成功的。由此证明,我们的软件和硬件的实现方案都是可行的。3、总结在实际的通信过程中,上位机软件通过读表模块发送读表请求信号,在电表接收到正确的读表请求信号之后,电表回送对应的数据。而在回送过程中,读表模块只是同步上传了电表回送的信号,最后数据解析是在上位机上完成的。同时,经过在整个通信过程中对智能电表中红外通信的实际分析和验证,得到所有的数据都是完全满足《DTL645—2007多功能电表通信协议》要求的。参考文献:[1]DL/T645-2007,多功能电能表通信规约[S].北京:中国电力出版社,2007.[2]储昭碧,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论