1.UART
UART(Universal Asynchronous Receiver/Transmitter)全双工通用异步收发器,异步时不需要时钟信号。
如下图,起始位必为低电平,停止位必为高电平。中间的是八位数据位。
例如一个十位的数据如0011000011,第一个0代表起始位,中间的8位01100001代表a(a的ascii码为97),最后的1表示我已经传输停止。
2.波特率计算
在异步通信时,需要设定好波特率,波特率即每秒传输多少个二进制数据。
例如波特率=115200,则它传输一位数据位(1bit)的时间为1/115200s,而传输一个8位的数据,还需要一个校验位和停止位,共十位,所需时间是10*1/115200s,那么一秒能传输1/(10/115200)=11520bytes。
单片机与单片机/上位机通讯时必须是相同波特率,否则接收方不知道何时是起始位何时时停止位。会出现传输错误。
3.USART
在UART的基础上加上同步时钟就是USART(Universal Synchronous/Asynchronous Receiver Transmitter),全双工/半双工通用同步/异步收发器。
USART相比UART多了一个时钟线,通信双方会约定好在时钟的上升沿或下降沿读取数据,详细可参考下列博客。
USART UART串口通信详解
4.在iMX6ULL里tty与UART的对应关系
UART1对应ttymxc0
UART2对应ttymxc1
UART3对应ttymxc2
…
…
…
以此类推