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

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

3天内不再提示

如何使用家庭总线系统兼容收发器传输UART数据包

星星科技指导员 来源:ADI 作者:ADI 2023-01-12 11:50 次阅读

Maxim Integrated首款兼容家庭总线系统(HBS)的收发器MAX22088提高了恶劣工业环境的性能。MAX22088设计用于家庭总线系统,不限于这些网络。本应用笔记演示了使用MAX22088 HBS兼容收发器对UART数据包进行编码和发送的简单解决方案。

介绍

Maxim Integrated推出的MAX22088,这是其首款兼容家庭总线系统(HBS)的收发器。MAX22088符合HBS标准,但也可用于其他类型的通信系统。本应用笔记演示如何使用MAX22088 HBS兼容收发器和MAX32660微控制器生成和发送UART数据包。MAX32660微控制器用于为主收发器生成UART数据包,另一个MAX32660用于解码远端收发器接收的数据(图1)。该方法使用两块MAX22088评估板进行了验证;介绍并讨论了测试数据和代码示例。

pYYBAGO_g5mACJ61AACFp3od5Wo420.jpg?imgver=1

图1.简化框图

家庭总线系统 (HBS) 标准

在当今的家庭自动化 (HA) 系统中,多个电器、设备和控制设备之间的信息交换需要标准化的通信协议来实现有效和强大的数据传输。HBS标准通过将这些设备连接到单个总线来简化这些设备之间的通信,同时定义了同时提供电源和交换数据的传输标准。

MAX22088兼容HBS收发器支持在一对电线上传输数据和电源,用于HVAC等HBS应用以及远程监控和检测。标准HBS接线方案不允许主时钟信号同步输入和输出数据位。相反,与标准串行UART通信类似,数据转换在总线上检测并由接收电路解码。

使用MAX22088 HBS收发器发送UART数据包

UART协议是一种异步串行数据通信标准。UART不是主时钟同步输出位,而是使用数据包中的开始位和停止位来检测正在传输的数据。UART通信是大多数微控制器的通用集成功能,包括MAX32660。

标准 HBS 电缆将电源和数据从控制器传输到下游远程设备/节点。HBS数据传输使用替代标记反转(AMI)和负逻辑编码,占空比为50%,其中双极性脉冲表示逻辑“0”。当收发器输出处于高阻抗或非活动状态时,会出现逻辑“1”。家庭总线通信的要求是总线上永远不能有两个同时逻辑“0”条件。这是为了避免在传输数据时线路出现饱和和功率问题。固件或通信软件主要负责确保满足此要求。

因此,UART数据包需要确保在正常的家庭总线系统中,每个逻辑“0”后面必须跟一个逻辑“1”。一个简单的编码解决方案是用逻辑“1”填充每隔一位。此方法使数据包长度加倍,并使UART通信的传输频率减半。请注意,符合 HBS 标准的通信需要字符帧后面的奇偶校验位,但此方法不包括奇偶校验位。

MAX32660微控制器UART输出包括8位数据:一个起始位和一个停止位,但不包括奇偶校验位。8位数据扩展到总共两个数据包,并通过家庭总线传输(图2)。

下面提供的代码用于对 UART 数据包进行编码。它将 8 位数据拆分并分配给数据包的偶数位,并为数据包的奇数位分配逻辑“1”。

for (i = 0; i < TX_Length; i++) 
    {
       txdata[(i*2) + 0] = (( tx_text[i] & 0x08) << 3 ) +
                           (( tx_text[i] & 0x04) << 2 ) +
                           (( tx_text[i] & 0x02) << 1 ) +
                           (( tx_text[i] & 0x01)) + 0xaa;

       txdata[(i*2) + 1] = (( tx_text[i] & 0x80) >> 1 ) +
                           (( tx_text[i] & 0x40) >> 2 ) +
                           (( tx_text[i] & 0x20) >> 3 ) +
                           (( tx_text[i] & 0x10) >> 4 ) + 0xaa;                    
      }

例如,如果要发送的数据 (tx_text[i]) 是 0x35 (0b'00110101),则编码数据包 (txdata[i]) 将为 0b'10101111, 0b'10111011。

poYBAGO_g5uAf2URAABkaDrhTLo726.jpg?imgver=1

图2.通过家庭总线发送的编码UART数据包

图3显示了使用带编码的家庭总线成功传输UART数据0x35。

pYYBAGO_g5yAHPliAADhITagei8691.jpg?imgver=1

图3.在带编码的家庭总线中传输0x35(0b'00110101)

UART数据的编码使得每个“0”后跟一个“1”,并且数据从总线正确发送和接收。HBS发射器的数据输入和HBS接收器的数据输出匹配;接收器侧的MAX32660对输出位进行解码,无误差。

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

    关注

    48

    文章

    6803

    浏览量

    147594
  • 收发器
    +关注

    关注

    10

    文章

    2967

    浏览量

    104750
  • 总线
    +关注

    关注

    10

    文章

    2702

    浏览量

    87196
  • uart
    +关注

    关注

    22

    文章

    1156

    浏览量

    99936
收藏 人收藏

    评论

    相关推荐

    无线RTU(数据收发器)应用

    高度集成半双工微功率无线模块,其嵌入高速单片机,并采用最新高性能射频芯片,DW-M1无线RTU(数据收发器)最大发射功率500mw,可视环境下通信距离可达2700M以上(9.6Kbps)。通信速率最高达100kbps,可连续传输
    发表于 07-12 10:41

    请问SRIO每次出传输数据包的个数,数据包负载大小怎么设置?

    本帖最后由 一只耳朵怪 于 2018-6-19 14:25 编辑 DSP一次发送16个数据包,每个数据包256字节,一次传输4096个字节。如果现在DSP向FPGA发送2048字节数据
    发表于 06-19 05:22

    AXI流数据包传输问题

    嗨eveyone,我是这个论坛的新人。如果我弄错了,我道歉。我正在尝试使用AXI Stream协议传输数据包。这些数据包包括512 * 32位数据。使用1 kHz时钟使能发送重新生成的
    发表于 04-15 13:51

    基于射频收发器的探针无线传输数据的解决方案

    如果系统精度、效率和可靠性至关重要,那么设计传感节点无线数据传输以用于远程监控就会是一个相当大的挑战。而溶液的pH值是许多行业需要考虑的一种测量,今天我们分享的参考设计的目的是评估pH玻璃探针的特性,从而解决硬件和软件设计的不
    发表于 07-19 07:34

    FPGA高速收发器设计要遵循哪些原则?

    高速收发器(SERDES)的运用范围十分广泛,包括通讯、计算机、工业和储存,以及必须在芯片与芯片/模块之间、或在背板/电缆上传输大量数据系统。但普通高速
    发表于 08-07 06:26

    uart引导加载程序数据包长度无效

    加载程序的例子。我修改的项目支持UART bootloader和它不工作。我收到以下错误:“引导程序报告错误的数据包长度无效:数据包的长度不符合要求的数据包格式”我ahvedouble
    发表于 09-26 12:21

    电力线收发器SIG100的特性和应用

    30MHz),用于多个  4、单电源线上的网络。不限制消息中的字节数。  5、在多路传输网络中作为主设备或从设备运行。  6、通过广泛的直流电压进行通信。  7、消除LIN总线中的数据线和收发
    发表于 06-30 15:58

    高性能射频收发器cc1101

    唤醒(WOR)的广泛硬件支持。CC1101在代码、封装和外引脚方面均与CC1100兼容,可用于全球最为常用的开放式低于1GHz频率的RF设计。● 超低功耗无线收发器家庭和楼宇自动化● 高级抄表架构
    发表于 09-24 11:51

    UART数据包设计与解析

    上一节讲到起止式SST(Start-Stop-Type)帧结构协议,该协议利用帧头、长度、校验构建帧结构,基于帧结构能实现对数据包的可靠、准确传输。应用层数据...
    发表于 12-16 06:15

    UART收发器设计实例

    UART(Universal Asynchronous Receiver Transmitter,通用异步收发器)是广泛使用的异步串行数据通信协议。下面首先介绍 UART 硬件接口及电
    发表于 07-22 11:24 113次下载
    <b class='flag-5'>UART</b><b class='flag-5'>收发器</b>设计实例

    通用异步收发器(UART

    通用异步收发器(UART
    发表于 10-11 14:53 21次下载
    通用异步<b class='flag-5'>收发器</b>(<b class='flag-5'>UART</b>

    UART收发器的设计实例详细说明

    UART(Universal Asynchronous Receiver Transmitter,通用异步收发器)是广泛使用的异步串行数据通信协议。下面首先介绍 UART 硬件接口及电
    发表于 12-27 08:00 4次下载
    <b class='flag-5'>UART</b><b class='flag-5'>收发器</b>的设计实例详细说明

    如何使用家庭总线系统 (HBS) 兼容收发器传输 UART 数据包

    发表于 11-16 22:46 0次下载
    如何使<b class='flag-5'>用家庭</b><b class='flag-5'>总线</b><b class='flag-5'>系统</b> (HBS) <b class='flag-5'>兼容</b><b class='flag-5'>收发器</b><b class='flag-5'>传输</b> <b class='flag-5'>UART</b> <b class='flag-5'>数据包</b>

    UART通用异步收发传输器简述

    UART——通用异步收发传输器,UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个
    的头像 发表于 06-25 14:48 604次阅读
    <b class='flag-5'>UART</b>通用异步<b class='flag-5'>收发</b><b class='flag-5'>传输</b>器简述

    UART通用异步收发器原理是什么

    UART通用异步收发器(串口通信) 一般来说,开发过程中我们通常使用串口进行DEBUG调试。 原理 通用异步收发传输器(Universal Asynchronous Receiver
    的头像 发表于 11-09 17:32 329次阅读
    <b class='flag-5'>UART</b>通用异步<b class='flag-5'>收发器</b>原理是什么