CN106372027A - 一种单片机串行通讯协议 - Google Patents
一种单片机串行通讯协议 Download PDFInfo
- Publication number
- CN106372027A CN106372027A CN201610771584.1A CN201610771584A CN106372027A CN 106372027 A CN106372027 A CN 106372027A CN 201610771584 A CN201610771584 A CN 201610771584A CN 106372027 A CN106372027 A CN 106372027A
- Authority
- CN
- China
- Prior art keywords
- chip microcomputer
- single chip
- serial communication
- identification
- chip
- 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
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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本发明属于通讯协议的技术领域,具体涉及一种单片机串行通讯协议;解决的技术问题为:提供一种能够提高数据传输的正确性,能够识别传递内容,并且当出现数据传输错误能够直接得到差异位置的单片机串行通讯协议;采用的技术方案为:上位单片机和下位单片机进行通信时,包括以下步骤:上位单片机给下位单片机发送识别ID;下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送;本发明适用于串行通讯领域。
Description
技术领域
本发明属于通讯协议的技术领域,具体涉及一种单片机串行通讯协议。
背景技术
现有的单片机UART通讯,解决了通讯协议中的硬件部分内容,可以使通讯不必再关心物理层,但通讯中可能出现的数据传输错误及处理没有给出方法,传输中对客户传递的内容不加识别,需要客户维护传递的数据正确性和数据内容的识别。
发明内容
本发明克服现有技术存在的不足,所要解决的技术问题为:提供一种能够提高数据传输的正确性,能够识别传递内容,并且当出现数据传输错误能够直接得到差异位置的单片机串行通讯协议。
为了解决上述技术问题,本发明采用的技术方案为:一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,上位单片机和下位单片机进行通信时,包括以下步骤:101、上位单片机给下位单片机发送识别ID;102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105;104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108;105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数;106、上位机异常脱出;107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备;108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做准备。
具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:对待传输数据字节的类型进行分类,分为变量和指令。
具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,第9位数据位用于区分上位单片机发送的数据字节是识别ID还是数据内容。
具体地,所述将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,具体包括:将上位单片机和下位单片机的串行控制寄存器SCON的SM0、SM1设置为10或11。
具体地,步骤105中,N为1。
具体地,上位单片机和下位单片机开始进行通信时,上位单片机和下位单片机的发送中断请求标志位TI和接收中断请求标志位RI均为0。
本发明与现有技术相比具有以下有益效果:
本发明中,上位单片机向下位单片机发送的数据字节被明确的分为识别ID和数据内容,使得传递的数据类别通过确认而严格传递,使得双机通讯得以准确协调工作,下位单片机能够通过比较而确定错误出现的位置,提高数据传输的正确性,而且发送双方的代码简单,处理迅速,占用内存少,对于低速的单片机来说,可以选取较为高速的通讯速率。
附图说明
下面结合附图对本发明做进一步详细的说明;
图1为本发明实施例一提供的一种单片机串行通讯协议的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,其特征在于:上位单片机和下位单片机进行通信时,包括以下步骤:
101、上位单片机给下位单片机发送识别ID。
102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机。
103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105。
104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108。
105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数。
106、上位机异常脱出。
107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备。
108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做准备。
不同于奇偶校验位,哈希算法等校验方法,本发明变量名、指令名的确认使用了取反比较,数据传递的正确性使用了重复传递数值比较,本发明数据传递的异常可以通过两次数值的比较,直接得到差异位置,为应用提供了灵活性,代码简单,占用内存少,适合于资源较少的单片机间的协调工作。
具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:
对待传输数据字节的类型进行分类,分为变量和指令。
本实施例补足了现有UART通讯中欠缺的部分,将数据内容区分为变量和指令两类,并对两类需要的变量值和指令运行所需数据进行单独传输,使得客户能够让通讯的双方交换变量和指令协调工作。
具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:
将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,第9位数据位用于区分上位单片机发送的数据字节是识别ID还是数据内容。
本实施例以传送的第9数据位作为区分数据与类名的标志位,根据需要按照变量和指令两种方式来传递数据。
更具体地,所述将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,具体包括:
将上位单片机和下位单片机的串行控制寄存器SCON的SM0、SM1设置为10或11。
串行通讯UART协议有多种工作模式,用于传输数据,本发明利用UART的工作模式二或三(固定或可变频率9位异步通讯方式)进行通讯,能满足双机间的变量或指令的交换和传递,实现双机间的协调工作。
具体地,步骤105中,N为1。
本实施例中,N的值可根据实际应用环境进行设置。
具体地,上位单片机和下位单片机开始进行通信时,上位单片机和下位单片机的发送中断请求标志位TI和接收中断请求标志位RI均为0。
本发明对串行通讯的数据内容进行分类,可以按照变量和指令分别传输数据,满足单片机间的协调工作。对ID和数据用物理帧中的第九数据位区分,物理层的支持使得传递迅速,正确,不会混淆。传输过程中的数据传输错误发现与处理使用取反比较和等值比较实现,代码简单,执行迅速。传送数据的逐字节即时校验,占用内存少,错误位置确定,为应用提供了灵活性。变量和指令的传递,使得单片机间的数据、指令传递清晰,迅速,准确,为单片机间的协同工作创造了条件。
串行通讯作为普遍使用的数据通讯方式,通讯协议种类繁多,适应于不同设备、系统,应用于不同的目的,各有所长,各有所短。本发明为单片机间的协同工作所设计,代码简单,执行迅速,有一定的容错能力,能在现有代码基础上发展更完善的数据处理流程。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,其特征在于:上位单片机和下位单片机进行通信时,包括以下步骤:
101、上位单片机给下位单片机发送识别ID;
102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;
103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105;
104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108;
105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数;
106、上位机异常脱出;
107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备;
108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做准备。
2.根据权利要求1所述的一种单片机串行通讯协议,其特征在于:所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:
对待传输数据字节的类型进行分类,分为变量和指令。
3.根据权利要求1所述的一种单片机串行通讯协议,其特征在于:所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:
将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,第9位数据位用于区分上位单片机发送的数据字节是识别ID还是数据内容。
4.根据权利要求3所述的一种单片机串行通讯协议,其特征在于:所述将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,具体包括:
将上位单片机和下位单片机的串行控制寄存器SCON的SM0、SM1设置为10或11。
5.根据权利要求1所述的一种单片机串行通讯协议,其特征在于:步骤105中,N为1。
6.根据权利要求1所述的一种单片机串行通讯协议,其特征在于:上位单片机和下位单片机开始进行通信时,上位单片机和下位单片机的发送中断请求标志位TI和接收中断请求标志位RI均为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610771584.1A CN106372027A (zh) | 2016-08-31 | 2016-08-31 | 一种单片机串行通讯协议 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610771584.1A CN106372027A (zh) | 2016-08-31 | 2016-08-31 | 一种单片机串行通讯协议 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106372027A true CN106372027A (zh) | 2017-02-01 |
Family
ID=57900704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610771584.1A Pending CN106372027A (zh) | 2016-08-31 | 2016-08-31 | 一种单片机串行通讯协议 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106372027A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797739B2 (en) * | 2004-12-14 | 2010-09-14 | International Business Machines Corporation | Automated verification of correctness of aspects of an information technology system |
CN102053935A (zh) * | 2010-11-25 | 2011-05-11 | 广东雅达电子股份有限公司 | 一种基于modbus串行通讯协议的通讯方法 |
CN103095407A (zh) * | 2012-12-28 | 2013-05-08 | 广州中大微电子有限公司 | 读写器芯片数字编码装置及应用该装置的编码方法 |
-
2016
- 2016-08-31 CN CN201610771584.1A patent/CN106372027A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797739B2 (en) * | 2004-12-14 | 2010-09-14 | International Business Machines Corporation | Automated verification of correctness of aspects of an information technology system |
CN102053935A (zh) * | 2010-11-25 | 2011-05-11 | 广东雅达电子股份有限公司 | 一种基于modbus串行通讯协议的通讯方法 |
CN103095407A (zh) * | 2012-12-28 | 2013-05-08 | 广州中大微电子有限公司 | 读写器芯片数字编码装置及应用该装置的编码方法 |
Non-Patent Citations (4)
Title |
---|
朱兆优等: "《单片微机原理及接口技术》", 30 November 2015 * |
王清珍等: "基于UART设备的现场总线通信协议", 《微处理器》 * |
王顺江等: "《电气自动化通讯规约精解》", 31 July 2014 * |
韩海涛等: "一种基于IrDA1.0红外收发系统设计", 《电子测量技术》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103903199B (zh) | 一种基于个人移动终端的多用户点餐方法及系统 | |
CN105184566B (zh) | 一种智能密钥设备的工作方法 | |
CN104794089B (zh) | 适用于单片机的改进型uart通信的方法、装置及系统 | |
CN106650461A (zh) | 移动终端和基于该移动终端的嵌入式安全模块的访问方法 | |
CN107645369A (zh) | 一种重传反馈方法、网络设备、终端设备及计算机可读介质 | |
CN101022473B (zh) | 一种在交换机中自动识别板卡配置并且生成局数据的方法 | |
CN109951366A (zh) | 一种Modbus RTU总线控制器及控制方法 | |
CN106649165A (zh) | 建立嵌入式系统和pc主机通信连接的方法 | |
CN107180413B (zh) | 车损图片角度纠正方法、电子装置及可读存储介质 | |
CN106533621B (zh) | 基于简化的modbus协议的永磁同步电机实时监控的通讯方法 | |
CN108092921A (zh) | 一种数据交换系统和方法 | |
CN102998994B (zh) | 嵌入式血液分析仪控制系统及其控制方法 | |
CN106372027A (zh) | 一种单片机串行通讯协议 | |
CN109828938A (zh) | 一种基于芯片的通信方法和装置 | |
CN106375064A (zh) | 一种密码键盘usb通信异常恢复方法及系统 | |
CN102884744B (zh) | 用于保护有待于通过接口传输的数据包的方法和设备 | |
CN107196767A (zh) | 证书申请方法及装置 | |
CN102664887A (zh) | 输入信息保护方法、装置和系统 | |
CN102521197A (zh) | 一种利用低成本mcu的uart实现iso7816协议的方法 | |
CN110136796A (zh) | 一种基于人工智能的处方药售药系统及其方法 | |
CN102404151A (zh) | 支持复杂流量统计的网卡设备和相关复杂流量统计方法 | |
CN104102870B (zh) | 电子签名认证扩展设备及信息处理方法 | |
CN109660429A (zh) | 信息校验方法及信息校验系统 | |
CN105117761A (zh) | 一种标签信息处理方法 | |
WO2022227472A1 (zh) | 基于双通道和rssp-i的通信方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170201 |
|
RJ01 | Rejection of invention patent application after publication |