CN109144937B - 一种多路串口高可靠性传输方法 - Google Patents

一种多路串口高可靠性传输方法 Download PDF

Info

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
Application number
CN201811274056.0A
Other languages
English (en)
Other versions
CN109144937A (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.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
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 Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN201811274056.0A priority Critical patent/CN109144937B/zh
Publication of CN109144937A publication Critical patent/CN109144937A/zh
Application granted granted Critical
Publication of CN109144937B publication Critical patent/CN109144937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial 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接收寄存器中的数据传输到下位机。
CN201811274056.0A 2018-10-30 2018-10-30 一种多路串口高可靠性传输方法 Active CN109144937B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083115A (zh) * 2019-11-20 2020-04-28 中国航空工业集团公司西安航空计算技术研究所 数据传输方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
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 京信通信系统(中国)有限公司 一种传输链路检测方法、装置以及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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