一、协议简介
UART是通用异步收发器 (Universal Asynchronous Receiver/Transmitter),行业内通常多称其为串口。UART是全双工通讯机制,即发送和接收是相对独立的两个线,发送和接收可以同时进行。
1、 波特率
信息在通信通道中传输的速率被称为波特率,通常来说就是每秒传输的比特数,用bit/s表示。波特率从低到高分别有:2400、4800、9600、115200等等,也可以自己设定,但是通常的串口工具通常只有这些选项。为了方便调试。很少使用自己私有规定的。 通常选用2400、4800、9600、115200的原因:波特率单位是bit/s,也就是二进制位/秒。因为一个字节是8个bit,而一个字节通常可以表达一个ASCII码,比如一个英文字母,所以:9600的波特率的信道,理论上每秒可以传输9600/8个英文字母的数据量,也就是1200个字节。 UART因为采用单数据线传输,没有参考时钟,因此收发端必须采用相同的波特率才能通讯解析数据,且两端时钟误差不能太大,否则会出现乱码。
2、 通讯数据格式
串口空闲时是高电平,当信号从高变低时,认为是起始位。 串口是首先传输低位,在传输高位,不同于I2C、SPI等信号传输是先传输高位 串口传输字节中的bit位的时间宽度=1/波特率
二、硬件设计
1、发送端和接收端电平域一致的情况
2、 发送端和接收端电平域不一致情况
1) 采用电阻分压的方式
如上图所示,左侧为3.3V系统,右侧为5V系统,当5V电平客户端向左侧发送数据时通过两个电阻分压,左侧接收端电压约为5V*2K/(1K+2K)≈3.3V,如此实现电平匹配。 左侧3.3V系统的TX通常和右侧5V系统RX直连,或在两者之间增加2K电阻,然后再5V系统侧增加1K上拉,这样尽量将5V侧RX电平满足采用电平需求。 2) 电平转换芯片方案,这一类产品比较多,这里不做累述 3) 三极管转换方案 上图电路使用两个NPN三极管,可将输入信号3.3V电平转换为5V输出电平,并且信号保持同步。电路描述:TX为低时,Q3不通、Q4导通,RX接地也为低;TX为高时,Q3导通,Q4不通,RX上拉为5V。如此二者高低同步,且电平实现转换。 此电路优势是成本低,驱动能力强,电路应用较为成熟广泛。缺点是通过三极管转换波形有延迟,所以速率不能太快(波特率不超过230400)。多路转换时物料较多,需要较大的布局空间。
|