CN112187789B - 一种数据链路协议转换系统 - Google Patents
一种数据链路协议转换系统 Download PDFInfo
- Publication number
- CN112187789B CN112187789B CN202011033494.5A CN202011033494A CN112187789B CN 112187789 B CN112187789 B CN 112187789B CN 202011033494 A CN202011033494 A CN 202011033494A CN 112187789 B CN112187789 B CN 112187789B
- Authority
- CN
- China
- Prior art keywords
- ddcmp
- data
- module
- uart
- frame
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种数据链路协议转换系统,在FPGA上实现同步DDCMP通信协议与异步UART通信协议的转换与差错控制功能。包括:UART数据帧输入转化为DDCMP数据帧输出模块、DDCMP数据帧输入转化为UART数据帧输出模块、控制命令响应模块。数据帧的相互转化部分包括数据的采集模块、数据帧的解析和处理模块、数据的发送模块和必要的先入先出队列模块;控制命令响应模块是对控制命令的响应以及对功能模块参数的配置。通过在FPGA构建多套协议转换的功能部分,实现多路DDCMP‑UART通信协议的转换;并利用控制命令响应模块,灵活配置转换系统中的参数,提高了系统使用的灵活性,具有良好的实际应用价值。
Description
技术领域
本发明属于数据通信领域,具体涉及一种数据链路协议转换系统。
背景技术
DDCMP(Digital Data Communication Message Protocol)全称为数字数据通信信息协议,是一种面向字节操作的同步协议。该协议在线路空闲时间,以发送端发送空闲码的方式,进行收、发端的同步;发送端在即将发送数据时,先发送多次同步码,而后以特殊控制字符表示一帧的起始,并利用指定的字节计数字段标明帧内的字节数。接收端通过对同步码和特殊控制字符的识别,从比特流中区分帧的起始位置;通过对指定的字节计数字段的识别,确定帧的终止位置。由于采用字节计数方式确定帧的终止位置,因此控制字段的检错尤为重要。同时,字节计数的方式不会引起数据和其它信息混淆,数据传输具有较好的透明性。
UART(universal asyncronous receiver/transmiter)全称为通用异步收发器,是一种通用串行数据总线。该协议在线路空闲时,数据线保持逻辑1状态;发送数据时,数据线上依次发送起始位、数据位、校验位和停止位。其中,起始位为1位的逻辑0,数据位是可选的5-8位,校验位可选奇偶校验或无校验,停止位为1位的逻辑1。
FPGA(Field Programmable Gate Array)全称为现场可编程门阵列,片内有大量的逻辑门和触发器,可用于各种不同数字逻辑电路功能的实现。它不同于软件编程的顺序特性,在FPGA内部,所有硬件逻辑均可同时工作,具有与生俱来的并行特点。因此,特别适用于大吞吐量、重复执行的数据传输和处理操作。
异步数据在传输过程中,需要加入起始位、停止位、可选的校验位,以及传输字符间的空闲等,传输速率及传输效率不如同步协议的传输。但异步数据信号可通过诸如MAX232芯片转换为RS-232C物理接口信号,与计算机的RS-232接口互联通信。因此,产生了将同步DDCMP信号与异步UART信号相互转换的需求。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种数据链路协议转换系统,把采用DDCMP协议进行链路传输的数据终端设备与采用UART异步传输设备进行互联互通,实现数据传输和数据资源共享。本发明系统包括UART转DDCMP模块、DDCMP转UART模块和控制命令响应模块;
其中,所述UART转DDCMP模块,用于,对输入的基于异步UART格式的约定协议报文,转换并输出基于同步DDCMP格式的约定协议报文;
所述DDCMP转UART模块,用于,对输入的基于同步DDCMP格式的约定协议报文,转换并输出基于异步UART格式的约定协议报文;
所述控制命令响应模块,用于,通过发送控制命令的方式,切换同步DDCMP信号的时钟方式与时钟频率。
所述UART转DDCMP模块包括UART数据采集模块、DDCMP数据帧解析处理模块和DDCMP发送模块,
其中,所述UART数据采集模块用于,接收基于异步UART格式的约定协议报文并存入接收缓存队列;
所述DDCMP数据帧解析处理模块用于整条报文的提取与解析;
所述DDCMP发送模块用于将整条报文按DDCMP报文格式发送。
当系统接收UART格式数据信号时,UART数据采集模块执行数据的接收,并通过两次以上采样逻辑电平的方式进行差错控制,并将比特构成的字节放入接收缓存队列FIFO1中;DDCMP数据帧解析处理模块从FIFO1中读取字节,当匹配到协议约定的特殊帧起始字节,且DDCMP发送模块空闲时,将从帧起始字节开始的数据放入待发送缓存FIFO2队列中,直到读取到用于标识帧界限的帧结束字节;当FIFO2正确存入一帧数据后,DDCMP发送模块进入发送状态,将FIFO2中的一帧数据进行发送。
基于UART格式的约定协议报文的界定采用特殊字节的方式,正文部分则采用转义字符的方式,将与特殊字符相同的正文部分进行转为非特殊字符进行处理;当DDCMP数据帧解析处理模块解析出完整的一帧数据后,DDCMP发送模块才将FIFO2中的数据发送;当DDCMP发送模块处于空闲状态时,DDCMP数据帧解析处理模块才开始工作。
UART异步格式的信号传输是以比特流的方式,按字节为单位进行传输的。因此需要用一定的方式界定报文的开始和结束,即报头、报尾。约定UART异步格式报文以字节0xC0作为特殊字符,并将正文中的0xC0转义为0xDB 0xDC,0xDB转义为0xDB0xDD。
UART数据采集模块用于接收UART格式数据信号。该模块通过每比特多次采样逻辑电平的方式进行差错控制,并将比特构成的字节放入接收缓存队列FIFO1中。
DDCMP数据帧解析处理模块在DDCMP发送模块空闲状态下,从FIFO1中读取字节;当匹配到字节0xC0,且后续字节不是0xC0时,即认为找到一条报文的开始。该模块将读取到的字节放入待发送缓存FIFO2中,且转义字节执行反转义操作(即0xDB 0xDC转义为0xC0,0xDB0xDD转义为0xDB)。经该模块处理后存入FIFO2中的数据即为一条完整的报文。
当DDCMP数据帧解析处理模块处理完成一帧报文后,DDCMP发送模块执行发送操作,将FIFO2中数据按约定的DDCMP格式进行发送。
所述DDCMP转UART模块包括DDCMP数据帧采集与解析模块和UART发送模块;
其中,所述DDCMP数据帧采集与解析模块负责DDCMP数据帧的正确接收和整帧封装,并将数据存入队列待发送;
所述UART发送模块负责将队列中的数据进行发送。
同步DDCMP格式数据以多字节组成的数据块(帧)为单位传输。在传输过程中,根据方波形式的时钟信号的变化沿,执行比特的跳变,即一个时钟周期传输一个比特。所述DDCMP数据帧采集与解析模块根据接收时钟执行数据信号的接收。帧的起始同步阶段采用移位方式,将新接收到的比特作为字节最低位,并比较新的字节与同步码SYN:当匹配到同步码后,该模块开始按字节接收;当连续检测到多个同步码后,且接收到帧起始符SOH,即表示一条报文的开始。报文的接收首先按约定格式对控制字段进行校验,校验通过后,再根据控制字段中的计数字段Count来读取Count字节,并将按字节接收到的报文内容,按约定格式进行转义和封装(报文开始和结束以0xC0为界限;报文中的0xC0转义为0xDB 0xDD,0xDB转义为0x DB 0xDD),存入待发送缓存FIFO3中。所述DDCMP数据帧采集与解析模块同时进行DDCMP数据的采集与封装,按照先检错,后存入的方式,避免出现DDCMP数据帧控制字节出错而导致后续字节接收错误的情况。
所述UART发送模块监测FIFO3中数据量,当FIFO3中存在有效数据,UART发送模块即按UART数据格式执行数据发送。
当系统接收DDCMP同步信号时,所述DDCMP数据帧采集与解析模块根据接收时钟RXC进行数据接收,DDCMP同步信号的信息帧的起始界定采用移位的方式,将新的比特数据置为字节最低位;当检测到协议约定的同步码SYN时,数据开始按字节接收;当连续两次以上检测到同步码SYN后,且出现帧起始字节SOH,开始进入接收状态;接收状态下,首先对同步码SYN的后8位控制字节按约定校验方式进行校验,校验通过后,再根据计数字段Count来读取Count字节,并将帧数据按约定格式进行封装和转义,存入待发送缓存FIFO3中;当检测到FIFO3中存在有效数据时,UART发送模块即按UART数据格式进行数据的发送。
所述控制命令响应模块负责接收上位机的配置命令,控制同步DDCMP的时钟模式及时钟频率;同步信号收发所需要的时钟来源通过上位机的控制命令来决定:当选择外时钟模式时,同步数据的收发所需时钟,由外部时钟输入信号来决定;当选择内时钟模式时,同步数据收发所需时钟则是系统提供的可调节时钟,并由时钟输出引脚输出时钟信号。
所述控制命令响应模块具体执行如下步骤:
步骤a1,系统监控与上位机通信所对应的特定端口,当上位机的控制命令通过特定端口发送至FPGA,系统接收控制命令并进行判定;
步骤a2,对接收到的不同控制命令信号,系统进行相应配置:外时钟模式下,DDCMP发送模块和DDCMP数据帧采集与解析模块所使用的时钟信号由接收信号时钟输入引脚RXC和发送信号时钟输入引脚TXC决定;内时钟模式下,DDCMP发送模块和DDCMP数据帧采集与解析模块所使用的时钟信号由系统生成,时钟频率由控制命令决定,并将时钟信号通过时钟输出引脚CLK输出。
步骤a3,步骤a2执行完成后,向上位机发送设置成功的反馈信号,重新回到步骤a1执行控制命令的监控。
所述系统对于UART信号转为DDCMP信号的处理按UART数据采集模块、DDCMP数据帧解析处理模块和DDCMP发送模块并行处理,其中,所述UART数据采集模块执行如下步骤:
步骤b1,UART数据采集模块按UART信号格式进行字节接收,并判定是否为指定的帧起始字节,当接收到帧起始字节后,将其放入接收缓存队列FIFO1中,进入步骤b2;否则,继续寻找帧起始字节;
步骤b2,继续接收后续字节,直到接收到非帧起始字节,并将其放入FIFO1,循环接收,直到接收到帧结束字节,即判定一帧信息结束,将其放入FIFO1中,回到步骤b1重新开始寻找新的一帧;
所述DDCMP数据帧解析处理模块执行如下步骤:
步骤c1,监测接收缓存队列FIFO1数据量及DDCMP发送模块状态Sig_DataSend;当FIFO1中有数据,且DDCMP发送模块处于空闲状态,即Sig_DataSend的值为0,进入步骤c2;
步骤c2,从FIFO1中读取数据,当读取到帧起始字节后,将后续字节存入待发送缓存FIFO2中,同时进行反转义的解析和必要的报文格式校验;当读取到帧结束字节时,进入步骤c3;
步骤c3,向DDCMP发送模块发送数据准备完成信号(Sig_DataReady=1),并回到步骤c1;
所述DDCMP发送模块执行如下步骤:
步骤d1,监测数据准备完成信号Sig_DataReady,当Sig_DataReady=0时,持续执行发送空闲码的操作;当Sig_DataReady=1时,置位Sig_DataSend=1,执行完当前字节的空闲码发送后,进入步骤d2;
步骤d2,按约定格式发送同步码SYN,并将FIFO2中字节按位发送;待发送完毕后,即FIFO2读空后,进入步骤d3;
步骤d3,在帧与帧之间插入必要的空闲码后,DDCMP发送模块进入空闲模式,置Sig_DataSend=0,并回到步骤d1等待Sig_DataReady为1;
所述系统对于DDCMP信号转为UART信号的处理利用DDCMP数据帧采集与解析模块和UART发送模块并行处理,其中,所述DDCMP数据帧采集与解析模块执行如下步骤:
步骤e1,根据同步时钟信号采样DDCMP信号,通过移位的方式,寻找同步码SYN;当接收到DDCMP信号所表示字节与同步码匹配时,进入步骤e2;
步骤e2,根据协议格式,如果数次匹配同步码成功,则说明报头接收正确,进入步骤e3接收控制字段;否则回到步骤e1继续寻找帧的报头;
步骤e3,接收相应字节的控制字段并进行相应校验,如果校验通过,则按控制字段中计数值Count接收相应字节的信息字段,并将接收到的控制字段和信息字段进行相应转义后,存入后级的数据发送缓存队列FIFO3中,当接收完成Count字节后,进入步骤e4;
步骤e4,对信息字段进行校验,如果校验错误,FIFO3写入错误标识码,并写入帧结束字符;否则,回到步骤e1,开始新一帧的接收;
所述UART发送模块执行如下步骤:
步骤f1,判断FIFO3是否有数据,如果有,进入步骤f2发送数据;否则,等待FIFO3存入数据;
步骤f2,按约定UART格式,发送读取到数据;
步骤f3,在字符发送结束后,增加字符发送间隔,回到步骤f1。
有益效果:本发明系统具有如下实用效果:
1、本发明的应用,利用同步DDCMP协议进行数据传输的终端设备上的数据,可通过该系统,将数据转换为UART数据,并通过硬件转换,直接与带有232串口的计算机等终端进行互联互通;而带有232串口的终端设备,也可通过发送对应格式的异步数据,将信号发送到以DDCMP协议进行数据传输的终端设备。最终实现计算机网络的数据通信和资源共享。
2、本发明的应用,可以将多路以DDCMP协议进行数据通信的信道进行集中。通过数据链路的上层构建,亦可对集中的数据进行再分配,实现计算机资源子网的负荷均衡和数据的分布处理。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明系统的示意图。
图2为系统时钟模块处理控制命令处理流程示意图。
图3为单路DDCMP信号转UART信号的处理流程示意图。
图4为单路UART信号转DDCMP信号的处理流程示意图。
具体实施方式
实施例1,
本实施例提供了一种数据链路协议转换系统,结合图1、图2,上位机要求系统工作模式为内时钟模式、时钟频率115.2kHz,处理按步骤1、2、3顺序执行:
1、系统实时监控与上位机通信的端口。上位机按约定向系统发送字节0x49,系统接收控制命令,并进入步骤2。
2、系统解析接收到的字节,并进行判定,若接收字节出错,并非约定字节,则向上位机发送0xEE失败信号,表示设置错误;若正确接收0x49字节,则按约定,系统即将UART转DDCMP模块中的DDCMP发送模块,和DDCMP转UART模块中的DDCMP数据帧采集与解析模块的时钟模式设置为内时钟模式、时钟频率115.2。此时,同步DDCMP信号的收发,依靠系统自身生成的频率为115.2kHz的方波时钟信号,并将该时钟信号通过时钟信号引脚CLK输出。进入步骤3。
3、设置完成后,向上位机发送0xAA,作为设置成功的反馈信号。并重新进入步骤1。
实施例2
本实施例提供了一种数据链路协议转换系统,结合图1、图3,UART信号转为DDCMP信号的处理按UART数据采集模块、DDCMP数据帧解析处理模块和DDCMP发送模块并行处理,每个模块又按照相应步骤顺序执行:
UART数据帧采集模块:
1、该模块按UART格式进行字节接收,寻找0xC0作为一条报文的起始。当接收到0xC0后,进入步骤2;否则继续执行步骤1。
2、继续接收下一字节,若仍为0xC0,则重新执行该步骤;否则,将0xC0和新接收到的字节放入接收缓存队列FIFO1中,并进入步骤3。
3、接收新的字节,并判定是否为0xC0,若不是,则将接收到字节存入FIFO1中,并重新进入步骤3;否则,将接收到的0xC0放入FIFO1中,并进入步骤1。
UART格式的报文经过UART数据帧采集模块后,以字节0xC0为界定,放入FIFO1中。
DDCMP数据帧解析处理模块:
1、监测FIFO1数据量以及DDCMP发送模块工作状态Sig_DataSend。当FIFO1中有数据,且DDCMP发送模块处于空闲状态,即Sig_DataSend=0,进入步骤2。
2、从FIFO1中读取数据,并寻找0xC0;当读取到0xC0后,且而后字节不是0xC0,进入步骤3。
3、读取字节并判定是否为0xDB或0xC0,当读取字节均不是二者,将读取字节放入待发送缓存FIFO2中,并重新进入步骤3;当读取字节为0xDB时,进入步骤4;当读取字节为0xC0时,进入步骤5。
4、读取下一字节,若为0xDC,将0xC0存入FIFO2中,进入步骤3;若为0xDD,则将0xDB存入FIFO2中,进入步骤3;若均不是,说明报文未按约定格式传送,或接收错误,清空FIFO2并重新进入步骤1;
5、读取到字节0xC0即说明一条报文读取结束,向DDCMP发送模块置位数据准备完成信号Sig_DataReady=1;在DDCMP发送模块进入发送状态后,即Sig_DataSend=1时,回到步骤1,并置位Sig_DataReady=0。
经DDCMP数据帧解析处理模块放入FIFO2的数据为一条报文,再经过DDCMP发送模块执行同步发送。
DDCMP发送模块:
1、初始化DDCMP发送模块为空闲工作状态,即Sig_DataSend=0;判断Sig_DataReady,当Sig_DataReady=0时,执行发送空闲码操作;当Sig_DataReady=1,说明FIFO2中数据准备完成,置位Sig_DataSend=1,该模块进入发送状态,进入步骤2。
2、校验FIFO2中数据量,若FIFO2数据量过小,则清空FIFO2并回到步骤1;按约定格式发送多个同步码SYN,并将FIFO2中字节按比特发送,待FIFO2中数据发送完毕,进入步骤3。
3、在发送完FIFO2中数据后,发送多个空闲码,而后回到步骤1。
实施例3,
本实施例提供了一种数据链路协议转换系统,结合图1、图4,DDCMP信号转为UART信号的处理利用DDCMP数据帧采集与解析模块和UART发送模块并行处理,每个模块又按照相应步骤顺序执行:
DDCMP数据帧采集与解析模块:
1、构建8位寄存器;根据同步时钟信号采样DDCMP信号,将寄存器中值向低位移位1位,将最新采样的比特置于寄存器最高位;将寄存器中值所构成字节与同步码SYN比较,若不同,则重新进入步骤1,若相同,则进入步骤2。
2、根据同步时钟信号采样DDCMP信号,按字节(即8次的采样所构成的二进制数)接收。根据协议格式,当接收到字节与同步码SYN多次相同,则说明同步成功,进入步骤3;否则,回到步骤1。
3、继续按字节接收信号;当接收字节为SYN时,重新进入步骤3;当接收字节不是SYN时,认为DDCMP控制字段开始,进入步骤4。
4、按位接收8字节的控制字段并进行校验;若校验通过,则先向待发送缓存FIFO3写入0xC0,而后将接收到的内容转义后存入FIFO3,并进入步骤5;若校验未通过,则回到步骤1重新开始。
5、根据步骤4接收到的8字节控制字段中的计数值Count,按字节循环接收Count字节的信息字段,并同时进行转义处理,存入FIFO3中;待接收完Count字节后,即信息字段接收完毕,进入步骤6。
6、接收2字节的CRC校验码,对信息字段进行校验。校验通过,则将CRC校验码转义处理后放入FIFO3;若校验未通过,则向FIFO3写入转义处理后的CRC校验码和错误标识码0xEE。而后,向FIFO3中写入0xC0,表示报文结束,回到步骤1。
DDCMP同步信号经过DDCMP数据帧采集与解析模块的处理后,以字节的形式存放于FIFO3中,并以0xC0作为界定。UART发送模块只需要将FIFO3中字节发送即可。
UART发送模块:
1、判断FIFO3是否有数据,若有,进入步骤2;否则,等待FIFO3存入数据。
2、按约定UART格式,发送读取到字符。进入步骤3。
3、在字符发送结束后,增加字符发送间隔,回到步骤1。
本发明提供了一种数据链路协议转换系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种数据链路协议转换系统,其特征在于,包括UART转DDCMP模块、DDCMP转UART模块和控制命令响应模块;
其中,所述UART转DDCMP模块,用于对输入的基于异步UART格式的约定协议报文,转换并输出基于同步DDCMP格式的约定协议报文;
所述DDCMP转UART模块,用于对输入的基于同步DDCMP格式的约定协议报文,转换并输出基于异步UART格式的约定协议报文;
所述控制命令响应模块,用于通过发送控制命令的方式,切换同步DDCMP信号的时钟方式与时钟频率。
2.根据权利要求1所述的系统,其特征在于,所述UART转DDCMP模块包括UART数据采集模块、DDCMP数据帧解析处理模块和DDCMP发送模块,
其中,所述UART数据采集模块用于,接收基于异步UART格式的约定协议报文并存入接收缓存队列;
所述DDCMP数据帧解析处理模块用于整条报文的提取与解析;
所述DDCMP发送模块用于将整条报文按DDCMP报文格式发送。
3.根据权利要求2所述的系统,其特征在于,当系统接收UART格式数据信号时,UART数据采集模块执行数据的接收,并通过两次以上采样逻辑电平的方式进行差错控制,并将比特构成的字节放入接收缓存队列FIFO1中;DDCMP数据帧解析处理模块从FIFO1中读取字节,当匹配到协议约定的特殊帧起始字节,且DDCMP发送模块空闲时,将从帧起始字节开始的数据放入待发送缓存FIFO2队列中,直到读取到用于标识帧界限的帧结束字节;当FIFO2正确存入一帧数据后,DDCMP发送模块进入发送状态,将FIFO2中的一帧数据进行发送。
4.根据权利要求3所述的系统,其特征在于,基于UART格式的约定协议报文的界定采用特殊字节的方式,正文部分则采用转义字符的方式,将与特殊字符相同的正文部分进行转为非特殊字符进行处理;当DDCMP数据帧解析处理模块解析出完整的一帧数据后,DDCMP发送模块才将FIFO2中的数据发送;当DDCMP发送模块处于空闲状态时,DDCMP数据帧解析处理模块才开始工作。
5.根据权利要求4所述的系统,其特征在于,所述DDCMP转UART模块包括DDCMP数据帧采集与解析模块和UART发送模块;
其中,所述DDCMP数据帧采集与解析模块负责DDCMP数据帧的正确接收和整帧封装,并将数据存入队列待发送;
所述UART发送模块负责将队列中的数据进行发送。
6.根据权利要求5所述的系统,其特征在于,当系统接收DDCMP同步信号时,所述DDCMP数据帧采集与解析模块根据接收时钟RXC进行数据接收,DDCMP同步信号的信息帧的起始界定采用移位的方式,将新的比特数据置为字节最低位;当检测到协议约定的同步码SYN时,数据开始按字节接收;当连续两次以上检测到同步码SYN后,且出现帧起始字节SOH,开始进入接收状态;接收状态下,首先对同步码SYN的后8位控制字节按约定校验方式进行校验,校验通过后,再根据计数字段Count来读取Count字节,并将帧数据按约定格式进行封装和转义,存入待发送缓存FIFO3中;当检测到FIFO3中存在有效数据时,UART发送模块即按UART数据格式进行数据的发送。
7.根据权利要求6所述的系统,其特征在于,所述DDCMP数据帧采集与解析模块同时进行DDCMP数据的采集与解析,在接收到DDCMP同步信号的信息帧时,对控制字节进行校验,待校验正确后,即执行信息帧正文的接收和解析,将接收到字节放入FIFO3中;UART发送模块当检测到FIFO3中存在可读取数据时,即执行发送操作,实现同步信号的信息快速收发。
8.根据权利要求7所述的系统,其特征在于,所述控制命令响应模块负责接收上位机的配置命令,控制同步DDCMP的时钟模式及时钟频率;同步信号收发所需要的时钟来源通过上位机的控制命令来决定:当选择外时钟模式时,同步数据的收发所需时钟,由外部时钟输入信号来决定;当选择内时钟模式时,同步数据收发所需时钟则是系统提供的可调节时钟,并由时钟输出引脚输出时钟信号。
9.根据权利要求8所述的系统,其特征在于,所述控制命令响应模块具体执行如下步骤:
步骤a1,系统监控与上位机通信所对应的特定端口,当上位机的控制命令通过特定端口发送至FPGA,系统接收控制命令并进行判定;
步骤a2,对接收到的不同控制命令信号,系统进行相应配置:外时钟模式下,DDCMP发送模块和DDCMP数据帧采集与解析模块所使用的时钟信号由接收信号时钟输入引脚RXC和发送信号时钟输入引脚TXC决定;内时钟模式下,DDCMP发送模块和DDCMP数据帧采集与解析模块所使用的时钟信号由系统生成,时钟频率由控制命令决定,并将时钟信号通过时钟输出引脚CLK输出;
步骤a3,步骤a2执行完成后,向上位机发送设置成功的反馈信号,重新回到步骤a1执行控制命令的监控。
10.根据权利要求9所述的系统,其特征在于,所述系统对于UART信号转为DDCMP信号的处理按UART数据采集模块、DDCMP数据帧解析处理模块和DDCMP发送模块并行处理,其中,所述UART数据采集模块执行如下步骤:
步骤b1,UART数据采集模块按UART信号格式进行字节接收,并判定是否为指定的帧起始字节,当接收到帧起始字节后,将其放入接收缓存队列FIFO1中,进入步骤b2;否则,继续寻找帧起始字节;
步骤b2,继续接收后续字节,直到接收到非帧起始字节,并将其放入FIFO1,循环接收,直到接收到帧结束字节,即判定一帧信息结束,将其放入FIFO1中,回到步骤b1重新开始寻找新的一帧;
所述DDCMP数据帧解析处理模块执行如下步骤:
步骤c1,监测接收缓存队列FIFO1数据量及DDCMP发送模块状态Sig_DataSend;当FIFO1中有数据,且DDCMP发送模块处于空闲状态,即Sig_DataSend的值为0,进入步骤c2;
步骤c2,从FIFO1中读取数据,当读取到帧起始字节后,将后续字节存入待发送缓存FIFO2中,同时进行反转义的解析和必要的报文格式校验;当读取到帧结束字节时,进入步骤c3;
步骤c3,向DDCMP发送模块发送数据准备完成信号,并回到步骤c1;
所述DDCMP发送模块执行如下步骤:
步骤d1,监测数据准备完成信号Sig_DataReady,当Sig_DataReady=0时,持续执行发送空闲码的操作;当Sig_DataReady=1时,置位Sig_DataSend=1,执行完当前字节的空闲码发送后,进入步骤d2;
步骤d2,按约定格式发送同步码SYN,并将FIFO2中字节按位发送;待发送完毕后,即FIFO2读空后,进入步骤d3;
步骤d3,在帧与帧之间插入必要的空闲码后,DDCMP发送模块进入空闲模式,置Sig_DataSend=0,并回到步骤d1等待Sig_DataReady为1;
所述系统对于DDCMP信号转为UART信号的处理利用DDCMP数据帧采集与解析模块和UART发送模块并行处理,其中,所述DDCMP数据帧采集与解析模块执行如下步骤:
步骤e1,根据同步时钟信号采样DDCMP信号,通过移位的方式,寻找同步码SYN;当接收到DDCMP信号所表示字节与同步码匹配时,进入步骤e2;
步骤e2,根据协议格式,如果数次匹配同步码成功,则说明报头接收正确,进入步骤e3接收控制字段;否则回到步骤e1继续寻找帧的报头;
步骤e3,接收相应字节的控制字段并进行相应校验,如果校验通过,则按控制字段中计数值Count接收相应字节的信息字段,并将接收到的控制字段和信息字段进行相应转义后,存入后级的数据发送缓存队列FIFO3中,当接收完成Count字节后,进入步骤e4;
步骤e4,对信息字段进行校验,如果校验错误,FIFO3写入错误标识码,并写入帧结束字符;否则,回到步骤e1,开始新一帧的接收;
所述UART发送模块执行如下步骤:
步骤f1,判断FIFO3是否有数据,如果有,进入步骤f2发送数据;否则,等待FIFO3存入数据;
步骤f2,按约定UART格式,发送读取到数据;
步骤f3,在字符发送结束后,增加字符发送间隔,回到步骤f1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011033494.5A CN112187789B (zh) | 2020-09-27 | 2020-09-27 | 一种数据链路协议转换系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011033494.5A CN112187789B (zh) | 2020-09-27 | 2020-09-27 | 一种数据链路协议转换系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187789A CN112187789A (zh) | 2021-01-05 |
CN112187789B true CN112187789B (zh) | 2022-09-06 |
Family
ID=73943647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011033494.5A Active CN112187789B (zh) | 2020-09-27 | 2020-09-27 | 一种数据链路协议转换系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187789B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726755B (zh) * | 2021-08-23 | 2023-06-02 | 天津津航计算技术研究所 | 一种slip协议数据的处理方法 |
CN114280429A (zh) * | 2021-11-12 | 2022-04-05 | 国网河北能源技术服务有限公司 | Gis局部放电检测装置 |
CN114510448A (zh) * | 2022-02-17 | 2022-05-17 | 安徽国芯智能装备有限公司 | 一种基于高速光纤以太网络的超高速数据传输系统及方法 |
CN114900571B (zh) * | 2022-07-13 | 2022-09-27 | 工业信息安全(四川)创新中心有限公司 | 一种基于模板解析可信密码指令的方法、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4607364A (en) * | 1983-11-08 | 1986-08-19 | Jeffrey Neumann | Multimode data communication system |
CN102521181A (zh) * | 2011-11-01 | 2012-06-27 | 四川川大智胜软件股份有限公司 | 多通道异型雷达数据实时解析集中收发卡及其通信方法 |
CN106411918A (zh) * | 2016-10-24 | 2017-02-15 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的多路hdlc‑uart转换系统及方法 |
-
2020
- 2020-09-27 CN CN202011033494.5A patent/CN112187789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4607364A (en) * | 1983-11-08 | 1986-08-19 | Jeffrey Neumann | Multimode data communication system |
CN102521181A (zh) * | 2011-11-01 | 2012-06-27 | 四川川大智胜软件股份有限公司 | 多通道异型雷达数据实时解析集中收发卡及其通信方法 |
CN106411918A (zh) * | 2016-10-24 | 2017-02-15 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的多路hdlc‑uart转换系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112187789A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112187789B (zh) | 一种数据链路协议转换系统 | |
CN104008078B (zh) | 一种基于fpga的数据传输板之间进行高速传输的方法 | |
US8184026B2 (en) | Mobile industry processor interface | |
KR100881191B1 (ko) | 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치 | |
CN111737182B (zh) | 串行通信参数自动配置方法及系统 | |
CN110224789B (zh) | 一种基于fpga的多模式hdlc控制器 | |
CN106850046A (zh) | 一种基于fpga的星载遥控遥测终端、系统及方法 | |
CN111064545B (zh) | 基于fpga实现具有spw接口的专网地检装置及方法 | |
JPH02226943A (ja) | ハイレベルデータリンク制御手順フレームを解析し且つ処理するためのシステム | |
JPH05122282A (ja) | データ伝送方式 | |
CN111930666A (zh) | 一种高速可配置工业协议转换器 | |
CN111698271A (zh) | 一种hdlc协议ip核 | |
US20030014579A1 (en) | Communication controller and method of transforming information | |
CN114416626B (zh) | 一种基于8b/10b编码的异步串行数据恢复方法 | |
CN109902055B (zh) | 一种适用窄带数据网络的slip编码数据流传输方法 | |
JP4988544B2 (ja) | データ処理装置およびデータ処理方法並びにプログラム | |
CN108429707B (zh) | 一种适应不同传输速率的时间触发业务转发器及方法 | |
CN111949590B (zh) | 一种可跨fpga平台的高速通讯方法 | |
CN101039323B (zh) | 多速率多协议比特流处理器 | |
CN102420675B (zh) | 数据报文缓冲存储的使用状态信息的收发方法及装置 | |
CN100444595C (zh) | 一种主从设备通信方法 | |
CN104009823B (zh) | 一种SerDes技术中的错位检测与纠错电路 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及系统 | |
CN111026590B (zh) | 接口电路的数据验证方法及平台 | |
CN108509365B (zh) | 一种dbi的数据传输方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |