智能电力监控系统远程数据传输的方案设计

智能电力监控系统远程数据传输的方案设计
1)
        苏健民 陆 光 凌 滨  孙江北
(东北林业大学,哈尔滨,150040)       (八五二农场)
  摘 要 介绍一种单片机控制实现远程数据传递的通讯方案,该通信使用单片机资源较少,只使用3根线
(RD ,T D ,G ND )就可以进行控制,特别适合于智能仪表的远程监控。同时还介绍了为保证数据传送正确而提供的类X M ODE M 协议。在电力监控系统应用该方案表明,其实现简单、可靠。
关键词 远程数据传递;调制解调器;类X M ODE M 协议分类号 T N915.19
The Scheme of I ntelligent I nstrument for Long -distance Communication and Control/Su Jianmin ,Lu G uang ,Ling Bin (N ortheast F orestry University ,Harbin 150040,P.R.China );Sun Jiangbei (the 852Farm )//Journal of N ortheast F orestry Uni 2versity.-2004,32(4).-75~77
A technical proposal for long -distance communication with MCS -51single chip process or and M ODE M is developed.It only employs serial
port in MCS -51single chip process or and 3wires (RD ,T D ,G ND )for control ;s o it is compatible to i
ntelli 2gent instrument for long -distance communication and control.A communication protocol is als o introduced for assuring data transmission.The fact has approved that the proposal is sample and credible in the scheme of intelligent instrument.
K ey w ords  Long -distance communication ;M ODE M ;C ommunication protocol   以单片机为核心的仪表通常作为现场数据采集和控制的
装置。在电力监控系统应用过程中,经常有将现场数据传递到远地主控制台的要求。特别是传输距离较远,各装置比较分散时,通常采用单片机的串行口将采集的电能数据传递给主控制台。在数据量不大、通讯数据频率不高的时候,使用调制解调器(M ODE M ),并利用电话线路进行数据传输是一种非常可靠的方法。如:在电能监测控制中,各用电单位通常分布在较广的区域内,电能监测仪表距离主控制台都比较远,利用M ODE M 和租用电话线路的方法可以很好地解决数据传输和控制的问题。本方案设计的系统结构如图1所示,在这种方案中,主控制台的微机通过M ODE M 拨号呼叫一个指定的现场智能仪表,该仪表应答呼叫与主控制台建立通讯线路,然后通过这个通讯线路将数据传递给主控制台或接收命令完成控制工作。笔者的设计方案使用了单片机的RX D 和TX D 两个信号线,这几乎是最小的硬件资源。这样的方案特别适合于智能仪表。为了保持数据传递的正确性,笔者还提出了一种类X M ODE M 协议及其实现方法。
图1 电能监控仪的远程数据传递
1 设计原理
1.1 单片机与M ODE M 的连接
1)黑龙江省科技厅重点攻关项目。
第一作者简介:苏健民,男,1961年5月生,东北林业大学信息与计算机工程学院,副教授。
收稿日期:2003年3月5日。责任编辑:张建华。
  因为M ODE M 接口采用的是RS 232标准,所以本系统的M ODE M 接口同样也采用RS 232标准。目前市场上标准的通用异步接收/发送器元件有好几种,例如,8250或者16450。单片机通过8250实现控制M ODE M 进行远程通信[1],通常方案要求扩展一片的UART ,这样占用了较多的系统资源,笔者采用的方案不使用扩展的UART ,而是使用单片机的串口。
对于单片机(MCS 51系列为基准),其本身的串口实际上也是一种UART 。虽然这个串口没有控制和状态命令,但是它提供了硬件实现的串行输入和输出,这一点正是UART 的本质所在。因为具备这个特点,对串行口来说就是写数据到S BUF 或从S BUF 读数据的过程[3]。
从M ODE M 方面来看,现在它具备了一种称之为AT 命令的设置方式。原来在RS 232接口标准中用电
平高低和变化表示的控制信号可以使用AT 命令进行操作,而AT 命令是通过串行数据的方式给M ODE M 的,这样M ODE M 从理论上说使用3根线(RD ,T D ,G ND )就可以进行控制。但各种不同型号的M ODE M ,其AT 命令的种类和功能是有一定差别的,所以要根据所选定M ODE M 的具体情况进行。在使用M ODE M 中,对DTR 信号线(数据终端准备就绪)的功能没有寻到合适的AT 命令进行完全的灵活控制,因而使用M AX 202上空闲一个信号设置DTR 有效。具体的连接如图2所示。根据RS 232的电平要求,使用M AX 202进行电平转换。公共地线、串行输出、串行输入是必须的,另外利用M AX 202空闲的一对电平转换,设置DTR 总是有效。
图2 单片机与M ODE M 的连接
1.2 设计步骤
单片机控制M ODE M 实现远程数据通信,主要包含两个问题:当主控制台呼叫时,应建立通讯链路;启动数据传输程序进行工作。
对于第一个问题,主要是对M ODE M 的控制。如果从检测
第32卷第4期东 北 林 业 大 学 学 报
V ol.32N o.42004年7月JOURNA L OF NORTHE AST FORESTRY UNI VERSITY Jul.2004
振铃信号开始完全由单片机实施控制,这个工作会因细节较多而显得很烦琐。但现在M ODE M的发展已使得它具备了一定的智能,可以独立处理一些基本问题。因而单片机所要做的就是正确地设置M ODE M,即设置M ODE M为自动应答方式。
当M ODE M处在自动应答方式的时候,它会对振铃次数进行计数,当振铃次数达到要求的数目时,就摘机应答,完成握手过程进入在线状态。所有这些行为都由M ODE M自动进行,不需要单片机的干预。设置自动应答的A T命令是A T S0=10,这个命令中的10表示M ODE M接受到振铃信号后,计数振铃脉冲为10时开始应答完成握手过程。
系统中还设置M ODE M具备长空号自动断链功能。所谓长空号自动断链功能,是指当处在在线工作状态时,如果对方挂机,M ODE M可以通过电话检听到空号回应,如果这个长空号持续一定时间,M ODE M将自动挂机断开链路。设置长空号自动断链的命令是Y1,这种设置是为了现场无人环境中保证任何情况下都可以挂机,避免不必要的损失。需要指出的是,通常M ODE M都具有命令回应功能。应用中为了避免出现问题,要关闭这样的功能,其命令为E0。
湍流动能上述设置都可以通过AT命令来完成。其基本方法就是将ATE0Y1S0=10\n这个字符串对应的ASCⅡ码通过串口送给M ODE M。
握手完成以后,即建立了一个通讯的线路。当M ODE M 处在数据传递状态时,M ODE M对于数据传递
可以看成是一个透明的装置,或者说可以不理会M ODE M的存在,建立一个速度较慢的通讯线路。但这时要进行的数据传递必须通知单片机执行数据传递程序。
对单片机的串口,设置为工作方式1,并让其中断打开。根据类X M ODE M通讯协议,主控制台拨号并完成握手以后,要首先发出一个NAK数据,要求仪表发送数据。这个数据发送到单片机的S BUF后产生一个中断,在串口中断程序中安排数据传递程序。即当串口程序发生的时候,意味着单片机现在开始数据传递。
单片机串口的使用这里不赘述[4]。M ODE M的设置和单片机串口初始化见程序1。
程序1:
M OV T M0D,#20H;设置定时器1为方式2定时工作
M OV TH1,#0FDH;设置定时器1为时间常数
M OV T L1,#0FDH;保证串口的波特率为9600
M OV SC ON,#50H;串口工作在方式1
M OV PC ON,#00H;S M0D为0
SET B TR1;启动定时器
;初始化M ODE M
C LR IE.4;关串口中断
M OV DPTR,#M LT AB;指向AT名令表首址
M OV R0,#0BH
M OV A,#00H
LOOP1:
M OVC A,@DPTR
M OV S BUF,A
JNB TI,$
C LR TI
I NC DPTR
C LR A
D JNZ RO,LOOP1
  ;M LT AB开始单元存放着
  ;ATE0Y1S)=10\n的ASCⅡ码
M LT AB:
  DB41H,54H,45H,30H,59H,31H
途语导航  DB53H,30H,3DH,01H,0DH
当通信正常完毕时,单片机要控制M ODE M挂机。这样的AT命令是ATH。在实际操作时,首先要将M ODE M从在线状态变成在线命令状态,然后给出挂机的AT命令。具体程序如下:
M OV A,#00H花木水
M OV R4,#05H
M OV DPTR,#0FFAT M L
E N11:
JNB TI,$
M OVC A,@A+DPTR
M OV S BUF,A
C LR TI
I NC DPTR
M OV A,#00H
D JNZ R4,
xm2010E N11
;第一行是转义命令“+++”
第二行是命令“ATH1\n”
OFFAT M L:
  DB2CH,2CH,2CH
  DB41H,54H,48H,31H,0DH
2 类X M ODE M协议
利用M ODE M进行异步通讯有时会出现错误,所以要规定在发现错误以后重新发送数据,这样的一套规定就是所谓的通信协议。若传递数据量不大,可简化这个规定,而定义一套适合数据量比较小的、基本与X M ODE M协议类似的协议,即类X M ODE M协议。
2.1 类X M ODE M格式
信息包的格式如下所示:
通信单元包: 单字节;
数据区:   32个字节;
CRC校验码: 双字节;
结束码:   单字节。
其中信息包中的第一个字节是50H(ASCⅡ码)表示数据包开始,后面32个字节是实际要传的数据,最后二位字节是防止错误而生成的CRC校验码。
CRC码是基于前面的n个字节(包含50H),使用特定的算法计算得到的,其功能是检测传递错误,其错误检测率几乎
100%,是一种比较有效的错误检验码。
必须指出的是,信息包中的一个字节在具体的传递过程中要由UART加上一个启动位和一个停止位,
也就是单片机串口工作方式1的所谓帧格式。
2.2 CRC码的生成
产生CRC码的原理可以用移位寄存器来表示[2],如图3所示。
图3 CRC原理电路
图3中的方框表示16位的移位寄存器,带“+”的圆圈表示异或运算,线段上的箭头表示移位的方向。数据信息段是产生CRC码的数据。每一次数据脉冲,数据信息段和移位寄存器都要移位一次,而且需要进行异或运算。当所有数据信息段的数据移位完成以后,CRC寄存器中的数据就是数据信息段的CRC码。CRC寄存器的初始值为0000H。
CRC码的产生可以使用多项式表示。进一步讨论可以参阅文献[1]。在实际的工作中,一般很少用硬件电路来实现生成CRC码。通常都是使用软件生成CRC码。如果完全模拟
67           东 北 林 业 大 学 学 报               第32卷
硬件电路原理编写软件产生CRC 码,则程序的运行需要较长的时间。进一步的研究表明,图4
所示的流程图生成
图4 产生CRC 码的程序流程
CRC 码,这个程序的运行时间很短,利用了一个所谓的
CRCT AB 表,这个表可以预先生成,其生成程序是模拟图4所示的硬件电路工作。计算数据从00H 到FFH 为所对应的CRC 码,并将这些码保存在一个表中。显然,00H 对应的CRC 码是一个16位的二进制数,00H 到FFH 有256个数据,一个数据对应2个字节的CRC 码,表的长度是512个字节。表1给出了计算得到的CRCT AB 表。
利用CRCT A B 表,可以按照图4的程序流程图编写程序快速产生信息包的CRC 码。当接收方接收到数据以后,进行CRC 检测(包含发送方计算的CRC 码)并进行计算。如果传送正确,计算得出的CRC 码应该为0000H ,否则传送的数据中有错误。2.3 类X M ODE M 的传送和接收数据流程
赵薇 天使旅行箱通讯协议中要规定的内容有:启动数据传递、检验数据的正确性及进行数据的重新发送。类X M ODE M 关于接收和发送的规定在本质上同X M ODE M 是相同的,只是简单了。图5给出了它的流程图。
从图5中可以看出,接收方(主控制台)发送NAK 表示数据传递开始启动。接收方完成CRC 检验后,通过发送ACK 信号正常后结束一次通信。如果接收方CRC 检验没有通过,发NAK 信号要求发送方(单片
机)重新发信息包。对于接收方来说,要设置超时处理这一环节。如果一个信息包在规定的时间内没有完成处理传递,意味着出现了异常情况。超时处理是通讯异常的最后检查,确保不进入死锁。
3 结束语
笔者介绍的远程数据传递方案是进行的电能监测仪远程
联网系统的一部分,从实际情况来看效果很好,其硬件看投入少,容易实施,通讯质量能够保证数据的正确性。
表1 CRCT AB 表
0000
102120423063408450A560C670E781089129A14A B16B C18C D1AD E1CE F1EF 123102103273225252B5429472F762D693398318B37B A35A D3BD C39C F3FF E3DE 24623443420140164E674C744A45485A56A B54B 85289509E5EE F5CF C5AC D58D 365326721611063076D766F6569546B4B75B A77A 97198738F7DF E7FE D79D C7BC 48C45815688678A70840186128023823C9CC D9E D E98E F9AF 89489969A90A B92B 5AF54AD37AB76A961A710A503A332A12DBFD C BDC F BBF E B9E 9B798B58BB3B AB1A 6CA6
7C874CE45CC52C223C030C601C41E DAE FD8F CDEC DDCD AD2A BD0B 8D689D497E976E B65E D54EF43E132E321E510E70FF9F EF BE DFDD CFFC BFI B AF3A 9F598F78918881A9B1CA A1E B D10C C12D F14E E16F 108000A130C220E3500440257046606783B99398A3F B B3DA C33D D31C E37F F35E 02B1129022F332D24235521462777256B5E A A5C B 95A88589F56E E54F D52C C50D 34E224C3140004817466644754244405A7DB B7FA 879997B8E75F F77E C71D D73C 26D336F2069116B06657767646155634D94C C96D F90E E92F 99C889E9B98A A9AB 584448657806682718C008E1388228A3C B7D DB5C E B3F F B1E 8BF99BD8ABBB BB9A 4A755A546A377A160AF11AD02AB33A92FD2E E D0F DD6C CD4D BDAA AD8B 9D18BDC97C266C075C644C453CA22C831C100CC1EF1F FF3E CF5D DF7C AF9B BF BA 8FD99FF86E17
7E36
4E55经天亮
5E74
2E93
3E B2
0E D1
1EF0
图5 类M ODE M 协议传送和接收数据流程
参 考 文 献
1 李健.单片机控制调制解调器远程数据传输技术.电子技术应用,
1995(5):16~192 [美]T oe Cam pbel.串行通信C 语言程序员指南.北京:清华大学出版社,19943 张毅刚.单片机应用设计.哈尔滨:哈尔滨工业大学出版社,19954 何立民.单片机原理及应用.北京.北京航空航天大学出版,1999
7
7第4期             苏健民等:智能电力监控系统远程数据传输的方案设计       

本文发布于:2024-09-24 16:29:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/320702.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   传递   单片机   控制   进行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议