CN103327012A - 一种基于通讯协议的可通用rs232/422/485数据接收方法 - Google Patents
一种基于通讯协议的可通用rs232/422/485数据接收方法 Download PDFInfo
- Publication number
- CN103327012A CN103327012A CN2013102088205A CN201310208820A CN103327012A CN 103327012 A CN103327012 A CN 103327012A CN 2013102088205 A CN2013102088205 A CN 2013102088205A CN 201310208820 A CN201310208820 A CN 201310208820A CN 103327012 A CN103327012 A CN 103327012A
- Authority
- CN
- China
- Prior art keywords
- data
- buffering area
- buffer
- communication protocol
- communications protocol
- 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.)
- Pending
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明涉及一种基于通讯协议的可通用RS232/422/485数据接收方法,这种接收方法基于一种常用的通讯协议。本方法采用一种在内存中自建缓冲区的方式接收数据,其特征在于下列步骤完成:A)接收到数据后先追加至缓冲区尾部;B)然后从缓冲区头部取出数据并根据通讯协议进行重新组包,取数后缓冲区里所有数据前移至头部;C)最后对组包后的数据进行解析;将上述步骤置入定时器中周期性调用可实现数据实时接收。1、本发明采用这种方法对具体硬件没有要求,任何RS232/422/485通讯设备都能采用此方法接收数据。2、本发明通讯内容稳定可靠。
Description
技术领域
本发明涉及一种基于通讯协议的可通用RS232/422/485数据接收方法,这种接收方法基于一种常用的通讯协议。
背景技术
RS232/422/485通讯被广泛运用于军用、民用电子设备中,为了使通讯内容稳定可靠,通讯双方往往会约定一种通讯协议;最常用的一种通讯协议邮包形式为:
位组长度指的是数据块中命令ID号和数据字的字节数之和。
基于这种通讯协议,有多种数据接收方法,但是这些方法往往受到硬件条件的限制(如要求能够获取硬件状态或者获取接收区已接收字节数等与硬件相关的内容),不同的硬件能够提供的条件也不相同,导致这些方法无法通用。
发明内容
为了克服上述缺陷,发明目的在于提供一种在内存中自建缓冲区的基于通讯协议的可通用RS232/422/485数据接收方法。
为了达到上述目的,本发明采用如下技术方案:
一种基于通讯协议的可通用RS232/422/485数据接收方法,本方法采用一种在内存中自建缓冲区的方式接收数据,如下列步骤完成:
A)、接收到数据后先追加至缓冲区尾部;
B)、然后从缓冲区头部取出数据并根据通讯协议进行重新组包,取数后缓冲区里所有数据前移至头部;
C)、最后对组包后的数据进行解析;
将上述步骤置入定时器中周期性调用可实现数据实时接收。
本发明的有益效果
1、本发明采用这种方法对具体硬件没有要求,任何RS232/422/485通讯设备都能采用此方法接收数据。
2、本发明通讯内容稳定可靠。
附图说明
图1为本发明数据接收工作原理。
具体实施方式
下面结合附图1对本发明进行详细描述:
一种基于通讯协议的可通用RS232/422/485数据接收方法,本方法采用一种在内存中自建缓冲区的方式接收数据,如下列步骤完成:
A)、接收到数据后先追加至缓冲区尾部;
B)、然后从缓冲区头部取出数据并根据通讯协议进行重新组包,取数后缓冲区里所有数据前移至头部;
C)、最后对组包后的数据进行解析;
将上述步骤置入定时器中周期性调用可实现数据实时接收。
程序具体说明:
接收函数( )
{
初始化缓冲区;
接收数据;
if ( 接收到的数据字节数 < 1)
退出函数;
if ( 接收到的数据字节数 > 0)
将接收到的数据追加到缓冲区尾部;
while (缓冲区字节数 >=通讯协议最小邮包长度)
{
去除缓冲区头部非邮包同步字的内容;
将剩余部分移动至缓冲区头部;
if (缓冲区字节数 >通讯协议最小邮包长度)
{
switch (缓冲区[3])
{
case命令ID号1:
从缓冲区取出该邮包并进行解析处理;
将剩余部分移动至缓冲区头部;
case命令ID号2:
从缓冲区取出该邮包并进行解析处理;
将剩余部分移动至缓冲区头部;
……
}
}
}
}
定时器函数( )
{
接收函数( );
}。
Claims (1)
1. 一种基于通讯协议的可通用RS232/422/485数据接收方法,本方法采用一种在内存中自建缓冲区的方式接收数据,其特征在于下列步骤完成:
A)、接收到数据后先追加至缓冲区尾部;
B)、然后从缓冲区头部取出数据并根据通讯协议进行重新组包,取数后缓冲区里所有数据前移至头部;
C)、最后对组包后的数据进行解析;
将上述步骤置入定时器中周期性调用可实现数据实时接收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102088205A CN103327012A (zh) | 2013-05-30 | 2013-05-30 | 一种基于通讯协议的可通用rs232/422/485数据接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102088205A CN103327012A (zh) | 2013-05-30 | 2013-05-30 | 一种基于通讯协议的可通用rs232/422/485数据接收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103327012A true CN103327012A (zh) | 2013-09-25 |
Family
ID=49195543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102088205A Pending CN103327012A (zh) | 2013-05-30 | 2013-05-30 | 一种基于通讯协议的可通用rs232/422/485数据接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103327012A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294266A (zh) * | 2016-07-27 | 2017-01-04 | 江西洪都航空工业集团有限责任公司 | 一种基于rs422串口数字通信的飞行器信号量处理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146090A (zh) * | 2007-10-16 | 2008-03-19 | 深圳国人通信有限公司 | 一种基于usart总线的发送接收数据的方法及其装置 |
CN101471787A (zh) * | 2007-12-25 | 2009-07-01 | 希姆通信息技术(上海)有限公司 | 基于无线通信模块的软件模拟uart的方法 |
CN101666534A (zh) * | 2009-09-18 | 2010-03-10 | 佛山市中格威电子有限公司 | 一种空调控制系统 |
CN101719306A (zh) * | 2009-10-30 | 2010-06-02 | 深圳市科陆电子科技股份有限公司 | 并发式电量数据采集方法 |
CN201540487U (zh) * | 2009-11-30 | 2010-08-04 | 中国船舶重工集团公司第七一一研究所 | 手持式船舶机舱设备维护检测操作器 |
CN102030018A (zh) * | 2009-09-28 | 2011-04-27 | 西门子信号有限公司 | 计轴系统的附属外围数据采集与分发装置 |
CN103078895A (zh) * | 2013-02-28 | 2013-05-01 | 安徽康海时代科技有限公司 | 一种基于mcf52233芯片的工业以太网多功能双串口服务器 |
-
2013
- 2013-05-30 CN CN2013102088205A patent/CN103327012A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146090A (zh) * | 2007-10-16 | 2008-03-19 | 深圳国人通信有限公司 | 一种基于usart总线的发送接收数据的方法及其装置 |
CN101471787A (zh) * | 2007-12-25 | 2009-07-01 | 希姆通信息技术(上海)有限公司 | 基于无线通信模块的软件模拟uart的方法 |
CN101666534A (zh) * | 2009-09-18 | 2010-03-10 | 佛山市中格威电子有限公司 | 一种空调控制系统 |
CN102030018A (zh) * | 2009-09-28 | 2011-04-27 | 西门子信号有限公司 | 计轴系统的附属外围数据采集与分发装置 |
CN101719306A (zh) * | 2009-10-30 | 2010-06-02 | 深圳市科陆电子科技股份有限公司 | 并发式电量数据采集方法 |
CN201540487U (zh) * | 2009-11-30 | 2010-08-04 | 中国船舶重工集团公司第七一一研究所 | 手持式船舶机舱设备维护检测操作器 |
CN103078895A (zh) * | 2013-02-28 | 2013-05-01 | 安徽康海时代科技有限公司 | 一种基于mcf52233芯片的工业以太网多功能双串口服务器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294266A (zh) * | 2016-07-27 | 2017-01-04 | 江西洪都航空工业集团有限责任公司 | 一种基于rs422串口数字通信的飞行器信号量处理方法 |
CN106294266B (zh) * | 2016-07-27 | 2019-04-19 | 江西洪都航空工业集团有限责任公司 | 一种基于rs422串口数字通信的飞行器信号量处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015159307A3 (en) | Method and system for implementing a wireless digital wallet | |
WO2012122555A3 (en) | Biological data networks and methods therefor | |
WO2010014698A3 (en) | Method and apparatus for proximate placement of sequential cells | |
EP2378822A3 (en) | Synchronizing wireless devices | |
EP2945350A3 (en) | Communication apparatus, a system for secure communication, and a method for communication | |
TW200637299A (en) | Method and related apparatus for reconfiguring size of a receiving window in a communication system | |
TW200943882A (en) | Synchronizing timing mismatch by data deletion | |
EP2782020A3 (en) | Completion combining to improve effective link bandwidth | |
JP2016526325A5 (zh) | ||
EP2903119A3 (en) | Communications via wireless charging | |
SG10201902590WA (en) | Data synchronization method and apparatus | |
WO2012125571A3 (en) | Apparatus and method for male stimulation | |
WO2010136775A3 (en) | Acquisition method and apparatus for mass spectrometer data | |
CN103746938A (zh) | 一种发送数据包的方法及装置 | |
RU2015108423A (ru) | Способ синхронизации в системе сбора данных | |
EP2490194A3 (en) | Communication apparatus, communication system, and communication method | |
EP2670100A3 (en) | Method and apparatus for synchronization of data and error samples in a communications system | |
CN104363034A (zh) | 可穿戴设备解除绑定的方法及其装置 | |
WO2014151589A3 (en) | Method and apparatus for context-aware synchronization for peer-to-peer communication | |
CN103327012A (zh) | 一种基于通讯协议的可通用rs232/422/485数据接收方法 | |
WO2011031103A3 (en) | Display method, and user terminal and system for transmitting and receiving data using the same | |
ATE501558T1 (de) | Verfahren für die synchronisation von anwendbaren uhrensignalen in einem synchronen kommunikationsnetzwerk, entsprechende sende- und empfangsvorrichtungen, computerprogrammprodukt und computerlesbares speichermittel | |
EP2096458A3 (en) | Systems and methods for radar data communication | |
US8995460B1 (en) | Embedded control data in communications systems | |
CN103152134B (zh) | 基于rtp协议的接收端重排语音包的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130925 |
|
RJ01 | Rejection of invention patent application after publication |