APP下载

基于FPGA的M?LVDS—千兆以太网转换器设计

2018-10-12徐振华郭涛郭利强

现代电子技术 2018年19期

徐振华 郭涛 郭利强

摘 要: 针对智能家居系统诸多监测模块无法同时完成多节点间高速通信的问题,设计一种基于M?LVDS接口和千兆以太网接口的数据转化模块。该模块结合M?LVDS接口多节点通信和千兆以太网高速数据传输等优点,以FPGA作为核心控制器,基于UDP协议搭建控制逻辑,实现M?LVDS与千兆以太网之间的数据交互。测试结果表明,数据转换结果准确、可靠,实现了智能家居控制平台与多节点设备的高速通信。

关键词: 数据转化; 多节点; 高速通信; FPGA; M?LVDS; 千兆以太网

中图分类号: TN919?34; TP336 文献标识码: A 文章编号: 1004?373X(2018)19?0023?04

Abstract: Since the numerous monitoring modules of smart home system can′t complete the high?speed communication among multiple nodes at the same time, a data conversion module based on M?LVDS interface and gigabit Ethernet interface was designed. The module combines the advantages of multi?node communication of M?LVDS interface and high?speed data transmission of gigabit Ethernet, takes FPGA as its core controller, and establishes the control logic based on UDP protocol to realize the data interaction between M?LVDS and gigabit Ethernet. The testing results show that the data conversion results are accurate and reliable, and the converter realizes the high?speed communication between the smart home control platform and multi?node device.

Keywords: data conversion; multi?node; high?speed communication; FPGA; M?LVDS; gigabit Ethernet

0 引 言

智能家居系统中对家居环境监测的传感器和调节单元分布式排列在不同区域,需要同时与多设备通信。由于家居环境大量视频、声音等监测对象的加入,对数据传输的高实时性和高传输速率以及低功耗提出了更高的要求。为了将分布在多处的传感器采集的大量数据统一分析和管理,需要实现多节点的高速互连通信。M?LVDS支持多节点互连的拓扑结构,可提供高的数据传输速率和更低的功耗,实现数据的可靠高速传输[1]。FPGA作为核心控制器,采用太网物理层芯片实现千兆以太网与计算机通信。本文基于实际需求设计一种千兆以太网和M?LVDS接口转换模块,以实现智能家居各监测模块大量实时数据与系统平台之间可靠、高速传输。

1 系统总体框架设计

M?LVDS和千兆以太网接口数据转换模块结构如图1所示。主要由以太网通信模块、FPGA主控模块、M?LVDS通信模块组成。

系统上电后,FPGA对M88E1111进行初始化,完成相关寄存器的配置,启动发送数据包进程与接收数据包进程。数据上传过程为多节点间数据经M?LVDS接口传输到M?LVDS通信模块,数据完成鏈路层数据解码后通过DDR3缓存控制器写入DDR3缓存。以太网数据传输模块读取DDR3缓存数据,数据按照UDP协议在千兆以太网通信模块中打包后通过GMII接口传输给物理层,控制平台经RJ45网口读取数据[2]。数据下发过程与上传过程类似,通信数据通过以太网接口下发至转换器,FPGA解析后将其写入缓存中,M?LVDS通信模块读出FIFO缓存的数据,将数据编码后经过M?LVDS通信模块发送到M?LVDS总线上,总线上的设备将根据协议获取对应的数据。

2 硬件电路设计

2.1 M?LVDS通信电路设计

M?LVDS通信模块采用SN65MLVD203全双工收发器芯片,采用双线差分多节点传输结构,可实现250 Mb/s高速通信。以时钟源方式实现传输数据位同步,同时发送时钟和数据。接收时按照同步时钟接收,实现数据串行传输。M?LVDS收发器可实现线或功能及各节点间总线的共享机制与总线的非破坏性仲裁机制[3]。

通过长电缆连接的节点之间,常因节点间的地线电位差导致节点地环路电流,形成差模干扰。为确保数据传输的可靠性,基于TPS76333设计电源隔离电路,防止不必要的电流损害影响电子元件的工作,实现信号和电源的完整隔离。选用ISO7842为M?LVDS驱动器的逻辑输入和接收器的逻辑输出提供数字隔离,提升数据传输的完整性。

2.2 千兆以太网通信电路设计

千兆以太网物理层收发器芯片M88E1111提供自主协商、传输介质自动检测以及网络收发线对的自动检测和交叉,可以在五类非屏蔽双绞线上进行数据收发。只需外接25 MHz晶振,通过内部锁相环便能提供GTXCLK,RXCLK和芯片内核的工作时钟[4]。FPGA通过MDI管理接口配置芯片内部寄存器,该接口为双路信号接口分别配置时钟信号和数据信号。通过管理接口,上层能监视和控制物理层,实现不同功能,满足多种场合需求。M88E1111与RJ45接口通过MDI 差分数据线形式连接。

3 程序设计

程序控制主要完成系统初始化、千兆以太网收发控制、UDP协议数据打包解包、上位机命令解析、DDR3缓存控制、M?LVDS通信协议等。系统上电初始化,根据智能家居平台命令接收或发送数据。

3.1 千兆以太网控制流程

千兆以太网采用UDP协议实现与智能家居平台通信[5]。系统初始化完成后通过MDIO/ MDC管理接口配置物理层寄存器,将M88E1111传输模式配置为1000BASE?T。接收进程从DDR3缓存中接收数据,待发送的数据包内容以UDP IP报文的格式打包。接收DDR3缓存打包成的UDP数据包,最终以GMII格式通过接收端传输到M88E1111,传输速度可达[6]1 000 Mb/s。发送进程状态机如图2所示。

发送数据时,状态机初始化为IDLE,发送进程计时器timer==32′h00400000时,进入状态START生成IP包头和包头校验和,当check_buffer_end==1时,开始发送8个IP前导码:7个55和1个d5,随后发送MAC目的地址和源地址、IP包头,准备发送UDP数据包,当发送结束后,进入SEND_CRC[7]。CRC校验正确crc_vaild==1则成功发送,状态机返回初始状态IDLE,完成一次发送。

数据接收与数据发送过程类似,接收到来自M88E1111的数据包时,将GMII格式数据包先进行前导码、帧开始符、目的MAC 地址、源MAC地址以及IP包头检测,之后开始接收有效数据和数据校验。接收数据成功后,将有效数据发送到FIFO缓存单元中。

3.2 M?LVDS通信控制流程

M?LVDS总线只规定了物理层的电气特征,并未规定通信的高层协议[7]。按照IEEE 802.3标准,利用FPGA实现M?LVDS通信协议数据在链路层与物理信令层之间的数据传输。通信控制将从FIFO缓存中读取的数据按照通信协议在总线管理器中完成数据封装拆装、总线仲裁、差错控制、报文滤波以及时序控制等功能,在PLS中完成数据的编码、解码、位同步以及帧同步[8]。

执行通信流程时,有效数据在M?LVDS中根据协议重新打包和解包。数据包中标示符表示对底层各节点的操作,分为数据上传和命令下发。数据包中地址表示智能家居分布式监测节点的地址信息,包括发出和接收节点的地址。多节点通信时,地址的优先级与地址值绝对值相关,值越大优先级越高[9]。源地址具有最高优先级地址“1111 1111”,目的地址前4位为节点信息,后4位为单节点通道信息。SN65MLVD203把串化数据转化为差分信号传输到M?LVDS总线,保证数据在总线上传输的可靠性和总线仲裁一致性。

3.3 数据转换通信流程

数据转换模块的控制流程主要包括千兆以太网通信和M?LVDS通信之间的数据转化。智能家居平台发送命令时,数据通过RJ45网口、千兆以太网接口到达数据转换器。FPGA检测标志位判断接收到数据后,将数据读到千兆以太网通信模块中,对命令数据解包,去除传输格式,读取有效数据。将命令写入命令缓存中,实现数据跨时钟同步。在读信号上升沿时将数据从FIFO中读出到M?LVDS模块中,与命令寄存器组中的值对比,确定命令的功能、对象、触发机制,重新生成命令数据帧,在总线管理器中按M?LVDS通信协议添加起始位、仲裁场、校验位、终止位组成M?LVDS 数据包格式,转为串行数据发送至M?LVDS接口[10]。调用M?LVDS发送命令,经SN65MLVD203发送给底层目标节点,完成一次发送。

接收上传数据时,M?LVDS的接收端口检测到数据起始位有效时开始接收,PLS层完成数据同步后转化为并行数据传输给总线管理模块。对M?LVDS接收的数据进行CRC校验精确后,有用数据在有效标志信號为高时传输到DDR3缓存中。对接收数据消抖后,把有用数据和节点信息写入DDR3中,使回传速度处于可控范围。千兆以太网通信模块从DDR3缓存中读出数据,以并行方式传输至M88E1111,在 FPGA 控制下,将数据上传到智能家居系统控制平台。

4 测试结果

功能测试平台由信号源、M?LVDS?千兆以太网转换器、控制平台上位机搭建构成,功能测试连接如图3所示。调试助手提供数据接收发送操作界面,同时将上传数据导出分析,验证数据正确性。测试时设置通信双方IP地址等信息后启动连接。在命令窗口输出要发送的数据或直接读取网口数据。通过转换网络指示灯判断以太网连接、数据传输情况,可以实时观测上位机与FPGA 通信状态。测试过程中信号源循环产生递增数据,由M?LVDS接口转为差分信号对上传到传输总线,转换器将总线上的差分信号对转化为串行数据输入。

为了测试模块功能,转化器初始化4字节数“01010101”数据接收命令。调试助手通过以太网向转化器下发读取数据命令,读取M?LVDS接口数据。测试结果如图4所示。

数据传输开始为4字节“01”证明转化器能够接收到控制命令。由调试助手接收到的多组数据分析,数据连续递增,与信号源产生的数据一致,证明系统传输正确,实现了M?LVDS总线到千兆以太网的数据通信功能。测试中在系统中加入时间触发和流量计,通过计算一定时间内接收到的数据量对传输速率进行评估。以20组测试结果绘制成数据传输速度测试曲线,如图5所示。系统传输速率稳定在100~120 Mb/s,实现了数据的高速传输。

5 结 语

本文介绍了一种基于 FPGA 的 M?LVDS?千兆以太网转换模块设计方案,并测试了传输误码率和速率。智能家居平台通过转换器转换功能实现同时控制多节点上监测设备和环境调节设备的工作以及数据高速上传。转换模块在不改变硬件系统构架前提下可灵活实现多种传输协议,通用性强,传输稳定。

参考文献

[1] 张法全,李宗敏,王国富,等.分布式多通道同步采集系统设计[J].电视技术,2015,39(23):35?39.

ZHANG Faquan, LI Zongmin, WANG Guofu, et al. Distributed multi?channel synchronization acquisition system design [J]. TV engineering, 2015, 39(23): 35?39.

[2] 何润岸.基于UDP进行大规模数据传输的可靠传输系统的设计与实现[D].济南:山东大学,2015.

HE Runan. Design and implementation of reliable transmission system for large?scale data transmission based on UDP [D]. Jinan: Shandong University, 2015.

[3] 黄万伟.Xilinx FPGA高速串行传输技术与应用[M].北京:电子工业出版社,2015.

HUANG Wanwei. High?speed serial transmission technology and application of Xilinx FPGA [M]. Beijing: Publishing House of Electronics Industry, 2015.

[4] 朱保琨,劉广文.千兆以太网通信端口FPGA设计与实现[J].计算机工程与设计,2016,37(9):2292?2298.

ZHU Baokun, LIU Guangwen. Design and implementation of gigabit Ethernet communication port based on FPGA [J]. Computer engineering & design, 2016, 37(9): 2292?2298.

[5] 佘颜.基于DDR3控制器的高速存储接口系统的设计与验证[D].西安:西安电子科技大学,2015.

SHE Yan. Design and verification of high?speed memory interface system based on DDR3 controller [D]. Xian: Xidian University, 2015.

[6] KIM J H. Buffering circuit, semiconductor device having the same, and methods thereof [J]. Journal of pharmaceutical sciences, 2015, 99(7): 3030?3040.

[7] 宋飞,冯旭哲.基于硬件协议栈芯片的高速以太网接口设计[J].工业仪表与自动化装置,2012(4):57?59.

SONG Fei, FENG Xuzhe. Design of high?speed Ethernet interface based on hardware protocol stack chip [J]. Industrial instruments and automation device, 2012(4): 57?59.

[8] 张磊,何昕,魏仲慧,等.基于千兆网接口的星敏感器图像显示与存储[J].液晶与显示,2015,30(1):114?119.

ZHANG Lei, HE Xin, WEI Zhonghui, et al. Display and storage of star sensor image based on Gigabit network interface [J]. Liquid crystals & displays, 2015, 30(1): 114?119.

[9] 阿永嘎.多位串行M?LVDS高速网络式仪器总线的研究[D].杭州:浙江大学,2010.

A Yongga. Research on multi?bit serial M?LVDS high speed network instrument bus [D]. Hangzhou: Zhejiang University, 2010.

[10] SONG K C, LI C X, YE L Y, et al. Signal integrity optimization of MLVDS based multi?master instrument bus [C]// 2014 IEEE International Symposium on Electromagnetic Compatibility. Raleigh: IEEE, 2014: 433?437.