根据软件编码的中速红外技术在FTU中的应用
概 述
馈线自动化终端(FTU)是自动化系统与一次设备联结的接口,主要用于配电系统变压器、断路器、重合器、分段器、柱上负荷开关等应用场合,主要安装于户外柱上或环网柜。由于设备和电力一次设备安装距离比较近,特别是柱上安装模式给应用程序更新、设备调试、运行参数整定和维护带来困难,传统的经过串口进行调试和维护的方式需要直接接触,往往还需要设备掉电,存在安全隐患,接线很不方便,而非接触式维护调试接口将解决上述问题。和蓝牙等一些短距离无线通讯相比,红外数据通讯成本低,设计简单保密性好。红外通讯是一种短距离无线通讯技术,采用点对点传输方式,传输距离为0~30 m,发射角度为30°锥角以内,最高传输速率达16 Mb/s。中速红外数据通讯产品,具有成本低廉、连接方便、简单易用、结构紧凑、传输距离远和传输速率快等特点,非常适合作为FTU调试接口,很好地解决了FTU的参数设置和维护等困难。
1 常用的红外数据传输规范
1.1 IrDA协议的红外数据传输
IrDA 1.0协议基于异步收发器UART,最高通信速率在115.2 Kb/s。IrDA 1.1协议提高通信速率到4 Mb/s,之后,IrDA又推出了最高通信速率在16 Mb/s的协议。使用IrDA协议的高速传输红外收发器,传输距离比较近,只有几十厘米,而且角度很窄,而FTU一般安装在柱上,距地面距离5~6 m,这种方法使现场对准光轴很困难,传输距离远不能满足要求。而且阳光中的红外波段会对红外收发器的灵敏度产生很大影响,并且带来许多干扰。
1.2 红外遥控用数据传输
遥控用的收发器传输距离在几米到几十米,发射角度通常在0~30°,发射强度与接收灵敏度因不同器件不同应用设计而强弱不一,在小型移动设备中有着广泛的应用。标准的红外遥控用波长为900~950 nm,副载波为33~40 kHz。但遥控用的红外收发器的数据传输速率很低,通常只传输简单的命令或读取设备状态等少量数据,对FTU来说其调试接口可能需要观察设备内部数据或更新程序,需要传输的数据量大,如果速率很低,会导致性能无法接受。
2 系统设计方案
FTU安装在户外柱上,距离较长,数据速率要求,高干扰,因此采用Vishay中速红外收发器,利用CPLD/FPGA实现红外调制和数据波形识别,通过软件实现应用层的编码和解码,既降低硬件设计难度又提高了电路的抗干扰能力。
整个系统分为主机侧红外适配器和FTU侧收发器,主机侧适配器通过RS 232和计算机相连经USB接口为适配器供电,通过FTU维护软件经适配器向外收发数据,FTU经红外收发器接收来自主机的命令和数据,并向主机发送主机需要的数据报。FTU是基于A1tera NiosⅡ的SoPC系统,红外收发器的信号通过UART和处理器Nios相连接。
2.1 FTU侧红外适配器
FTU侧的收发电路包括一个接收器和两个红外发射管,将红外收发器的信号ITXD和IRXD直接接到FPGA的两个I/O脚上即可,框图如图1所示。
图1中虚线框内的部件由FPGA实现,在Nios处理器的总线上挂接一个UART控制器,UART输出TXD信号经过红外调制器和连接到红外发射管的驱动电路,来自红外接收管的信号经整形后送到脉宽检测器进行解码,脉宽检测器的解码输出连接到UART的RXD,同时由复位检出组件检出复位信号连接到Nios的控制总线来控制系统重启。
2.2 主机侧电路
主机侧红外适配器电路如图2所示,其中红外收发器信号经过CPLD和经MAX232再接入主机的串行接口。通过串口供电可以简化外部接线,但由于本设计的传输距离远,传输速率高,所以功耗要求高,串口不能提供稳定的输出。所以适配器从主机的USB接口接入5 V工作电源,晶振Z103提供给CPLD做红外物理层编码时钟和接收信号识别用。
图2中R22和C742构成上电复位,D306和J1构成主机侧RS 232接口,红外发射管由D1,D2串接组成,增强发射功率和灵敏度。Q1为红外接收管,D301为CPLDXC9536。主机侧由CPLD完成红外发射的载波生成和调制及接收信号的脉宽检测和复位命令产生。
2.3 收发器组件
红外发射管采用Vishay公司的TSHF5400,TSHF5400是一个高速砷化镓红外发射管,调制带宽可达10 MHz,在电流If=100 mA时tr=30 ns,tf=30 ns,光角φ=±22°,峰值波长为870 nm,工作环境温度-40~+100℃,非常适合在户外运行。
红外接收采用Vishay的高速接收管TSOP7000,如图3所示,可以工作在455 kHz,和870 nm的红外发射管TSHF5400配对使用时,在If=300 mA时传输距离可达20 m。
3 物理层调制和宽度鉴别
文献[8]给出了几种常用的应用层传输规范,但不能满足现场安全性和强干扰下中速传输的可靠性要求,所以需要对传输的信号进行编码传输,并在无数据传输时关闭收发器。传输采用曼切斯特编码,所以在码流中除了起始符和结束符采用违规编码外不存在连0码和连1码。接收部件的宽度检测单元对编码字段的码流进行检测,三个以上的连0码和连1码均判为误码。
3.1 红外调制输出
红外收发器的物理层发送信号调制和接收信号检测由VHDL实现,把主时钟分频得到455 kHz的数据载波,通过发送信号TXD控制数据载波的有无实现数据发送。若当前传输信号TXD为0则输出一串数据载波,否则关闭输出。为了减少红外发射管的功耗,控制数据载波的占空比为30%。
3.2 红外接收控制
红外传输为半双工方式ASK调制方式,在发射管发送逻辑0时关闭接收回路,避免发射管对接收电路的影响。FTU安装的环境决定了其强干扰,而短的突发帧被干扰命中的几率相对较低。本文在接收方增加两个控制字符和一个信号.检测部件,仅在检测到9-bit0时允许接收,在接收到8-bit0时关闭接收部件,这两个字符分别对应0x0和0x80,通过应用层对数据进行编码和解码实现。
3.3 红外复位信号发送和接收
FTU在更新应用程序和改变特定的运行参数时需要重启系统,通过在FTU侧的红外接收接口中的复位脉冲检出组件和主机侧的红外发送接口中复位脉冲产生组件相配合,完成主机对FTU的复位控制。
主机需要复位FTU时,只需要通过主机侧接口软件在RS 232接口的RTS线上产生一个逻辑l到逻辑0的跳变,CPLD检测到该跳变后产生50 ms的连续调制输出。由于正常的编码发送中没有连续50 ms的低电平,干扰信号也不会产生连续的电平,所以接收方的复位检测组件在检测到红外接收管连续输出50 ms低电平后即可产生系统复位信号,完成FTU的重新启动,整个复位逻辑不依赖应用软件,可用于紧急情况下系统重启。
4 软件编码与解码
4.1 帧格式
本文采取了短突发帧物理层的帧结构如表1所示,包含起始符0x0和结束符0x80不编码,码字的连0特性分别用来启动红外接收器和关闭红外接收器。起始符和结束符由发送方的驱动程序添加,接收方的脉宽检测单元自动去除。编码字段用来传输用户数据,一个用户数据报文可以分成多个物理层突发帧,发送方驱动程序根据链路特征将用户数据报拆分,接收方负责重组。
本文所采用的用户数据报文格式如表2所示,采用字符同步方式,包含AA55EB90H四个字节的帧头、1 B的目标地址和2 B的帧长(整个编码字段的字节长度)、NB的数据以及2 B CRC校验,这部分数据需要驱动程序进行软件差分编码和解码。编码后实际发送的数据为帧长的两倍。
4.2 红外数据编码发送
通过对应用层数据按曼切斯特编码规则进行编码,保证应用数据不出现连0和连1。按下面的算法生成编码查找表:
(1)循环变量置0,编码结果值置0;
(2)取数据位7,若为1,则编码成10;否则编码成01;
(3)数据左移1位,编码结果值左移2位,循环变量加1;
(4)若循环变量为7,则退出;否则,转步骤(2)继续编码。
在这张表中,0被编码成0x5555,0xff编码成0xaaaa等。由于待编码的数据总是介于0~255之间,所以通过下面的查找表可以实现应用层编码。
发送时把待发送的字符作为数组索引,依次查找上面的数组就可以得到编码输出。
4.3 红外数据解码接收
参照编码算法,发送方1 b被编码成2 b,而在接收方,每2 b则被解释成一个bit,由于接收方接收到的8 b字符也位于0~255之中,对应解码后的4 b,16 b构成一个8 b字符。按下述方法生成解码数组:
(1)循环变量置0,解码结果值置0;
(2)取数据位D7,D6,若为10则将解码结果值加1;若为01则将解码结果置于0xfe,否则视为误码将解码结果值加80退出;
(3)数据左移2位,解码结果值左移1位,循环变量加1;
(4)若循环变量为3则退出,否则转步骤(2)继续编码。
十六进制解码对照表如表3所示,如输入55,解码值为0,输入99解码值为a,对应其他输入解码输出为0x80即误码。
4.4 帧接收和帧同步
由于一个应用帧会被分成多个物理层帧,而且采用差分编码发送,一个字符被分成两个字符,所以解码时帧同步很重要,否则无法重新恢复原始数据。本文把同步头作为一个整体,则根据编码算法,序列0xAA55EB90编码成序列0x99998666a99a9655,接收程序接收到序列0x99996666a99a9655立即同步帧接收计数器。按表2所述的应用层数据报文格式,帧同步点对应接收计数器为8。
接收到帧同步序列后就可以处理数据接收,由两个半字符合成一个应用层字符。当接收计数器为偶数时,根据解码输出可以获得一个字符的低4位;接收计数器为奇数时,获得一个字符的高4位。
如根据接收计数器为8和9时获得目标地址字段,接收计数器为10和11时获得帧长的低字节,接收计数器为12和13时获得帧长的高字节,依次类推接收所有应用层数据,整个帧同步和解码过程如图4所示。
4.5 差错控制
本文综合使用了宽度检测、编码违规检测和帧校验三种手段进行接收帧校验。帧校验采用16位的CRC校验,其生成多项式为G(x)=x16+x15+x2+1,校验出错的帧被丢弃,并由主机侧控制超时重发。通过这种机制识别错误报文,强干扰时仍然能够保证逻辑链路的可靠性。
报文发送方在发送之前先计算报文CRC校验码并附加在报文的帧校验字段,然后启动编码程序编码并发送当前数据报。接收方程序在排除违规编码错误和CRC错误后才将收到的数据包提交到应用层接收处理程序,如图4所示。
5 系统软件设计
整个系统的逻辑采用VHDL描述语言,CPLD设计采用Xilinx ISE进行逻辑综合和调试,FTU侧采用Altera SoPC Buitder构建Nios系统,并在QuartusⅡ环境下完成逻辑设计和仿真调试。FTU应用软件则采用C语言,在Nios IDE环境下完成编码和调试,主机侧的软件采用Visual Basic 6.0完成控制台软件编码和调试。通过这些开发工具的相互配合完成整个项目的编码和调试。
6 结 语
由于FTU多安装在户外柱上和环网柜,传输距离长,收发器对准困难,背景光很强,必须考虑可见光和日光的干扰。针对这种应用场合,应从以下几个方面考虑灵敏度和抗干扰的问题:
(1)采用广角的红外接收管,发射管则采取多个串联,适当增加驱动电流来兼顾灵敏度和功耗,收发器对准困难;
(2)采用短突发帧,减少数据帧被干扰命中的机率;
(3)本地发送数据时关闭接收器,应用程序在发送时不处理接收的数据,同时考虑收发转换的时机;
(4)采用本文所述的发送端编码和接收段进行宽度检测的方法,仅在收到启动字符时打开接收部件,收到结束字符时关闭接收,减少接收窗口;
(5)数据段采取差分编码和帧校验相结合以及出错重发等差错控制机制,配合软件有效滤除出错报文,使得链路抗干扰性能进一步加强;
(6)对户外应用,设计还要考虑背景光、电磁干扰、湿度和温度对收发器的影响。
按上述介绍设计的中速红外收发器电路和软件已成功应用在我公司DMP2000配电自动化系统的FTU中和DMP5000数字化变电站的智能采集终端,现场运行三年,稳定可靠。在中午阳光直射条件下传输距离可达5 m以上,晚上可以达到20 m,数据码元速率为38 400 b/s,考虑差分编码因素实际数据传输速率为19 200 b/s,链路检错和抗干扰能力很强,极大地方便了FTU现场维护和参数整定。
评论
查看更多