一、简介:
1. UART:通用串行数据总线,用于双向异步通信。
2. 通信协议:
(1). 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
(2). 资料位:起始位之后。个数为4 5 6 7 8等,构成一个字符。通常为ASCII码。从最低位开始传送,靠时钟定位。
(3). 奇偶校验位:资料位之后。使得“1”的位数应为偶数(偶校验)或奇数(奇校验)。
(4). 停止位:字符数据的结束标志。是1位、1.5位、2位的高电平。 停止位不仅表示传输的结束,而且为计算机校正时钟同步。
(5). 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
(6). 波特率:传输的速率。每秒钟传送的符号数。一个符号代表的信息量(比特数)与符号的阶数有关。8数据位 无校验位 1停止位,波特率位115200baud (8n1) => 每一位传输时间为 1/115200 秒 => 传输一个字节要 8+1+1 为10位 => 传输1字节(8位)时间为 10/115200 => 一秒传输11520byte。
二、基本结构
1. 输出缓冲寄存器:从数据总线接收CPU送来的并行数据,加以保存。
2. 输出移位寄存器:以发送时钟的速率,逐位移出从输出缓冲器接收的并行数据(将并行数据转换为串行数据并输出)。
3. 输入移位寄存器:以接收时钟的速率,逐位移入串行数据输入线上的数据。当数据装满后,并行送往输入缓冲寄存器(将串行数据转换成并行数据)。
4. 输入缓冲寄存器:从输入移位寄存器接收并行数据,然后由CPU取走。
5. 控制寄存器:接收CPU送来的控制字,由控制字的内容,决定通信时的传输方式以及数据格式等。(异步/同步、数据字符的位数、有无奇偶校验、是奇校验还是偶校验、停止位的位数等)。
6. 状态寄存器:存放接口状态的信息。(输出缓冲区是否空/输入字符是否准备好等)。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存器的相应位置“1”,以便让CPU查询。
三、设置UART串口
1. 设置GPIO引脚。用于UART的接收/发送(TX/RX)。
2. 如果是TTL/CMOS,则需要设置,使能内部上拉。
3. 设置波特率。先设置时钟源和分频器,再设置供收发使用的传输模式。
4. 设置数据格式。(一般为8n1)。
5. 判断FIFO是否为空,继而决定是否能(写/读)数据。
6. 读接收寄存器/写发送寄存器,从而收发数据。
网友评论