CN109710550B - 一种基于双缓存的帧长度不固定rs422数据通信系统 - Google Patents

一种基于双缓存的帧长度不固定rs422数据通信系统 Download PDF

Info

Publication number
CN109710550B
CN109710550B CN201811540304.1A CN201811540304A CN109710550B CN 109710550 B CN109710550 B CN 109710550B CN 201811540304 A CN201811540304 A CN 201811540304A CN 109710550 B CN109710550 B CN 109710550B
Authority
CN
China
Prior art keywords
data
frame length
cache
module
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
Application number
CN201811540304.1A
Other languages
English (en)
Other versions
CN109710550A (zh
Inventor
安书董
李明
李亚锋
段小虎
刘铎
索晓杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201811540304.1A priority Critical patent/CN109710550B/zh
Publication of CN109710550A publication Critical patent/CN109710550A/zh
Application granted granted Critical
Publication of CN109710550B publication Critical patent/CN109710550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提出了一种基于双缓存的帧长度不固定RS422数据通信系统,属于航空电子系统机载计算机设计领域;该系统包括:系统初始化模块、接收发送FIFO模块、帧长度自判断模块、缓存控制器模块部分。通过建立帧长度不固定RS422数据的传送机制,通过FPGA内部控制逻辑对帧长度进行自识别,自动结束传输,并将结果报送给缓存控制器,进行缓存区切换,完成完整的帧传输。本发明提出的系统设计简单、效率高、移植性强,可有效解决由于帧长度不确定导致的逻辑代码复杂、误码率高的问题。同时结合双缓存机制,将数据流等时分配到两个数据缓冲区,大大提高了系统的通信效率,增强了系统的可靠性。

Description

一种基于双缓存的帧长度不固定RS422数据通信系统
技术领域
本发明属于航空电子系统机载计算机设计领域,特别涉及一种基于双缓存的帧长度不固定RS422数据通信系统,该系统是一种具有高可靠、高确定性以及高效率的RS422帧数据通信系统。
背景技术
随着航空电子系统的快速发展,机载电子系统集成了越来越多的设备,众多设备之间时刻在交互通信,通信的可靠性成为机载设备研制过程中重点解决的问题。总线通信技术的应用大大提高了航电系统的可靠性和可维护性。RS422串行总线凭借其数据差分传输、全双工通信等特点,使得数据具有高的可靠性及高的传输速率,因此广泛应用于机载设备内部以及设备之间的公共通路中。
在RS422通信系统中,数据按照一定的协议进行传输,以往的帧数据传输对每一帧的长度都是固定的,而在实际应用中,根据机载设备功能需求,可能要求一帧数据以不固定长度通信,直到数据为指定字符时才结束一帧数据的传输。目前对这类通信问题的解决,通常采用FPGA逻辑实时分段处理,但是逻辑代码复杂,且通信效率低,误码率高。
发明内容
本发明的目的是:
针对RS422数据传输中帧长度不固定的需求,提出一种基于双缓存的帧长度不固定RS422数据通信系统。
本发明的技术方案:
一种基于双缓存的帧长度不固定RS422数据通信系统,RS422数据采用数据包的形式进行传输,该系统包括初始化模块、接收发送FIFO模块、RS422帧长度自判断模块、缓存控制器模块四部分;所述初始化模块通过在FPGA内部实现波特率发生器,为RS422通信提供所需的波特率,在FPGA内部集成异步收发转换,实现接收发送FIFO模块与上位机的通信;RS422帧长度自判断模块可自动判断数据帧长度,从而结束通信并将判断结果引入缓存控制器模块中,缓存控制器模块对双缓存进行切换,让数据输入、输出不间断,保证数据收发的高效率和高可靠性。
所述自动判断的实现方法:
在接收状态,接收发送FIFO模块中连续接收到的特定结束标识符作为接收状态机的跳转条件;映射到主状态机上,表示为帧长度为0,主状态机进行跳转,表示一帧结束,将结果传送给缓存控制器;
在发送状态,接收发送FIFO模块将RS422数据逐个发送,发送至特定结束标识符作为发送状态机的跳转条件;映射到主状态机上,表示为帧长度为0,主状态机进行跳转,自动停止一帧数据的发送。
所述双缓存进行切换的实现步骤:
第一步,按照缓存区地址最高位将缓存区划分为两个区;
第二步,在一帧数据传输结束后,逻辑上将缓存区地址最高位取反,两个缓存区进行切换,数据存入另一缓存区,如此不断切换缓存区。
一种计算机可读的存储介质,所述存储介质上存储有指令,所述指令被处理器执行时实现上述方法中的步骤。
本发明的优点是:
1.本发明在功能上,实现了帧长度不固定RS422数据通信,满足了某些情况下RS422系统帧长度不确定的通信需求。
2.本发明在逻辑上采用嵌套式状态机架构模式,将判断主状态机、接收字节状态机、回绕状态机有机结合,增强系统的可靠性。
3.本发明在架构上与双缓存相结合,将数据流等时分配到两个数据缓冲区,提高系统通信效率。
附图说明
图1是本发明系统整体架构,
图2是本发明RS422帧传输格式,
图3是FPGA逻辑状态跳转图,
图4是缓存区切换架构图,
图5是本发明系统结构框图,
图6是对帧长度不固定RS422通信系统逻辑代码的仿真结构示意图。
具体实施方式
下面对本发明做进一步详细说明。
本方案提供一种基于双缓存的帧长度不固定RS422数据通信系统,逻辑采用嵌套式状态机架构,通过两个状态机之间相互映射,实现对不固定帧长度RS422数据长度的自识别;同时在系统内引入双缓存,在自动判断完一帧数据收发完成后将结果送给缓存控制器进行缓存管理,从而提高串口通信效率和稳定性。
参见图1,本发明主要包括初始化模块、接收发送FIFO模块、RS422帧长度自判断模块、缓存控制器模块;在系统进行完初始化后,FPGA内部引入的接收FIFO开始接收RS422数据,DSP开始向FPGA的发送FIFO写数据。由于RS422数据帧的长度不固定,帧格式的协议见图2所示,本发明以0xEB、0x90作为帧头,以连续收到0x0D、0x0A作为帧结束标识符。参见图3为FPGA内部状态机的跳转图,通过该图可以展示RS422数据流的通信过程,以及各个过程的判决条件。在接收状态,FPGA采用一个8Bit寄存器来缓存接收FIFO中的数据,当连续接收到0x0D和0x0A后,逻辑自动判断帧长度为0,状态机进行跳转,表示一帧结束,并将结果传送给缓存控制器。在发送状态,DSP先将需要发送的8位并行数据写入发送FIFO,在内部时序下,由发送FIFO将8位数据按位逐个发送,在发送完0x0D和0x0A后自动停止一帧数据的发送。在缓存控制器接收到完成标志后,进行缓存的切换,按照缓存区地址最高位将缓存区划分为A区和B区,最高位地址为‘0’的为A区,最高位地址为‘1’的为B区,在一帧数据传输结束后,逻辑上将缓存区地址最高位取反,A区和B区进行切换,数据存入另一缓存区,如此不断切换缓存区,实现数据流的等时分配。缓存切换的逻辑架构见图4。
在上述通信系统中,RS422数据采用数据包的形式进行传输,每个数据包包括包头、数据内容和包尾共3个部分,其中数据内容中数据帧长度部分可以是缓存区最大范围内的任意长度。通过在FPGA内部实现波特率发生器后,可以为RS422通信提供所需的波特率,在FPGA内部集成异步收发转换功能模块后,可以实现FPGA内部FIFO中的数据与上位机的通信。逻辑以连续接收到两个结束标识符作为主状态机的跳转条件。同时逻辑自动识别出帧结束标识符后,将结果引入缓存控制器中,对双缓存进行切换,让数据输入、输出不间断,保证数据收发的高效率和高可靠性。整个数据的流向参见图5。图6对逻辑进行仿真验证。

Claims (4)

1.一种基于双缓存的帧长度不固定RS422数据通信系统,其特征在于:该系统包括初始化模块、接收发送FIFO模块、RS422帧长度自判断模块、缓存控制器模块四部分;RS422数据采用数据包的形式进行传输,所述初始化模块通过在FPGA内部实现波特率发生器,为RS422通信提供所需的波特率,在FPGA内部集成异步收发转换,实现接收发送FIFO模块与上位机的通信;RS422帧长度自判断模块可自动判断数据帧长度,从而结束通信并将判断结果引入缓存控制器模块中,缓存控制器模块对双缓存进行切换,让数据输入、输出不间断,保证数据收发的高效率和高可靠性;
所述自动判断的实现方法:
在接收状态,接收发送FIFO模块中连续接收到的特定结束标识符作为接收状态机的跳转条件;映射到主状态机上,表示为帧长度为0,主状态机进行跳转,表示一帧结束,将结果传送给缓存控制器;
在发送状态,接收发送FIFO模块将RS422数据逐个发送,发送至特定结束标识符作为发送状态机的跳转条件;映射到主状态机上,表示为帧长度为0,主状态机进行跳转,自动停止一帧数据的发送;
所述双缓存进行切换的实现步骤:
第一步,按照缓存区地址最高位将缓存区划分为两个区;
第二步,在一帧数据传输结束后,逻辑上将缓存区地址最高位取反,两个缓存区进行切换,数据存入另一缓存区,如此不断切换缓存区。
2.根据权利要求1所述的数据通信系统,其特征在于:所述数据包至少包括包头、数据内容和包尾3个部分。
3.根据权利要求1所述的数据通信系统,其特征在于:所述数据帧长度可以是缓存区最大范围内的任意长度。
4.一种计算机可读的存储介质,所述存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现所述权利要求1所述系统的执行步骤。
CN201811540304.1A 2018-12-14 2018-12-14 一种基于双缓存的帧长度不固定rs422数据通信系统 Active CN109710550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811540304.1A CN109710550B (zh) 2018-12-14 2018-12-14 一种基于双缓存的帧长度不固定rs422数据通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811540304.1A CN109710550B (zh) 2018-12-14 2018-12-14 一种基于双缓存的帧长度不固定rs422数据通信系统

Publications (2)

Publication Number Publication Date
CN109710550A CN109710550A (zh) 2019-05-03
CN109710550B true CN109710550B (zh) 2022-05-27

Family

ID=66256681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811540304.1A Active CN109710550B (zh) 2018-12-14 2018-12-14 一种基于双缓存的帧长度不固定rs422数据通信系统

Country Status (1)

Country Link
CN (1) CN109710550B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352887B (zh) * 2019-11-19 2023-10-17 中国航空工业集团公司西安航空计算技术研究所 一种pci总线到可配置帧长度串行总线适配和传输方法
CN112463094A (zh) * 2020-11-30 2021-03-09 中国航空工业集团公司西安航空计算技术研究所 一种通用的座舱控制台状态综合显示装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10126461A (ja) * 1996-10-23 1998-05-15 Fujitsu Ltd 通信制御装置
CN104156334A (zh) * 2014-08-19 2014-11-19 宁夏赛文节能股份有限公司 用于多机通讯的串口自适应数据透明传输协议
CN105573958A (zh) * 2016-01-12 2016-05-11 西北工业大学 一种基于rs-422串行总线技术的数据可靠交互方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6463898B2 (ja) * 2014-03-13 2019-02-06 株式会社東芝 通信装置、情報処理装置、通信方法及び通信プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10126461A (ja) * 1996-10-23 1998-05-15 Fujitsu Ltd 通信制御装置
CN104156334A (zh) * 2014-08-19 2014-11-19 宁夏赛文节能股份有限公司 用于多机通讯的串口自适应数据透明传输协议
CN105573958A (zh) * 2016-01-12 2016-05-11 西北工业大学 一种基于rs-422串行总线技术的数据可靠交互方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于LabVIEW的多数据采集器自动监控软件设计与;郑锐等;《计算机测量与控制》;20170625;第107-111页 *

Also Published As

Publication number Publication date
CN109710550A (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
US7586936B2 (en) Host Ethernet adapter for networking offload in server environment
US6081523A (en) Arrangement for transmitting packet data segments from a media access controller across multiple physical links
CN106411740B (zh) 基于以太网控制器的网络端口扩展方法
CN105357147B (zh) 一种高速高可靠的片上网络适配单元
CN111107586B (zh) 一种bbu前传数据的处理方法及系统
CN111131091A (zh) 一种面向片上网络的片间互连方法和系统
CN103885840B (zh) 一种基于AXI4总线的FCoE协议加速引擎IP核
CN109710550B (zh) 一种基于双缓存的帧长度不固定rs422数据通信系统
CN112395230A (zh) 一种基于可编程逻辑器件的uart接口扩展电路
CN108462620B (zh) 一种吉比特级SpaceWire总线系统
CN109547157B (zh) 一种支持时间触发以太网的万兆网络控制器及控制方法
CN107332794A (zh) 一种面向时间触发通信的动态锁定时槽方法
US7903687B2 (en) Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
CN111130691B (zh) 一种星载异步速率通信匹配装置
CN108650160B (zh) 一种基于链式端口的总线桥接器及其工作方法
CN101707696A (zh) 即时交互式数字电视的实现方法及其前端服务系统
CN101702714B (zh) 计算机系统中的基于信用的流动控制的方法、系统和设备
US20040037292A1 (en) Processing of received data within a multiple processor device
US6690670B1 (en) System and method for transmission between ATM layer devices and PHY layer devices over a serial bus
EP4020241B1 (en) Methods and apparatuses involving radar system data paths
US20040017813A1 (en) Transmitting data from a plurality of virtual channels via a multiple processor device
CN111193650B (zh) 一种基于sae as5643标准的节点收发控制装置
CN110765044B (zh) 数据包传输装置及系统
CN110519137A (zh) 转接装置
US6996657B1 (en) Apparatus for providing packets in a peripheral interface circuit of an I/O node of a computer system

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