Air8000 串口电路设计说明
1. 概述
- 串口重要性:串口是 Air8000 模块最主要的通信接口,承担着控制、数据传输、外设通信等重要功能,是 Cat.1 应用场景中不可或缺的部分。
- 串口特性:Air8000 模块的串口特性与普通 MCU 串口有所不同,请务必仔细阅读本说明。
- 串口用途:Air8000 不支持 AT 指令操作,其 3个 UART(UART1、UART2、UART3)仅用于 LuatOS 二次开发,UART0为调试串口。
2. 串口相关管脚
- Air8000 支持 4 个串口,分别是主串口 UART1(MAIN_UART), UART2,UART3(AUX_UART)和UART0, 对应的管脚如下:
管脚编号 |
管脚名称 |
描述 |
---|---|---|
主串口UART1(MAIN_UART) |
||
17 |
MAIN_RXD |
串口数据接收 |
16 |
MAIN_TXD |
串口数据发射 |
UART2 |
||
92 |
GPIO10 |
串口数据接收 |
89 |
GPIO11 |
串口数据发射 |
调试串口UART0 |
||
38 |
DBG_RXD |
调试串口输入 |
39 |
DBG_TXD |
调试串口输出 |
- UART3 可以复用如下方法
管脚编号 |
管脚名称 |
描述 |
---|---|---|
复用方法1 |
||
39 |
SPI1_MISO |
串口数据接收 |
38 |
SPI1_SCLK |
串口数据发射 |
复用方法2 |
||
25 |
LCD_CLK |
串口数据接收 |
26 |
LCD_CS |
串口数据发射 |
-
可使用pins_Air8000.json 进行复用: 例如需要38,39 管脚复用为uart3,可以如下配置:
{ " pins" : [ // 485 功能使用的引脚 [38, "UART3_TX", " PIN38脚,做UART3_TX用, 用于控制XXX"], [39, "UART3_RX", " PIN39脚,做UART3_RX用, 用于控制XXX"], ] }
-
主串口 UART1:用于模块的数据传输和外部通信及模块控制,特性包括:
-
TTL 电平串口,电平为 3.3V
- 待机状态下为高电平。
-
只有主串口支持模块休眠唤醒功能(LPUART)。Air8000 模块在休眠时,所有串口均为关闭状态,只有主串口支持接收串口数据唤醒模块。 注意,在非 9600 的其他波特率下,进行串口收发数据唤醒时,会丢失前几个字节。
- 待机状态下:高电平。
-
扩展串口 UART2,UART3:电气特性与主串口相同,但不支持休眠唤醒功能。
-
调试串口 UART0:用于输出模块运行日志,固定波特率 961200 不可更改,不建议连接外设,但需预留测试点。其日志数据有专门协议,普通串口工具抓取会显示乱码,需使用指定的专用调试工具。在 openCPU 二次开发应用中可配置为一般串口,但开机前会输出调试日志,可能会对外接外设造成误动作,因此不建议在非调试情况下使用。
3. 硬件设计指导
-
串口连接方式:
-
模块串口遵循 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 功能。连接方式如下:
甚至流控管脚也不是必须,就变成了 3 线串口:
- 串口电平转换: Air8000 的串口是 TTL 电平串口,TTL 电平串口会有输入输出判别门限,如下图。
同时,外接 MCU 或者外设的 TTL 电平串口同样有判别门限,一般来说,TTL 电平的判别门限高低取决于 IO 供电电平 VDD 的高低。如果串口双方的判别门限差别较大,一方的输出高电平落在对方的高电平判别门限下,就容易出现误判的现象,就要增加电平转换电路来转换通信电平。
- 双方模块串口电平差别不大的情况:
例如,模块串口电平 3.3V, MCU 串口电平 3.0V。按照上图判别门限,模块的输入高判别门限为 0.7x3.3=2.32V,所以 MCU 串口高电平输出为 3V,高于模块的输入高判别门限,能够稳定判断。这种情况下即使 MCU 与模块的电平不一致,直接连接也不会造成通信问题。通常这种情况下,无需电平转换,只需要在窗口 TX RX 型号线上串联限流电阻即可,限流电阻用于减小串口电平不匹配造成的漏电,通常按经验串联 1K 电阻即可,注意串联电阻不宜过大,会影响串口型号的上升下降时间,从而影响串口信号质量。
注意:不要只看判别门限,还要考虑串口的耐压,即使落在判别门限内,但是一方高电平高于对方的 IO 耐压值的情况下就不能要串联电阻的方式,还是老老实实加串口电平转换。一般来说双方的电平差不宜超过 0.5V
- 晶体管的电平转方案:
在串口波特率不高的情况下(如 115200),可以通过 NPN 晶体管的方式进行电平转换,参考设计如下图,这种方式的优点:成本低; 劣势:低电平下会被三极管的饱和管压降抬高(通常在 0.1v 左右,不影响通信);开关速度不够,超过 460800 波特率时不建议用这种方式。
设计注意: 1. 模块RXD上拉电源选择,上图选择AGPIO做上拉而没有选择VDD_EXT电源做上拉,是因为VDD_EXT在模块休眠时会关闭,会导致RXD上产生一个低电平,又由于主串口支持休眠唤醒,就导致这个低电平让串口产生中断将模块唤醒,最终导致模块无法休眠。所以在需要休眠的应用设计上,禁止用VDD_EXT电源上拉串口。
-
三极管的基极要用较低电平的一方参考电平来上拉,否则容易找出三级管不能完截止。
-
RXD和TXD的上拉电阻在不影响信号质量的情况下尽量加大,一方面是降低休眠功耗,一方面是降低AGPIO的驱动负荷(Air8000所有AGPIO共享5mA最大驱动电流)。
-
对于三极管选型并没有严格要求,通用的3904NPN三极管都能满足要求
-
电平转换芯片方案:
电平转换芯片,对成本不敏感的话,优先考虑用电平转换芯片,无论速度,可靠性都很完美。对于设计方面只要注意芯片选型,同时模块端参考电平注意用 CAN_STB,其他的参考具体芯片参考设计即可,没有太多注意事项。
考虑到电平转换芯片价格与通道数量成正相关,也可以采用 TX RX 用双通道电平转换芯片,其他流控信号用晶体管或者分压方式来做电平转换。兼顾性能和成本。
电平转换芯片选型:
-
TXS0102/TXS0104/TXS0108系列,2/4/8通道,品牌TI
-
RS0102/RS0104/RS0108系列,2/4/8通道,品牌润石
-
SGM4553 , 双通道,品牌圣邦威
- Air8000 的串口为 TTL 电平串口,存在输入输出判别门限,外接设备的 TTL 电平串口也有判别门限,若双方判别门限差别大,会导致通信误判,需增加电平转换电路。
- 电平差别不大时:如模块串口电平 3.0V,MCU 串口电平 3.3V,可直接连接,只需在 TX、RX 线上串联限流电阻(通常为 1K),但要注意电平差不宜超过 0.5V,且要考虑串口耐压。
- 晶体管电平转换方案:在串口波特率不高(如 115200)时,可通过 NPN 晶体管进行电平转换,优点是成本低,但低电平会被抬高约 0.1V,且波特率超过 460800 时不建议使用。设计时要注意:
- 模块 RXD 上拉电源不能选择 VDD_EXT,VDD_EXT 休眠状态下既不是一直打开也不是一直关闭的特殊机制有可能造成 RX 电平变化进而唤醒 Air8000,同样的,TXD 上拉至 VDD_EXT 也有可能造成对端 MCU 无法进入休眠状态。
- 三极管基极要用较低电平一方的参考电平上拉。
- RXD 和 TXD 的上拉电阻在不影响信号质量的情况下尽量加大,以降低休眠功耗和 AGPIO 驱动负荷。
- 三极管选型无严格要求,通用的 3904NPN 三极管可满足需求。
- 电平转换芯片方案:若成本不敏感,优先考虑用电平转换芯片,性能和可靠性较好。设计时注意芯片选型,模块端参考电平用 CAN_STB。可采用 TX、RX 用双通道电平转换芯片,其他流控信号用电平转换芯片、晶体管或分压方式转换,兼顾性能和成本。推荐的电平转换芯片有:
- TXS0102/TXS0104/TXS0108 系列(TI 品牌)
- RS0102/RS0104/RS0108 系列(润石品牌)
- SGM4553(圣邦威品牌)
4. 总结
串口虽原理简单、速率低、设计不复杂,但在 Cat.1 通信系统尤其是低功耗物联网应用中,串口设计涉及休眠和功耗,需足够重视。