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

    文章

    2076

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

    检漏仪通信革命:Modbus转Profinet让数据传输“快人一步”

    和高可靠性等显著优势。它支持TCP/IP、IRT等多种通信方式,能够满足不同工业应用场景对数据传输实时的要求,被广泛应用于大型自动化生产线、智能工厂等复杂工业控制系统中。VING微硬创新Profinet的主
    发表于 05-19 15:55

    SPI数据传输缓慢问题求解

    我遇到了 SPI 数据传输速率问题。 尽管将 SPI 时钟频率设置为 20 MHz,但我只获得了 2 Kbps 的数据传输速率。 我正在以 115200 的波特率通过 UART 监控数据。 我正在 cyfxusbspidmamo
    发表于 05-15 08:29

    iic协议数据传输速率标准

    I2C协议定义了多种数据传输速率标准,以适应不同的应用需求。以下是I2C协议的主要数据传输速率标准: 标准模式(Standard-mode) :速率为100 kbps(每秒100,00
    的头像 发表于 02-05 13:40 4368次阅读

    MPU数据传输协议详解

    协议的基本概念 数据传输协议定义了数据在MPU和外部设备之间传输的方式,包括数据的格式、同步方式
    的头像 发表于 01-08 09:37 1422次阅读

    MTP协议数据传输中的优势

    在现代通信系统中,电子邮件和消息传递服务已成为日常工作和生活中不可或缺的一部分。MTP协议作为X.400系列标准的核心组成部分,为这些服务提供了一个可靠和高效的传输机制。 1. 高度的可靠性
    的头像 发表于 01-03 09:53 1662次阅读

    总线数据传输的安全分析

    总线数据传输的安全分析,特别是针对像CAN(Controller Area Network)总线这样的重要通信协议,是一个复杂而关键的课题。以下是对CAN总线数据传输安全
    的头像 发表于 12-31 09:51 1196次阅读

    如何使用 HTTP 协议进行数据传输

    在互联网时代,数据传输是信息交换的基础。HTTP协议作为最常用的数据传输协议之一,支撑着全球数十亿用户的数据交互。 HTTP
    的头像 发表于 12-30 09:24 2149次阅读

    ptp对实时数据传输的影响

    在现代通信技术中,点对点(P2P)网络已经成为数据传输的一种重要方式。P2P网络允许网络中的每个节点既可以作为客户端也可以作为服务器,直接进行数据交换。这种去中心化的网络结构对于实时数据传输有着深远
    的头像 发表于 12-29 09:53 1043次阅读

    RS232接口数据传输稳定性

    电子设备之间的数据传输。它具有较高的传输可靠性,能够在复杂的工业环境和远距离通信场景中,确保数据可靠
    的头像 发表于 12-18 17:56 1898次阅读

    信噪比对数据传输速度的影响

    到信号检测和识别的准确,以及数据传输可靠性和速度。 二、信噪比对数据传输速度的影响 影响通信质量 : 高的信噪比意味着信号强度远大于噪声强度,信号能够更准确地被接收和解码,从而减少
    的头像 发表于 12-10 14:38 2779次阅读