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

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

3天内不再提示

消息协议如何提高数据传输的可靠性

454398 来源:工程师吴畏 2019-08-01 16:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

串行端口PIC与其他设备通信的最简单方法之一。但是,事件串行端口存在缺陷,因此在本教程中,我们将了解消息协议如何提高数据传输的可靠性。

示意图

原始数据传输

现代微控制器通常内置许多设备接口外设,包括I2C,SPI,UART和能够。虽然I2C和SPI专用于器件,并且严重依赖于选择信号或启动/停止信号,但UART更加自由。 UART的最大缺点之一是缺少时钟信号,这可能导致发送器或接收器的时钟漂移(导致波特差异),帧错误,甚至当其中一个缓冲器出现溢出错误方满了。当然,这些问题是使用定时器,监视器和事件容易克服的相对性。但是,与I2C和SPI不同,串行连接在一种特定情况下更常见:可移动硬件。 I2C和SPI器件通常是直接焊接到主电路板或永久连接到它们的IC。同时,这些设备是主控制器的子设备,因此无法自行启动数据传输。

想象一下PIC和计算机通过串行连接进行通信,其中每个设备都可以发送命令或数据到另一个设备。这样的系统可以用普通的消息协议轻松实现,其中发送的第一个字节代表命令,后面的字节代表该命令的数据。只要没有中断,该系统就可以正常运行。但是,如果计算机在发送命令后传输数据字节的一半时崩溃并重新启动会发生什么?好吧,我们的程序将重新启动并尝试发送命令字节以启动数据传输,但命令字节将被PIC解释为数据字节,因为它仍然期望一个数据字节。这会导致PIC产生错误,因为它读取的字节可能会产生意外结果。但这不仅仅是UART的一个问题;任何可能被终止的连接,无法知道连接已被终止,也可能崩溃。解决方案是使用消息协议!

我们的消息协议:DHP - DIY黑客协议

确保命令始终正确处理,命令字节值将是唯一的。对于我们的系统,我们将有以下命令:

0x00 - 无操作

0x01 - 请求数据

0x02 - 写数据

0x03 - 数据结束

0x04 - 重启(发生错误或失败)

作为一个简单的例子,如果我们想通过计算机向PIC发送一些数据,我们必须首先发送0x02,然后发送所有数据,然后发送数据结束字节。如果传输中断并且计算机尝试重新发送数据,它将再次发送整个数据包。 PIC将正确解释命令字节并意识到正在发送新数据包。但是,如果我们的数据包含0,1,2,3或4,会发生什么? PIC会将这些解释为命令字节,因此会发生致命错误。那么,我们如何解决这个问题?

虽然不是最有效的方法,但我们可以用其他形式表示我们的数据而不是原始字节值。一种方法是将我们的数据表示为十六进制形式的ASCII字符,以便两个ASCII字节代表一个字节的数据。例如,FF表示255,其中00表示0.因此,我们的数据字节永远不能与命令字节相同,并且通过使用ASCII编码的十六进制字节,理论上我们可以有多达240个命令字节(留下16个十六进制字符用于数据)。使用ASCII编码数据的缺点是我们有效地将数据速率减半,命令字节进一步降低了速度。但与此同时,系统的可靠性也得到了显着提高。

数据完整性怎么样?我们可以通过在数据包中添加校验和来实现这一点,这样接收方就可以确保数据完好无损。一种简单的方法是对收到的所有字节进行异或,并将其用作校验和。如果任何一个位被误读,这将显示在XOR校验和中。如果同一列中的两个位被误读,则校验和保持不变,因此XOR仅对单位错误有效(但这些是最常见的)。

示例包

编写数字92(十六进制0x5C)

从设备读取(TX设备)请求数据,RX设备发送请求的数据)

的构建的的

该项目可以使用许多不同的电路构造技术构建,包括条形板,矩阵板,面包板和PCB。在这个例子中,我使用了在CNC机床上制造的PCB(通过隔离布线),但我正在考虑回到化学过程,原因将在后面的文章中讨论。

这也是我第一个包含使用XYZ da Vinci Jr. 3D打印机制作的自定义项目框的项目。设计本身(痛苦地)在Google SketchUp中制作,然后由于STL导出器插件导出为STL文件。然后,STL文件在XYZmaker中导入并打印。虽然这个项目盒不使用螺丝,但未来的设计将会如此。虽然3D打印的型号可能价格昂贵(这个盒子使用价值约1.00美元的塑料),但它是一种定制设计,可以制作近乎完美的功能,如切口和孔。

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

    关注

    9

    文章

    2251

    浏览量

    67807
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LTC1694 SMBus/I²C加速器:提升数据传输性能的利器

    LTC1694 SMBus/I²C加速器:提升数据传输性能的利器 在电子设计领域,数据传输的速度和可靠性一直是工程师们关注的重点。特别是在SMBus和I²C总线应用中,如何优化信号质量、提高
    的头像 发表于 05-13 14:10 208次阅读

    量水堰计是如何实现数据传输和远程监控的?

    现代磁致式量水堰计依托成熟的物联网技术,已能够实现高效可靠数据传输与远程监控。其核心架构通常分为现场数据采集、数据传输与云端管理三个层面,共同构成完整的远程监测系统。在
    的头像 发表于 04-17 14:29 204次阅读
    量水堰计是如何实现<b class='flag-5'>数据传输</b>和远程监控的?

    什么是高可靠性

    满足后续PCBA装配的生产条件,并在特定的工作环境和操作条件下,在一定的时期内,可以保持正常运行功能的能力。 二、为什么PCB的高可靠性应当引起重视? 作为各种电子元器件的载体和电路信号传输的枢纽
    发表于 01-29 14:49

    投入式水位计数据传输方式解析:支持远程监控吗?

    在现代岩土工程与水利工程的安全监测中,数据的实时传输可靠性至关重要。投入式水位计作为核心监测设备,其数据传输方式直接决定了整个监测系统
    的头像 发表于 12-18 14:10 438次阅读
    投入式水位计<b class='flag-5'>数据传输</b>方式解析:支持远程监控吗?

    电能质量在线监测装置与GIS系统集成后,如何保证数据传输的实时和稳定性?

    电能质量监测装置与 GIS 系统集成后,数据传输需同时满足毫秒级响应和99.99% 可靠性的严苛要求。保障机制主要从以下四个维度构建: 一、通信协议数据传输机制优化 1.
    的头像 发表于 12-17 15:18 530次阅读
    电能质量在线监测装置与GIS系统集成后,如何保证<b class='flag-5'>数据传输</b>的实时<b class='flag-5'>性</b>和稳定性?

    Amphenol-Air LB SJT/TV数据连接器:高速数据传输的理想之选

    Amphenol-Air LB SJT/TV数据连接器:高速数据传输的理想之选 在当今高速发展的科技时代,高速数据传输需求日益增长,数据连接器作为
    的头像 发表于 12-15 11:15 881次阅读

    适合无线数据传输的有哪些协议

    适合无线数据传输协议种类繁多,根据应用场景、传输距离、数据速率、功耗等需求,可划分为 短距离低功耗协议 、 广域低功耗
    的头像 发表于 10-24 15:17 1655次阅读

    多通道数据传输终端 LoRa/LTE双模通信终端

    数据传输
    稳控自动化
    发布于 :2025年10月24日 13:57:21

    远程校准电能质量在线监测装置时,如何保证数据传输的完整

    远程校准电能质量在线监测装置时,保证数据传输完整性的核心是建立 “ 预处理防错→实时校验防篡改→丢包重传补缺失→全量验证闭环 ” 的全流程机制,通过技术手段确保数据传输中不被篡改、不丢失、不重
    的头像 发表于 10-11 16:47 1014次阅读
    远程校准电能质量在线监测装置时,如何保证<b class='flag-5'>数据传输</b>的完整<b class='flag-5'>性</b>?

    如何评估通信协议优化对数据传输效率的提升效果?

    评估通信协议优化对数据传输效率的提升效果,核心逻辑是 “控制变量 + 多维度量化对比”—— 即通过定义明确的评估目标、构建一致的测试环境、选取关键效率指标,对比优化前后的协议表现,最终验证优化是否达到预期(如降低延迟、提升吞吐量
    的头像 发表于 08-29 17:52 1538次阅读

    基于FPGA的USB数据传输

    你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢?
    的头像 发表于 08-06 14:47 5140次阅读
    基于FPGA的USB<b class='flag-5'>数据传输</b>

    应变计的数据传输方式有哪些,是否支持无线传输?

    在结构物安全监测领域,振弦式应变计的数据传输方式直接影响监测效率与系统可靠性。针对工程用户的常见疑问——“是否支持无线传输?”南京峟思将为大家解析其有线、无线传输方案及应用场景,助力科
    的头像 发表于 07-15 14:03 668次阅读
    应变计的<b class='flag-5'>数据传输</b>方式有哪些,是否支持无线<b class='flag-5'>传输</b>?

    振弦式应变计两种数据传输方式介绍

    采集的效率与可靠性。下面给大家介绍振弦式应变计两种数据传输方式。一、有线传输:稳定可靠的传统方案有线传输是振弦式应变计最传统的
    的头像 发表于 07-15 13:38 846次阅读
    振弦式应变计两种<b class='flag-5'>数据传输</b>方式介绍

    工业智能网关在数据传输中有哪些功能

    工业智能网关在数据传输中具备协议转换、数据采集与预处理、边缘计算、安全加密、多通道传输、远程管理与配置、断点续传与数据补传、
    的头像 发表于 07-01 15:16 1011次阅读
    工业智能网关在<b class='flag-5'>数据传输</b>中有哪些功能

    像这样一款体积小巧的DTU数据传输终端你见过吗?

    数据传输
    才茂通信
    发布于 :2025年06月04日 14:33:29