大家好,又见面了,我是你们的朋友全栈君。 UART接口介绍
UART是Universal Asynchronous Receiver and Transmitter简称,中文为 通用异步接收和发送器,是常用的串行通讯接口。
一、数据格式
UART作为异步传输接口,接口不需要共用同一个时钟,只需通讯双方在传输过程中的时钟频率大小保持一致。
图1 数据帧结构
数据帧包括:起始位、数据位、奇偶校验位、停止位。
1、 起始位:表明将要发送数据,传输字符开始,起始位为低电平“0”;( 必须)
2、数据位(资料位):数据位可以是5 bits、6 bits、7 bits或者8 bits,常用为8 bits(ASCII码),从最低位开始发送,依靠时钟进行定位;(必须)
3、 奇偶校验位:传输数据位加上这一位后使得1的位数应为偶数(偶校验)或奇数(奇校验),通过该方式来校验数据传输的正确性。( 可选)
4、 停止位:表明数据传输结束,停止位为高电平“1”。停止位的宽度可能是1bit、1.5bit、或者2bit的高电平,数据在传输线上定时,每个设备有自己的时钟,通讯设备之间很可能出现微小不同步,所以停止位不仅仅表示传输的结束,并且提供设备之间校准时钟同步的机会;( 必须)
5、 空闲状态:当UART未发送数据时,数据线TX、RX状态为高电平“1”;
6、 波特率:每秒钟传输的数据位,此时可以等同于比特率。常用的UART波特率为:9600、115200。波特率是衡量数据传输速率的指标,表示每秒钟传输的符号数(symbol),一符号代表信息量(比特数)与符号的阶数有关,如果用256阶符号-8bits表示一个符号;
7、 回环操作(loopback):UART可以进入一个内部回环模式,用于诊断或调试;
8、buffer一般是用FIFO(First in First out),目的是提高系统性能。
二、工作原理
UART控制器中包含四种寄存器:输出缓存寄存器、输出移位寄存器、输入缓存寄存器、输入移位寄存器。
输出缓存寄存器:该寄存器用来存放处理传输过来的并行数据。
输出移位寄存器:读取输出缓存寄存器中的值,将并行数据串行输出,LSB先传输。
输入移位寄存器:接收对方UART接口传输的串行数据,一帧数据接收完毕后,将把数据传输给输入缓存寄存器。
输入缓存寄存器:保存从输入移位寄存器传递过来的串行数据。
图2 UART工作原理
UART接口数据线:
1、RX:接收数据
2、TX:发送数据
3、GND:数字地
4、VCC:直流电源
三、电平转化
UART采用TTL电平,若两台嵌入式设备通讯,可以直接连接。PC采用逻辑负电平,PC与嵌入式设备通讯,就必须通过芯片MAX232进行电平转化。
逻辑负电平:逻辑“1”(-5V — -15V),逻辑“0”(5V — 15V)
四、案例—-逻辑分析仪
五、串口调试工具测试
对于串口数据,是一种无符号整形数据类型,所以常用以下有两种表示方式: 1、字符;2、十六进制;(串口调试工具默认为该两种方式)
六、Invertion(电平反转)
1、DUT已经配置为TX invertion,逻辑分析仪也调整好协议格式(invertion)
DUT发送字符S(0x53),逻辑分析接收数据如下:
示波器抓波形:
2、Tx数据也反转
DUT发送字符S(0x53),逻辑分析接收数据如下:
示波器抓取数据:
七、UART break信号
1、space state:低电平
2、mark state:高电平,或者可以理解为idle state;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。