UART接口协议

两篇准备文章

1.大端小端与MSB和LSB

2.MSB与LSB

3.如何判断机器是大端模式还是小端模式

简单来说就是大小端模式问题与MSB和LSB问题

大端模式:数据高位(MSB)存放在低地址,数据低位(LSB)存放在高地址;

小端模式:数据高位(MSB)存放在高地址,数据低位(LSB)存放在低地址;

常见的x86、STM32为小端模式,STM8为大端模式;

    UART是Universal Asynchronous Receiver and Transmitter简称,中文为通用异步接收和发送器,是常用的串行通讯接口。

一、数据格式

    UART作为异步传输接口,接口不需要共用同一个时钟,只需通讯双方在传输过程中的时钟频率大小保持一致。

波特率:每秒钟传输的数据位,此时可以等同于比特率。常用的UART波特率为:9600、115200。

起始位:先发一个逻辑0,表示传输字符的开始,依靠检测起始位来实现发送与接收方的时间自同步的。

数据位:可以是4、5、6、7、8位逻辑0或者1,构成一个字符,如ASCII码8位数据位,从最低位开始传送,靠时钟定位;方向为LSB。

奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数(偶校验)或奇数(奇校验)以此来校验数据传送的正确性;

停止位:他是一个字符数据的结束标志,可以是1位、1.5位、2位的高电平。适用于停止位的位数越多,不同时钟同步的容忍程度越大,数据传输率同时也越低。

空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送。

图1 数据帧结构
逻辑分析仪抓取E(0x45)

UART传输数据的顺序:刚开始传输一个起始位,接着传输数据位,接着传输校验位(可不需要此位),最后传输停止位,这样一帧的数据就传输完了。

传输方向:数据位从高位(MSB)开始传输还是从低位(LSB)开始传输。比如传输E(01000101),

                如果MSB就是01000101,如果LSB就是10100010。协议规定为LSB方向

帧间隔:即传送数据的帧与帧之间的间隔大小,可以用位或者时间为计量。

二、工作原理
    UART控制器中包含四种寄存器:输出缓存寄存器、输出移位寄存器、输入缓存寄存器、输入移位寄存器。

输出缓存寄存器:该寄存器用来存放处理传输过来的并行数据。

输出移位寄存器:读取输出缓存寄存器中的值,将并行数据串行输出,LSB先传输。

输入移位寄存器:接收对方UART接口传输的串行数据,一帧数据接收完毕后,将把数据传输给输入缓存寄存器。

输入缓存寄存器:保存从输入移位寄存器传递过来的串行数据。

UART接口协议_第1张图片 图2 UART工作原理

UART接口数据线:

1、RX:接收数据

2、TX:发送数据

3、GND:数字地

4、VCC:直流电源

三、电平转化
    UART采用TTL电平,若两台嵌入式设备通讯,可以直接连接。PC采用逻辑负电平,PC与嵌入式设备通讯,就必须通过芯片MAX232进行电平转化。

逻辑负电平:逻辑“1”(-5V -- -15V),逻辑“0”(5V --- 15V)
 

你可能感兴趣的:(接口协议)