RS485高速数据传输协议的设计与实现

合集下载

RS485总线通信系统的设计及实现毕业论文

RS485总线通信系统的设计及实现毕业论文

RS485总线通信系统的设计及实现毕业论⽂本科学⽣毕业论⽂论⽂题⽬:RS485总线通信系统的设计与实现学院:年级:专业:姓名:学号:指导教师:摘要⽆论是⼯业控制还是信号测试领域,实现不同通讯协议的数据融合都有着迫切需要。

但是⽬前市场中存在的协议转换器只能满⾜两种协议之间的转换,如RS485转RS232,USB转RS485等,但是经常存在着多种数据总线并存的情况,因此研制多种总线协议转换的设备有着⽐较⼤的实际意义。

除此之外,⽬前接⼝标准的RS485总线通信协议不统⼀,需设计⼀个⾼效稳定的通信协议。

基于以上原因,本论⽂提出⼀种基于⾼速RS485的多总线通信系统。

整个系统包含多个RS485节点,各个节点包含的通讯接⼝包括RS232,RS485和USB,从⽽实现这三类总线的通讯协议的转换。

设计并实现了⼀种适⽤于微机和单⽚机之间串⾏通信的通信协议,采⽤RS485简便,通信可靠性⾼总线标准,可⽤于⼯业测控和控制现场。

实验结果表明,该通信协议是切实可⾏的,达到了预期的设计要求。

关键词RS485总线;主从式;多机通信;通信协议AbstractWhether in the field of industrial control or signal test, the achievement of data fusion which is based on different communication protocol is urgent needed. However, in the current market, protocol converter can only achieve conversion between two protocols, such as RS485 to RS232, USB to RS485 and so on. Cases of coexistence data bus, it has great practical significance to develop an equipment for protocol conversion among different buses.Based on the reasons above, a high-speed RS485-based multi-bus communication system is presented in this paper. The entire system which is used to realize the three categories of bus communication protocol conversion consists of someRS485 nodes, each node contains the communication interfaces including RS232, RS485 and USB. In the practical application, the number of nodes can be changed as required to formsystem, for achievement of data fusion between a variety of bus communication protocol.Key wordsRS485 bus; Serial Bus; Protocol Conversion; Communication protocol⽬录摘要............................................................................................................................. I Abstract .....................................................................................................................II 第⼀章绪论 (1)1.1 研究背景及意义 (1)1.2 RS485总线通信系统研究现状 (2)第⼆章RS485介绍 (4)2.1 RS485标准 (4)2.2 MAX485芯⽚介绍 (4)2.3 RS485总线组⽹⽅式 (5)2.4 RS485⽅式构成的多机通信原理 (5)第三章系统协议及硬件设计 (7)3.1 RS485通信协议设计 (7)3.1.1 物理层设计 (7)3.1.2 数据链路层设计 (8)3.1.3 应⽤层设计 (8)3.1.4 通信协议 (8)3.2 系统硬件设计 (10)3.2.1 PC与RS485总线的接⼝ (10)3.2.2 RS485⽅式构成的多机通信 (10)3.2.3 单⽚机与PC机串⾏通信系统构成 (11)第四章系统的软件实现 (12)4.1 上下位机的关系 (13)4.2 下位机通信软件的设计 (14)4.3 上位机通信软件的设计 (16)4.3.1 通信协议设计 (16)4.3.2 多机传输 (17)4.3.3 差错控制 (18)4.4 程序设计 (19)第五章系统问题解决措施 (20)5.1 总线隔离 (20)5.2 失效保护 (20)5.3 电磁⼲扰问题 (20)结论 (22)参考⽂献 (23)致 (24)第⼀章绪论所谓通信,不仅仅要实现数据的传输,更应该体现准确性,也称可靠性传输,最好具有⼀定的纠错和检错能⼒。

RS485通信协议

RS485通信协议

RS485通信协议协议名称:RS485通信协议一、介绍RS485通信协议是一种用于实现多节点通信的串行通信协议,广泛应用于工业自动化、仪器仪表等领域。

本协议旨在规范RS485通信的物理层和数据链路层,确保数据的可靠传输和通信的稳定性。

二、物理层规范1. 电气特性RS485通信使用差分信号进行数据传输,要求传输线路采用平衡的双绞线,其中A线和B线分别为正负极性信号线。

通信设备的发送端应具备驱动能力,接收端应具备较高的抗干扰能力。

2. 传输速率RS485通信支持多种传输速率,常见的有9600bps、19200bps、38400bps等。

通信双方应事先约定并设置相同的传输速率。

三、数据链路层规范1. 帧格式RS485通信采用固定长度的数据帧进行数据传输。

数据帧包括起始位、数据位、校验位和停止位。

起始位为逻辑低电平,用于表示数据帧的开始;数据位为8位,用于传输数据;校验位为奇偶校验位或循环冗余校验位,用于检测数据传输的错误;停止位为逻辑高电平,用于表示数据帧的结束。

2. 数据传输RS485通信采用半双工通信方式,即通信双方可以交替发送和接收数据。

发送端将数据按照帧格式发送到传输线路上,接收端接收到数据后进行校验,并发送确认信号给发送端。

发送端在接收到确认信号后才能发送下一帧数据。

3. 多节点通信RS485通信支持多节点通信,每个节点都有一个唯一的地址。

通信时,发送端在数据帧中指定接收端的地址,只有地址匹配的节点才会接收到数据。

其他节点应将传输线路上的数据忽略。

四、错误处理1. 帧错误如果接收端在接收数据帧时发现帧格式错误或校验错误,应发送错误信号给发送端,发送端应重新发送数据帧。

2. 超时处理如果发送端在发送数据帧后一定时间内未收到确认信号,应认为数据传输失败,需要重新发送数据帧。

五、应用示例以下是一个简单的RS485通信协议应用示例:1. 确定通信双方的地址和传输速率。

2. 发送端将待发送的数据按照帧格式封装,并指定接收端的地址。

基于RS485的多主机对等通信系统的设计与实现

基于RS485的多主机对等通信系统的设计与实现

基于RS485的多主机对等通信系统的设计与实现一、引言现代社会对通信技术的要求越来越高,无线通信技术的应用广泛,然而在某些特定环境下,无线通信可能会受到干扰或信号弱等问题影响。

为了解决这个问题,基于RS485的多主机对等通信系统应运而生。

这种系统可以实现多主机之间的高效、可靠的通信,具有广泛的应用前景。

本文将介绍基于RS485的多主机对等通信系统的设计与实现。

二、RS485通信协议简介RS485是一种串行通信协议,可实现远距离高速数据传输。

它采用差分信号传输,在抗干扰能力和传输距离方面具有优势。

RS485通信协议定义了电气特性、物理层规范、通信帧格式等内容,为多主机对等通信系统的设计与实现提供了基础。

三、多主机对等通信系统的设计1. 系统框架设计多主机对等通信系统由主机、从机和总线组成。

主机之间可以进行双向通信,彼此平等地参与通信过程。

总线通过RS485通信协议连接主机和从机,实现数据的传输和交换。

2. 硬件设计(1)选择合适的RS485通信模块,该模块需要支持多主机对等通信的功能,并提供相应的接口。

(2)确定主机和从机的配置数量和位置,根据实际需求设计电路板布局。

(3)为每个主机和从机分配唯一的地址,以便在通信过程中进行识别和区分。

3. 软件设计(1)主机软件设计:主机负责发起通信请求、接收、解析和处理数据。

软件需要实现主机之间的通信协议,确保数据的正确传输和处理。

(2)从机软件设计:从机负责接收主机发送过来的数据,并做出相应的响应。

软件需要实现从机之间的通信协议,确保数据的正确接收和响应。

四、多主机对等通信系统的实现1. 硬件实现(1)按照设计要求,搭建多主机对等通信系统的硬件电路。

(2)连接RS485通信模块和其他硬件设备,搭建通信网络。

2. 软件实现(1)编写主机软件代码,实现主机之间的通信功能。

(2)编写从机软件代码,实现从机之间的通信功能。

(3)进行系统调试和测试,确保数据的正确传输和处理。

rs485电路原理

rs485电路原理

rs485电路原理RS485电路原理RS485是一种串行通信协议,它定义了电平、传输速率、传输距离和通信规范等方面的要求,广泛应用于工业自动化、建筑物自动化和数据采集等领域。

RS485电路原理是指通过合理的电路设计实现RS485通信的基本原理和方法。

RS485通信采用差分信号传输,即通过两根线分别传输正负两个信号来表示数据。

这种差分信号传输方式能够有效抵抗噪声干扰,提高通信的可靠性和稳定性。

RS485电路中,通常包含了驱动器和接收器两个部分。

驱动器是RS485电路中的发送端,它负责将逻辑电平的数据转换为差分电平信号,并将信号发送到总线上。

驱动器的输出电路通常采用差分放大器,它能够将输入信号放大并提供足够的驱动能力,以保证信号的传输距离和质量。

驱动器还包含了发送使能控制电路,用于控制数据的发送和停止。

接收器是RS485电路中的接收端,它负责将差分电平信号转换为逻辑电平的数据,并将数据发送到接收器的输出端。

接收器的输入电路通常采用差分放大器和比较器,它能够对输入信号进行放大和判断,以确保正确识别出数据。

接收器还包含了接收使能控制电路,用于控制数据的接收和停止。

在RS485电路中,为了保证通信的可靠性和稳定性,通常会采取一些措施。

首先是对总线进行终端电阻匹配,即在总线两端分别连接一个电阻,以匹配总线的特性阻抗,减少信号的反射和干扰。

其次是进行数据的校验和差错检测,以确保数据的准确传输。

常见的校验方式有奇偶校验、循环冗余校验等。

最后是通过控制线实现通信的控制和同步,常用的控制线有使能线、复位线和时钟线等。

RS485电路的设计需要考虑多个因素,例如通信速率、总线长度、总线拓扑结构和终端设备的数量等。

通信速率越高,对驱动器和接收器的要求就越高;总线长度越长,对终端电阻和信号衰减的要求就越高;总线拓扑结构越复杂,对通信协议的要求就越高;终端设备数量越多,对总线的负载能力就越高。

RS485电路原理是通过合理的电路设计实现RS485通信的基本原理和方法。

rs485通讯协议

rs485通讯协议

rs485通讯协议RS485是一种常用的串行通信协议,广泛应用于工业自动化领域。

它是一种差分信号传输方式,可以实现远距离、高速、抗干扰的通信。

RS485通信协议定义了物理层和数据链路层的规范,确保了设备之间的稳定通信。

首先,RS485定义了通信的物理层,包括电气特性和连接方式。

电气特性规定了通信线路的电压范围和电平差异,通常使用正负两个信号线传输数据。

连接方式有两种,一种是点对点连接,即一个主设备和一个从设备之间的连接;另一种是多点连接,即一个主设备与多个从设备之间的连接。

在RS485通信中,数据链路层是关键。

它定义了帧格式、传输控制和错误检测等内容。

帧格式包括起始位、数据位、停止位和校验位,确保数据的正确传输。

传输控制定义了主设备与从设备之间的通信规则,例如主设备发送请求,从设备回应应答等。

错误检测使用循环冗余校验(CRC)算法,检测并纠正传输过程中产生的误码。

RS485通信具有以下优点。

首先,它可以实现长距离通信,最远可达1200米,适用于分布式控制系统。

其次,RS485可以支持多个设备之间的通信,灵活且方便。

再次,RS485具有高速传输能力,传输速率可达10Mbps,满足实时性要求。

此外,RS485还能够抵抗电磁干扰和噪声干扰,提高通信的可靠性。

在实际应用中,RS485通信广泛应用于各种工控设备之间的通信。

例如,工业自动化领域中的PLC、传感器、伺服驱动器等设备常使用RS485通信协议进行数据交互。

此外,RS485通信协议也被广泛应用于配电系统、楼宇自动化系统、视频监控系统等领域。

总之,RS485通信协议是一种可靠、高效的串行通信协议,适用于工业自动化等领域。

它通过定义物理层和数据链路层规范,实现了长距离、高速、抗干扰的通信。

在实际应用中,RS485通信协议发挥着重要作用,推动着工业自动化技术的发展。

RS485串口通信原理

RS485串口通信原理

RS485串口通信原理一、RS485串口通信协议原理与特点1.电平传输特点:RS485通信使用差分信号进行传输,即通过正负两个信号线分别传输高低电平,抵消了电磁干扰对信号的影响,提高了传输的抗干扰性能。

2.单主多从:RS485通信存在一个主机和多个从机,主机负责向从机发送指令,而从机接收指令并返回数据。

3.半双工通信:RS485通信只能在一个方向上进行通信,即由主机发送指令到从机,或者从机发送数据到主机,无法同时进行双向通信。

4.多层级网络:RS485通信可以通过多级网络实现跨越更长的距离和更多设备的通信,每级网络之间通过中继器进行连接。

二、RS485通信方式1.同步方式:同步通信是指主机和从机之间在时钟方面进行同步的通信方式。

主机发送时钟信号给从机,从机根据时钟信号进行数据发送和接收,确保数据的完整性和准确性。

同步通信的优点是数据传输速度快,但对时钟同步要求较高。

2.异步方式:异步通信是指主机和从机之间不需要进行时钟同步的通信方式。

主机和从机之间通过控制字符进行数据传输和接收,可以自由控制数据传输速度和时钟精度。

异步通信的优点是适用性广,不需要严格的时钟同步,但数据传输速度较慢。

三、RS485通信协议1.物理层:RS485通信采用差分传输的物理层信号,正负两个信号线分别传输高低电平数据。

通信时需进行数据电平转换,将逻辑高电平和逻辑低电平转换为物理层的高电平和低电平信号。

2.数据链路层:RS485通信的数据链路层采用帧结构进行数据的传输和接收。

数据帧包括起始位、数据位、校验位和停止位。

起始位用于表示数据帧的开始,数据位用于存储实际传输的数据,校验位用于验证数据的准确性,停止位用于表示数据帧的结束。

四、RS485通信应用场景1.工业自动化控制:RS485通信可用于PLC控制系统、工业仪表传感器等设备之间的通信,可实现工业自动化控制和数据采集。

2.楼宇自控系统:RS485通信可用于楼宇自控系统中的空调、照明、电梯等设备之间的通信,实现楼宇设备的集中控制和管理。

rs485通讯

rs485通讯

RS485通讯1. 引言RS485是一种串行通信协议,用于在多个设备之间进行双向数据传输。

它是一种高性能的通讯协议,常用于工业自动化、仪器仪表、门禁系统等领域。

本文将介绍RS485通讯的基本原理、使用方法以及常见的应用场景。

2. 基本原理RS485通讯使用差分信号传输,可以抵抗电磁干扰和噪声。

它采用两条相对独立的传输线(A线和B线),通过不同的电平表示逻辑1或逻辑0。

其中,逻辑1对应线A为高电平,线B为低电平;逻辑0对应线A为低电平,线B为高电平。

通过这种方式,数据可以在多个设备之间进行可靠的传输。

3. 硬件连接在使用RS485通讯时,需要将所有设备连接到一个共享的总线上。

每个设备都需要两条连接线(A线和B线)以及一个共享的地线。

通常,可以使用终端电阻来匹配总线阻抗并提高信号质量。

4. 传输方式RS485通讯可以采用两种传输方式:全双工和半双工。

4.1 全双工通讯在全双工通讯中,设备可以同时发送和接收数据。

发送数据的设备需要将数据发送到总线上,并通过差分信号传输给其他设备。

同时,接收数据的设备可以监听总线上的数据并将其解析。

4.2 半双工通讯在半双工通讯中,设备的发送和接收操作是交替进行的。

设备在发送数据时,需要先将总线设置为发送模式,并将数据发送到总线上。

其他设备在接收数据时,将总线设置为接收模式,并监听数据。

5. 通讯协议RS485通讯可以使用多种协议进行数据交换,常见的有MODBUS、DMX512等。

这些协议定义了数据的传输格式、通讯方式和功能码等。

5.1 MODBUS协议MODBUS是一种常用的通讯协议,适用于工业自动化领域。

它定义了数据的传输格式,并提供了读写寄存器等功能。

MODBUS协议支持点对点和多点通讯。

5.2 DMX512协议DMX512是一种用于舞台灯光控制的通讯协议。

它定义了数据的传输格式和通讯方式。

DMX512通讯一般采用全双工方式进行。

6. 应用场景RS485通讯在许多领域都有广泛的应用。

rs485接口设计要点和调试方法

rs485接口设计要点和调试方法

rs485接口设计要点和调试方法一、RS485接口设计要点:1.基本电气参数:RS485接口是一种基于差分传输的串行通信接口,能够实现远距离和高速传输。

在设计RS485接口时,需要考虑以下基本电气参数:a.差分电平:RS485采用差分信号传输,所以需要在接口电路中设置一个电平变换器,将逻辑电平转换为差分电平。

通常差分电平为正负两个电平,例如:+5V和-5V。

b.带宽:RS485接口的带宽决定了其传输速率和信号质量。

在设计时需要根据实际需求选择合适的带宽。

c.驱动能力:RS485接口通常需要驱动一定数量的设备,因此需要考虑驱动电流和输出功率等参数,以确保信号传输稳定和可靠。

2.线路特性:a.线路长度:RS485接口支持较长的通信距离,但实际可靠距离受到多种因素的影响,如传输速率、电缆类型和环境干扰等。

因此,在设计RS485接口时需要考虑通信距离的限制,并根据需求选择合适的电缆类型和衰减补偿方法。

b.终端电阻:RS485通信线路需要在两端分别加上120欧姆的终端电阻,以确保信号有效的传输和防止信号反射。

c.屏蔽和抗干扰措施:RS485接口在电气环境中可能会受到较强的干扰,如电磁辐射和电磁感应等。

为了提高信号质量和抗干扰能力,可以采用屏蔽电缆、引入滤波电路和设置适当的接地措施。

3.通信协议:a.数据格式:RS485接口支持多种数据格式,包括:ASCII码、二进制码和Modbus等。

在设计接口时需要根据实际应用场景选择合适的数据格式。

b.通信速率:RS485接口支持多种通信速率,通常为几百kbps至几Mbps。

在设计接口时,需要根据实际需求选择合适的通信速率,并确保接口电路的传输带宽足够以支持所选择的速率。

c.错误检测和纠正:RS485接口在数据传输过程中可能会出现错误,例如位错误、校验错误和帧错误等。

为了提高通信的可靠性,可以采用差错检测和纠正机制,如CRC校验等。

二、RS485接口调试方法:1.硬件调试:a.接线检查:首先需要检查接线是否正确连接,包括数据传输线、终端电阻和供电电路等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ISSN 1000-0054CN 11-2223/N 清华大学学报(自然科学版)J T singh ua Un iv (Sci &Tech ),2008年第48卷第8期2008,V o l.48,N o.8w 22http://qhx bw.chinajo RS 485高速数据传输协议的设计与实现耿立中, 王 鹏, 马 骋, 贾惠波(清华大学精密仪器与机械学系,精密测试技术及仪器国家重点实验室,北京100084)收稿日期:2008-01-03作者简介:耿立中(1985—),男(汉),山东,博士研究生。

通讯联系人:贾惠波,教授,E-mail:jiah b@tsingh 摘 要:为实现远距离的高速基带信号传输,该文设计了一种以RS 485标准为物理层基础,在现场可编程门阵列(F PG A )平台上实现的数据传输协议。

该协议利用串行信号的跳变沿作为高速时钟检测的起点实现位同步,可以有效地解决信号码间干扰问题;利用8B /10B 编码实现帧同步,可以保证位同步的准确性和帧同步控制字符的可靠性。

该文利用F PG A 平台对协议进行了实验测试,测试结果表明该协议可以实现220m 距离上的14.5M b /s 的有效数据传输,为长距离的高速数据传输提供了可靠的实现方法。

关键词:传输协议;R S485总线;现场可编程门阵列(FP GA )中图分类号:T N 913.8文献标识码:A文章编号:1000-0054(2008)08-1311-04Design and implement of RS485high speed data communications protocolG ENG Lizhong ,WANG Peng ,MA Cheng ,JIA Hu ibo (S tate K ey Laboratory of Precision Measurement Technology &Instruments ,Department of Precision Instruments and Mechanology ,Tsinghua Univers ity ,Beijing 100084,China )Abstract :Th is paper des crib es a RS485commun ication s protocol for high -speed baseb and commu nications.T he inter symb ol inter feren ce (ISI)is reduced by an efficient bit s ynch ronization signal detection schem e.Samplin g begins at th e begin ning of the inpu t signals to get ex act digital r esu lts.T he frame synchronization us es 8B/10B coding an d guaran tees bit syn chroniz ation.T he protocol w as implemented on a field programmable gate array (FPGA)w ith test res ults indicating that th e protocol achieves 14.5M b /s along a 220meters line.Key words :com munication protocol;RS485bus ;fieldprogrammable gate array (FPGA)RS485作为一种串行通信的接口,具有传输距离长、速度较高、电平兼容性好、使用灵活方便、成本低廉和可靠度高等优点,在智能管理[1]、在线控制[2]、地质勘探[3-4]等许多领域都有着广泛的应用[5]。

目前Pro fibus -DP 、Arcnet 和CAN 等总线标准的物理层均是RS 485规范,这些总线标准不能同时保证长距离(200m 以上)和高的传输速度,其中性能较好的Profibus 只能在100m 距离上实现12M b /s 的数据传输[6-7]。

由于RS485传输为基带信号传输,没有单独的时钟线,所以时钟提取成为整个高速数据传输协议的关键。

现有的串行数据时钟提取技术中,同步方式复杂度较高[8],异步方式中通用异步收发器(U ART )[9]以字为传输协议的基本单元,一般不适应太高的速率,传输效率也较低。

本文以RS 485标准为物理层基础,在现场可编程门阵列(FPGA)平台上设计并实现了一种基于特殊的时钟提取方法的传输协议,可以用于串行数据的高速远距离传输。

该协议利用串行信号的跳变沿作为高速时钟检测的起点实现位同步,有效地解决信号码间干扰问题;采用8B/10B 编码实现帧同步,保证位同步的准确性和帧同步控制字符的可靠性。

1 协议描述1.1 位同步设计本设计的位同步方法是以波特率的10倍频时钟作为检测时钟,信号的上升沿和下降沿作为位同步采样的起点。

建立2个采样寄存器R H 、R L ,当高频时钟检测到输入信号为高电平时,开始对检测时钟计数,并存入寄存器R H ,同时将R L 置零,当R H 为5时产生第一个采样点,而后每隔10个时钟周期产生采样点,采得的数字信号为“1”;相应的当高频时钟检测到输入信号为低电平的时候,开始对时钟计数,并存入寄存器R L ,同时将R H 置零,当R L 为5时产生第一个采样点,而后每隔10个时钟周期产生采样点,采得的数字信号为“0”。

图1 信号跳变沿作为检测起点的位同步示意图 由于检测时钟和数据信号的发送时钟并不同源,必然会有误差,假设认为判断信号的第1个下降沿没有误差,第1个采样点相对起始位中间位置有t 的偏差;由于积累,第2个采样点相对H2中间位置则会有3t的偏差;同理第3个采样点会有5t的误差。

当误差积累到超过5个检测时钟的宽度时,误码就产生了。

为了避免误码的产生,计算产生误码的临界条件。

假定检测时钟和数据信号发送时钟的精度均为1×10-4,由于发送时钟频率为检测时钟的10倍,那么检测时钟相对于数据信号(假定传输中未失真)的误差在1.1×10-3之内,则出现误码的高电平或低电平的最小长度为l s=5t d1.1×10-3.(1)其中t d为检测时钟的时钟周期。

也就是说传输基带信号含有450个以上连续的“0”或者“1”时会出现误码,采用此协议的传输必须游程受限在(0,450)之间。

RS485传输是基带信号通过双绞线传输的,占空比容易发生变化,产生码间干扰,尤其是在传输距离比较长的时候。

这种基于信号跳变进行检测起始的位同步设计方法对这种问题有一定的解决能力。

信号在连续长“1”之间的短“0”很容易受到码间干扰影响变短,但本文的位同步设计只需要5个高频时钟的有效检测就可以读到该数据位,也就是短“0”的长度在原始信号长度的一半以上就可以保证得到正确数据。

1.2 帧同步的设计帧同步是在位同步的基础上识别出包含有效数字信息帧的起止时刻,从而得到有效的数据信息[10]。

本设计采用了插入式帧同步的方法,利用特定的帧头和帧尾表示数据帧的起始位置。

由于位同步中对信号是游程受限的,所以采用了8B/10B编码为基础对数据帧进行设计。

帧结构如图2所示。

图2 数据传输链路帧结构帧头采用8B/10B编码中的K28.5字符“010*******”,帧尾采用K28.1字符“1001111100”,这两组控制字在8B/10B编码中是独一无二的,任何数据位的组合都不可能产生这两组字符,可以有效地避免帧同步的假同步现象。

控制位1个字节也属于8B/10B编码的控制字符,当数据帧被读入主控FPGA时帧尾是被抛掉的,可以利用该控制位来表示有效数据的结束。

FCS为CRC-32校验,用来校验数据帧的正确与否。

如图3所示,串行数据经过移位寄存器变为并行信号后进入帧头帧尾判决器进行判决,判决的阈值可以进行调控以避免漏同步的现象出现。

由于错误数据帧对上位用户机是无意义的,必须出错重传,而在同一传输信道中,帧头出错的概率和数据位出错的概率是大体相同的,所以本协议将阈值置为0,即数据与帧头或帧尾数据完全一致时方认定检测到帧头或帧尾,并发送控制信号到数据解码模块。

并行信号经过数据解码后得到原始用户数据,并对其进行CRC校验,如果数据验证正确,则可将用户数据输出给上位用户机。

基于8B/10B码的帧同步设计,在实现帧同步的同时,保证了位同步的准确性,使得通信链路中不会随着时间推移而出现DC偏移。

8B/10B码冗余的编码方式提供了特殊字符作为帧控制字符。

CRC校验用以检测传输过程中的错误。

图3 帧同步检测结构示意图2 基于FPGA系统的协议实现传输协议是基于Altera公司的Quar tus7.2开发环境利用超高速集成电路硬件描述语言(VHDL)1312清华大学学报(自然科学版)2008,48(8)设计。

如图4所示,data -code -send 模块为数据的编码和发送模块,利用2M Hz 和20MHz 的时钟驱动,产生19.07M b/s 左右的码流,在端口sel -out 输出,端口framenum (31..0)为发送的总帧数。

模块dat 485-fifo -recv 利用200M Hz 高速时钟对串行信号sel -in 进行位同步,得到串行数据,经过串并转换和帧同步得到有效帧数据,再经过8B /10B 的解码得到数据,逻辑状态控制时钟为20M Hz,端口recv -8b (7..0)为收到的解码数据,端口right -num (31..0)为收到的正确帧数,端口err -num (31..0)为收到的出错帧数。

传输协议逻辑占用了2413个逻辑单元,并利用Altera 公司提供的Log iclock 技术对传输协议进行了优化和锁定,使逻辑的时序要求可以满足225M Hz ,保证了程序的稳定性。

而后,对传输协议逻辑进行了仿真,得到仿真结果,见图5。

图4 传输协议FPGA 顶层结构图图5 基于FPGA 的传输协议仿真结果 send -8b 为发送端编码前的链路数据帧,send -10b 为发送端编码后的链路帧,从仿真结果中可以看到,编码过程有2个2M Hz 时钟周期的延迟,8B 数据“BC ”对应的10B 数据“17C ”(10B 数据“0B9”是8B 数据“00”的编码)。

sel -out 为编码后的数据并串转换后的串行信号。

r ecv -10b 是接收端经过位同步后收到的未解码数据,位同步需要的延时为1.5个2M Hz 时钟周期,recv -8b 为接收端收到的解码后数据,解码过程由帧同步时钟frame -clk 驱动,基本为实时过程。

相关文档
最新文档