不管是单片机开发还是嵌入式 Linux 开发,串口都是最常用到的外设。
可以通过串口将开发板与电脑相连,然后在电脑上通过串口调试助手来调试程序。
还有很多模块,比如蓝牙、GPS、GPRS等都使用串口与主控进行通信。
UART简介
串口全称串行接口,通常也叫做COM接口,,串行接口指的是数据一个一个的顺序传输,通信线路简单。
使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。
I.MX6U 自带的 UART 外设就是串口的一种,UART 全称是 UniversalAsynchronous Receiver/Trasmitter,也就是异步串行收发器。
既然有异步串行收发器,那肯定也有同步串行收发器,学过 STM32 的同学应该知道,STM32除了有 UART 外,还有 另外一 个叫做 USART 的东西 。USART 的 全称是 Universal Synchronous/Asynchronous Receiver/Transmitter,也就是同步/异步串行收发器。
相比UART,USART在UART上多了一个同步的功能,在硬件上体现出来就是多了一条时钟线。
一般 USART 是可以作为 UART使用的,也就是不使用其同步的功能。
UART发送和接收各用一条线,因此通过 UART 接口与外界相连最少只需要三条线:TXD(发送)、RXD(接收)和 GND(地线)。
UART 的通信格式:
空闲位:数据线在空闲状态的时候为逻辑“1”状态,也就是高电平,表示没有数据线空闲,没有数据传输。
起始位:当要传输数据的时候先传输一个逻辑“0”,也就是将数据线拉低,表示开始数据传输。
数据位:数据位就是实际要传输的数据,数据位数可选择 5~8 位,我们一般都是按照字节传输数据的,一个字节 8 位,因此数据位通常是 8 位的。低位在前,先传输,高位最后传输。
奇偶校验位:这是对数据中“1”的位数进行奇偶校验用的,可以不使用奇偶校验功能。
停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都选择 1 位停止位。
波特率:数据传输速率,每秒钟传输的数据位数,一般选择9600、19200、115200
UART电平标准
UART一般的接口电平有TTL和RS-232,一般开发板上都有TXD和RXD这样的引脚,这些引脚低电平表示逻辑0,高电平表示逻辑1,这就是TTL电平。
RS-232采用差分线,-3~-15V 表示逻辑 1,+3~+15V 表示逻辑 0。
CH340芯片就可以实现串口TTL转USB。