CN104346316A - 一种高效串口通信协议的设计方法 - Google Patents

一种高效串口通信协议的设计方法 Download PDF

Info

Publication number
CN104346316A
CN104346316A CN201410564357.2A CN201410564357A CN104346316A CN 104346316 A CN104346316 A CN 104346316A CN 201410564357 A CN201410564357 A CN 201410564357A CN 104346316 A CN104346316 A CN 104346316A
Authority
CN
China
Prior art keywords
data
group bag
address
plain edition
communication 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.)
Granted
Application number
CN201410564357.2A
Other languages
English (en)
Other versions
CN104346316B (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.)
Dongfang Electric Automatic Control Engineering Co., Ltd.
Original Assignee
SICHUAN ORIENT ELECTRIC AUTOMATIC CONTROL ENGINEERING Co Ltd
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 SICHUAN ORIENT ELECTRIC AUTOMATIC CONTROL ENGINEERING Co Ltd filed Critical SICHUAN ORIENT ELECTRIC AUTOMATIC CONTROL ENGINEERING Co Ltd
Priority to CN201410564357.2A priority Critical patent/CN104346316B/zh
Publication of CN104346316A publication Critical patent/CN104346316A/zh
Application granted granted Critical
Publication of CN104346316B publication Critical patent/CN104346316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种高效串口通信协议的设计方法,包括以下步骤:打开并串口初始化程序;根据串口通信数据的特征和数据量选择按普通型组包或者改进型组包;当检测到串口有空则执行发送普通型或者改进型组包数据;接收方接收数据并按普通型或者改进型处理请求;本发明的在数据组包时会根据数据特征及数据个数选择普通型组包或者改进型组包,提高了串口通信的效率,减少CPU处理时间,提升了串口通信的稳定性。

Description

一种高效串口通信协议的设计方法
技术领域
本发明涉及串口通信技术,尤其涉及一种高效串口通信协议的设计方法。
背景技术
串口通信用于MCU 与MCU 以及MCU 与外设之间的数据传送,被广泛应用于工业通信领域。所谓串口通信是指通过数据信号线、底线、控制线等,按位进行传输数据的一种通信方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本。其中,RS-232串口通信方式因其具有规范的国际标准,而被人们广泛接受并使用,并且已经成为具有串口通信功能设备之间的标准接口。
工业通信技术已成为现代自动化技术领域发展最为活跃的一个分支了,各种新的技术、协议、标准、产品、应用层出不穷,双串口通信技术就是应用于工业通信领域的一项新的技术。然而,在通信数据组包上往往采用普通型组包方式,在处理少量地址不连续数据时会浪费CPU资源,降低串口通信效率。这是普通组包方式的一大缺陷。
发明内容
本发明的目的在于克服上述现有技术的缺点和不足,提供一种高效串口通信协议设计,可以充分利用CPU资源,采用对数据进行逻辑判断后选择组包的方式有效利用地址,提高了串口通信效率。
本发明技术方案如下所示:
一种高效串口通信协议的设计方法,其特征在于设计步骤如下:
步骤1,打开并串口初始化程序;
步骤2,根据串口通信数据的特征和数据量进行判断,选择普通型组包或者特殊型组包;
步骤3,当检测到串口有空时,则执行发送普通型组包的数据或者改进型组包的数据;
步骤4,接收方接收数据并按普通型或者改进型处理请求;
步骤5,关闭串口;
步骤2中所述选择普通型组包的方式是:当地址连续或者需通信数据大于0.5倍总数据量时,选择普通型组包;
步骤2中所述选择改进型组包的方式是:当地址不连续且需通信数据量不大于0.5倍总数据量时,选择改进型组包。
步骤2中选择普通型组包后,读操作时数据内容为首地址+数据个数,写操作时数据内容为首地址+数据1+...+数据n,其中n为大于或等于1的正整数。
步骤2中选择改进型组包后,读操作时数据内容为地址1+...+地址n,写操作时数据内容为首地址+数据1+地址2+数据2+...+地址n+数据n,其中n为大于或等于1的正整数。
所述普通型组包数据与改进型组包数据的方式差异较大,因此在数据区中利用功能码进行区分并解码;对数据区内容采用循环冗余校验码(欧洲CRC)校验,校验内容为:功能码+数据长度+数据内容,不含帧头和帧尾。
本发明的有益效果为:可以充分利用CPU资源,采用对数据进行逻辑判断后选择组包的方式有效利用地址,提高了串口通信的效率,减少CPU处理时间,提升了串口通信的稳定性。
附图说明
图1为本发明的原理示意图;
图2为本发明的发送数据流程示意图;
图3为本发明的接收数据流程示意图。
具体实施方式
如图1-3所示,一种高效串口通信协议的设计方法,详细流程如下:
步骤1,打开并串口初始化程序;
步骤2,根据串口通信数据的特征和数据量进行判断,选择普通型组包或者特殊型组包;
步骤3,当检测到串口有空时,则执行发送普通型组包的数据或者改进型组包的数据;
步骤4,接收方接收数据并按普通型或者改进型处理请求;
步骤5,关闭串口。
进一步地,步骤2所述选择组包类型明细如下:
普通型组包方式:当地址连续或者需通信数据大于0.5倍总数据量时,选择普通型组包,数据内容为:首地址+数据个数。
改进型组包方式:当地址不连续且需通信数据量不大于0.5倍总数据量时,选择改进型组包,数据内容为:地址+地址2+...+地址n。
进一步地,普通型组包与改进型组包的差异很大,因此在数据区中利用功能码进行区分并解码;对数据区内容进行欧洲CRC校验,校验内容功能码+数据长度+数据内容,不含帧头和帧尾。
    关于普通型组包与改进型组包在数据区中具体的写数据和读数据的方式如表1、表2所示:
表1 数据区构架(写数据)
表2 数据区构架(读数据)
本发明的具体实施步骤为:
步骤1:在普通型串口通信协议中添加改进型通信协议程序,具体过程如下:
增加不同数据特征或者不同数据量时组包方式判断逻辑;
在组包程序中添加改进型组包方式;
在普通组包和改进组包方式程序中统一设计功能码,以区别普通组包与改进组包、串口通信方向等。
在程序中增加普通数据包与改进数据包判断逻辑;
步骤2:编译通信协议程序;
步骤3:运行程序,验证改进串口通信协议设计正确性。 

Claims (5)

1.一种高效串口通信协议的设计方法,其特征在于设计步骤如下:
步骤1,打开并串口初始化程序;
步骤2,根据串口通信数据的特征和数据量进行判断,选择普通型组包或者特殊型组包;
步骤3,当检测到串口有空时,则执行发送普通型组包的数据或者改进型组包的数据;
步骤4,接收方接收数据并按普通型或者改进型处理请求;
步骤5,关闭串口;
步骤2中所述选择普通型组包的方式是:当地址连续或者需通信数据大于0.5倍总数据量时,选择普通型组包;
步骤2中所述选择改进型组包的方式是:当地址不连续且需通信数据量不大于0.5倍总数据量时,选择改进型组包。
2.根据权利要求1所述的高效串口通信协议的设计方法,其特征在于:步骤2中选择普通型组包后,读操作时数据内容为首地址+数据个数,写操作时数据内容为首地址+数据1+...+数据n,其中n为大于或等于1的正整数。
3.根据权利要求1所述的串口通信协议的设计方法,其特征在于:步骤2中选择改进型组包后,读操作时数据内容为地址1+...+地址n,写操作时数据内容为首地址+数据1+地址2+数据2+...+地址n+数据n,其中n为大于或等于1的正整数。
4.根据权利要求1所述的高效串口通信协议的设计方法,其特征在于:所述普通型组包与改进型组包的方式在数据区中利用功能码进行区分并解码。
5.根据权利要求1-4其中任意一项所述的高效串口通信协议的设计方法,其特征在于:对数据区内容采用循环冗余校验码校验,校验内容为:功能码+数据长度+数据内容,不含帧头和帧尾。
CN201410564357.2A 2014-10-22 2014-10-22 一种高效串口通信协议的设计方法 Active CN104346316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410564357.2A CN104346316B (zh) 2014-10-22 2014-10-22 一种高效串口通信协议的设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410564357.2A CN104346316B (zh) 2014-10-22 2014-10-22 一种高效串口通信协议的设计方法

Publications (2)

Publication Number Publication Date
CN104346316A true CN104346316A (zh) 2015-02-11
CN104346316B CN104346316B (zh) 2017-09-15

Family

ID=52501953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410564357.2A Active CN104346316B (zh) 2014-10-22 2014-10-22 一种高效串口通信协议的设计方法

Country Status (1)

Country Link
CN (1) CN104346316B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871510A (zh) * 2016-03-26 2016-08-17 深圳市中联宇航科技有限公司 一种航空数据的传输方法及装置
CN115002231A (zh) * 2022-05-27 2022-09-02 苏州联讯仪器有限公司 一种基于hex格式的通信协议、通信装置及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235346A1 (en) * 2007-03-22 2008-09-25 Moxa Technologies Co., Ltd. Method of detecting response time-out based on master-slave protocol architecture
CN103067238A (zh) * 2012-12-28 2013-04-24 深圳市研控自动化科技有限公司 一种兼容于modbus总线的数据采集方法
CN103795618A (zh) * 2014-02-18 2014-05-14 北京腾控科技有限公司 智能设备的通信系统、可编程协议网关设备及其通信方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235346A1 (en) * 2007-03-22 2008-09-25 Moxa Technologies Co., Ltd. Method of detecting response time-out based on master-slave protocol architecture
CN103067238A (zh) * 2012-12-28 2013-04-24 深圳市研控自动化科技有限公司 一种兼容于modbus总线的数据采集方法
CN103795618A (zh) * 2014-02-18 2014-05-14 北京腾控科技有限公司 智能设备的通信系统、可编程协议网关设备及其通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡文翔等: ""面向RS-485控制网络的Modbus协议扩展及应用"", 《自动化仪表》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871510A (zh) * 2016-03-26 2016-08-17 深圳市中联宇航科技有限公司 一种航空数据的传输方法及装置
CN105871510B (zh) * 2016-03-26 2019-05-07 深圳市中联宇航科技有限公司 一种航空数据的传输方法及装置
CN115002231A (zh) * 2022-05-27 2022-09-02 苏州联讯仪器有限公司 一种基于hex格式的通信协议、通信装置及介质

Also Published As

Publication number Publication date
CN104346316B (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
CN106354568A (zh) 一种不同进程间的通信方法及通信装置
CN101771627B (zh) 互联网实时深度包解析和控制节点设备和方法
CN103838552B (zh) 4g宽带通信系统多核并行流水线信号的处理系统和方法
CN101146102B (zh) Rru网络中hdlc数据下行、上行的方法及通讯装置
CN105793715A (zh) 互连重定时器增强
CN104216761B (zh) 一种在能够运行两种操作系统的装置中使用共享设备的方法
CN111638992A (zh) 基于微片的分组化
TW200836057A (en) Memory system and command handling method
CN104753931A (zh) 一种基于正则表达式的深度报文检测方法
CN109936868A (zh) 一种寻呼方法、终端及基站
CN105187332B (zh) 基于Zigbee网络的多源数据传输方法
CN104346316A (zh) 一种高效串口通信协议的设计方法
CN106941501A (zh) 一种数据通信方法及装置
CN104471888B (zh) 突发数据块中的空闲块idle的处理方法、设备及系统
WO2017012090A1 (zh) 一种配置下行解调参考信号dmrs端口的方法及装置
CN104135340A (zh) 在数据链信道中语音数据传输的处理方法
CN104885392B (zh) 一种前向纠错码码字同步的方法、设备与系统
CN101848055A (zh) 一种数据修正方法和装置
EP3087496B1 (en) Transition-minimized low speed data transfer
CN105553615A (zh) 基于fpga的流水线型多用户数据流接收装置及方法
CN101764797A (zh) 一种时分多通道lapd处理器及其设计方法
WO2022110112A1 (zh) 一种报文处理方法和装置
CN103546240B (zh) 以太网crc校验方法
CN103746773A (zh) 一种umts接收机对译码后数据进行纠错的方法及系统
CN106792466A (zh) 一种设备端与主机端通信方法

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 618000 No. 18, Third Section of Lushan South Road, Deyang City, Sichuan Province

Patentee after: Dongfang Electric Automatic Control Engineering Co., Ltd.

Address before: 618099 No. 18, Section 3, Lushan South Road, Deyang City, Sichuan Province

Patentee before: Sichuan Orient Electric Automatic Control Engineering Co., Ltd.