APP下载

基于FPGA 的高速串行通信在电力推进控制系统中的应用

2014-05-07赵晓宇张启平高跃

船电技术 2014年9期
关键词:曼彻斯特通信协议解码

赵晓宇,张启平,高跃



基于FPGA 的高速串行通信在电力推进控制系统中的应用

赵晓宇,张启平,高跃

(武汉船用电力装置研究所, 武汉 430064)

本文介绍了一种优化时钟差分曼彻斯特编码的编码方法,并分析了其在高速串行通信中的实际应用价值。通过VHDL编程实现上述方法的编码、解码功能,完成了在Quartus II环境下的仿真验证。通过在FPGA硬件设备上的实际测试,验证了其可行性和可靠性。通过对多种现有串行通信协议的研究,并在借鉴IEC60044-8通信规约的基础上提出了一种自定义协议。协议在编码效率和编程复杂度方面得到一定的平衡。通过与传统串行通信方式比较并结合电力推进控制系统的现状和性能需求,分析了其在电力推进控制系统中应用的可行性,并完成了实验验证。

高速串行通信 FPGA IEC60044-8通信规约 电力推进控制系统 VHDL编程 差分曼彻斯特编码

0 引言

近年来嵌入式控制器在现场控制领域的应用越来越广泛,其在电力推进控制系统中的应用也得到了进一步的发展。随着控制器控制功能的增强、控制精度的提高以及对采样信号精度的提高和数量的增加,都对现有的控制器通信系统提出了新的挑战。另外电力推进控制系统对于通信的实时性和可靠性等方面的需求使得许多现有的通信方案表现出诸多弊端。现有的控制器通信多采用RS484、RS232、CAN等通信协议[7],而这些协议的通信速率均不超过1M,这就使得其在通信量大幅提高的情况下难以满足性能需求。随着信号采集量的增大,现场的接线数量也增加,使得布线复杂度和故障的概率也相应的大幅增加。因此需要对信号进行统一的采集处理,然后以高速率传输出去。同时为了实现通信的实时性要求,也需要对通信进行一定的自由控制。近年传输速率在通信行业得到了极大的提高,其已经达到千兆、G级别的传输速率,而在控制领域却发展相对缓慢。但随着控制领域对传输速率要求的提高,近些年工业控制通信也得到了一定的发展,如工业以太网、实时工业以太网等。许多公司都推出了自己的标准协议,其均采用100M传输速率,如ProfiNet IRT、SERCOSIII、EtherCAT等[2]。而要实现这些技术需要专用芯片或者IP核,且协议开发困难,使得其应用受到很大限制。

目前很多FPGA芯片都集成了专用的SerDes内核用来完成数据的串行传输。本文在此基础上提出了一种新的通信解决方案,即采用优化时钟差分曼彻斯特编码,以4位时钟表示一位数据的同时插入了时钟,使得在经过解码后可同时恢复出时钟和数据,实现类似SPI的通信方式[1]。而且,差分曼码可有效的抑制直流偏移,时钟和数据同时传输又消除了时钟和数据传输不同步的可能性,使得数据可以可靠的恢复。在IEC60044-8通信规约的基础上,通过对通信协议的合理修改使得其在可靠性和实时性方面满足电力推进控制系统的需求。

1 优化时钟差分曼彻斯特编码与解码的实现思路

曼彻斯特编码用两位时钟表示一位数据,在每个时钟位的中间都有一次跳变,传输的1和0,是在每个时钟位的开始有无跳变来区分的,当有跳变时为1反之为0。差分曼彻斯特编码是曼彻斯特编码的改进。

差分曼码比曼彻斯特编码的变化要少,因此更适合与传输高速的信息,被广泛用于高速宽带网中。而优化时钟差分曼码则使用4位时钟表示一位数据,在每传输一位数据的同时传输一位时钟,这样在经过解码后可以解码出的时钟来恢复数据,实现类似SPI的方式通信。可以有效的消除时钟偏移和抖动所带来的不利影响,同时也不用设计复杂的时钟恢复电路,使得设计简单同时又有很高的可靠性。

本文采用基于FPGA的方法,来实现相关功能。采用VHDL语言进行硬件编程。通信功能的实现如下所示:

图1 编码模块接口图

1.1 编码实现

编码功能主要用来实现将并行数据转化为串行并插入时钟信号并发送出去。编码需要的信号有:编码时钟clkin、启动发送信号start、并行数据输入datain、发送的有效数据位数datanum、差分曼码输出dout、用于表示是否有数据发送的信号BUSY和用于复位的rst信号。

图2 编码模块接口图

编码思路:本文约定以每一位开始如果有电平的跳变表示数据‘1’,反之为‘0’。另外在每次发送时要插入一位‘0’作为起始位,用于定位时钟信号。由于采用四位时钟表示一位数据的方法,因此我们对时钟进行0~3的循环计数,定义计数‘0’为数据沿、计数‘2’为时钟沿、计数‘1’和‘3’用于检测BUSY和start信号以控制数据的传输过程。(输入的datain数据为,原始数据经过添加数据类型、地址信息、差错检验等信息,封装组成的数据帧)

1.2 解码实现

解码功能主要用于将编码电路传来的信号进行解码,恢复出时钟和数据信号。解码需要的信号有:时钟输入clk、差分曼码输入din,从而解码出时钟信号clkout、数据信号dout。从而可以用clkout和dout以SPI方式恢复出数据。

解码思路:因为我们以数据‘0’为起始位,因此将输入数据的第一个沿定义为时钟沿。设置沿标志位inclkedge,当inclkedge=1时表示刚接收到的为时钟沿否则不为时钟沿。

图3 解码模块接口图

当inclkedge=1时

dout=0; clkout=1;然后启动三个时钟延时;

当inclkedge=0时

如果din有跳变沿时:dout=1延时三个时钟后将:clkout置‘0’,inclkedge置‘1’。

恢复出的时钟信号clkout和数据信号dout输如普通的SPI模块就可解码出数据。

2 串行通信协议选择

IEC60044-8通信规约是国际电工委员会指定的电子式电流互感器标准草案。目前在智能变电站中应用较多。其应用在测控装置间进行数据交互有独特的优势,因此本文参考其协议格式来进行本次协议的制定。本协议制定主要考虑一下几个方面:第一:I/O量、数据量、控制信号的封装与传输;第二:数据传输实时性、同步性的控制;第三:可靠的差错检验机制。

控制帧与协议帧协议格式分别如下所示:

起始位、结束位:用于标识帧的开始与结束;地址信息:用于标识数据的逻辑连接,同时用特殊的地址作为广播地址,来用于同步的控制。控制字节:用于封装控制信息。数据位、CRC:在每组数据后加上CRC校验可使得数据传输的可靠性更高。数据段的多少可根据实际情况自行定义。

3 仿真与试验

本次仿真为基于Quartus II软件,采用VHDL语言进行编程。分别对code、decode模块进行了功能仿真。在仿真验证通过后,将其通过JTAG接口将其下载到FPGA电路板中进行实验验证,芯片类型为Cyclone II。

图5和图6的仿真波形显示了基于优化时钟差分曼彻斯特编码是一种稳定可靠的编码方法,其解码也电路也能很好的抵抗时钟频率偏差和抖动,稳定的恢复出数据和嵌入的时钟。图7说明此种技术能够很好的在FPGA上实现,且性能稳定可靠。图8可以看出两个接收节点间的就收时差为15ns。表明了通过传输协议的控制,可实现很好的同步性能,满足电力推进控制系统对于实时性方面的要求。

4 结论

本文介绍了一种优化时钟的差分曼彻斯特编码,论述了其原理和编程实现思想。并通过VHDL编程和仿真验证了其可行性和可靠性。通过对电力推进控制系统的性能需求的分析,在参考IEC60044-8通信规约的基础上提出了适合电力推进控制系统的通信协议方案。最后完成了在FPGA板上的性能测试,验证了此方案的可行性和可靠性。另外,本文所述方案可实现根据不同的情况对传输速率和数据帧进行调整,具有很强的适应性。基于FPGA芯片的方法,使得硬件实施也很方便。

[1] 范博然. 用于高压直流输电的模块化多电平变换器分层控制系统设计[J]. 2013.

[2] 缪学勤. 论六种实时以太网的通信协议[J]. 自动化仪表, 2005, 26(4): 1-6.

[3] Jayaram B. VHDL教程[M]. 3版. 刘雷波,孟一聪译.北京:机械工业出版社,2006.

[4] 俸天武, 谢芳. 一种差分曼彻斯特编码解码器的VHDL 模型[J]. 电子器件, 1997, 20(1): 50-55.

[5] Orfanus D, Indergaard R, Prytz G, et al. EtherCAT-based platform for distributed control in high-performance industrial applications[C]. Emerging Technologies & Factory Automation (ETFA), 2013 IEEE 18th Conference on. IEEE, 2013: 1-8.

[6] Cyclone I I. Device Handbook[J]. Altera Corporation, 2007.

[7] 工业数据通信与控制网络[M]. 清华大学出版社, 2003.

Application of High-speed Serial Communication to the Electric Propulsion Control System Based on FPGA

Zhao Xiaoyu, Zhang Qiping, Gao Yue

(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)

TN762

A

1003-4862(2014)09-0014-04

2014-07-15

国家科技支撑计划项目(2012BAG03B01)

赵晓宇(1987-),男,研究生。研究方向:电力电子与电力传动。

猜你喜欢

曼彻斯特通信协议解码
《解码万吨站》
观电影《海边的曼彻斯特》
观电影《海边的曼彻斯特》
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介