Maxim Integrated首款兼容家庭总线系统(HBS)的收发器MAX22088提高了恶劣工业环境的性能。MAX22088设计用于家庭总线系统,不限于这些网络。本应用笔记演示了使用MAX22088 HBS兼容收发器对UART数据包进行编码和发送的简单解决方案。
介绍
Maxim Integrated推出的MAX22088,这是其首款兼容家庭总线系统(HBS)的收发器。MAX22088符合HBS标准,但也可用于其他类型的通信系统。本应用笔记演示如何使用MAX22088 HBS兼容收发器和MAX32660微控制器生成和发送UART数据包。MAX32660微控制器用于为主收发器生成UART数据包,另一个MAX32660用于解码远端收发器接收的数据(图1)。该方法使用两块MAX22088评估板进行了验证;介绍并讨论了测试数据和代码示例。
图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。
图2.通过家庭总线发送的编码UART数据包
图3显示了使用带编码的家庭总线成功传输UART数据0x35。
图3.在带编码的家庭总线中传输0x35(0b'00110101)
UART数据的编码使得每个“0”后跟一个“1”,并且数据从总线正确发送和接收。HBS发射器的数据输入和HBS接收器的数据输出匹配;接收器侧的MAX32660对输出位进行解码,无误差。
全部0条评论
快来发表一下你的评论吧 !