Air700ECQ/EAQ/EMQ 模块串口电路设计硬件指导
概述
串口作为 Air700ECQ/EAQ/EMQ 模块最最主要的通信接口,承担着控制,数据传输,外设通信等重要功能。基本上绝大部分的 Cat.1 应用场景都会用到。而 Air700ECQ/EAQ/EMQ 模块的串口特性和使用要求上与通常的 MCU 串口会有些不同,导致在第一次用 Air700ECQ/EAQ/EMQ 模块做设计时容易踩到一些坑。本文主要从硬件设计的角度,着重讲解串口设计中的一些关键注意点,软件开发或者 AT 设置方面不做深入探讨。
串口相关管脚
Air700ECQ/EAQ/EMQ 支持 2 个串口,分别是主串口 MAIN_UART, 调试串口 DBG_UART。对应的管脚如下:
管脚编号 | 管脚名称 | 描述 |
---|---|---|
主串口(MAIN_UART) | ||
15 | MAIN_RXD | 串口数据接收 |
14 | MAIN_TXD | 串口数据发射 |
50 | MAIN_DTR* | 唤醒中断输入管脚 |
5 | MAIN_RI* | 振铃信号 |
调试串口 | ||
2 | DBG_RXD | 调试串口输入 |
3 | DBG_TXD | 调试串口输出 |
*注: MAIN_DTR,MAIN_RI 管脚严格意义来说,并不能归为串口功能,MAIN_DTR,MAIN_RI是独立的控制功能管脚。
功能描述
-
主串口: 模块的 AT 指令控制,数据传输都是通过主串口来实现,注意,即使采用二次开发方式,也建议优先用主串口进行外部通信和模块控制。 主串口有以下特性:
-
为 TTL 电平串口(Air700ECQ/EAQ/EMQ 所有串口均为 TTL 电平串口),电平默认只能为 1.8V 电平(这点与Air780E/Air780EP等不同,Air700ECQ/EAQ/EMQ无法通过软硬件配置为3.3V默认电平);
- 默认波特率 115200,可以通过 AT+IPR 指令来配置波特率,最大支持 921600 波特率,不支持自适应波特率;
- 只有主串口支持模块休眠唤醒功能(LPUART)。Air700ECQ/EAQ/EMQ 模块在休眠时,所有串口均为关闭状态,只有主串口支持接收串口数据唤醒模块。 注意,在非 9600 的其他波特率下,进行串口收发数据唤醒时,会丢失前几个字节。
- MAIN_DTR 管脚,为中断输入管脚,用于唤醒模块。DTR 管脚内部串联 5.6K 电阻,而且内部上拉,外部直连即可,不建议外接上拉
- MAIN_RI 管脚:振铃管脚,当模块收到短信时,会输出 120mS 低脉冲通知主控来信。同时也可以通过 AT+CFGRI 指令设置 URC 上报提醒,当 AT+CFGRI=1 时,网络 URC 来到时,也会产生 120ms 低脉冲。详细功能逻辑如下:
- 待机状态下:为高电平。
- 来电状态*(Air700ECQ/EAQ/EMQ 不支持语言通话):收到来电通知时,MAIN_RI 管脚会变为电平,直到接通电话或者挂断时恢复为高带电平。
- 短信接收:当收到短信时,MAIN_RI 管脚会产生一个 120mS 的低脉冲。
- 数据传输:数据业务(包括 TCPIP,HTTP,MQTT,FTP)到来时的 URC 上报,会产生一个 120ms 低脉冲。(需要 AT+CFGRI=1 将功能使能)。
- 其他的 URC 上报:当模块主动发起对上位机的 URC 上报时,也会在 MAIN_RI 管脚会产生一个 120mS 的低脉冲,以通知上位机进行接收。(需要 AT+CFGRI=1 将功能使能)
- 调试串口:
调试串口 DBG_UART,用来输出模块的运行日志,无法通过 AT 指令来操作,但是可以通过 AT 指令(内部指令)来关闭调试串口的日志输出功能,但不建议。
调试串口固定波特率 961200 不可更改,不建议连接任何外设,但建议设计时预留测试点。调试串口日志数据有专门的协议,如果用普通的串口工具抓取会显示乱码,只有用专用调试工具,如有需要请联系官方技术人员。
对于 openCPU 二次开发应用来说,调试串口可以配置为一般串口使用,但是要注意,即使配置为一般串口在开机时软件跑起来前的这段时间内,仍然会输出调试日志,这就有可能对外接的外设造成误动作。同理,将调试串口配置为 GPIO 使用时也会有这个问题。因此万不得已情况下不要使用调试串口做其他功能。
硬件设计指导
- 串口的连接方式:
主串口的型号命名很容易让人联想到 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 线串口,也就是 Air700ECQ/EAQ/EMQ 支持的方式;
- 串口的电平转换:
Air700ECQ/EAQ/EMQ 的串口是 TTL 电平串口,TTL 电平串口会有输入输出判别门限,如下图。
同时,外接 MCU 或者外设的 TTL 电平串口同样有判别门限,一般来说,TTL 电平的判别门限高低取决于 IO 供电电平 VDD 的高低。如果串口双方的判别门限差别较大,一方的输出高电平落在对方的高电平判别门限下,就容易出现误判的现象,在串口双方电平不一致的情况,就要增加电平转换电路来转换通信电平。
- 晶体管的电平转方案:
在串口波特率不高的情况下(如 115200),可以通过 NPN 晶体管的方式进行电平转换,参考设计如下图,这种方式的优点:成本低; 劣势:低电平下会被三极管的饱和管压降抬高(通常在 0.1v 左右,不影响通信);开关速度不够,超过 460800 波特率时不建议用这种方式。
设计注意: 1. 模块RXD上拉电源选择,上图选择AGPIO做上拉而没有选择VDD_EXT电源做上拉,是因为VDD_EXT在模块休眠时会关闭,会导致RXD上产生一个低电平,又由于主串口支持休眠唤醒,就导致这个低电平让串口产生中断将模块唤醒,最终导致模块无法休眠。所以在需要休眠的应用设计上,禁止用VDD_EXT电源上拉串口。
对于 Air700ECQ/EAQ/EMQ 来说,VDD_EXT 没有引出,而是由 RefVolt代替,其作用与图中的 AGPIO3 一样;
-
三极管的基极要用较低电平的一方参考电平来上拉,否则容易找出三级管不能完截止。
-
RXD和TXD的上拉电阻在不影响信号质量的情况下尽量加大,一方面是降低休眠功耗,一方面是降低RefVolt的驱动负荷。
-
对于三极管选型并没有严格要求,通用的3904NPN三极管都能满足要求
-
电平转换芯片方案:
电平转换芯片,对成本不敏感的话,优先考虑用电平转换芯片,无论速度,可靠性都很完美。对于设计方面只要注意芯片选型,同时模块端参考电平注意用 AGPIO3,其他的参考具体芯片参考设计即可,没有太多注意事项。
考虑到电平转换芯片价格与通道数量成正相关,也可以采用 TX RX 用双通道电平转换芯片,其他流控信号用晶体管或者分压方式来做电平转换。兼顾性能和成本。
电平转换芯片选型:
-
TXS0102/TXS0104/TXS0108系列,2/4/8通道,品牌TI
-
RS0102/RS0104/RS0108系列,2/4/8通道,品牌润石
-
SGM4553 , 双通道,品牌圣邦威
总结
虽然串口这个硬件总线原理简单,速率低速,设计也不复杂,但是对于 Cat.1 通信系统尤其是低功耗物联网应用,串口的设计就会牵涉到休眠和功耗,因此在设计中还是要有足够的重视。