串口通信的可靠性直接影响工业系统的连续性。Air8000以多串口工业级连接力赋能设备互联,而硬件设计则是其可靠性的根基。总结黄金法则,从信号隔离、阻抗匹配到热设计,全方位保障串口通信的稳定性与安全性。
本文主要从硬件设计的角度,分享串口设计中的一些关键注意点,软件开发方面不做深入探讨。
一、串口相关管脚
Air8000支持4个串口,分别是:
主串口:UART1;
扩展串口:UART3、UART11、UART12;
对应的管脚如下:
其中UART3可以复用,可使用pins_Air8000.json进行复用。
例如:需要38、39管脚复用为UART3,可以如下配置。
Air8000系列管脚最新映射表下载:
https://docs.openluat.com/air8000/luatos/hardware/design/uart/
二、串口功能特性
2.1 主串口特性
主串口UART1用于模块的数据传输和外部通信及模块控制,特性包括:
TTL电平串口,电平为3.3V;
待机状态下为高电平;
支持模组休眠唤醒功能(LPUART)。
Air8000模组在休眠时,所有串口均为关闭状态,只有主串口支持接收串口数据唤醒模组。
注意:在非9600的其他波特率下,进行串口收发数据唤醒时,会丢失前几个字节。
2.2 扩展串口
扩展串口UART3、UART11、UART12,电气特性与主串口相同,但不支持休眠唤醒功能。
2.3 注意事项
UART管脚均可作为485通信,但是需要注意如下区别。
1)串口ID小于10时:485的控制IO需要选用GPIO ID需要小于128;
2)串口ID大于10时:485控制IO需要选用GPIO ID大于或者等于128。
三、硬件设计指导
3.1 串口的连接方式
模组串口遵循MODEM串口标准,DTR、DSR、CTS、RTS信号采用直连方式(不要交叉连接),与标准RS232连接方式不同。
在物联网串口应用中,通常保留TX/RX加流控管脚的5线串口形式,但模组的CTS管脚起标准RTS功能,RTS管脚起标准CTS功能。
流控管脚也可省略,形成3线串口(RX/TX/GND)。 主串口的型号命名很容易让人联想到RS232标准的DB9接口,其实不然,模组的串口连接方式与标准RS232连接方式有所不同。
标准RS232串口连接方式如下图所示,特点是交叉连接:
而模组串口遵循的是早期贺氏(HAYES)公司制定的MODEM串口标准,在这个标准下,DTR/DSR/CTS/RTS信号的功能有所不同。
MODEM串口标准标准下,DTR/DSR/CTS/RTS采用的是直连方式。
如下图示:
在逐渐的演变过程中,DCD/DSR/RI逐渐演变为其他的独立功能,在物联网串口应用中仅保留T/RX加流控管脚的5线串口的形式。
但是CTS/RTS的命名规则保留了下来,虽然CTS/RTS采用直连的方式,但是实际上模组的CTS管脚起到的功能是标准RTS功能;模组RTS管脚起到的功能是标准CTS功能。
5线串口连接方式如下:
甚至流控管脚也不是必须,就变成了3线串口:
3.2 串口的电平转换
Air8000的串口是TTL电平串口,TTL电平串口会有输入输出判别门限,如下图:
同时,外接MCU或者外设的TTL电平串口同样有判别门限。
一般来说,TTL电平的判别门限高低取决于IO供电电平VDD的高低。如果串口双方的判别门限差别较大,一方的输出高电平落在对方的高电平判别门限下,就容易出现误判的现象。
在串口双方电平不一致的情况,就要增加电平转换电路来转换通信电平。
1)双方模组串口电平差别不大的情况
例如,模组串口电平3.3V,MCU串口电平3.0V。按照上图判别门限,模组的输入高判别门限为:
0.7x3.3=2.31V
MCU串口高电平输出为3V,高于模组的输入高判别门限,能够稳定判断。这种情况下即使MCU与模组的电平不一致,直接连接也不会造成通信问题。
通常这种情况下,无需电平转换,只需要在串口TX/RX信号线上串联限流电阻即可。
限流电阻用于减小串口电平不匹配造成的漏电,通常按经验串联1K电阻即可,注意串联电阻不宜过大,会影响串口信号的上升下降时间,从而影响串口信号质量。
需要特别注意:
不要只看判别门限,还要考虑串口的耐压,即使落在判别门限内,但是一方高电平高于对方的IO耐压值的情况下就不能要串联电阻的方式,还是老老实实加串口电平转换。
一般来说,双方的电平差不宜超过0.5V。
2)晶体管的电平转方案
在串口波特率不高的情况下(如115200),可以通过NPN晶体管的方式进行电平转换。
优点:成本低;
劣势:低电平下会被三极管的饱和管压降抬高(通常在0.1V左右,不影响通信);开关速度不够,超过460800波特率时不建议用这种方式。
参考设计及注意事项如下:
3)电平转换芯片方案
对成本不敏感的话,优先考虑用电平转换芯片,无论速度,可靠性都很完美。
对于设计方面只要注意芯片选型,同时模组端参考电平注意用AGPIO3,其他的参考具体芯片参考设计即可,没有太多注意事项。
考虑到电平转换芯片价格与通道数量成正相关,也可以采用TX/RX用双通道电平转换芯片,其他流控信号用晶体管或者分压方式来做电平转换,兼顾性能和成本。
今天的内容就分享到这里了~