0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何高效接收与解析单片机的通信协议帧

STM32嵌入式开发 来源:RimeLink 作者:RimeLink 2022-07-05 17:19 次阅读

通信设计中考虑协议的灵活性,经常把协议设计成“不定长度”。

一个实例如下图:锐米LoRa终端的通信协议帧。

25611622-fc42-11ec-ba43-dac502259ad0.jpg

如果一个系统接收上述“不定长度”的协议帧,将会有一个挑战--如何高效接收与解析。

为简化系统设计,我们强烈建议您采用“状态机”来解析UART数据帧,并且把解析工作放在ISR(中断服务程序)完成,仅当接收到最后一个字节(0x0D)时,再将整个数据帧提交给进程处理。

该解析状态机的原理如下图所示:

256fb7ae-fc42-11ec-ba43-dac502259ad0.jpg

那么ISR处理这个状态机来得及吗?答案是:so easy!因为它只有3个动作,运算量十分小:

比较接收数据 -> 更新状态变量 -> 存储接收数据,C语言仅3条语句,翻译成机器指令也不超过10条。

代码清单如下:

poYBAGLEAwyAWgttAAEM8kVJ9LU126.jpg

poYBAGLEAxSAU29JAAENmZYQzSE033.jpg

pYYBAGLEAxuAUKz4AADWlRn_qbs350.jpg

pYYBAGLEAyKAFVzDAAA5A0XhFJI390.jpg



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44553

    浏览量

    634739
  • 通信协议
    +关注

    关注

    28

    文章

    881

    浏览量

    40300
  • LoRa技术
    +关注

    关注

    3

    文章

    101

    浏览量

    16328

原文标题:如何设计单片机的通信协议?

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    通信协议栈是一个复杂的系统,它涵盖了多种通信方式和模块,以实现车内ECU之间的高效、可靠的数据交换。以下是对AUTOSAR通信协议解析及实
    的头像 发表于 12-17 14:54 357次阅读

    串口通信协议解析 串口通信应用实例

    串口通信协议解析 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。以下是串口通信协议的介绍: 基
    的头像 发表于 11-21 17:03 489次阅读

    PLC控制系统的通信协议解析

    在现代工业自动化中,PLC控制系统扮演着至关重要的角色。它们不仅需要处理复杂的逻辑控制任务,还需要与其他系统和设备进行通信。为了实现这一目标,PLC系统必须遵循一系列的通信协议。 PLC通信协议
    的头像 发表于 11-08 09:46 618次阅读

    PROFINET通信协议是什么

    PROFINET通信协议是一种专为工业自动化领域设计的基于以太网的实时通信协议。以下是对PROFINET通信协议的详细解析,包括其定义、特点、体系结构、工作原理、
    的头像 发表于 09-25 18:13 1532次阅读

    SPI通信协议的基本概念和工作模式

    SPI(Serial Peripheral Interface)通信协议,即串行外围设备接口,是一种高速、全双工、同步通信总线,由摩托罗拉公司提出并广泛应用。SPI以其高效的数据传输能力和简单的硬件
    的头像 发表于 09-09 17:04 1370次阅读

    #单片机 #人工智能 #pcb设计 #通信协议

    通信协议
    深圳市北天通讯有限公司
    发布于 :2024年09月03日 09:27:07

    plc协议解析网关是什么

    多种不同品牌和型号的PLC,它们可能采用不同的通信协议,如Modbus、ProfiNet、EtherNet/IP、Modbus TCP等。PLC协议解析网关的作用就是在这些不同协议之间
    的头像 发表于 07-12 15:41 299次阅读
    plc<b class='flag-5'>协议</b><b class='flag-5'>解析</b>网关是什么

    说明白了,Modbus RTU通信协议解析-成都电路板单片机开发

    基本很多都内置了Modbus协议。作为一个开发者,在做单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统、物联网、电子产品、软件、APP项目
    发表于 06-30 22:28

    上位与下位通信协议的优化策略

    在现代工业自动化系统中,上位与下位之间的通信是不可或缺的环节。上位通常指负责监控、管理和控制功能的计算机或设备,而下位则负责执行具体
    的头像 发表于 06-28 16:36 917次阅读

    高速串行通信协议详解

    高效、稳定、可靠的特点,成为了现代通信领域的重要组成部分。本文将对高速串行通信协议进行详细解析,以期为读者提供全面深入的了解。
    的头像 发表于 05-16 16:45 811次阅读

    如何采用“状态解析UART数据

    如果一个系统接收上述“不定长度”的协议,将会有一个挑战--如何高效接收解析。 为简化系统设计
    的头像 发表于 03-25 14:29 681次阅读
    如何采用“状态<b class='flag-5'>机</b>”<b class='flag-5'>解析</b>UART数据<b class='flag-5'>帧</b>

    UART串口通信协议是什么?

    ,广泛应用于嵌入式领域。 在UART串口通信协议中,数据以字节的形式进行传输。发送和接收端的通信流程如下: 1、通信波特率设置:发送端和接收
    的头像 发表于 03-19 17:26 1367次阅读

    CAN通信协议中有哪几种类型?CAN通信格式的作用

    CAN通信协议中有四种类型,分别是数据、远程、错误和过载
    的头像 发表于 01-30 09:18 5443次阅读

    工业控制通信协议的报文分别是什么样的?

    通信协议的设备上,有什么调试测试软件推荐,尽量不要借助硬件设备,直接使用上位和支持该协议的设备相连接,直接发送读写参数?最常见的协议就是
    发表于 01-19 14:46

    HDLC通信协议是什么?HDLC通信协议的特点

    13239定义并在2002年修订,2007年再次讨论后定稿的。在通信领域中,HDLC协议应用非常广泛,其工作方式可以支持半双工、全双工传送,支持点到点、多点结构,支持交换型、非交换型信道。 HDLC使用三种不同的类型来实现数
    的头像 发表于 01-02 15:54 1440次阅读