CN112398713A - 一种背板总线数据发送方法及装置 - Google Patents
一种背板总线数据发送方法及装置 Download PDFInfo
- Publication number
- CN112398713A CN112398713A CN202011136162.XA CN202011136162A CN112398713A CN 112398713 A CN112398713 A CN 112398713A CN 202011136162 A CN202011136162 A CN 202011136162A CN 112398713 A CN112398713 A CN 112398713A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- state
- sending
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000006243 chemical reaction Methods 0.000 claims abstract description 47
- 230000006854 communication Effects 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 27
- 230000005540 biological transmission Effects 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 10
- 238000002955 isolation Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 description 22
- 238000005070 sampling Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000000630 rising effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000003745 diagnosis Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
Abstract
一种背板总线数据发送方法及装置,应用于背板总线主站,背板总线主站包括现场可编程门阵列FPGA单元和物理收发器,该数据发送方法包括:FPGA单元读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据;FPGA单元按照通信协议对待发送的字节数据添加协议字段,得到协议包;FPGA单元对协议包进行编码,并通过隔离时钟域进行时钟转换;FPGA单元对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。本申请通过FPGA单元实现数据的协议组包、编码、时钟转换以及并串转换,提高了背板总线的通信速率。
Description
技术领域
本申请涉及但不限于背板总线技术领域,尤其涉及一种背板总线数据发送方法及装置。
背景技术
可编程逻辑控制器(Programmable Logic Controller,PLC)是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
PLC背板总线主要负责主控模块和机架上的其它子模块(信号模块、功能模块等)之间的数据交换,通常还包含给子模块的电源供应。PLC系统通常采用传统的串行通信技术实现背板总线,串行总线可以提高在恶劣的工厂和工业环境下自动化设备的可靠性,传统的串行通信技术包括控制器局域网络(Controller Area Network,CAN)、I2C(Inter-Integrated Circuit)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)、串行外设接口(Serial Peripheral Interface,SPI)等,一般来说,很多作为PLC系统主芯片的处理器自身都集成了这些外设部件,但是处理器内部集成的I2C、UART、SPI等外设通信速率太慢,根本不能满足背板总线的通信速率要求。
发明内容
本申请实施例提供了一种背板总线数据发送方法及装置,能够提高背板总线的通信速率。
本申请实施例提供了一种背板总线数据发送方法,应用于背板总线主站,所述背板总线主站包括现场可编程门阵列FPGA单元和物理收发器,所述数据发送方法包括:
所述FPGA单元读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据;
所述FPGA单元按照通信协议对待发送的字节数据添加协议字段,得到协议包;
所述FPGA单元对协议包进行编码,并通过第一隔离时钟域进行时钟转换;
所述FPGA单元对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。
在示例性实施例中,所述对协议包进行编码,包括:
将每八位待发送数据转换成十位代码组,其中,每八位待发送数据中的低M位增加一位校验码,高(8-M)位增加一位校验码,且转换后的十位代码组按照预设的比特顺序排列,其中,M为小于8的自然数。
在示例性实施例中,所述协议字段包括:同步头、包起始字段、包长字段、校验码字段和包结束字段,所述包长字段为数据区域的长度。
在示例性实施例中,所述数据发送方法还包括:通过发送状态机控制发送流程;
所述发送状态机的状态包括:发送空闲状态、发送起始状态、发送同步头状态、发送包起始状态、发送包长高字节状态、发送包长低字节状态、发送数据状态、发送校验码状态和发送结束状态。
在示例性实施例中,所述通过发送状态机控制发送流程,包括:
将初始化状态设置为所述发送空闲状态;
当输入时钟有效时,进入所述发送起始状态;
检测外部输入的发送信号是否有效,当所述发送信号有效时,检测外部输入的发送数据长度信号是否有效,当所述发送数据长度信号有效时,进入所述发送同步头状态;
启动发送计数信号进行计数,检测已发送的同步头到达预定的同步头长度后,进入所述发送包起始状态;
依次执行所述发送包长高字节状态和所述发送包长低字节状态;
检测要发送的数据包的长度,如果要发送的数据包的长度不为0,进入所述发送数据状态,并重新启动所述发送计数信号进行计数;
检测已发送的数据包的长度到达要发送的数据包的长度后,进入所述发送校验码状态;
校验码发送完毕后,进入所述发送结束状态。
在示例性实施例中,所述第一隔离时钟域为发送先入先出缓冲器FIFO,且发送FIFO两侧的输入时钟不同。
本申请实施例还提供了一种背板总线数据发送装置,包括现场可编程门阵列FPGA单元和物理收发器,所述FPGA单元包括数据读取模块、协议组包模块、编码模块、第一时钟转换模块和并转串发送模块,其中:
数据读取模块,用于读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据;
协议组包模块,用于按照通信协议对待发送的字节数据添加协议字段,得到协议包;
编码模块,用于对协议包进行编码;
第一时钟转换模块,用于通过第一隔离时钟域进行时钟转换;
并转串发送模块,用于对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。
在示例性实施例中,所述编码模块,具体用于:将每八位待发送数据转换成十位代码组,其中,每八位待发送数据中的低M位增加一位校验码,高(8-M)位增加一位校验码,且转换后的十位代码组按照预设的比特顺序排列。
在示例性实施例中,所述协议字段包括:同步头、包起始字段、包长字段、校验码字段和包结束字段,所述包长字段为数据区域的长度。
在示例性实施例中,所述FPGA单元还包括用于控制发送流程的发送状态机,所述发送状态机的状态包括:发送空闲状态、发送起始状态、发送同步头状态、发送包起始状态、发送包长高字节状态、发送包长低字节状态、发送数据状态、发送校验码状态和发送结束状态。
本申请实施例提供的背板总线数据发送方法及装置,通过FPGA单元实现数据的协议组包、编码、时钟转换以及并串转换,提高了背板总线的通信速率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例的一种背板总线数据发送方法的流程示意图;
图2为本申请实施例的一种背板总线数据接收方法的流程示意图;
图3为本申请实施例的一种背板总线数据发送装置的结构示意图;
图4为本申请实施例的一种背板总线数据接收装置的结构示意图;
图5为本申请实施例的一种背板总线数据收发装置的结构示意图;
图6为本申请实施例的一种发送状态机的跳转流程示意图;
图7为本申请实施例的一种接收状态机的跳转流程示意图;
图8为本申请实施例的一种背板总线主站的结构示意图;
图9为本申请实施例的另一种背板总线主站的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本申请实施例提供了一种背板总线数据发送方法,应用于背板总线主站,该背板总线主站包括现场可编程门阵列(Field Programmable Gate Array,FPGA)单元和物理收发器,如图1所示,该数据发送方法包括:
步骤101、FPGA单元读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据;
步骤102、FPGA单元按照通信协议对待发送的字节数据添加协议字段,得到协议包;
步骤103、FPGA单元对协议包进行编码,并通过第一隔离时钟域进行时钟转换;
步骤104、FPGA单元对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。
在一种示例性实施例中,对协议包进行编码,包括:
将每八位待发送数据转换成十位代码组,其中,每八位待发送数据中的低M位增加一位校验码,高(8-M)位增加一位校验码,且转换后的十位代码组按照预设的比特顺序排列,其中,M为小于8的自然数。
示例性的,编码时,低5bit原数据EDCBA经过5B/6B编码成为6bit码ABCDEI,高3bit原数据HGF经3B/4B成为4bit码FGHJ,最后再将两部分组合起来形成10bit码ABCDEIFGHJ。10位代码组在发送时,按照先发送低位在发送高位的顺序发送。本申请实施例采用自修改数据流编码方式,采用8B/10B编码方式,将待发送的8位数据转换成10位代码组,其目的是保证直流平衡,以及足够密集的电平转换。
在一种示例性实施例中,协议字段包括:同步头、包起始字段、包长字段、校验码字段和包结束字段,所述包长字段为数据区域的长度。
由于包长字段之后和校验码之前是数据区域,因此,本申请的包长字段即指的是数据区域的长度。
在一种示例性实施例中,校验码为循环冗余校验码(Cyclic Redundancy Check,CRC)。示例性的,CRC码的长度通常为4个字节。
在一种示例性实施例中,物理收发器可以为多点低电压差分信号(Multi-pointLow Voltage Differential Signaling,MLVDS)收发器。
MLVDS收发器支持总线型通信方式,通过使用本申请实施例的背板总线数据发送方法,能够实现工业领域高速串行数据发送,在背板上网络拓扑为总线型拓扑下通信速率能达百兆级别。
在一种示例性实施例中,第一隔离时钟域为发送先入先出缓冲器(First InFirst Out,FIFO)。
本申请实施例还提供了一种背板总线数据接收方法,应用于背板总线主站,该背板总线主站包括FPGA单元和物理收发器,如图2所示,该数据接收方法包括:
步骤201、FPGA单元根据输入的时钟信号,对物理收发器接收的输入数据流进行采样,以提取输入数据流中的数据;
步骤202、FPGA单元对提取的数据进行串并转换,并通过第二隔离时钟域进行时钟转换;
步骤203、FPGA单元对时钟转换后的数据进行解码与校验;
步骤204、FPGA单元将经过校验的数据存入接收缓冲区。
在一种示例性实施例中,输入的时钟信号为第一时钟信号和第二时钟信号,第一时钟信号和第二时钟信号的频率相同,相位相差90度,第一时钟信号和第二时钟信号分别包括上升沿和下降沿,第一时钟信号的上升沿对应第一采样时刻,第二时钟信号的上升沿对应第二采样时刻,第一时钟信号的下降沿对应第三采样时刻,第二时钟信号的下降沿对应第四采样时刻。
示例性的,根据前述实施例的编码方法,相应的,在解码时,将10bit码ABCDEIFGHJ转换为HGFEDCBA。本申请实施例采用自修改数据流解码方式,采用10B/8B解码方式,将10位代码组转换为8位数据,以保证直流平衡,以及足够密集的电平转换。
在一种示例性实施例中,物理收发器可以为MLVDS收发器。
MLVDS收发器支持总线型通信方式,通过使用本申请实施例的背板总线数据接收方法,能够实现工业领域高速串行数据接收,在背板上网络拓扑为总线型拓扑下通信速率能达百兆级别。
在一种示例性实施例中,第二隔离时钟域为接收FIFO。
本申请实施例还提供了一种背板总线数据发送装置,如图3所示,该背板总线数据发送装置基于FPGA和物理收发器306实现,FPGA包括数据读取模块301、协议组包模块302、编码模块303、第一时钟转换模块304和并转串发送模块305。
其中:数据读取模块301,用于读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据。
协议组包模块302,用于按照通信协议对待发送的字节数据添加协议字段,得到协议包。
编码模块303,用于对协议包进行编码。
第一时钟转换模块304,用于通过第一隔离时钟域进行时钟转换。
并转串发送模块305,用于对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。
在一种示例性实施例中,编码模块303具体用于:将每八位待发送数据转换成十位代码组,其中,每八位待发送数据中的低M位增加一位校验码,高(8-M)位增加一位校验码,且转换后的十位代码组按照预设的比特顺序排列。
在一种示例性实施例中,协议字段包括:同步头、包起始字段、包长字段、校验码字段和包结束字段,所述包长字段为数据区域的长度。
在一种示例性实施例中,第一隔离时钟域为发送FIFO。
本申请实施例还提供了一种背板总线数据接收装置,如图4所示,该背板总线数据接收装置基于FPGA和物理收发器401实现,FPGA包括串转并数据恢复模块402、第二时钟转换模块403、解码模块404和校验模块405。
其中,串转并数据恢复模块402,用于根据输入的时钟信号,对物理收发器401接收的输入数据流进行采样,以提取输入数据流中的数据,并对提取的数据进行串并转换;
第二时钟转换模块403,用于通过第二隔离时钟域进行时钟转换;
解码模块404,用于对时钟转换后的数据进行解码;
校验模块405,用于对解码后的数据进行校验,并将经过校验的数据存入接收缓冲区。
在一种示例性实施例中,输入的时钟信号为第一时钟信号和第二时钟信号,第一时钟信号和第二时钟信号的频率相同,相位相差90度,第一时钟信号和第二时钟信号分别包括上升沿和下降沿,第一时钟信号的上升沿对应第一采样时刻,第二时钟信号的上升沿对应第二采样时刻,第一时钟信号的下降沿对应第三采样时刻,第二时钟信号的下降沿对应第四采样时刻。
在一种示例性实施例中,第二隔离时钟域为接收FIFO。
如图5所示,本申请实施例还提供了一种背板总线数据收发装置,硬件完全采用了FPGA+物理收发器(示例性的,物理收发器可以为多点低电压差分信号(Multi-point LowVoltage Differential Signaling,MLVDS)收发器)为主体硬件。数据的并串转换以及数据的编解码都在FPGA中实现,物理收发器实现物理层串行数据流收发。背板总线数据收发装置包括背板总线数据发送装置和背板总线数据接收装置,其中,背板总线数据发送装置包括发送缓冲器、数据读取模块、协议组包模块、编码模块、发送FIFO、并转串发送模块;背板总线数据接收装置包括串转并数据恢复模块、接收FIFO、解码模块、校验模块和接收缓冲区。
背板总线数据发送装置和背板总线数据接收装置相互独立,工作流程如下:
背板总线数据发送装置,由外部输入的发送启动指令的上升沿来开始发送数据。先从外部读出待发送数据包长度,再从发送缓冲器读出待发送的字节数据。然后计算CRC,组协议包(包括加同步头、包起始、包长、数据、CRC结果、包结束),经过8B/10B编码、发送FIFO(发送FIFO用于隔离时钟域,发送FIFO前用的字节数据时钟clk_1x_i,发送FIFO后用的串行字节数据时钟clk_10x_i)之后并转串发送到链路上。当数据包发送完毕后,会置发送完成标志有效。由于发送启动指令由外部输入,所以数据包间隔时间由外部控制模块掌握。只有当每次发送完成之后,即发送完成标志置位之后,才能再进行后续数据包的发送。背板总线数据发送装置通过发送状态机控制各个流程之间的跳转。发送状态机的跳转流程如图6所示。
发送状态机包含的状态有:发送空闲状态(TX_IDLE)、发送起始状态(TX_START)、发送同步头(TX_K_COM)、发送长度起始(TX_LEN_SPP)、发送包长高字节(TX_LEN_H)、发送包长低字节(TX_LEN_L)、发送数据(TX_DATA)、发送校验码(TX_CRC)、发送包起始(TX_K_SPP)、发送结束(TX_DONE)。
如图6所示,背板总线数据发送装置的初始化状态为发送空闲状态(TX_IDLE),输入时钟有效后,进入发送起始状态(TX_START),在该状态下检测发送信号(该发送信号的采集打了两拍)第二拍是否有效,如果有效则判断发送数据长度信号(打两拍),当该长度大于最小允许发送数据长度时,进入发送同步头状态(TX_K_COM),在该状态下启动发送计数信号,示例性的,同步头信号可以采用4个字节(具体数值可以由主从站约定好),检测发送达到4字节后,进入发送包起始状态(TX_K_SPP),首先发送数据包的长度高字节(TX_LEN_H),然后发送数据包的长度低字节(TX_LEN_L),检测要发送的数据包的长度,如果数据包的长度不为0,则进入发送数据状态(TX_DATA)启动数据发送,同时发送计数信号开始计数,检测该发送计数信号到达要发送的数据包的长度后,即检测到发送完数据,进入发送校验码状态,校验码发送完毕后,进入发送结束状态(TX_DONE)。
本实施例中,发送信号和发送数据长度信号均为与背板总线数据发送装置连接的外部模块输入的信号,用于触发背板总线数据发送装置开始发送数据或触发背板总线数据发送装置开始发送数据长度。打几拍指的是跨时钟域时,在第几个时钟沿采集数据,示例性的,发送信号的采集打了两拍,指的是在跨时钟域时,采集第二个时钟沿的信号作为发送信号。发送计数信号用于背板总线数据发送装置记录所发送的字节数。
背板总线数据接收装置,由同频率的时钟四相位(即:0°、90°、180°、270°四个相位)过采样来恢复串行数据。经过串转并变换,FIFO隔离时钟域(FIFO前用的串行数据时钟clk_10x_i,FIFO后用的字节数据时钟clk_1x_i),8B/10B解码与CRC校验,将经过CRC校验的数据存入接收缓冲区,数据完全存入接收缓冲区之后会置接收完成标志有效。当外部模块发现接收完成标志有效之后即可从接收缓冲区中取出接收到的数据帧。背板总线数据接收装置通过接收状态机来控制接收流程的运转。接收状态机的跳转流程如图7所示。
接收状态机包含的状态有:接收空闲状态(RX_IDLE)、接收开始状态(RX_START)、接收等待状态(RX_WAIT)、接收数据包长高字节(RX_LEN_H)、接收数据包长低字节(RX_LEN_L)、接收数据(RX_DATA)、接收CRC校验值(RX_CRC)、CRC校验(JUDGE_CRC)、接收结束(RX_DONE)。
如图7所示,背板总线数据接收装置的初始化状态为接收空闲状态(RX_IDLE),输入时钟有效后,进入接收开始状态(RX_START),在该状态下随时钟信号的上升沿检测接收FIFO是否为空,如果不为空,则背板总线数据接收装置进入接收等待(RX_WAIT)状态,同时启动接收计数信号(接收计数信号用于背板总线数据接收装置记录接收的数据字节数),如果有数据要接收,则开始接收数据包长高字节(RX_LEN_H),接收完数据包长高字节后,检测接收FIFO是否还不为空,继续接收数据包长的低字节(RX_LEN_L),接收完数据包长的低字节后,继续检测接收FIFO是否非空,如果非空,判断接收到的数据包长度是否超过允许接收的最大数据长度,不超过允许接收的最大数据长度,则启动接收数据(RX_DATA)状态,清空接收计数信号,在接收数据状态下检测接收FIFO是否非空,如果非空,则开始接收数据包,同时启动接收计数信号,检测到接收计数信号与数据包长度相符后,认为数据包接收完毕,则进入接收CRC校验值(RX_CRC),同样接收完毕CRC校验值后,进入CRC校验状态(JUDGE_CRC),采取的校验方式为接收的CRC校验值与背板总线数据接收装置自己累计算出的CRC值取异或,若异或结果为0,则表示接收到的CRC校验值与背板总线数据接收装置计算得到的CRC校验值是一致的,则CRC校验通过,进入接收结束(RX_DONE)状态。
本申请实施例中,串转并数据恢复模块作为背板总线数据接收装置的核心模块,主要实现从输入时钟/数据流中提取嵌入的数据。因收到的数据流是异步的,而且没有单独时钟,所以要求能从输入时钟/数据流中恢复时钟、提取数据,然后将数据转移到单独的时钟域。本申请实施例中的串转并数据恢复模块采用FPGA的系统时钟(示例性的,FPGA的系统时钟频率可以为100MHZ)来作为FPGA的锁相环PLL的输入时钟,输出两个100MHZ但是相位差90°的时钟clk_i和clk_90_i提供给采样模块使用。用于对输入数据执行采样的四个时钟域为:
时钟clk_i的上升沿触发的第1个触发器被称为时钟域A;
时钟clk_90_i的上升沿触发的第2个触发器被称为时钟域B;
时钟clk_i的下降沿触发的第3个触发器被称为时钟域C;
时钟clk_90_i的下降沿触发的第4个触发器被称为时钟域D;
A、B、C、D四个采用点,在100MHz的系统时钟情况下,这个逻辑相当于400MHz的采样率。
编解码模块,用于将原始数据转变为接收器可接收的数据格式,同时保证数据流中有足够的时钟信息提供给接收端的时钟恢复电路,本申请实施例中的编解码模块采用自修改数据流编码方式,采用8B/10B编码将待发送的8位数据转换成10位代码组,其目的是保证直流平衡,以及足够密集的电平转换。编码时,低5bit原数据EDCBA经过5B/6B编码成为6bit码abcdei,高3bit原数据HGF经3B/4B成为4bit码fghj,最后再将两部分组合起来形成10bit码abcdeifghj。10位代码组在发送时,按照先发送低位再发送高位的顺序发送。
本申请实施例中,背板总线数据收发装置也可以使用FPGA+带串行器/解串器(SERializer/DESerializer,SERDES)功能的总线低电压差分信号(BLVDS)专用芯片,这种方式类似于以太网中MAC+PHY芯片的结构,其中MAC部分在FPGA中实现,数据的并串转换、以及数据的编解码在外接芯片中实现。
本申请实施例中,背板总线数据收发装置也可以使用FPGA的SERDES接口,直接驱动LVDS总线。此时,利用FPGA的SERDES资源来实现并行数据的并串转换,以及数据的编解码。
如图8和图9所示,本申请实施例中的背板总线主站包括应用层单元、FPGA单元和物理收发器,应用层单元可以通过中央处理器(Central Processing Unit,CPU)核实现,FPGA单元包括数据链路层单元、共享缓冲区和轮询控制信息缓冲区。
其中,应用层单元,用于接收配置参数集并进行解析,该配置参数集包括周期轮询数据和配置数据,将解析出的周期轮询数据和配置数据存储至轮询控制信息缓冲区;读取共享缓冲区内的轮询访问结果。
数据链路层单元,用于读取轮询控制信息缓冲区的周期轮询数据和配置数据,将配置数据发送至一个或多个从站,根据周期轮询数据对一个或多个从站进行轮询控制,接收从站的轮询访问结果并将轮询访问结果存储至共享缓冲区。
物理收发器,用于在数据链路层单元和一个或多个从站之间实现数据的物理收发。
在一种示例性实施例中,该CPU核可以集成在FPGA内部。
本申请实施例提供的背板总线主站,通过CPU核实现背板总线主站的应用层单元,通过FPGA实现数据链路层单元和缓冲区,提高了背板总线的通信速率,且数据链路层单元和从站之间的通信方式为一对多通信,从而简化了PLC背板的布线。
在一种示例性实施例中,该配置参数集还包括非周期诊断数据。
应用层单元,还用于将解析出的非周期诊断数据存储至共享缓冲区;读取共享缓冲区内的非周期诊断结果。
数据链路层单元,还用于读取共享缓冲区中的非周期诊断数据,根据非周期诊断数据与一个或多个从站建立非周期通信过程,接收一个或多个从站的诊断结果并存储至共享缓冲区。
在一种示例性实施例中,如图9所示,背板总线主站还包括控制单元。
其中,应用层单元,还用于将读取的轮询访问结果和/或非周期诊断结果发送至该控制单元。
该控制单元,用于下发配置参数集至应用层单元,并接收应用层单元发送的轮询访问结果和/或非周期诊断结果。
在一种示例性实施例中,应用层单元还用于,在上电后进行硬件初始化配置,启动背板总线协议栈,并置共享缓冲区中的协议栈启动标志有效。
在一种示例性实施例中,在将解析出的周期轮询数据和配置数据存储至轮询控制信息缓冲区之后,应用层单元还用于:置共享缓冲区中的轮询控制标志有效。
在一种示例性实施例中,在读取轮询控制信息缓冲区的周期轮询数据和配置数据之前,数据链路层单元还用于:检测共享缓冲区中的协议栈启动标志是否有效;当共享缓冲区中的协议栈启动标志有效时,检测共享缓冲区中的轮询控制标志是否有效,当共享缓冲区中的轮询控制标志有效时,启动数据链路状态机,并触发读取轮询控制信息缓冲区的周期轮询数据和配置数据的操作。
在一种示例性实施例中,在将轮询访问结果存储至共享缓冲区之后,数据链路层单元还用于:产生中断信号,该中断信号用于触发应用层单元读取共享缓冲区内的轮询访问结果。
在一种示例性实施例中,如图9所示,应用层单元包括配置接收模块、配置解析模块、对象字典操作模块、对象字典解析模块、轮询数据填充模块、非周期诊断数据处理模块和中断处理模块。
其中,配置接收模块,用于接收控制单元发送的配置参数集。
配置解析模块,用于按照背板总线协议对接收的配置参数集进行解析,将解析结果发送至对象字典操作模块。
对象字典操作模块,用于根据配置解析模块的解析结果建立对象字典,并对对象字典进行更新维护操作。
对象字典解析模块,用于对对象字典内的数据集进行协议解析,得到周期轮询数据和服务数据,将周期轮询数据和配置数据发送至轮询数据填充模块,将非周期诊断数据发送至非周期诊断数据处理模块。
轮询数据填充模块,用于将解析出的周期轮询数据和配置数据存储至轮询控制信息缓冲区。
非周期诊断数据处理模块,用于对非周期诊断数据进行非周期请求和应答处理。
中断处理模块,用于执行中断处理,中断处理为读取共享缓冲区内的轮询访问结果并发送至控制单元。
本申请实施例通过对象字典操作模块建立对象字典来管理数据;通过配置解析模块按照站点进行解析,将每个站点的配置数据集解析出来(包括对象字典数据集的解析);通过对象字典解析模块对对象字典数据集进行解析,得到具体的配置信息,并将该配置信息发送给从站,或在主站侧维护该配置信息。
在一种示例性实施例中,如图9所示,数据链路层单元包括从站轮询控制模块、协议通信状态机、背板总线数据发送装置、背板总线数据接收装置、发送状态机和接收状态机。
其中,从站轮询控制模块,主要用于按照从站轮询控制信息来执行对组态了的从站进行轮询访问控制。
协议通信状态机,主要用于实现背板总线协议状态机的实现,包括非激活态(PRTC_MS_NOTACTIVE)、激活态(PRTC_MS_ACTIVE)、服务对象重置态(PRTC_MS_CONFIG_OBD_RESET)、服务对象已配置(PRTC_MS_CONFIG_OBD)、准备运行态(PRTC_MS_READYTO_OPERATIONAL)和运行态(PRTC_MS_OPERATIONAL)。
背板总线主站上电完成硬件初始化以后,将背板总线协议状态机初始化设置为非激活态PRTC_MS_NOTACTIVE,在该状态下,背板总线主站随时侦听总线上是否有数据在传输,如果在规定的超时时间内收不到总线上任何的数据帧,则该背板总线主站认为总线空闲,则背板总线协议状态机跳转至激活态PRTC_MS_ACTIVE,在该状态下背板总线主站进行主站侧必要的协议栈软件初始化,执行完毕后自动进入服务对象重置态PRTC_MS_CONFIG_OBD_RESET,在该状态下需要完成对象字典的建立和初始化默认值,在该状态下,背板总线主站需要给从站发送协议栈复位命令,从站收到该命令后复位自己的协议栈状态并将自身的对象字典初始化为默认值,背板总线主站执行完成后进入服务对象已配置PRTC_MS_CONFIG_OBD状态,等待应用层配置对象参数集的到来,一旦检测到有效的配置对象参数集,即执行配置及交互所需要的信息解析及设置,解析及设置完毕后进入准备运行态PRTC_MS_READYTO_OPERATIONAL,在该状态机下,背板总线主站开始启动对从站的配置过程,完成启动配置过程后,背板总线协议状态机自动跳转至运行态PRTC_MS_OPERATIONAL运行。
背板总线数据发送装置、背板总线数据接收装置、发送状态机和接收状态机的具体描述,请参见前文所述,此处不再赘述。
本申请实施例通过从站轮询控制模块对每个从站的协议通信状态机进行维护以及对每个从站的数据进行管理,背板总线主站可以根据从站在协议通信状态机里的对应状态,通过数据发送模块发送数据至一个或多个从站或者通过数据接收模块接收一个或多个从站发送的数据,并根据数据链路状态机来判断此时应该发送或者接收哪些类型的数据。
采用本申请实施例的背板总线数据发送方法、接收方法及装置,能够实现工业领域高速串行数据收发技术,在背板上网络拓扑为总线型拓扑下通信速率能达百兆级别,解决了工业实时以太网应用在背板总线技术上布线复杂,成本高的缺陷,同时解决了现场总线技术通信速率不高导致背板总线性能低下的问题。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种背板总线数据发送方法,其特征在于,应用于背板总线主站,所述背板总线主站包括现场可编程门阵列FPGA单元和物理收发器,所述数据发送方法包括:
所述FPGA单元读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据;
所述FPGA单元按照通信协议对待发送的字节数据添加协议字段,得到协议包;
所述FPGA单元对协议包进行编码,并通过第一隔离时钟域进行时钟转换;
所述FPGA单元对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。
2.根据权利要求1所述的背板总线数据发送方法,其特征在于,所述对协议包进行编码,包括:
将每八位待发送数据转换成十位代码组,其中,每八位待发送数据中的低M位增加一位校验码,高(8-M)位增加一位校验码,且转换后的十位代码组按照预设的比特顺序排列,其中,M为小于8的自然数。
3.根据权利要求1所述的背板总线数据发送方法,其特征在于,所述协议字段包括:同步头、包起始字段、包长字段、校验码字段和包结束字段,所述包长字段为数据区域的长度。
4.根据权利要求1所述的背板总线数据发送方法,其特征在于,所述数据发送方法还包括:通过发送状态机控制发送流程;
所述发送状态机的状态包括:发送空闲状态、发送起始状态、发送同步头状态、发送包起始状态、发送包长高字节状态、发送包长低字节状态、发送数据状态、发送校验码状态和发送结束状态。
5.根据权利要求4所述的背板总线数据发送方法,其特征在于,所述通过发送状态机控制发送流程,包括:
将初始化状态设置为所述发送空闲状态;
当输入时钟有效时,进入所述发送起始状态;
检测外部输入的发送信号是否有效,当所述发送信号有效时,检测外部输入的发送数据长度信号是否有效,当所述发送数据长度信号有效时,进入所述发送同步头状态;
启动发送计数信号进行计数,检测已发送的同步头到达预定的同步头长度后,进入所述发送包起始状态;
依次执行所述发送包长高字节状态和所述发送包长低字节状态;
检测要发送的数据包的长度,如果要发送的数据包的长度不为0,进入所述发送数据状态,并重新启动所述发送计数信号进行计数;
检测已发送的数据包的长度到达要发送的数据包的长度后,进入所述发送校验码状态;
校验码发送完毕后,进入所述发送结束状态。
6.根据权利要求1所述的背板总线数据发送方法,其特征在于,所述第一隔离时钟域为发送先入先出缓冲器FIFO,且发送FIFO两侧的输入时钟不同。
7.一种背板总线数据发送装置,其特征在于,包括现场可编程门阵列FPGA单元和物理收发器,所述FPGA单元包括数据读取模块、协议组包模块、编码模块、第一时钟转换模块和并转串发送模块,其中:
数据读取模块,用于读取待发送的数据包长度,根据读取的数据包长度读取待发送的字节数据;
协议组包模块,用于按照通信协议对待发送的字节数据添加协议字段,得到协议包;
编码模块,用于对协议包进行编码;
第一时钟转换模块,用于通过第一隔离时钟域进行时钟转换;
并转串发送模块,用于对经过时钟转换后的协议包进行并串转换并通过所述物理收发器发送。
8.根据权利要求7所述的背板总线数据发送装置,其特征在于,所述编码模块,具体用于:将每八位待发送数据转换成十位代码组,其中,每八位待发送数据中的低M位增加一位校验码,高(8-M)位增加一位校验码,且转换后的十位代码组按照预设的比特顺序排列,其中,M为小于8的自然数。
9.根据权利要求7所述的背板总线数据发送装置,其特征在于,所述协议字段包括:同步头、包起始字段、包长字段、校验码字段和包结束字段,所述包长字段为数据区域的长度。
10.根据权利要求7所述的背板总线数据发送装置,其特征在于,所述FPGA单元还包括用于控制发送流程的发送状态机,所述发送状态机的状态包括:发送空闲状态、发送起始状态、发送同步头状态、发送包起始状态、发送包长高字节状态、发送包长低字节状态、发送数据状态、发送校验码状态和发送结束状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011136162.XA CN112398713A (zh) | 2020-10-22 | 2020-10-22 | 一种背板总线数据发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011136162.XA CN112398713A (zh) | 2020-10-22 | 2020-10-22 | 一种背板总线数据发送方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112398713A true CN112398713A (zh) | 2021-02-23 |
Family
ID=74596396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011136162.XA Pending CN112398713A (zh) | 2020-10-22 | 2020-10-22 | 一种背板总线数据发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112398713A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006178826A (ja) * | 2004-12-24 | 2006-07-06 | Fujitsu Ltd | Ipパケット伝送装置のデータアップデート方法及び装置 |
CN104639410A (zh) * | 2013-11-13 | 2015-05-20 | 沈阳高精数控技术有限公司 | 一种现场总线光纤通信接口的设计方法 |
CN105573239A (zh) * | 2016-01-11 | 2016-05-11 | 南京南瑞集团公司 | 一种高速背板总线通讯控制装置及方法 |
CN109002409A (zh) * | 2017-06-07 | 2018-12-14 | 深圳市中兴微电子技术有限公司 | 一种位宽变换装置及方法 |
CN111131267A (zh) * | 2019-12-25 | 2020-05-08 | 博依特(广州)工业互联网有限公司 | 基于fpga的以太网自适应方法、装置及系统 |
-
2020
- 2020-10-22 CN CN202011136162.XA patent/CN112398713A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006178826A (ja) * | 2004-12-24 | 2006-07-06 | Fujitsu Ltd | Ipパケット伝送装置のデータアップデート方法及び装置 |
CN104639410A (zh) * | 2013-11-13 | 2015-05-20 | 沈阳高精数控技术有限公司 | 一种现场总线光纤通信接口的设计方法 |
CN105573239A (zh) * | 2016-01-11 | 2016-05-11 | 南京南瑞集团公司 | 一种高速背板总线通讯控制装置及方法 |
CN109002409A (zh) * | 2017-06-07 | 2018-12-14 | 深圳市中兴微电子技术有限公司 | 一种位宽变换装置及方法 |
CN111131267A (zh) * | 2019-12-25 | 2020-05-08 | 博依特(广州)工业互联网有限公司 | 基于fpga的以太网自适应方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fang et al. | Design and simulation of UART serial communication module based on VHDL | |
JP6257757B2 (ja) | カメラ制御インターフェース拡張バス | |
US9852104B2 (en) | Coexistence of legacy and next generation devices over a shared multi-mode bus | |
US10547438B2 (en) | Signal edge location encoding | |
WO2016140765A2 (en) | Packet format and coding method for serial data transmission | |
EP3411999A1 (en) | Unidirectional clock signaling in a high-speed serial link | |
CN112398715A (zh) | 一种背板总线数据接收方法及装置 | |
JP6808641B2 (ja) | パルスベースのマルチワイヤリンクのためのクロックおよびデータ復元 | |
CN112398714B (zh) | 一种背板总线主站、系统及其数据通信方法 | |
US20200349102A1 (en) | Mipi d-phy circuit | |
CN104572563B (zh) | 基于ieee 1394接口的物理层电路 | |
JP4988544B2 (ja) | データ処理装置およびデータ処理方法並びにプログラム | |
CN113934667A (zh) | 一种基于fpga逻辑资源延时的过采样异步通信方法 | |
CN111367850B (zh) | 一种fpga和mcu之间的快速通信方法 | |
CN110780650B (zh) | 一种通信总线协议转换方法及系统 | |
CN112398713A (zh) | 一种背板总线数据发送方法及装置 | |
CN116955262A (zh) | 一种基于fpga的8b/10b编解码的ip核 | |
CN116545582A (zh) | 基于串行收发器的数据传输方法、收发器、介质及设备 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
Cao et al. | Working principle and application analysis of UART | |
CN210405365U (zh) | 多协议聚合传输装置及系统 | |
CN113985726A (zh) | 一种apf控制系统的主从控制器通信方法 | |
WO2023104210A1 (zh) | 数据传输芯片及电子设备 | |
JP5521847B2 (ja) | シリアル通信回路 | |
CN107810495B (zh) | 具有线活动检测器的uart |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211126 Address after: Room 1613, 6 / F, building 1, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 Applicant after: Beijing Helishi Control Technology Co.,Ltd. Address before: 100176 courtyard 2, Disheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Applicant before: BEIJING HOLLYSYS Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210223 |
|
RJ01 | Rejection of invention patent application after publication |