案例介绍

UART

作者[Author]:Hope 验证[Verified]:No 浏览次数 [Views]:2106
字体大小 [Fonts]: 14px 16px 18px

概要[Abstract]        UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。UART具有发送数据和接收数据的功能。所以本方案内包含有两个模块,一个是发送数据模块,命名为UARTsend; 另一个模块是接收数据模块,命名为UART.

   (1)接收原理:

  由于UART是异步传输,没有传输同步时钟。为了能保证数据传输的正确性,采样模块利用16倍数据波特率的时钟进行采样,假设波特率为115200,则采样时钟为clk16x=115200×16。每个数据占据16个采样时钟周期,1bit起始位+8bit数据为+1bit停止位=10bit,因此一帧共占据16×10=160个采样时钟,考虑到每个数据为可能有1-2个采样时钟周期的便宜,因此将各个数据位的中间时刻作为采样点,以保证采样不会滑码或误码。一般UART一帧的数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。因此,采样时刻为24(跳过起始位的16个时钟)40567288104120136152(停止位)。

  2)发送原理:

  当并行数据准备好后,如果得到发送指令,则将数据按UART协议输出,先输出一个低电平的起始位,然后从低到高输出8个数据位,接着是可选的奇偶校验位,最后是高电平的停止位;

  由于发送时钟clk16x为波特率的16倍,因此对clk16x计数到16时,发送D0;计数到32时,发送D1……依此类推。


 
Copyright © Robei | | 鲁ICP备14018662号 |