CN109144937B - 一种多路串口高可靠性传输方法 - Google Patents
一种多路串口高可靠性传输方法 Download PDFInfo
- Publication number
- CN109144937B CN109144937B CN201811274056.0A CN201811274056A CN109144937B CN 109144937 B CN109144937 B CN 109144937B CN 201811274056 A CN201811274056 A CN 201811274056A CN 109144937 B CN109144937 B CN 109144937B
- Authority
- CN
- China
- Prior art keywords
- data
- monitoring module
- error
- serial port
- data monitoring
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明于数据传输技术领域,具体涉及一种多路串口高可靠性传输方法。本方法采用一种UART控制器冗余传输方案,通过设置双路UART通道通过比对来防止数据出错,并在系统层加入了数据监控模块,全面监控串口的数据传输,对出现的状况采取预处理方案,尽量保证数据传输的正确性,进一步保证串口传输过程中的可靠性。
Description
技术领域
本发明属于数据传输技术领域,具体涉及一种多路串口高可靠性传输方法。
背景技术
随着嵌入式技术的发展,嵌入式微处理器在数据采集、工业控制、航空航天领域有着广泛的应用。为了满足数字化和智能化的需求,在这种以微处理器为核心的智能化测控系统中,处理器与外围电路功能模块、器件之间的通信大都采用简单高效的串口通信方式。这是由于串口通信设备具有控制灵活、接口简单、占用系统资源少的优点,且成本十分低廉,具有众多的接口标准,协议简单、程序设计简单方便。
串口(UART)技术硬件的具体实物表现为独立的模块化芯片,或作为集成于微处理器的周边设备。UART作为一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输和接受。处理器内部采用并行数据,不能直接把数据发送到Modem,必须经过UART整理才能进行异步传输,其过程如图1所示。
UART控制器传输协议作为异步通信协议的一种,工作原理是将传输数据的每个字符一位接一位的传输。主要有起始位、数据位、奇偶校验位、停止位。
目前,UART控制器的传输协议使用了一套底层基于UART总线的通信协议,能保证命令和数据的传输,但是其并没有做冗余设计,若是由于电磁干扰或是严酷环境的影响,传输的数据产生错误,传统的UART控制器传输协议无法监测和避免这类错误,这会导致接收方接收到的数据与发送方发送的数据产生不一致,从而造成不可预估的错误,特别是在对数据一致性要求很高的航空航天领域,进而影响了UART控制器在严酷环境下的可靠性。
发明内容
(一)要解决的技术问题
本发明提出一种多路串口高可靠性传输方法,以解决如何保证数据传输正确性的技术问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种多路串口高可靠性传输方法,该传输方法包括如下步骤:
S1、处理器将准备写入串行设备的数据发送到双路UART移位寄存器中;
S2、通过数据监控模块对双路UART移位寄存器中的数据进行比对;
S3、若比对结果一致,将数据存入FIFO缓冲区中;若比对结果不一致,通过数据监控模块丢弃该帧,并要求处理器重新传输该帧,并将此次错误信息记录到系统的错误日志中;
S4、数据监控模块对错误进行分析,对不同的错误维持不同的错误计数器,在每次错误检测到后,相应的错误计数器上进行加1操作;
S5、当错误计数器超过设定的阈值时,对不同的错误采取不同的处理措施;其中,对于溢出错误,数据监控模块通过降低波特率,降低数据传输速率;对于帧错误,数据监控模块通过向下位机发送检测包来查看串口是否正常连接;
S6、在没有错误出现及比对结果一致后,数据监控模块重新加载串口驱动程序再次启动数据的传输;
S7、将存储在FIFO缓冲区中的数据发送到双路UART接收寄存器中;
S8、通过数据监控模块将双路UART接收寄存器中的数据传输到下位机。
(三)有益效果
本发明提出的多路串口高可靠性传输方法,采用一种UART控制器冗余传输方案,通过设置双路UART通道通过比对来防止数据出错,并在系统层加入了数据监控模块,全面监控串口的数据传输,对出现的状况采取预处理方案,尽量保证数据传输的正确性,进一步保证串口传输过程中的可靠性。
附图说明
图1为常规UART传输流程图;
图2为本发明实施例的多路串口高可靠性传输方法流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本实施例提出一种多路串口高可靠性传输方法,其流程如图2所示。该传输方法包括如下步骤:
S1、用户通过在UART的所有通道中选取两路不同的UART作为UART1和UART2;
S2、处理器将准备写入串行设备的数据发送到双路UART寄存器中,包括分别通过UART1和UART2通道传输数据到UART1移位寄存器和UART2移位寄存器;
S3、通过双路UART通道,对双路UART寄存器中的数据在数据监控模块中进行比对;
S4、若比对结果一致,将数据存入FIFO缓冲区中;
S5、若比对结果不一致,通过数据监控模块丢弃该帧,并要求处理器重新传输该帧,并将此次错误信息记录到系统的错误日志中;
S6、数据监控模块对错误进行分析,对不同的错误维持不同的错误计数器,在每次错误检测到后,相应的错误计数器上进行加1操作;
S7、当错误计数器超过设定的阈值时,对不同的错误采取不同的处理措施;其中,对于溢出错误,数据监控模块通过降低波特率,降低数据传输速率;对于帧错误,数据监控模块通过向下位机发送检测包来查看串口是否正常连接;
S8、在没有错误出现及比对结果一致时,数据监控模块通过重新加载串口驱动程序再次启动数据的传输;
S9、把存储在FIFO缓冲区中的数据发送到双路UART接收寄存器中;
S10、通过数据监控模块将双路UART接收寄存器中的数据传输到下位机。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (1)
1.一种多路串口高可靠性传输方法,其特征在于,所述传输方法包括如下步骤:
S1、处理器将准备写入串行设备的数据发送到双路UART移位寄存器中;
S2、通过数据监控模块对双路UART移位寄存器中的数据进行比对;
S3、若比对结果一致,将数据存入FIFO缓冲区中;若比对结果不一致,通过数据监控模块丢弃该帧,并要求处理器重新传输该帧,并将此次错误信息记录到系统的错误日志中;
S4、数据监控模块对错误进行分析,对不同的错误维持不同的错误计数器,在每次错误检测到后,相应的错误计数器上进行加1操作;
S5、当错误计数器超过设定的阈值时,对不同的错误采取不同的处理措施;其中,对于溢出错误,数据监控模块通过降低波特率,降低数据传输速率;对于帧错误,数据监控模块通过向下位机发送检测包来查看串口是否正常连接;
S6、在没有错误出现及比对结果一致后,数据监控模块重新加载串口驱动程序再次启动数据的传输;
S7、将存储在FIFO缓冲区中的数据发送到双路UART接收寄存器中;
S8、通过数据监控模块将双路UART接收寄存器中的数据传输到下位机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811274056.0A CN109144937B (zh) | 2018-10-30 | 2018-10-30 | 一种多路串口高可靠性传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811274056.0A CN109144937B (zh) | 2018-10-30 | 2018-10-30 | 一种多路串口高可靠性传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144937A CN109144937A (zh) | 2019-01-04 |
CN109144937B true CN109144937B (zh) | 2021-08-17 |
Family
ID=64806551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811274056.0A Active CN109144937B (zh) | 2018-10-30 | 2018-10-30 | 一种多路串口高可靠性传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144937B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083115A (zh) * | 2019-11-20 | 2020-04-28 | 中国航空工业集团公司西安航空计算技术研究所 | 数据传输方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618523A (zh) * | 2013-11-27 | 2014-03-05 | 中国航空工业集团公司第六三一研究所 | 一种基于离散量信号的双通道校验电路及方法 |
CN103684678A (zh) * | 2012-11-01 | 2014-03-26 | 国网电力科学研究院 | 一种用于uart的波特率自适应方法、装置及uart |
CN104012020A (zh) * | 2011-12-30 | 2014-08-27 | 京信通信系统(中国)有限公司 | 一种传输链路检测方法、装置以及系统 |
-
2018
- 2018-10-30 CN CN201811274056.0A patent/CN109144937B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104012020A (zh) * | 2011-12-30 | 2014-08-27 | 京信通信系统(中国)有限公司 | 一种传输链路检测方法、装置以及系统 |
CN103684678A (zh) * | 2012-11-01 | 2014-03-26 | 国网电力科学研究院 | 一种用于uart的波特率自适应方法、装置及uart |
CN103618523A (zh) * | 2013-11-27 | 2014-03-05 | 中国航空工业集团公司第六三一研究所 | 一种基于离散量信号的双通道校验电路及方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的波特率连续可调的UART接口设计;吴志勇 等;《通信技术》;20180131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109144937A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信系统和方法 | |
Fang et al. | Design and simulation of UART serial communication module based on VHDL | |
CN102819512B (zh) | 一种基于spi的全双工通信装置及其方法 | |
US5732286A (en) | FIFO based receive packet throttle for receiving long strings of short data packets | |
CN100502385C (zh) | 实现rs-485多点通讯的方法 | |
CN106462528A (zh) | Usb功率传输源装置的功率节约模式 | |
EP2568665A1 (en) | Method, device, and system for transmitting packet on pcie bus | |
CN103095703A (zh) | 一种实现网络与串口数据交互的方法、设备及系统 | |
CN101471787A (zh) | 基于无线通信模块的软件模拟uart的方法 | |
CN108011692A (zh) | 一种用于单片机的数据通信方法 | |
CN111352887B (zh) | 一种pci总线到可配置帧长度串行总线适配和传输方法 | |
CN109144937B (zh) | 一种多路串口高可靠性传输方法 | |
CN102377505A (zh) | 一种基于串口的ipmi数据包传输方法 | |
CN102455946B (zh) | Usb装置异常的检测与恢复电路及其方法 | |
CN106911530B (zh) | 一种基于串口冗余策略的关键测试指令传输系统及方法 | |
CN202694039U (zh) | 一种适配器电路 | |
CN110058706B (zh) | 一种适应于长距离传输的ps2控制器及实现方法 | |
CN111782572A (zh) | 一种自适应波特率的usb串口设备及方法 | |
CN110099028B (zh) | 一种串口数据传输的方法及装置 | |
CN113094319B (zh) | 两主机间单向数据传输同步控制系统及方法 | |
CN104735551B (zh) | Advb接收容错及处理方法 | |
US8000278B2 (en) | De-activation, at least in part, of receiver, in response, at least in part, to determination that an idle condition exists | |
CN116015324A (zh) | 一种强化抗干扰的uart数据接收装置及其接收方法 | |
US8522104B2 (en) | Smart aging retry buffer | |
CN212647461U (zh) | 一种基于pci总线的同步或异步串行通讯控制电路 |
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 |