硬件测试 - 数字接口测试(一):UART、I2C、SPI接口的电气特性、信号质量测试、协议解码基础
各位好,欢迎来到数字接口测试的第一讲。说实话,做硬件测试这些年,我打交道最多的就是UART、I2C、SPI这三个接口。别看它们“老”,但几乎所有嵌入式设备里都有它们的身影。你想想看,从一颗简单的传感器,到复杂的SoC,内部通信基本就靠这三兄弟。今天咱们就掰开揉碎了聊聊,怎么测好它们。12.1 UART接口测试:最基础的“串口”UART,全称通用异步收发器。说白了,就是一根线发、一根线收,不需要时钟线。我刚开始学硬件时,觉得它最简单,但后来发现,越简单的东西,坑反而越多。12.1.1 电气特性与电平标准UART的电平标准主要有两种:TTL/CMOS电平:0V为低,3.3V或5V为高。板级通信常用。RS-232电平:+3V~+15V为低(逻辑0),-3V~-15V为高(逻辑1)。远距离通信用。注意:我曾经遇到过一位同事,直接把TTL电平的UART接到RS-232接口上,结果烧了芯片。电平不匹配,轻则通信失败,重则烧毁器件。测之前,一定先确认电平标准。12.1.2 信号质量测试要点测试UART信号质量,我习惯用示波器看三个地方:波特率精度:测量一个bit的宽度,计算实际波特率。误差一般要求2%。上升/下降时间:太快会有过冲,太慢会影响时序。通常在10ns~50ns之间比较理想。眼图:虽然UART速率不高,但眼图能直观反映信号质量。眼睛睁开越大越好。小技巧:测波特率时,我习惯抓取起始位(低电平)后的第一个数据位。用示波器的光标量一下宽度,再算一下。比如1ms宽,那波特率就是1000bps。简单粗暴,但很准。12.1.3 协议解码基础