基于CAN 总线的继电保护装置内部通信机制设计
2016-12-05石建岳峰曹玉保
石建,岳峰,曹玉保
(国电南京自动化股份有限公司 江苏 南京211153)
基于CAN 总线的继电保护装置内部通信机制设计
石建,岳峰,曹玉保
(国电南京自动化股份有限公司 江苏 南京211153)
为了解决继电保护装置内部通信问题,提出了一种基于CAN总线的继电保护装置内部通信机制设计方案。通过对装置内CPU模件与开入、开出模件通信的特性进行分析,对CAN总线ID分段、数据传输及重发机制、通信故障处理机制进行了设计。方案实现了继电保护装置多CPU、多IO组态下的实时、可靠通信。实际应用表明,具有高效、可靠性高的优点,达到了设计需求。
继电保护装置;CAN总线;数据重发;错误处理;通信机制
CAN总线是由德国BOSCH公司开发的控制器局域网络(Controller Area Network,CAN)简称,最初用于高可靠性要求的汽车电子设计,由于其卓越性能,现已广泛应用于工业自动化、医疗设备等方面[1]。CAN总线通过无损竞争、位填充、循环冗余检验等方法,具有结构简单、较高的性能和高可靠性等特点,易于实现总线各节点间数据实时自由通信。继电保护装置根据应用需求会配置若干CPU模件和若干IO模件,CPU模件与IO模件之间数据传输不约束主从关系,采用多发多收通信机制,数据吞吐量相对较小,但是对于实时性和可靠性却提出很高的要求,CAN总线非常契合该应用需求,但DeviceNet[2]、CANopen[3]等高层协议通常却很复杂,不适宜继电保护装置。文中提出了基于CAN总线的面向继电保护装置应用所优化设计的方案。
1 装置内部IO通信架构
继电保护装置根据应用不同,配置的CPU模件及开入、开出回路数量变动较多[4],常采用如图1所示架构。开入DI模件将外部高压信号光电隔离转换成低压信号后通过通信总线发送给各CPU模件参与保护计算,高压输入信号通常为断路器、隔离刀闸等一次设备运行位置指示,也可用于连接压板或其他二次设备的开出等。开出DO模件将各CPU模件通过通信总线发来的跳闸或其他控制指令转换成继电器接点输出实现高压断路器跳闸、合闸功能,也可用于实现风扇控制或信号指示等。对于开入开出均需要的场合,也可通过二者均包含的DIO模件满足需求。RTD/TDC模件通常用于对断路器、变压器工作环境温度、湿度、档位等进行测量,实现一次设备工作状态的监控。
图1 IO通信架构图
多个CPU模件根据功能组态不同,与IO模件交互,并完成各自的保护运算和测量、控制等功能。因此通信总线存在一对一、一对多、多对一等单播、广播通信需求。从通信数据特点来看,DI、DO报文交互频繁、信息短小,这些特征正好与CAN总线提供的多主发送、自由竞争特性相符。而对于RTD温度、DC直流量等变化较缓、数据量较大的模拟量等,也可使用CAN总线通过多帧进行传输。
继电保护装置中模件通常都安装在4U或6U尺寸标准机箱内,通过背板实现信号互连,背板同时提供各插槽硬件地址,方便模件识别自身地址。工程配置时,CPU模件中存储整机各模件配置信息,运行后可以对其他模件上电状态进行监视。
2 CAN应用设计
为提升通信效率,提高DO/DI响应速度,通信采用总线支持的1 MHz最高波特率。对于当前芯片技术,过载帧基本不会再用,远程帧也没有需求,仅使用数据帧。CAN 2.0B扩展帧用户可自行设计使用的有每帧29位ID标识及最多8字节DATA数据。
2.1ID设计
用于竞争总线的ID除包含优先级Pri外,还含多帧传递必须的帧序号FrmSeq、重发标记Rp、结束标记Pe、源地址Src及目的地址Dst等。ID区29位分配参考图2。
图2 扩展CAN ID使用分配
开出回路传输要求是CPU发出跳闸命令能立即传送给指定DO模件,使得继电器动作,实现对一次设备的保护信号传递。为提高保护装置的速动性,快速切除故障,传输延时必须尽可能小(整体可接受延时通常在ms数量级[5]),因此开出报文采用最高优先级。开入回路传输要求是检测到开关信号变化时实时上送,以便CPU记录形成SOE、实现保护运算。为避免与DO优先级冲突,开入报文传递采用中等优先级,IO模件同步记录变位时间。CAN总线除了进行开入状态、开出命令的传递外,还对运行状态、运行日志及缓慢变化的模拟量等进行传递,以便CPU模件准确掌握装置整体运行状况,这类报文传送采用一般优先级即可。综上,CAN总线传输优先级按图3进行分配,并作为定值可通过CPU模件进行工程配置。
图3 数据帧优先级使用分配
当传输数据超过8字节时,不同帧之间需通过帧序号进行判别,参见图2。帧序号FrmSeq定义为从全1开始递减,低位在前。数据重发时Rp标志定义为1,数据传输完成时结束标志Pe定义为1。源地址即为模件从背板获取的硬件地址,目的地址通常为通信对象所在背板槽位的硬件地址,但为便于实现广播、组播,目的地址对广播、组播地址也进行了约定,如全1为全网广播地址。帧序号、地址等实际使用范围较窄时,相应的高BIT位可考虑置1用于保留扩展。
遵守上述设计规则,通信数据帧能达到:1)高优先级数据帧可及时抢占总线;2)同一优先级时多帧数据可连续发送,不会被抢断;3)第一次传送数据优先于重发数据;4)单帧优先于多帧发送;5)所有前述数据均一致时根据源地址和目的地址确定发送顺序。
最高优先级情况下,开出报文等待传输时间最大为160 μs,其他优先级报文等待传输时间不定,但可通过统计方法确定;通信帧最短长度67 μs,接收侧在此时间内需要能将数据接收和处理才能保证数据不丢失[6]。
2.2数据传输及重发
应用层通信数据规定格式如图4所示:第一字节为数据长度Len,第二字节为数据类型Type,其后为数据字节,最后为从Len开始的数据CRC校验。考虑到数据帧一次最多传输8字节,特别规定传输10字节以下时不传输Len和CRC字节,由总线数据帧DLC及帧自身CRC校验机制取代。这样,除去1个字节表示类型外,其余7个字节56BIT对需要快速传输信息的DI/DO模件来说足以表示开入状态和控制命令,可在一帧内完成传输。
图4 数据传输格式
Type字节主要根据应用来进行确定,包含状态传递、控制命令、状态查询、配置查询、日志查询、软对时等不同用途,但不与ID中的优先级进行绑定以方便应用灵活选择。
CAN总线本质上属于广播发送,每帧末尾的接收应答仅表示至少一个通信节点正确接收该帧数据。通信节点较多时,发送端不能据此确认接收端正确接收,传送过程需考虑重发。DI数据包含变位时刻信息,采用类似IEC61850发送GOOSE报文机制[9],以0 ms-2 ms-8 ms时间间隔一对多广播发送且不需确认,见图5,重发间隔内如有新的变位时,以最新数据立即重新开始发送。这样,即使总线竞争失败、输入雪崩等原因导致数据在硬件缓冲区阻塞,包含上次变位信息的新生成数据会覆盖原先数据,确保接收侧数据准确。而在没有状态变化时,DI数据以1 s为间隔进行周期发送。DO控制命令中包含累加的发送序号,以图5所示间隔一对一发送并要求确认,发送侧收到确认时可不再重发,序号则用来判断是否发生报文丢失情况。其他一般优先级数据,则采用通用的定时或超时重发机制进行传送。
图5 数据重发间隔
2.3错误处理
各通信节点统计通信数据及各种CAN总线错误计数,如位填充错误数、CRC错误数等,周期汇总给CPU模件进行故障预警。如某节点异常导致进入Bus-Off状态,造成通信的延迟最大为32个数据帧(发送错误计数器累加到256)约5.3 ms[10-12]。此时节点采用快/慢两种恢复模式:初始2次立即快恢复,此后为慢恢复。快恢复时Bus-Off间隔时间约为1.4 ms,至少仍能提供其他节点8个数据帧的传输,不会对系统性能产生大的影响。慢恢复时Bus-Off间隔时间为80 ms,基本可使16个节点通信不受影响。
CPU模件周期发送巡检报文,IO节点定期发送心跳数据,各通信节点据此监视总线状况以记录日志,CPU可对IO进行日志读取。对于通信长期丢失,IO节点采取先自复位再软、硬件告警方案,确保装置异常能及时被外界感知。CPU则可以及时进行闭锁操作,确保不出现误动[13-14]。
3 试验验证
文中所述设计方案,使用在继电保护平台产品上配置5 个CPU和14个DI/DO模件,使用致远电子公司的CANScope-Pro分析仪接入,以类似示波器、逻辑分析仪及录波器形式对CAN通信进行静态及干扰测试及100 ms短时100%总线负荷测试。图6上部显示针对某节点注入干扰导致其进入Bus-Off状态,在此期间其他节点正常通信;下部显示正常测试数据片段,系统运行稳定,达到预期的效果[15-17]。
图6 测试结果
4 结束语
根据继电保护装置内部CPU模件与IO模件之间的通信需求,文中提供了一种基于CAN总线优化的通信机制和应用层协议设计方案,并在实际产品中测试确认工作可靠。该设计方案相比DeviceNet、CANopen简单,可实现可靠的多主实时通信,也可用于模拟量、运行日志等大数据量的非实时通信,适宜作为继电保护装置内部IO总线方案推广应用。
[1]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[2]王美玲.基于DeviceNet的嵌入式I/O模块设计[D].北方工业大学,2013.
[3]刘怡,王家乐.CANopen从站协议的设计与实现[J].电子技术,2011(9):38-40.
[4]王玉丽,王宜怀,屯娜.CAN通信机理剖析及MCF52235 Flex CAN底层驱动构件的开发 [J].计算机应用与软件,2011,28 (1):19-21.
[5]黄娟娟,夏超英,柳同生.基于英飞凌XC2268的整车控制系统CAN通信设计[J].仪表技术与传感器,2014(5):60-62.
[6]Wolfhard Lawrenz.CAN Systems Engineering,From Theory to Practical Applications[M].2nd.New York:Springer Press,2013.
[7]冯源,豆海利,闫海明.面向机载机电管理系统的CAN应用层协议设计[J].航空工程进展,2015,6(2):252-260.
[8]章磊,祝明,武哲.无人直升机系统CAN总线应用层协议设计[J].北京航空航天大学学报,2011,37(10):1264-1270.
[9]付伟,秦树人,邱建伟.基于CAN总线的车载数据采集器的设计[J].重庆大学学报:自然科学版,2006,29(3):19-22.
[10]黄娟娟,夏超英,柳同生.基于英飞凌XC2268N的整车控制系统CAN通信设计[J].仪表技术与传感器,2014(5):60-62.
[11]魏立峰,李洪亮,王庆辉,等.一种基于CAN总线的通信系统设计与实现[J].沈阳化工大学学报,2015,29(1):59-64.
[12]方珍,陈俊峰,潘盛贵.变电站二次智能电子设备通信接口与通信协议应用分析[J].电气开关,2014(5):66-68.
[13]毛乃虎.现场总线技术在微机母线保护中的应用[J].电力自动化设备,2002,22(6):58-59.
[14]尹海彪,桂峰.基于CAN总线的微机继电保护系统[J].通信电源技术,2012,29(3):50-51.
[15]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007.
[16]严辉,方正.基于CAN总线的门禁读卡控制器设计 [J].工业仪表与自动化装置,2016(4):64-66.
[17]潘世华,张小鸿.基于CAN总线的娱乐设施数据采集智能终端设计[J].工业仪表与自动化装置,2012(4):31-34,100.
Design for internal communication for protective relay devices based on CAN bus
SHI Jian,YUE Feng,CAO Yu-bao
(Guodian Nanjing Automation Co.,LTD,Nanjing 211153,China)
In order to solve the problem of internal communication between relay protection devices,an internal communication mechanism for protective relay devices based on CAN bus is designed in this paper.Through analyzing characterics of the communication between between CPU modules and input and output modules,ID block,data transmission and retransmission mechanism,the communication failure processing mechanism based on CAN bus is designed.It is realized the real-time and reliablely communcation between multi-CPU and multi-IO.The experiment and application show that this design has characteric of high performances and relability,achieve the design requirement.
protective relay devices;CAN bus;data retransmission;fault handling;communication mechanism
TN06
A
1674-6236(2016)22-0030-03
2015-11-19稿件编号:201511190
石 建(1973—),男,江苏南京人,硕士,工程师。研究方向:继电保护、自动控制。