通信设计中考虑协议的灵活性,经常把协议设计成“不定长度”。
一个实例如下图:锐米LoRa终端的通信协议帧。
如果一个系统接收上述“不定长度”的协议帧,将会有一个挑战--如何高效接收与解析。
为简化系统设计,我们强烈建议您采用“状态机”来解析UART数据帧,并且把解析工作放在ISR(中断服务程序)完成,仅当接收到最后一个字节(0x0D)时,再将整个数据帧提交给进程处理。
该解析状态机的原理如下图所示:
那么ISR处理这个状态机来得及吗?答案是:so easy!因为它只有3个动作,运算量十分小:
比较接收数据 -> 更新状态变量 -> 存储接收数据,C语言仅3条语句,翻译成机器指令也不超过10条。
代码清单如下:
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6035文章
44553浏览量
634739 -
通信协议
+关注
关注
28文章
881浏览量
40300 -
LoRa技术
+关注
关注
3文章
101浏览量
16328
原文标题:如何设计单片机的通信协议?
文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
AUTOSAR通信协议解析 如何实现AUTOSAR通信
通信协议栈是一个复杂的系统,它涵盖了多种通信方式和模块,以实现车内ECU之间的高效、可靠的数据交换。以下是对AUTOSAR通信协议的解析及实
串口通信协议解析 串口通信应用实例
串口通信协议解析 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。以下是串口通信协议的介绍: 基
PLC控制系统的通信协议解析
在现代工业自动化中,PLC控制系统扮演着至关重要的角色。它们不仅需要处理复杂的逻辑控制任务,还需要与其他系统和设备进行通信。为了实现这一目标,PLC系统必须遵循一系列的通信协议。 PLC通信协议
PROFINET通信协议是什么
PROFINET通信协议是一种专为工业自动化领域设计的基于以太网的实时通信协议。以下是对PROFINET通信协议的详细解析,包括其定义、特点、体系结构、工作原理、
SPI通信协议的基本概念和工作模式
SPI(Serial Peripheral Interface)通信协议,即串行外围设备接口,是一种高速、全双工、同步通信总线,由摩托罗拉公司提出并广泛应用。SPI以其高效的数据传输能力和简单的硬件
plc协议解析网关是什么
多种不同品牌和型号的PLC,它们可能采用不同的通信协议,如Modbus、ProfiNet、EtherNet/IP、Modbus TCP等。PLC协议解析网关的作用就是在这些不同协议之间
说明白了,Modbus RTU通信协议解析-成都电路板单片机开发
基本很多都内置了Modbus协议。作为一个开发者,在做单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统、物联网、电子产品、软件、APP项目
发表于 06-30 22:28
上位机与下位机通信协议的优化策略
在现代工业自动化系统中,上位机与下位机之间的通信是不可或缺的环节。上位机通常指负责监控、管理和控制功能的计算机或设备,而下位机则负责执行具体
UART串口通信协议是什么?
,广泛应用于嵌入式领域。 在UART串口通信协议中,数据以字节的形式进行传输。发送和接收端的通信流程如下: 1、通信波特率设置:发送端和接收
工业控制通信协议的报文帧分别是什么样的?
通信协议的设备上,有什么调试测试软件推荐,尽量不要借助硬件设备,直接使用上位机和支持该协议的设备相连接,直接发送帧读写参数?最常见的协议就是
发表于 01-19 14:46
HDLC通信协议是什么?HDLC通信协议的特点
13239定义并在2002年修订,2007年再次讨论后定稿的。在通信领域中,HDLC协议应用非常广泛,其工作方式可以支持半双工、全双工传送,支持点到点、多点结构,支持交换型、非交换型信道。 HDLC使用三种不同的帧类型来实现数
评论