CN105515926A - 一种基于fpga的二进制同步通信协议控制器 - Google Patents
一种基于fpga的二进制同步通信协议控制器 Download PDFInfo
- Publication number
- CN105515926A CN105515926A CN201510828912.2A CN201510828912A CN105515926A CN 105515926 A CN105515926 A CN 105515926A CN 201510828912 A CN201510828912 A CN 201510828912A CN 105515926 A CN105515926 A CN 105515926A
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- character
- control
- module
- 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.)
- Granted
Links
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/40052—High-speed IEEE 1394 serial bus
- H04L12/40058—Isochronous transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0072—Error control for data other than payload data, e.g. control data
- H04L1/0073—Special arrangements for feedback channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- 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/403—Bus networks with centralised control, e.g. polling
Abstract
本发明公开了一种基于FPGA的二进制同步通信协议控制器,包括与外部处理器连接的处理器接口模块、数据发送缓存模块、数据接收缓存模块、发送通道模块、接收通道模块和波特率生成模块;数据发送缓存模块、数据接收缓存模块和波特率生成模块分别连接所述处理器接口模块;发送通道模块连接数据发送缓存模块,接收通道模块连接数据接收缓存模块,发送通道模块和接收通道模块之间进行状态指示交互。
Description
技术领域
本发明属于数据通信领域,具体涉及一种基于FPGA(Field-ProgrammableGateArray,现场可编程门阵列)的二进制同步通信(BinarySynchronousCommunication,简称BSC)协议控制器。
背景技术
虽然随着信息系统向网络化的不断发展,接入信息系统的各型装备和设备也在朝着网络化方向发展,但是为了保护已有的投资,兼容前期建设的系统,有的信息系统装备不仅配置高速主用的网络通信接口,还保留着低速备用的串行数据通信接口。这些低速备用串行通信接口支持的典型通信协议包括面向字符同步通信协议和面向比特的同步通信协议,其中面向字符同步通信协议的典型代表是IBM公司提出的二进制同步通信协议。二进制同步通信协议是一种面向字符的数据链路层协议,支持该协议的控制器芯片主要有Zilog公司推出的以Z85C30为代表的串行通信控制器芯片和HITACHI公司推出的以HD64570为代表的串行通信适配器芯片。由于这些半导体公司业务转型升级,支持二进制同步通信协议的控制器芯片面临停产的风险,为了避免这一风险,需要寻找一种不受限制的可替代商用ASIC专用控制器芯片的可编程实现方式,基于FPGA进行设计与实现恰好能满足这一要求。FPGA芯片是一种完全可编程逻辑器件,具备良好的灵活性和可定制性,特别适合用户定制和应用各种功能的IP核,使用FPGA实现的二进制同步通信协议控制器具有良好的可移植性,可在不同FPGA芯片上自由实现,不仅可以免除因BSC串行通信控制器芯片停产的风险,还能根据应用需求灵活进行功能扩展与裁剪,具备良好的商用价值和研究意义。
《利用通用微处理器实现同步通信数据收发的装置》是与本发明最接近的现有技术,该发明的技术实现使用通用微处理器(如单片机、DSP等)的输入输出引脚与同步串行通信接口(如BSC、HDLC),采用通用微处理器软件方法实现不同规程(如BSC、HDLC)同步串行通信数据的发送、接收。该发明技术在通用微处理器上使用软件编程方法实现,与处理器指令集和性能紧密相关,跨处理器平台移植不方便,且难以实现多通道实现。
发明内容
发明目的:本发明的目的是提供一种在FPGA中实现二进制同步通信控制器的方法,应用该发明,不仅能够实现二进制同步通信功能,同时能够省去专用ASIC芯片,降低因ASIC芯片停产给设备研发带来的技术风险与投资风险,另一方面提高二进制同步通信控制器可移植性和使用灵活性。
技术方案:为实现上述目的,本发明所述的二进制同步通信协议控制器,其组成部分包括与外部处理器连接的处理器接口模块、数据发送缓存模块、数据接收缓存模块、发送通道模块、接收通道模块和波特率生成模块;
所述数据发送缓存模块、数据接收缓存模块和波特率生成模块分别连接所述处理器接口模块;
所述发送通道模块连接数据发送缓存模块,接收通道模块连接数据接收缓存模块,发送通道模块和接收通道模块之间进行状态指示交互。
所述的二进制同步通信协议控制器采用硬件描述语言在FPGA中实现。
其中,所述处理器接口模块提供外部处理器对控制器进行访问控制的寄存器接口,包括寄存器空间、地址总线、数据总线、控制总线,实现外部处理器对寄存器读写的编程控制、收发数据交互。控制总线信号包括读信号RD(READ)、写信号WR(WRITE)、片选信号CS(CHIPSELECT)和中断信号INT(INTERRUPT);外部处理器通过地址总线、数据总线、片选信号CS和读信号RD读取内部寄存器的值,通过地址总线、数据总线、片选信号CS和写信号WR向内部寄存器写入相应的数值;中断信号INT用于通知外部处理器二进制同步通信协议控制器已发生中断事件;
外部处理器通过向控制寄存器写入相应的控制命令数值,控制发送通道模块和接收通道模块是处于复位状态或者正常工作状态、控制发送和接收时钟是来自于外部时钟线路还是内部波特率生成模块(发送时钟是发送通道模块的一根信号线,接收时钟是接收通道模块的一根信号线),控制中断事件的使能与禁止;当控制寄存器中任意中断事件被使能后,一旦发生相应的中断事件,控制器将触发INT中断脉冲信号,通知外部处理器已发生了中断事件,并且中断状态寄存器对应的中断事件状态位置1,外部处理器通过读取中断状态寄存器数值判断中断事件的类型,并采取相应的读写操作;读取中断状态寄存器的操作将使中断状态寄存器清零。
所述的数据发送缓存模块,用于缓存发送数据的先入先出(FirstInFirstOut,简称FIFO)存储器,实现处理器接口模块对发送数据的按顺序写入和发送通道模块对发送数据的按顺序读出。所述数据发送缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储器,数据位宽为16比特,存储深度可配置。
当外部处理器发送一帧数据帧时,首先获取发送数据发送缓存模块中发送缓冲区的状态信息,当发送缓冲区允许写入发送数据时,外部处理器按以下步骤写入数据:
步骤1-1,向发送缓冲区数据寄存器写入字符段a,字符段a表示一帧数据帧开始;
步骤1-2,所发送数据存在头部信息时,向发送缓冲区数据寄存器写入头部信息数据,头部信息数据内包括头部信息字符b;
步骤1-3,向发送缓冲区数据寄存器写入包括正文字符c的正文数据信息;
步骤1-4,向发送缓冲区数据寄存器写入字符段d,字符段d表示一帧数据帧结束。
所述数据接收缓存模块,用于缓存接收数据的先入先出(FirstInFirstOut,简称FIFO)存储器,实现接收通道模块对接收数据的按顺序写入和处理器接口模块对接收数据的按顺序读出。所述数据接收缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储器,数据位宽为16比特,存储深度可配置。
当外部处理器读取一帧数据帧时,首先获取数据接收缓存模块中接收缓冲区的状态信息,当接收缓冲区允许数据读出时,外部处理器按照以下步骤读取一帧数据帧:
步骤2-1,读取接收缓冲区数据寄存器,如果读出数据包括字符段a,表示一帧数据帧开始即帧起始数据,继续读取后续数据;
步骤2-2,读取接收缓冲区数据寄存器,如果读出数据包括头部信息字符b,表示读取的是头部信息数据;
步骤2-3,读取接收缓冲区数据寄存器,如果读出数据包括正文字符c,表示读取的是正文数据信息;
步骤2-4,读取接收缓冲区数据寄存器,如果读出数据包括字符段d,表示已读取一帧完整的数据帧,且数据帧校验正确,外部处理器将该数据帧视为有效数据帧;如果读出数据包括字符段e,表示已读取一帧完整的数据帧,但是数据帧校验错误,外部处理器将该数据帧视为无效数据帧,并丢弃该数据帧。
所述发送通道模块,用于读取数据发送缓存模块中的数据,按照BSC二进制同步通信协议数据帧格式进行组帧、转义、校验计算以及按时序发送数据,发出状态指示信号,并根据接收通道模块的指示信号选择发送控制帧;发送通道模块脱离复位状态后,按照以下步骤进行工作:
步骤3-1,根据接收通道模块的指示信号标记判断是否已接收到未确认的一帧数据帧,如果已接收到未确认的一帧数据帧,进入步骤3-2;如果未接收到数据帧,但是数据发送缓存FIFO存储器中有数据需要发送,进入步骤3-3;否则继续停留在步骤3-1进行检测判断;
步骤3-2,根据接收到数据帧正确性的指示信号和奇帧计数或者偶帧计数,选择发送控制字符组{SYN、SYN、ACK0}、控制字符组{SYN、SYN、ACK1}或控制字符组{SYN、SYN、NAK},返回步骤3-1;控制字符组{SYN、SYN、ACK0}包括SYN、SYN和ACK0三个控制字符,控制字符组{SYN、SYN、ACK1}包括SYN、SYN和ACK1三个控制字符,控制字符组{SYN、SYN、NAK}包括SYN、SYN和NAK三个控制字符;
步骤3-3,读取发送缓存模块FIFO存储器数据,判断是否为帧起始数据字符段a,如果不是帧起始数据,则将该数据丢弃;如果是帧起始数据,继续读取下一个数据,如果下一个数据包括头部信息字符b,则发送输出控制字符组{SYN、SYN、SOH},控制字符组{SYN、SYN、SOH}包括SYN、SYN和SOH三个控制字符,然后开始发送头部数据信息,接着继续读出头部信息数据并在发送时钟驱动下发送,同时对头部信息数据进行CRC差错校验计算,直到读到包括正文字符c的正文数据信息,进入步骤3-4;
步骤3-4,如果从数据发送缓存模块FIFO存储器中读出的数据为标记为正文的数据,则在发送完头部信息后紧接着发送控制字符组{DLE、STX},控制字符组{DLE、STX}包括DLE和STX两个控制字符,并进行CRC校验计算;然后发送依次读出的正文数据,并将正文数据进行CRC校验计算,当读出正文数据中存在DLE字符时则多发送一个附加的DLE字符,附加的DLE字符不参与CRC校验计算;如果读出的数据包括字符段d,则表示一帧数据帧读出结束,接着依次发出控制字符组{DLE、ETX}和控制字符CRC校验计算得到的结果,一帧数据帧发送完毕,进入步骤3-5;控制字符组{DLE、ETX}包括DLE和ETX两个控制字符;
步骤3-5,等待接收通道模块在接收到确认控制帧后发出的指示信号,并启动超时定时,如果在超时定时时间内接收确认信息指示信号或者发生超时事件,返回执行步骤3-1;
其中使用的控制字符功能如下表所示:
控制字符 | ASCII码 | 功能 |
ACK 0 | DLE和0 | 确认偶数帧已完好接收或已准备好接收 |
ACK 1 | DLE和1 | 确认的奇数帧已经接收 |
DLE | DLE | 数据透明标志 |
SYN | SYN | 同步标志,告知接收端有数据帧到来 |
SOH | SOH | 头部信息开始 |
STX | STX | 正文文本开始 |
ETB | ETB | 正文中文本块结束 |
ETX | ETX | 正文文本结束 |
EOT | EOT | 发送终止 |
ENQ | ENQ | 请求响应 |
NAK | NAK | 接收到的帧已损坏或没有数据发送 |
所述接收通道模块,用于接收同步串行数据,进行同步检测、转义检测、控制字检测、数据检测、校验检测与控制帧类型检测,将获得的有效数据发送至数据接收缓存模块,并发出相应指示信号;接收通道模块脱离复位状态后,按照以下步骤进行工作:
步骤4-1,在接收时钟(接收时钟是接收通道模块的一根信号线)驱动下,不断搜索检测同步字符SYN,如果搜索到单个或两个以上SYN字符,表示接收到同步字符,执行步骤4-2;
步骤4-2,在接收时钟驱动下,如果同步字符SYN后的第一个非SYN字符为SOH字符,则表示后续将接收数据帧的头部信息,接收通道模块向数据接收缓存FIFO存储器写入字符段a表示新的一帧数据帧开始,然后执行步骤4-3;如果同步字符SYN后接收的第一个和第二个非SYN字符为控制字符组{DLE、STX},控制字符组{DLE、STX}包括DLE和STX两个控制字符,则表示后续将接收透明文本区域的字符,(透明文本的含义是,在正文数据区域的任意比特数据能够被当作正常数据传输,而不会与控制字符相混淆。实现手段:透明文本是通过字符填充过程实现的,通过数据链路转义(DLE)字符定义透明文本区域以及在透明文本区域内的DLE字符之前添加一个附加的DLE字符。定义透明文本区域,就是在正文数据开始的STX字符前添加一个DLE字符,并且在正文数据结束的ETX或ETB前也添加一个DLE字符。第一个DLE字符通知透明文本区域开始,在透明文本区域可能存在与控制字符相同的数据,并要求忽略控制符。)接收通道模块向数据接收缓存FIFO存储器写入字符段a,表示新的一帧数据帧开始,执行步骤4-4;如果同步字符SYN后接收的第一个非SYN字符为控制字符,则表示该数据帧为控制帧,执行步骤4-6;
步骤4-3,在接收时钟驱动下,接收通道模块通过串并转换按位接收头部信息字符,并在头部信息字符添加头部信息字符b,然后写入数据接收缓存FIFO存储器,同时将接收到的字符进行CRC校验计算;当检测接收到控制字符组{DLE、STX}时,表示后续将接收到透明文本区域的正文数据,控制字符组{DLE、STX}包括DLE和STX两个控制字符,控制字符组{DLE、STX}不被写入数据接收缓存FIFO存储器,只进行CRC校验计算;
步骤4-4,在接收时钟驱动下,接收通道模块通过串并转换按位接收透明文本区域的正文数据,如果接收到非DLE字符时,即为有效的正文数据,如果接收到一个DLE后紧接着接收到一个控制字符DLE,则其中一个DLE字符为附加的填充字符,并将该填充字符删除,将有效正文字符c添加正文数据标记后,写入数据接收缓存FIFO存储器中,并对有效正文数据字符进行CRC校验计算;当接收到控制字符组{DLE、ETX}或控制字符组{DLE、ETB}时,表示透明文本区域结束,即数据帧正文数据结束,后续跟随的两个字节字符即为BCC差错校验字符;控制字符组{DLE、ETX}包括DLE和ETX两个控制字符,控制字符组{DLE、ETB}包括DLE和ETB两个控制字符;
步骤4-5,在接收时钟驱动下接收控制字符组{DLE、ETX}或控制字符组{DLE、ETB}后续的两个BCC差错校验字符,并将这两个差错校验字符与接收过程中计算得到的CRC校验值进行对比,二者一致则表示数据帧接收正确,接收通道模块向数据接收缓存FIFO存储器写入字符段d,表示一帧数据帧接收完毕,且差错校验正确;否则表示数据接收错误,接收通道模块向数据接收缓存FIFO存储器写入字符段e,表示一帧数据帧接收完毕,但是差错校验错误,外部处理器丢弃该数据帧。接收通道模块发送数据帧接收完毕指示信号和数据帧正确性的指示信号,返回执行步骤4-1;
步骤4-6,在接收时钟驱动下,接收到控制帧的控制字符,根据接收到控制字符输出对应指示信号,然后返回步骤4-1。
所述波特率生成模块,用于在处理器接口模块相关寄存器的控制下,实现收发时钟的内外时钟源选择、内部波特率选择与波特率产生等。波特率生成模块根据处理器接口模块控制寄存器的相关控制位,实现收发时钟的内外时钟源选择,根据波特率选择寄存器的控制位,确定对高频时钟源的分频系数,通过对高频时钟源的分频处理,获得相应的波特率发送接收内部时钟;外部处理器通过向波特率选择寄存器写入相应的波特率选择数值,在所列举的典型波特率中进行选择,并将选择结果通知波特率生成模块产生相应的波特率时钟。
有益效果:本发明采用硬件描述语言在FPGA上完成二进制同步通信协议控制器各模块的设计与实现,能够实现控制器在不同FPGA系列芯片间的无修改移植,摆脱了对商用ASIC专用芯片的依赖,降低了因商用ASIC芯片停产带来的研发风险,同时在FPGA中能够根据需求对二进制同步通信的通道进行灵活扩展,提高了系统设计的灵活性和设计效率,具有良好的实际应用价值。
附图说明
图1为二进制同步通信协议典型数据帧格式;
图2为二进制同步通信协议典型控制帧格式;
图3为二进制同步通信协议控制器总体结构示意图;
图4为采用本发明设计的某通信协议处理板卡组成示意图。
具体实施方式
下面结合表格与附图,对本发明具体实施例进行详细说明,但是本发明的保护范围不局限于所述实施例。
表1为二进制同步通信协议典型控制字符。
表1二进制同步通信协议的典型控制字符
控制字符 | ASCII码 | 功能 |
ACK 0 | DLE和0 | 确认偶数帧已完好接收或已准备好接收 |
ACK 1 | DLE和1 | 确认的奇数帧已经接收 |
DLE | DLE | 数据透明标志 |
SYN | SYN | 同步标志,告知接收端有数据帧到来 |
SOH | SOH | 头部信息开始 |
STX | STX | 正文文本开始 |
ETB | ETB | 正文中文本块结束 |
ETX | ETX | 正文文本结束 |
EOT | EOT | 发送终止 |
ENQ | ENQ | 请求响应 |
NAK | NAK | 接收到的帧已损坏或没有数据发送 |
二进制同步通信协议的确认帧必须是ACK0和ACK1交替使用。
二进制同步通信协议传输的数据不应只包括纯文本信息(由字母表中的字符组成的字或者图),而是应该能够传输所有二进制序列。如果传输过程中在非控制字符的字段出现与控制字符相同的8比特二进制序列时,接收方将会将这些二进制序列视为控制字符,从而破坏整个报文的意义,引起数据信息混乱。为了避免这种信息混乱的发生,二进制同步通信协议规定了以字节填充的方式来保证数据透明传输,以数据链路转义(DLE)字符定义透明文本区域,并在透明文本区域内的DLE字符之前添加一个附加DLE字符。为定义透明文本区域,在STX字符之前插入一个DLE链路转义字符,以通知接收端在文本段可能出现控制字符,并要求忽略这些控制字符,并在ETX(或ETB)字符前也插入一个DLE链路转义字符,以通知接收透明文本区域结束,后续出现的控制字符可视为有效控制字符。如果在透明文本区域出现与DLE相同的字符,需要在该字符前附加一个DLE字符,以通知接收端文本中的出现一个有效的DLE文本字符。经过字节填充的典型透明数据帧如图1所示。
经字节填充的透明数据帧中SYN为同步字符,SYN字符数量可以是一个、两个或多个,本发明在发送通道模块中支持两个SYN字符,在接收通道模块中支持一个、两个或多个SYN字符。任何在SOH之后和DLE+STX之前的字符都是头部信息,头部信息根据实际应用情况决定是否需要。DLE+STX之后和DLE+EXT(或DLE+ETB)之前的数据为正文数据。DLE+ETX(或DLE+ETB)之后的两个字节的BCC为差错校验,本发明支持的差错校验多项式为CCITT-CRC:X16+X12+X5+1。
二进制同步通信协议的控制帧格式如图2所示,控制帧由同步字符SYN、一个或多个控制字符以及两个字节的BCC差错校验组成,主要完成帧的肯定应答、否定应答等。
二进制同步通信协议控制器总体结构如图3所示,主要包括处理器接口模块、数据发送缓存模块、数据接收缓存模块、发送通道模块、接收通道模块和波特率生成模块。
处理器接口模块提供外部处理器对控制器进行访问控制的寄存器接口,包括寄存器空间、地址总线、数据总线、控制总线等,实现外部处理器对寄存器读写的编程控制、收发数据交互等。处理器接口模块提供了8位宽的地址总线ADDR,16位宽的数据总线DATA,控制总线包括读信号RD(READ)、写信号WR(WRITE)、片选信号CS(CHIPSELECT)和中断信号INT(INTERRUPT)等,外部处理器通过地址总线ADDR、数据总线DATA、片选信号CS和读信号RD可以读取内部寄存器的值,相应的通过地址总线ADDR、数据总线DATA、片选信号CS和写信号WR可以向内部寄存器写入相应的数值。INT中断信号用于通知外部处理器,二进制同步通信协议控制器已发生某种类型的中断事件。
二进制同步通信协议控制器内部寄存器描述如表2所示。
表2二进制同步通信协议控制器内部寄存器
外部处理器通过向控制寄存器写入相应的控制命令数值,可以控制发送接收通道是处于复位状态还是正常工作状态、控制发送和接收时钟是来自于外部时钟线路还是内部波特率生成模块、控制中断事件的使能与禁止等。
外部处理器通过向波特率选择寄存器写入相应的波特率选择数值,可以在所列举的典型波特率中进行选择,并将选择结果通知波特率生成模块产生相应的波特率时钟。
当控制寄存器中任意中断事件被使能后,一旦发生相应的中断事件,控制器触发一个INT中断脉冲信号,通知外部处理器已发生了中断事件,并且中断状态寄存器对应的中断事件状态位置1,外部处理器通过读取中断状态寄存器数值可以判断发生哪些中断事件,然后决定采取相应读写操作。读取中断状态寄存器的操作将使中断状态寄存器清零。
发送缓存区空满状态和使用量是外部处理器是否向发送缓存区写入数据的一个依据。当外部处理器向数据缓存寄存器写入数据时,16位宽的数据总线上Bit7~Bit0为有效数据,Bit15~Bit8为数据类型标记。当外部处理器需要发送一帧数据帧时,首先应获取发送缓冲区状态信息,当发送缓冲区允许发送数据写入时,外部处理器按以下步骤写入数据:
步骤1-1,向数据发送缓存模块中的发送缓存数据寄存器写入数据0xFFFF,表示一帧数据帧开始;
步骤1-2,所发送数据存在头部信息时,向发送缓存数据寄存器写入头部信息数据,头部信息数据格式为0x09XX,其中XX为头部信息字符;
步骤1-3,向发送缓存数据寄存器写入正文数据信息0x00XX,其中XX为正文字符;
步骤1-4,向发送缓存数据寄存器写入数据0x0EEE,表示一帧数据帧结束。
同样,外部处理器进行数据接收时,首先获取接收缓冲区状态信息,当接收缓冲区允许数据读出时,外部处理器按照一下步骤读取一帧数据信息:
步骤2-1,读取数据接收缓存模块中的接收缓存数据寄存器,如果读出数据为0xFFFF,表示一帧数据帧开始,继续读取后续数据;
步骤2-2,读取接收缓存数据寄存器,如果读出数据为0x09XX,表示读取的是头部信息数据,其中XX是头部信息字符;
步骤2-3,读取接收缓存数据寄存器,如果读出数据为0x00XX,表示读取的是正文数据信息,其中XX为正文字符;
步骤2-4,读取接收缓存数据寄存器,如果读出数据为0x0EEE,表示一帧数据帧结束,且校验正确,该数据帧有效;如果读出数据为0xEEEE,表示一帧数据帧结束,但校验错误,外部处理器应丢弃该数据帧。
数据发送缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储器,数据位宽为16比特,存储深度可配置。外部处理器向发送缓冲数据寄存器和标记寄存器写入数据,发送缓存数据寄存器和标记寄存器的数据同时写入发送缓存FIFO存储器进行顺序存储。发送缓存FIFO存储器中的数据将被发送通道模块读取,并按规定帧格式进行发送。
同样,数据接收缓存模块也是通过FPGA内部存储逻辑单元构建的FIFO存储器,数据位宽为16比特,存储深度可配置。接收通道模块接收到的数据按照帧起始、头部信息、正文数据、控制信息、帧结束且校验正确、帧结束且校验错误等进行分类标记后,写入数据接收缓存FIFO存储器。外部存储器读取接收数据寄存器时,实际读取的数值来自与数据接收缓存FIFO存储器。
发送通道模块,用于读取数据发送缓存模块中的数据,按照二进制同步通信协议数据帧格式进行组帧、转义、校验计算以及按时序发送数据,发出状态指示信号,并根据接收通道模块的指示信号选择发送控制帧;发送通道模块脱离复位状态后,按照以下步骤进行工作:
步骤3-1,根据接收通道模块的指示信号标记判断是否已接收到未确认的一帧数据帧,如果已接收到未确认的一帧数据帧,进入步骤3-2;如果未接收到数据帧,但是数据发送缓存FIFO存储器中有数据需要发送,进入步骤3-3;否则继续停留在步骤3-1进行检测判断;
步骤3-2,根据接收到数据帧正确性的指示信号和奇帧计数或者偶帧计数,选择发送控制字符组{SYN、SYN、ACK0}、控制字符组{SYN、SYN、ACK1}或控制字符组{SYN、SYN、NAK},返回步骤3-1;控制字符组{SYN、SYN、ACK0}包括SYN、SYN和ACK0三个控制字符,控制字符组{SYN、SYN、ACK1}包括SYN、SYN和ACK1三个控制字符,控制字符组{SYN、SYN、NAK}包括SYN、SYN和NAK三个控制字符;
步骤3-3,读取发送缓存模块FIFO存储器数据,判断是否为帧起始数据0xFFFF,如果不是帧起始数据,则将该数据丢弃;如果是帧起始数据,继续读取下一个数据,如果下一个数据标记为头部信息数据,则发送输出控制字符组{SYN、SYN、SOH},控制字符组{SYN、SYN、SOH}包括SYN、SYN和SOH三个控制字符,接着开始发送头部数据信息,并继续读出头部信息数据在发送时钟驱动下发送,直到读到标记正文的数据,将读出的头部信息数据进行CRC差错校验计算,然后进入步骤3-4;
步骤3-4,如果从数据发送缓存模块FIFO存储器中读出的数据为标记为正文的数据,则在发送完头部信息后紧接着发送控制字符组{DLE、STX},控制字符组{DLE、STX}包括DLE和STX两个控制字符,并进行CRC校验计算;然后发送依次读出的正文数据,并将正文数据进行CRC校验计算,当读出正文数据中存在DLE字符时则多发送一个附加的DLE字符,附加的DLE字符不参与CRC校验计算;如果读出的数据是帧结束标识0x0EEE,则表示一帧数据帧读出结束,接着依次发出控制字符组{DLE、ETX}和控制字符CRC校验计算得到的结果,一帧数据帧发送完毕,进入步骤3-5;控制字符组{DLE、ETX}包括DLE和ETX两个控制字符;
步骤3-5,等待接收通道模块在接收到确认控制帧后发出的指示信号,并启动超时定时(如1秒),如果在超时定时时间内接收确认信息指示信号或者发生超时事件,返回执行步骤3-1。
所述接收通道模块,用于接收同步串行数据,进行同步检测、转义检测、控制字检测、数据检测、校验检测与控制帧类型检测,将获得的有效数据发送到数据接收缓存模块,并发出相应指示信号;接收通道模块脱离复位状态后,按照以下步骤进行工作:
步骤4-1,在接收时钟驱动下,不断搜索检测同步字符SYN,如果搜索到单个、两个或多个SYN字符,表示接收到同步字符,执行步骤4-2;
步骤4-2,在接收时钟驱动下,如果同步字符SYN后的第一个非SYN字符为SOH字符,则表示后续将接收数据帧的头部信息,接收通道模块向接收数据缓存FIFO存储器写入0xFFFF表示新的一帧数据帧开始,然后执行步骤4-3;如果同步字符SYN后接收的第一个和第二个非SYN字符为控制字符组{DLE、STX},控制字符组{DLE、STX}包括DLE和STX两个控制字符,则表示后续将接收透明文本区域的字符,接收通道模块向接收数据缓存FIFO存储器写入0xFFFF,表示新的一帧数据帧开始,执行步骤4-4;如果同步字符SYN后接收的第一个非SYN字符为ENQ、ACK0、ACK1、NAK、EOT等控制字符,则表示该数据帧为控制帧,执行步骤4-6;
步骤4-3,在接收时钟驱动下,接收通道模块通过串并转换按位接收头部信息字符,并在头部信息字符添加头部信息数据标记即0x09XX,XX为头部信息字符,然后写入数据接收缓存FIFO存储器,同时将接收到的字符进行CRC校验计算;当检测接收到控制字符组{DLE、STX}时,表示后续将接收到透明文本区域的字符,控制字符组{DLE、STX}包括DLE和STX两个控制字符,控制字符组{DLE、STX}不被写入数据接收缓存FIFO存储器,只进行CRC校验计算;
步骤4-4,在接收时钟驱动下,接收通道模块通过串并转换按位接收透明文本区域的字符,如果接收到非DLE字符时,即为有效的正文数据,如果接收到一个DLE后有紧接着接收到一个DLE,则其中一个DLE字符为附加的填充字符,并将该填充字符删除,有效正文字符数据添加正文数据标记后,即0x00XX,XX为正文数据,写入数据接收缓存FIFO存储器中,并对有效正文数据字符进行CRC校验计算;当接收到控制字符组{DLE、ETX}或控制字符组{DLE、ETB}时,表示透明文本区域结束,即数据帧正文数据结束,后续跟随的两个字节字符即为BCC差错校验字符;控制字符组{DLE、ETX}包括DLE和ETX两个控制字符,控制字符组{DLE、ETB}包括DLE和ETB两个控制字符;
步骤4-5,在接收时钟驱动下接收控制字符组{DLE、ETX}或控制字符组{DLE、ETB}后续的两个BCC差错校验字符,并将这两个差错校验字符与接收过程中计算得到的CRC校验值进行对比,二者一致则表示数据帧接收正确,接收通道模块向数据接收缓存FIFO存储器写入0x0EEE,表示一帧数据帧接收完毕,且差错校验正确,该数据帧为有效数据帧;否则表示数据接收错误,接收通道模块向数据接收缓存FIFO存储器写入0xEEEE,表示一帧数据帧接收完毕,但是差错校验错误,外部处理器视该数据帧为无效数据帧,应予以丢弃。接收通道模块发送数据帧接收完毕指示信号和数据帧正确性的指示信号,返回执行步骤4-1;
步骤4-6,在接收时钟驱动下,接收到控制帧的控制字符,根据接收到控制字符的不同,输出不同指示信号(查询、肯定的确认、否定的确认、终止等),然后返回步骤4-1。
波特率生成模块,根据处理器接口模块控制寄存器的相关控制位,实现收发时钟的内外时钟源选择,根据波特率选择寄存器的控制位,确定对高频时钟源(如22.1184MHz的主时钟)的分频系数,通过对高频时钟源的分频处理,获得相应的波特率发送接收内部时钟。
图4所示为根据本发明设计某通信处理板卡的组成示意图。图中采用了8组本发明方法完成8路二进制同步通信链路,实现8路情报传输通道。该通信处理板卡依据PICMG2.16规范进行设计,板卡通过8路二进制同步通信链路接入8路情报源,通过CPCI背板的以太网接口信号与系统服务器连接,实现情报源与系统服务器之间的情报传输。
本发明采用硬件描述语言在FPGA上实现二进制同步通信协议控制器,如实施例所描述,能够实现控制器在FPGA芯片上的无修改移植,摆脱了对商用ASIC专用芯片的依赖,降低了因商用ASIC芯片停产带来的研发生产风险,同时在FPGA中能够对二进制同步通信的通道进行灵活扩展,提高了系统设计的灵活性和设计效率,具有良好的实际应用价值。
本发明提供了一种基于FPGA的二进制同步通信协议控制器,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (9)
1.一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述的二进制同步通信协议控制器其组成包括与外部处理器连接的处理器接口模块、数据发送缓存模块、数据接收缓存模块、发送通道模块、接收通道模块和波特率生成模块;
所述数据发送缓存模块、数据接收缓存模块和波特率生成模块分别连接所述处理器接口模块;
所述发送通道模块连接数据发送缓存模块,接收通道模块连接数据接收缓存模块,发送通道模块和接收通道模块之间进行状态指示交互。
2.根据权利要求1所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述处理器接口模块提供外部处理器对控制器进行访问控制的寄存器接口,包括寄存器空间、地址总线、数据总线、控制总线,实现外部处理器对寄存器读写的编程控制、收发数据交互;控制总线信号包括读信号RD、写信号WR、片选信号CS和中断信号INT;
外部处理器通过地址总线、数据总线、片选信号CS和读信号RD读取内部寄存器的值,通过地址总线、数据总线、片选信号CS和写信号WR向内部寄存器写入相应的数值;中断信号INT用于通知外部处理器,二进制同步通信协议控制器已发生中断事件;
外部处理器通过向控制寄存器写入相应的控制命令数值,控制发送通道模块和接收通道模块处于复位状态或者正常工作状态,控制发送和接收时钟是来自于外部时钟线路还是内部波特率生成模块,控制中断事件的使能与禁止;当控制寄存器中任意中断事件被使能后,一旦发生相应的中断事件,控制器触发一个INT中断脉冲信号,通知外部处理器已发生中断事件,并且中断状态寄存器对应的中断事件状态位置1,外部处理器通过读取中断状态寄存器数值判断中断事件的类型,并采取相应的读写操作;读取中断状态寄存器的操作使中断状态寄存器清零。
3.根据权利要求2所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述数据发送缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储器,数据位宽为16比特,存储深度可配置。
4.根据权利要求3所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,当外部处理器发送一帧数据帧时,首先获取数据发送缓存模块中发送缓冲区的状态信息,当发送缓冲区允许写入发送数据时,外部处理器按以下步骤写入数据:
步骤1-1,向发送缓冲区数据寄存器写入字符段a,字符段a表示一帧数据帧开始;
步骤1-2,所发送数据存在头部信息时,向发送缓冲区数据寄存器写入头部信息数据,头部信息数据内包括头部信息字符b;
步骤1-3,向发送缓冲区数据寄存器写入包括正文字符c的正文数据信息;
步骤1-4,向发送缓冲区数据寄存器写入字符段d,字符段d表示一帧数据帧结束。
5.根据权利要求4所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述数据接收缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储器,数据位宽为16比特,存储深度可配置。
6.根据权利要求5所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,当外部处理器读取一帧数据帧时,首先获取数据接收缓存模块中接收缓存区的状态信息,当接收缓冲区允许数据读出时,外部处理器按照以下步骤读取一帧数据帧:
步骤2-1,读取接收缓冲区数据寄存器,如果读出数据包括字符段a,表示一帧数据帧开始,继续读取后续数据;
步骤2-2,读取接收缓冲区数据寄存器,如果读出数据包括头部信息字符b,表示读取的是头部信息数据;
步骤2-3,读取接收缓冲区数据寄存器,如果读出数据包括正文字符c,表示读取的是正文数据信息;
步骤2-4,读取接收缓冲区数据寄存器,如果读出数据包括字符段d,表示已读取一帧完整的数据帧,且数据帧校验正确,外部处理器将该数据帧视为有效数据帧;如果读出数据包括字符段e,表示已读取一帧完整的数据帧,但是数据帧校验错误,外部处理器将该数据帧视为无效数据帧,并丢弃该数据帧。
7.根据权利要求6所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述发送通道模块用于读取数据发送缓存模块中的数据,按照二进制同步通信协议数据帧格式进行组帧、转义、校验计算以及按时序发送数据,发出状态指示信号,并根据接收通道模块的指示信号选择发送控制帧;发送通道模块脱离复位状态后,按照以下步骤进行工作:
步骤3-1,根据接收通道模块的指示信号标记判断是否已接收到未确认的一帧数据帧,如果已接收到未确认的一帧数据帧,进入步骤3-2;如果未接收到数据帧,但是数据发送缓存FIFO存储器中有数据需要发送,进入步骤3-3;否则继续停留在步骤3-1进行检测判断;
步骤3-2,根据接收到数据帧正确性的指示信号和奇帧计数或者偶帧计数,选择发送控制字符组{SYN、SYN、ACK0}、控制字符组{SYN、SYN、ACK1}或控制字符组{SYN、SYN、NAK},返回步骤3-1;
步骤3-3,读取发送缓存模块FIFO存储器数据,判断是否为帧起始数据字符段a,如果不是帧起始数据,则将该数据丢弃;如果是帧起始数据,继续读取下一个数据,如果下一个数据包括头部信息字符b,则发送输出控制字符组{SYN、SYN、SOH},接着继续读出头部信息数据并在发送时钟驱动下发送,同时对头部信息数据进行CRC差错校验计算,直到读取包括正文字符c的正文数据信息,然后进入步骤3-4;
步骤3-4,如果从数据发送缓存模块FIFO存储器中读出的数据为标记为正文的数据,则在发送完头部信息后紧接着发送控制字符组{DLE、STX},并进行CRC校验计算;然后发送依次读出的正文数据,并将正文数据进行CRC校验计算,当读出正文数据中存在DLE字符时则多发送一个附加的DLE字符,附加的DLE字符不参与CRC校验计算;如果读出的数据包括字符段d,则表示一帧数据帧读出结束,接着依次发出控制字符组{DLE、ETX}和CRC校验计算得到的结果,一帧数据帧发送完毕,进入步骤3-5;
步骤3-5,等待接收通道模块在接收到确认控制帧后发出的指示信号,并启动超时定时,如果在超时定时时间内接收确认控制帧指示信号或者发生超时事件,返回执行步骤3-1;
其中使用的控制字符功能如下表所示:
8.根据权利要求7所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述接收通道模块用于接收同步串行数据,进行同步检测、转义检测、控制字检测、数据检测、校验检测与控制帧类型检测,将获得的有效数据发送至数据接收缓存模块,并发出相应指示信号;接收通道模块脱离复位状态后,按照以下步骤进行工作:
步骤4-1,在接收时钟驱动下,不断搜索检测同步字符SYN,如果搜索到单个或两个以上SYN字符,表示接收到同步字符,执行步骤4-2;
步骤4-2,在接收时钟驱动下,如果同步字符SYN后的第一个非SYN字符为SOH字符,则表示后续将接收数据帧的头部信息,接收通道模块向接收数据缓存FIFO存储器写入字符段a表示新的一帧数据帧开始,然后执行步骤4-3;如果同步字符SYN后接收的第一个和第二个非SYN字符为控制字符组{DLE、STX},则表示后续将接收透明文本区域的字符,接收通道模块向接收数据缓存FIFO存储器写入字符段a,表示新的一帧数据帧开始,执行步骤4-4;如果同步字符SYN后接收的第一个非SYN字符为控制字符,则表示该数据帧为控制帧,执行步骤4-6;
步骤4-3,在接收时钟驱动下,接收通道模块通过串并转换按位接收头部信息字符,并在头部信息字符添加头部信息字符b,然后写入数据接收缓存FIFO存储器,同时将接收到的字符进行CRC校验计算;当检测接收到控制字符组{DLE、STX}时,表示后续将接收到透明文本区域的字符,控制字符组{DLE、STX}不被写入数据接收缓存FIFO存储器,只进行CRC校验计算;
步骤4-4,在接收时钟驱动下,接收通道模块通过串并转换按位接收透明文本区域的字符,如果接收到非DLE字符时,即为有效的正文数据,如果接收到一个DLE后紧接着接收到一个控制字符DLE,则其中一个DLE字符为附加的填充字符,并将该填充字符删除,将有效正文字符c添加正文数据标记后,写入数据接收缓存FIFO存储器中,并对有效正文数据字符进行CRC校验计算;当接收到控制字符组{DLE、ETX}或控制字符组{DLE、ETB}时,表示透明文本区域结束,即数据帧正文数据结束,后续跟随的两个字节字符即为BCC差错校验字符;
步骤4-5,在接收时钟驱动下接收控制字符组{DLE、ETX}或控制字符组{DLE、ETB}后续的两个BCC差错校验字符,并将这两个差错校验字符与接收过程中计算得到的CRC校验值进行对比,二者一致则表示数据帧接收正确,接收通道模块向数据接收缓存FIFO存储器写入字符段d,表示一帧数据帧接收完毕,且差错校验正确;否则表示数据接收错误,接收通道模块向数据接收缓存FIFO存储器写入字符段e,表示一帧数据帧接收完毕,但是差错校验错误,外部处理器应丢弃该帧数据,接收通道模块发送数据帧接收完毕指示信号和数据帧正确性的指示信号,返回执行步骤4-1;
步骤4-6,在接收时钟驱动下,接收到控制帧的控制字符,根据接收到控制字符输出对应指示信号,然后返回步骤4-1。
9.根据权利要求8所述的一种基于FPGA的二进制同步通信协议控制器,其特征在于,所述波特率生成模块根据处理器接口模块控制寄存器的相关控制位,实现收发时钟的内外时钟源选择,根据波特率选择寄存器的控制位,确定对高频时钟源的分频系数,通过对高频时钟源的分频处理,获得相应的波特率发送接收内部时钟;外部处理器通过向波特率选择寄存器写入相应的波特率选择数值,在所列举的典型波特率中进行选择,并将选择结果通知波特率生成模块产生相应的波特率时钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510828912.2A CN105515926B (zh) | 2015-11-25 | 2015-11-25 | 一种基于fpga的二进制同步通信协议控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510828912.2A CN105515926B (zh) | 2015-11-25 | 2015-11-25 | 一种基于fpga的二进制同步通信协议控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105515926A true CN105515926A (zh) | 2016-04-20 |
CN105515926B CN105515926B (zh) | 2018-09-21 |
Family
ID=55723585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510828912.2A Active CN105515926B (zh) | 2015-11-25 | 2015-11-25 | 一种基于fpga的二进制同步通信协议控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105515926B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108199812A (zh) * | 2017-12-28 | 2018-06-22 | 武汉华显光电技术有限公司 | 数据传输控制方法、装置及计算机可读存储介质 |
CN109109904A (zh) * | 2018-06-20 | 2019-01-01 | 东南大学 | 一种基于mvb的列车轴温检测装置及检测方法 |
CN109547066A (zh) * | 2018-11-02 | 2019-03-29 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的专线通信分路控制实现方法及控制系统 |
CN111200432A (zh) * | 2019-12-27 | 2020-05-26 | 重庆秦嵩科技有限公司 | 一种离散接口接收数据方法 |
CN111679272A (zh) * | 2020-06-01 | 2020-09-18 | 南京欧曼智能科技有限公司 | 一种基于缓冲技术的目标轨迹跟踪处理方法 |
CN111949590A (zh) * | 2020-08-11 | 2020-11-17 | 国微集团(深圳)有限公司 | 一种可跨fpga平台的高速通讯方法 |
CN113098673A (zh) * | 2021-03-26 | 2021-07-09 | 中国航空无线电电子研究所 | 基于串行链路镜像缓存的全双工通讯装置 |
CN113300754A (zh) * | 2021-05-21 | 2021-08-24 | 中国科学院软件研究所 | 一种面向天基超算平台的设备快速接入方法及装置 |
CN113778920A (zh) * | 2021-11-12 | 2021-12-10 | 湖南双菱电子科技有限公司 | 一种嵌入式处理器串口通信方法和软件开发工具包 |
CN113868180A (zh) * | 2021-09-16 | 2021-12-31 | 河南翔宇医疗设备股份有限公司 | 一种单总线通信的控制方法、装置及体外冲击波设备 |
CN116094531A (zh) * | 2023-04-06 | 2023-05-09 | 苏州萨沙迈半导体有限公司 | Sent信号接收系统、芯片 |
CN116166469A (zh) * | 2022-11-08 | 2023-05-26 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908031A (zh) * | 2010-07-23 | 2010-12-08 | 四川九洲电器集团有限责任公司 | 一种基于fpga搭建的增强型串口 |
CN102760111A (zh) * | 2012-06-27 | 2012-10-31 | 浙江大学 | 一种基于fpga的扩展多串口装置及其数据收发方法 |
-
2015
- 2015-11-25 CN CN201510828912.2A patent/CN105515926B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908031A (zh) * | 2010-07-23 | 2010-12-08 | 四川九洲电器集团有限责任公司 | 一种基于fpga搭建的增强型串口 |
CN102760111A (zh) * | 2012-06-27 | 2012-10-31 | 浙江大学 | 一种基于fpga的扩展多串口装置及其数据收发方法 |
Non-Patent Citations (1)
Title |
---|
郭晓明等: "基于FPGA的UART设计与实现", 《电声技术》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108199812A (zh) * | 2017-12-28 | 2018-06-22 | 武汉华显光电技术有限公司 | 数据传输控制方法、装置及计算机可读存储介质 |
CN109109904A (zh) * | 2018-06-20 | 2019-01-01 | 东南大学 | 一种基于mvb的列车轴温检测装置及检测方法 |
CN109547066B (zh) * | 2018-11-02 | 2021-08-06 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的专线通信分路控制实现方法及控制系统 |
CN109547066A (zh) * | 2018-11-02 | 2019-03-29 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的专线通信分路控制实现方法及控制系统 |
CN111200432A (zh) * | 2019-12-27 | 2020-05-26 | 重庆秦嵩科技有限公司 | 一种离散接口接收数据方法 |
CN111200432B (zh) * | 2019-12-27 | 2023-05-09 | 重庆秦嵩科技有限公司 | 一种离散接口接收数据方法 |
CN111679272A (zh) * | 2020-06-01 | 2020-09-18 | 南京欧曼智能科技有限公司 | 一种基于缓冲技术的目标轨迹跟踪处理方法 |
CN111949590A (zh) * | 2020-08-11 | 2020-11-17 | 国微集团(深圳)有限公司 | 一种可跨fpga平台的高速通讯方法 |
CN113098673A (zh) * | 2021-03-26 | 2021-07-09 | 中国航空无线电电子研究所 | 基于串行链路镜像缓存的全双工通讯装置 |
CN113300754A (zh) * | 2021-05-21 | 2021-08-24 | 中国科学院软件研究所 | 一种面向天基超算平台的设备快速接入方法及装置 |
CN113868180A (zh) * | 2021-09-16 | 2021-12-31 | 河南翔宇医疗设备股份有限公司 | 一种单总线通信的控制方法、装置及体外冲击波设备 |
CN113868180B (zh) * | 2021-09-16 | 2024-02-06 | 河南翔宇医疗设备股份有限公司 | 一种单总线通信的控制方法、装置及体外冲击波设备 |
CN113778920A (zh) * | 2021-11-12 | 2021-12-10 | 湖南双菱电子科技有限公司 | 一种嵌入式处理器串口通信方法和软件开发工具包 |
CN116166469A (zh) * | 2022-11-08 | 2023-05-26 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
CN116166469B (zh) * | 2022-11-08 | 2023-06-20 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
CN116094531A (zh) * | 2023-04-06 | 2023-05-09 | 苏州萨沙迈半导体有限公司 | Sent信号接收系统、芯片 |
CN116094531B (zh) * | 2023-04-06 | 2023-12-12 | 苏州萨沙迈半导体有限公司 | Sent信号接收系统、芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN105515926B (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105515926A (zh) | 一种基于fpga的二进制同步通信协议控制器 | |
US7840873B2 (en) | Partial CRC insertion in data packets for early forwarding | |
CN103427846B (zh) | 动态可重构高速串行总线中错误控制方法 | |
US20080148131A1 (en) | Command Packet Packing to Mitigate CRC Overhead | |
CN103825696A (zh) | 一种基于fpga实现光纤高速实时通信的装置 | |
CN108512785B (zh) | 一种数据传输协议方法 | |
CN101146102A (zh) | Rru网络中hdlc数据下行、上行的方法及通讯装置 | |
CN104320317B (zh) | 一种以太网物理层芯片状态的传送方法和装置 | |
CN103531246B (zh) | 快速以读代写的存储器纠错方法 | |
CN103051414A (zh) | 一种串行通信纠错方法和系统 | |
CN103200130B (zh) | 一种leu中报文的安全存储和选择的方法及装置 | |
US20240020246A1 (en) | Method for Generating Information Based on FIFO Memory and Apparatus, Device and Medium | |
CN103685578A (zh) | 主从设备的数据传输方法 | |
CN101771554B (zh) | 一种余度管理电路及其管理方法 | |
CN105786734A (zh) | 数据传输的方法、扩展装置、外围设备及系统 | |
EP2442500B1 (en) | Data transfer device and data transfer method | |
CN104486036B (zh) | 一种满足1394协议要求消息容错处理电路及方法 | |
CN104486365A (zh) | 双控之间通信方法和系统 | |
CN101594305B (zh) | 一种报文处理方法及装置 | |
CN101655825B (zh) | 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 | |
CN103678050A (zh) | 一种高速数据交叉传输通道实现方法 | |
CN104461982A (zh) | 一种对1394总线事件消息定时发送的处理方法及电路 | |
CN104009982A (zh) | 基于超短波电台的文件分组群发装置及文件分组群发方法 | |
CN103346862B (zh) | 一种分级保护的片上网络数据传输装置及方法 | |
US3533067A (en) | Error correcting digital coding and decoding apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |