CN104239254B - 串行异步通讯数据传输方法 - Google Patents
串行异步通讯数据传输方法 Download PDFInfo
- Publication number
- CN104239254B CN104239254B CN201410446457.5A CN201410446457A CN104239254B CN 104239254 B CN104239254 B CN 104239254B CN 201410446457 A CN201410446457 A CN 201410446457A CN 104239254 B CN104239254 B CN 104239254B
- Authority
- CN
- China
- Prior art keywords
- serial
- data
- host computer
- slave computer
- communication data
- 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.)
- Expired - Fee Related
Links
Landscapes
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开的一种串行异步通讯数据传输方法,旨在提供一种结构模式直观简单,设计流程短,程序层次分明,可靠性高,能够在通讯时序、数据帧格式上保证通讯传输数据实时性的方法。本发明通过下述技术方案予以实现:以上位机微控制芯片作为异步串行通信的上位机和以下位机微控制芯片作为异步串行通信的下位机通过TTL/串口信号转换电路连接组成串行异步通讯数据传输装置,并在上位机和下位机微控芯片中设置以串口数据接收处理模块、串口数据发送模块和定时器T模块构成的串行异步通讯数据传输程序软件,并向上位机和下位机发送缓冲区分时发送串口数据帧信息,将为真的数据帧通过接收缓冲区赋值给缓存数组Ai,把与通信帧协议一致的数组字串存入缓存数组Bi。
Description
技术领域
本发明是关于电子系统串行异步通讯采用复合技术实现串行异步通讯数据传输的方法。
背景技术
在电子系统中,各部件间的计算机微控制芯片(单片机或DSP)都需要进行数据交换建立通讯联系,使用串行通讯手段是其中一种重要、常用的通讯方式。串行通讯工作方式分为同步方式和异步方式两种,在实际工作中,异步方式用得最多,包括三个常用的总线标准:RS-232、RS-422、RS-485。串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式。串行传输时,发送端逐位发送,接收端逐位接受,同时,还要对所接受的字符进行确认,收发双方要采取同步措施(即判断什么时候有数据,数据是什么,什么时候结束传输)。异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达,造成数据信息传输、使用延时。
在电子系统中,异步串行通讯所在的通讯链路电磁环境相当恶劣,且传输的距离长短不一可能引起串行通讯中传输的数据出现异常,即出现错误数据。目前,在串行异步通讯中,保证使用正确数据的方法一般都仅采取奇偶位校验、累加和校验,或者两者相结合的方法,但都不能从根本上解决通讯中防止使用错误数据的问题,一旦在通讯链路出现错误数据时,计算机根据错误数据作出决断时,必然会严重影响电子系统的实时性、可靠性,达不到其工作目的。
发明内容
本发明的目的是针对电子系统计算机,现有异步串行通讯数据传输中不能保证串行通讯数据实时性、正确性方法的不足之处,提供一种结构模式直观简单,设计流程短,程序层次分明,易综合,可靠性高,能够在通讯时序、数据帧格式上保证通讯传输数据实时性、正确性的方法。
为了达到上述目的,本发明提供的一种串行异步通讯数据传输方法,其特征在于包括如下步骤:一种串行异步通讯数据传输方法,其特征在于包括如下步骤:以上位机微控制芯片作为异步串行通信的上位机,以下位机微控制芯片作为异步串行通信的下位机,二者通过标准的RS-232/RS-422/RS485接口和TTL/串口信号转换电路连接组成串行异步通讯数据传输装置,在上位机和下位机微控芯片中设有串口数据接收处理模块、串口数据发送模块和定时器T模块构成的串行异步通讯数据传输程序软件;在串行异步通讯数据传输中,上位机、下位机周期性工作时刻点,均以对时脉冲上升沿时刻点为基准,串行异步通讯数据传输程序软件根据工作流程需求,向上位机和下位机发送缓冲区分时发送串口数据帧信息,通过TTL/串口信号转换模块发给下位机和上位机,上位机和下位机接收缓冲区接收到串口数据帧信息后,串口数据接收处理模块判断上位机和下位机接收缓冲区接收到的串口数据帧信息是否有效,将为真的数据帧通过接收缓冲区赋值给缓存数组Ai,缓存数组Ai下标变量Ni自加1,把与通信帧协议一致的数组字串存入缓存数组Bi。
本发明相比于现有技术具有如下有益效果。
结构模式直观简单,设计流程短。本发明以上位机微控制芯片作为异步串行通信的上位机,以下位机微控制芯片作为异步串行通信的下位机,二者通过标准的RS-232/RS-422/RS485接口和TTL/串口信号转换电路连接组成串行异步通讯数据传输装置,结构模式直观简单,设计流程短。
程序层次分明,易综合。本发明在上位机和下位机微控芯片中设有串口数据接收处理模块、数据发送模块和定时器T模块构成串行异步通讯数据传输程序软件,串行异步通讯数据传输程序软件根据工作流程需求,向上位机和下位机发送缓冲区分时发送串口数据帧信息,通过TTL/串口信号转换模块发给下位机和上位机,上位机和下位机接收缓冲区接收到串口数据帧信息后,串口数据接收处理模块判断上位机和下位机接收缓冲区接收到的串口数据帧信息是否有效,程序层次分明,易综合。
可靠性高,能够在通讯时序、数据帧格式上保证通讯传输数据实时性、正确性。本发明在串行异步通讯数据传输中,上位机、下位机周期性工作时刻点均以对时脉冲上升沿时刻点为基准,根据工作流程需求分时发送、接收数据信息,采用缓存数组Ai、Bi双缓存存储数据信息,提高了计算机之间传输数据的实时性、正确性、可靠性。即使在通讯链路异常情况下出现错误数据时,保证通讯数据传输数据中计算机采用正确数据,所使用数据延时最短,提高了异步串行通讯数据传输中的正确率及实时性,减少了通讯数据传输的延时,确保电子系统中计算机工作的高可靠性、稳定性。
附图说明
下图结合附图和实施例进一步说明本发明,但并不因此将本发明限制在所属的实施例范围之中。
图1是本发明串行异步通讯数据传输装置的原理图。
图2是图1的串行异步通讯接收数据的原理框图。
图3是本发明的串口接收和发送数据时序图。
图4是本发明的串行异步通讯串口数据接收处理模块程序流程。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。其中,附图构成本申请一部分,并于本发明的实施例一起用于阐述本发明的原理。
参阅图1。在以下描述的实施例中,实现串行异步通讯数据传输的装置,包括,以上位机微控制芯片作为异步串行通信的上位机,以下位机微控制芯片作为异步串行通信的下位机,上位机微控制芯片和上位机微控制芯片为计算机微控制芯片,二者通过标准的RS-232/RS-422/RS485接口和TTL/串口信号转换电路连接组成串行异步通讯数据传输装置,上位机微控制芯片通过TTL/串口信号转换电路和发送对时脉冲的线缆,向下位机微控制芯片发送对时脉冲。上位机微控制芯片和下位机微控制芯片均具有串行异步通讯数据收发功能。在上位机和下位机微控芯片中设有串口数据接收处理模块、数据发送模块和定时器T模块构成的串行异步通讯数据传输程序软件;在串行异步通讯数据传输中,上位机、下位机周期性工作时刻点,均以对时脉冲上升沿时刻点为基准,串行异步通讯数据传输程序软件根据工作流程需求,向上位机和下位机发送缓冲区分时发送串口数据帧信息,通过TTL/串口信号转换模块发给下位机和上位机,上位机和下位机接收缓冲区接收到串口数据帧信息后,串口数据接收处理模块判断上位机和下位机接收缓冲区接收到的串口数据帧信息是否有效。
参阅图2、图3。在上位机和下位机通过标准的RS-232/RS-422/RS485接口和TTL/串口信号转换电路连接组成的串行异步通讯数据传输装置中,上位机对时脉冲产生模块产生一固定周期为Time的硬件脉冲信号作为对时信号,传给下位机微控芯片对时脉冲接收处理模块。根据电子系统工作流程,制定上位机、下位机之间的通信帧协议(包括波特率,帧头、帧号、校验和、帧尾和数据块等),选用一固定周期Time的硬件脉冲信号作为对时信号,约定上位机微控制芯片、下位机微控制芯片周期性工作时刻点均以对时脉冲上升沿时刻点为基准,并根据工作流程需求分时发送数据,发送串口数据时刻点分别在时刻区间Time1~Time2、Time3~Time4发送串口数据;上位机微控制芯片通过对时脉冲产生模块向下位机发送对时脉冲,并在上述时刻区间Time1~Time2发送串口数据帧,下位机数据发送模块根据上述时刻区间Time3~Time4发送串口数据帧;上位机和下位机根据发送数据帧数据两个数据之间最大间隔时间,确定各自接收通讯数据帧中连续2个数据帧的最大间隔时间,作为上位机和下位机的定时器T1、T2定时时间Ti1、Ti2(Ti1、Ti2一般取Time/2);串口数据接收模块中的接收缓冲区接收到数据后,串口数据接收处理模块程序启动。
参阅图4。A.各串口数据接收处理模块初始化串口,设置波特率、定时器Ti等;
B.串口数据接收处理模块接收缓冲区收到数据后,判断该数据是否有效,有效则执行C步骤;否则执行步骤B;
C.串口数据接收处理模块设置定时器T,定时时间Ti,打开定时器T开始计时;
D.串口数据接收处理模块判断定时器T计时时间是否到,若真则说明接收到的串口数据超时,不符合工作流程约定,则执行步骤E,否则执行步骤F;
E.串口数据接收处理模块设置定时器T定时时间Ti,缓存数组Ai下标变量Ni清零,执行步骤F;
F.串口数据接收处理模块判断数据帧帧头标志Fi是否为真,为真则执行G步骤;否则执行
J步骤;
G.串口数据接收处理模块将接收缓冲区数据赋值给串口数据接收处理模块缓存数组Ai,缓存数组Ai下标变量Ni自加1;
H.串口数据接收处理模块判断缓存数组Ai中存在数据是否与通信帧协议一致的数据字串,是则执行I步骤;否则执行步骤L;
I.串口数据接收处理模块清数据帧帧头标志Fi,将与通信帧协议一致的缓存数组Ai存入缓存数组Bi,缓存数组Ai下标变量Ni清零,执行步骤B;
J.串口数据接收处理模块判断数据是否为数据帧帧头,为真则执行K步骤;否则执行L步骤;
K.串口数据接收处理模块置数据帧帧头标志Fi,将接收缓冲区数据赋值给缓存数组Ai,缓存数组Ai下标变量Ni自加1,执行步骤H;
L.串口数据接收处理模块将缓存数组Ai下标变量Ni清零,执行步骤B。
Claims (9)
1.一种串行异步通讯数据传输方法,其特征在于包括如下步骤:以上位机微控制芯片作为异步串行通信的上位机,以下位机微控制芯片作为异步串行通信的下位机,二者通过RS-232/RS-422/RS485接口和TTL/串口信号转换电路连接组成串行异步通讯数据传输装置,并在上位机和下位机微控芯片中设置以串口数据接收处理模块、串口数据发送模块和定时器T模块构成的串行异步通讯数据传输程序软件;在串行异步通讯数据传输中,上位机和下位机周期性工作时刻点,均以对时脉冲上升沿时刻点为基准,串行异步通讯数据传输程序软件根据工作流程需求,向上位机和下位机发送缓冲区分时发送串口数据帧信息,通过TTL/串口信号转换模块发给下位机和上位机,上位机和下位机接收缓冲区接收到串口数据帧信息后,串口数据接收处理模块判断上位机和下位机接收缓冲区接收到的串口数据帧信息是否有效,将为真的数据帧通过接收缓冲区赋值给缓存数组Ai,缓存数组Ai下标变量Ni自加1,把与通信帧协议一致的数组字串存入缓存数组Bi。
2.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:上位机微控制芯片通过TTL/串口信号转换电路和发送对时脉冲的线缆,向下位机微控制芯片发送对时脉冲。
3.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:上位机对时脉冲产生模块产生一固定周期为Time的硬件脉冲信号作为对时信号,传给下位机微控芯片对时脉冲接收处理模块。
4.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:根据电子系统工作流程,制定上位机、下位机之间的通信帧协议,选用一固定周期Time的硬件脉冲信号作为对时信号,约定上位机微控制芯片、下位机微控制芯片周期性工作时刻点均以对时脉冲上升沿时刻点为基准,并根据工作流程需求分时发送数据,发送串口数据时刻点分别在时刻区间Time1~Time2、Time3~Time4发送串口数据。
5.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:上位机和下位机根据发送数据帧数据两个数据之间最大间隔时间,确定各自接收通讯数据帧中连续2个数据帧的最大间隔时间,作为上位机和下位机的定时器T1、T2定时时间Ti1、Ti2,Ti1、Ti2取Time/2。
6.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:串口数据接收处理模块接收缓冲区接收到数据后,串口数据接收处理模块启动程序。
7.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:串口数据接收处理模块判断接收缓冲区收到数据是否有效,有效则设置定时器T,定时时间Ti,打开定时器T开始计时。
8.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:串口数据接收处理模块判断定时器T计时时间,若为真则说明接收到的串口数据超时,不符合工作流程约定,则缓存数组Ai下标变量Ni清零。
9.如权利要求1所述的串行异步通讯数据传输方法,其特征在于:串口数据接收处理模块判断缓存数组Ai中存在数据是否与通信帧协议一致的数据字串,是则清数据帧帧头标志Fi,将与通信帧协议一致的缓存数组Ai存入缓存数组Bi,缓存数组Ai下标变量Ni清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410446457.5A CN104239254B (zh) | 2014-09-04 | 2014-09-04 | 串行异步通讯数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410446457.5A CN104239254B (zh) | 2014-09-04 | 2014-09-04 | 串行异步通讯数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239254A CN104239254A (zh) | 2014-12-24 |
CN104239254B true CN104239254B (zh) | 2017-04-05 |
Family
ID=52227359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410446457.5A Expired - Fee Related CN104239254B (zh) | 2014-09-04 | 2014-09-04 | 串行异步通讯数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239254B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302612B (zh) * | 2015-11-18 | 2018-05-08 | 西南技术物理研究所 | 快速升级电子系统机箱内单片机软件程序的方法 |
CN106126196B (zh) * | 2015-12-30 | 2019-02-12 | 中国人民解放军63686部队 | 一种基于xml的结构化多变量信息帧的界面赋值方法 |
CN105718415A (zh) * | 2016-01-19 | 2016-06-29 | 江苏飞尚安全监测咨询有限公司 | 一种单片机通用异步收发器接收分帧检测算法 |
CN107783921B (zh) * | 2016-08-29 | 2019-04-19 | 江苏金陵智造研究院有限公司 | 高可靠低成本多通道rs-422通信电路 |
CN106445717B (zh) * | 2016-09-20 | 2019-06-21 | 四川长虹电器股份有限公司 | 提高单片机通讯容错率的系统及其方法 |
CN109085798B (zh) * | 2018-08-06 | 2021-01-26 | 常州工业职业技术学院 | 一种嵌入式系统g代码异步通讯机制、协议及编程方法 |
CN111130969B (zh) * | 2019-12-30 | 2021-06-18 | 歌尔科技有限公司 | 串口数据接收方法和装置、耳机、充电设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455489A (zh) * | 2003-06-03 | 2003-11-12 | 东南大学 | 电力系统卫星同步授时装置 |
US6728795B1 (en) * | 2000-04-17 | 2004-04-27 | Skyworks Solutions, Inc. | DMA channel for high-speed asynchronous data transfer |
CN101136735A (zh) * | 2006-09-12 | 2008-03-05 | 中兴通讯股份有限公司 | 使用通用异步收发报机的半双工串口通信系统及通信方法 |
CN101561967A (zh) * | 2008-04-18 | 2009-10-21 | 哈尔滨工业大学 | 应用串行通信接口标准实现的电机故障检测系统通信方法 |
CN101944136A (zh) * | 2010-09-03 | 2011-01-12 | 上海大学 | 一种记录多路异步串行通讯信息装置和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050100114A1 (en) * | 2003-09-12 | 2005-05-12 | Airbee Wireless, Inc. | System and method for data transmission |
JP2008009608A (ja) * | 2006-06-28 | 2008-01-17 | Matsushita Electric Ind Co Ltd | シリアルインターフェース装置及び双方向シリアルインターフェースシステム並びにシリアル通信方法 |
-
2014
- 2014-09-04 CN CN201410446457.5A patent/CN104239254B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728795B1 (en) * | 2000-04-17 | 2004-04-27 | Skyworks Solutions, Inc. | DMA channel for high-speed asynchronous data transfer |
CN1455489A (zh) * | 2003-06-03 | 2003-11-12 | 东南大学 | 电力系统卫星同步授时装置 |
CN101136735A (zh) * | 2006-09-12 | 2008-03-05 | 中兴通讯股份有限公司 | 使用通用异步收发报机的半双工串口通信系统及通信方法 |
CN101561967A (zh) * | 2008-04-18 | 2009-10-21 | 哈尔滨工业大学 | 应用串行通信接口标准实现的电机故障检测系统通信方法 |
CN101944136A (zh) * | 2010-09-03 | 2011-01-12 | 上海大学 | 一种记录多路异步串行通讯信息装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104239254A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239254B (zh) | 串行异步通讯数据传输方法 | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
CN105099844B (zh) | 媒体发布方法、媒体数据获取方法以及媒体发布系统 | |
CN105119907A (zh) | 一种基于FPGA的BiSS-C通信协议方法 | |
CN106598889A (zh) | 一种基于fpga夹层板的sata主控器 | |
CN103684678A (zh) | 一种用于uart的波特率自适应方法、装置及uart | |
CN104780333A (zh) | 基于fpga的高带宽视频源接口适配装置 | |
CN1812317A (zh) | 同步媒介访问控制器 | |
CN105786639A (zh) | 一种i2c总线数据的传输方法及系统 | |
CN102722462A (zh) | 一种同步通信装置及其控制方法 | |
CN108494433B (zh) | 一种单线通信方法及其电路实现 | |
CN107346997A (zh) | 一种数据传输方法以及终端 | |
CN104992650A (zh) | Mipi信号自动测试方法和装置 | |
CN107579894B (zh) | 一种基于fpga的ebr1553总线协议实现装置 | |
CN105224485A (zh) | 一种普适的串行数据的接收方法及装置 | |
CN102546033A (zh) | 采用脉冲调制结合串口方式实现的多机通信装置 | |
CN106789295A (zh) | 一种SpaceWire总线通讯系统及其监视设备 | |
CN104144137A (zh) | 一种高速lvds串行同步通讯控制器 | |
CN103746789B (zh) | 一种基于cpu通用定时器来实现ieee‑1588协议中高精度时标的方法 | |
CN203982361U (zh) | 一种多路串口通信测试装置 | |
CN103279442A (zh) | 一种高速互联总线的报文过滤系统及方法 | |
CN104539528B (zh) | 多核通信设备及其与radius服务器间报文交互方法 | |
CN104102568B (zh) | 一种多路串口通信测试系统 | |
CN104883286B (zh) | 一种基于fpga的blvds总线数据传送装置 | |
CN201622783U (zh) | 一种led模组通信电路及led显示屏 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170405 Termination date: 20190904 |