UART串口,作为单片机最常用的通讯接口现已深化每一个嵌入式工程师的脑际。UART串口有着简略、有用的特性,嵌入式工程师常常用来将其作为调试体系的重要东西。UART串口的装备参数有许多,可是最常用,且需求修正的参数只要通讯波特速率这一个。可是这仅有的一个参数又常常给咱们带来许多困扰。那么,咱们关于串口波特速率该怎么辨认呢?笔者在这儿介绍三种辨认串口速率的办法,供咱们参阅。
UART(Universal Asynchronous serial Receiver and Transmitter)异步串行接纳/发送接口,是嵌入式体系里最为重要的接口之一,它不仅用于板级芯片之间的通讯,并且应用于完成体系之间的通讯和体系调度中。UART作为异步串口通讯协议的一种,作业原理是将传输数据的每个字符一位接一位地传输,其字符数据帧格局如下图所示:
图1 UART字符数据帧格局
从上面图中的帧格局能够看出,UART数据帧由1个开端同步位,1个数据字,1个完毕中止位,以及可选的校验位组成。由于UART为异步通讯,因而,其按位发送时有必要严格遵守设定的波特率,而接纳方也有必要在相同的波特率下才干正确解析发送的字符数据。所以,接纳方正确辨认、装备波特率就适当要害了。下面笔者依据实践经历介绍三种辨认串口波特率的办法:
穷举法
理论上,发送波特率能够设定为恣意的值,可是平常咱们运用的串口速率只要这么几种数值,如图2所示:
图2 常用串口波特速率
已然知道了常用串口速率,所以咱们就能够一个一个试,总会有一个是成功。当然条件是咱们知道主机发送的内容是什么,不然怎么才干知道串口速率正确匹配呢!这儿有必要留意,在设定波特率与实践波特率成倍数的情况下,是能够读出来数据——当然,数据是过错的。
示波器法
示波器被秒为电子工程师的“眼睛”,咱们能够就用这双眼睛来“看”出串口发送数据的波特率。这儿咱们先排除去高端的带有数字逻辑剖析功用的示波器,由于,这样的示波器现已远超笔者的IQ了,不是咱们本篇评论的内容。
上一部分,咱们叙述了波形的帧格局,这儿咱们就运用波形,发送一个特别的字符0x55(1010 1010B)。从理论上面剖析,这个波形应该会发生一个按位翻转的波形作用。图3是笔者运用示波器收集下来的截图:
图3 9600bps发送0x55波形图
看到图3所示的波形图,再加上理论剖析,咱们知道波形是按位翻转,所以咱们运用示波器的指针功用(cursor)来直接检查波特率。如图3左上角的丈量成果显现,每位翻转的频率为9.615KHz,与咱们设定的频率9600kbps根本相符,能够确认此发送频率为9600bps。