全志 T527 UART 调试指南:从电平标准到收发验证
从 BSP 工程师视角梳理 UART、TTL、RS-232、RS-485 以及 T527 平台的调试方法。

1. 调试前:先理解 UART
UART(Universal Asynchronous Receiver/Transmitter)是通用异步收发传输器。数据按位串行传输,属于异步通信,同时支持全双工:发送和接收可以同时进行。
USART 比 UART 多了同步通信能力,但多数工程会把 USART 当作 UART 使用。开发板或产品上,UART 接口通常标为 serial 或 COM。
容易混淆的几个概念:
- UART / COM:更偏向控制器或物理接口的称呼;
- TTL / RS-232 / RS-485:规定电气特性和电平标准;
- UART 串口在嵌入式中的典型用途是打印调试信息(如 uart0)和连接 GPS、蓝牙等模块。
2. UART 帧格式
一次 UART 传输通常包含以下部分:
| 起始位 | 发送逻辑 0,表示一帧开始 |
| 数据位 | 通常为 5~8 位,常见配置为 8 位 |
| 校验位 | 可选,用于检测传输错误 |
| 停止位 | 标记字符结束 |
常见波特率有 9600、19200 和 115200。波特率表示每秒传输的 bit 数,双方必须使用一致的串口参数。

3. UART 如何发送一个字节?
以字符 A 为例:它的 ASCII 值是 0x41,二进制表示为 01000001。发送过程可以概括为:

在芯片内部:
- 发送:CPU 将数据写入内存映射寄存器/FIFO,UART 移位器逐位发送,完成后产生中断。
- 接收:UART 逐位采样并移入接收移位器,再写入 FIFO 和内存,完成后产生中断。

4. TTL、RS-232、RS-485 有什么区别?
4.1 TTL
TTL 通常只需 TxD、RxD 和 GND 三根线:
- ARM TxD → PC RxD;
- PC TxD → ARM RxD;
- 双方共地。
TTL 电平简单,但抗干扰能力弱、传输距离短,容易在复杂环境中出现数据不可靠。
4.2 TTL 转 RS-232

RS-232 使用单端信号,典型规定为:
- 逻辑 1:-5 V ~ -15 V;
- 逻辑 0:+5 V ~ +15 V。
常见转换芯片有 MAX232、SP3232。它适合设备调试和短距离连接。
4.3 TTL 转 RS-485

RS-485 使用差分信号:
- 逻辑 1:B 线电压高于 A 线(通常 B-A ≥ 200 mV);
- 逻辑 0:A 线电压高于 B 线(通常 A-B ≥ 200 mV)。
差分传输能抑制共模干扰,适合工业环境和多设备联网。常见转换芯片包括 CA-IS3082WX、MAX485。

4.4 三种标准对比
| 本质 | 芯片级电平 | 短距离点对点标准 | 中远距离总线标准 |
| 信号 | 0~5 V 单端 | ±3~±15 V 单端 | A/B 差分 |
| 抗干扰 | 弱 | 中 | 强 |
| 典型距离 | ≤ 1 m | ≤ 15 m | ≤ 1200 m |
| 节点 | 点对点 | 点对点 | 最多 32 节点(可扩展) |
| 典型场景 | 板载芯片间通信 | 调试、短距离连接 | 工业总线、多设备联网 |

5. T527 硬件设计要点
在 RS-485 自动收发电路中,IS3082WX 的 DE(Driver Output Enable)和 nRE(Receiver Output Enable)控制发送与接收方向。
5.1 发送

5.2 接收


若 DE 和 nRE 共用一个控制引脚,可简化为:发送时 DE 高 → 发送 → DE 低;接收时无需额外切换。

6. 软件配置与驱动路径
T527 平台可从 BSP 驱动路径开始检查:
bsp/drivers/uart/sunxi-uart.c
根据硬件连接分别核对 TTL、RS-232 和 RS-485 的设备树/引脚复用配置,尤其注意 UART 引脚是否配置为正确的复用功能。

7. 调试流程
7.1 查看系统初始化的串口
系统启动后,先确认内核实际初始化了哪些串口:
dmesg | grep tty
如果输出与设备树和硬件连接一致,再进入收发功能验证。
7.2 TTL / RS-232 短接测试

下面以 ttyAS4 为例,设置 raw 模式、关闭回显并配置为 115200-8N1:
# 设置 raw 模式并关闭回显
stty -F /dev/ttyAS4 -echo raw
# 115200 波特率,8 数据位,无校验
stty -F /dev/ttyAS4 ispeed 115200 ospeed 115200 cs8 -parity
# 后台读取串口
cat /dev/ttyAS4 &
# 发送测试数据
echo 123456 > /dev/ttyAS4
TTL 与 RS-232 可以通过短接 TxD/RxD 做基础回环验证。
7.3 RS-485 对接测试
RS-485 是差分对,不能通过简单短接完成验证,可以用两路串口对接:
# 配置 UART6
stty -F /dev/ttyAS6 -echo raw
stty -F /dev/ttyAS6 ispeed 115200 ospeed 115200 cs8 -parity
# 配置 UART7
stty -F /dev/ttyAS7 -echo raw
stty -F /dev/ttyAS7 ispeed 115200 ospeed 115200 cs8 -parity
UART6 发送、UART7 接收:
cat /dev/ttyAS7 &
echo 123456 > /dev/ttyAS6
反向验证:
cat /dev/ttyAS6 &
echo 123456 > /dev/ttyAS7
8. 调试总结
从 BSP 工程师角度看,UART 的基础收发可以归结为 TX/RX 两根数据线,最容易出问题的是引脚复用和电平标准。完成配置后,按“查看 tty → 确认参数 → 短接或对接 → 收发验证”的顺序排查,通常能快速定位问题。


