深刻理解UART

深刻理解UART

———————————————————————————————— 作者:
———————————————————————————————— 日期:
            UART异步串行口
UART异步串行口简介
数据通信的基本方式可分为并行通信与串行通信两种:
并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速
度快,适用于短距离通信,但要求通讯速率较高的应用场合。
串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利
用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场
合。
UART 异步串行口的传输格式
异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然
而在同一个字符中的两个相邻位代码间的时间间隔是固定的。
通信协议(通信规程):是指通信双方约定的一些规则。在使用异步串口传送一个
字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、资料位、奇偶校验
位、停止位。通讯时序图如下:
开始前,线路处于空闲状态,送出连续“”。传送开始时首先发一个“”作为
起始位,然后出现在通信线上的是字符的二进制编码数据。
2013普利策新闻奖每个字符的数据位长可以约定为位、位、7 位或8 位,一般采用ASCII 编码。
后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇
数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。
最后是表示停止位的“1”信号,这个停止位可以约定持续位、1.5 位或2
的时间宽度。
至此一个字符传送完毕,线路又进入空闲,持续为“”。经过一段随机的时间后,
下一个字符开始传送才又发出起始位。
每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特
率为110,150,300,6001200,24004800,9600 等。
S3C2410的异步串行口
S3C2410 UART(通用异步串行口)单元提供三个独立的异步串行I/O 端口,每个都可以在中断和DMA 两种模式下进行。UART支持的最高波特率达230.4kbps。每个UART通道包含2 16 FIFO 分别提供给接收和发送。
每个UART 包含波特率发生器,接收器,发送器和控制单元。。波特率发生器以PCLK或UCLK为时钟源。 发送器和接收器包含16 字节FIFO 寄存器和移位寄存器,当发送数据的时候,数据先写到西西弗斯FIFO 然后拷贝到发送移位寄存器,然后从数据输出端口(TxDn)依次被移位输出。被接收的数据也同样从接收端口(RxDn)移位输入到移位寄存器,然后拷贝到FIFO 中。
异步串行口的操作
数据发送操作
数据发送帧的格式是可编程的,它包含一个开始位,5 8 个数据位,一个可选的奇偶位和一个或两个停止位,这些可以通过线性控制器(ULCONn智慧交通建设)来设置。发送器也能够产生发送中止条件。中止条件迫使串口输出保持在逻辑状态,这种状态保持一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,在通过这个全状态将中止信号发送给对方。中止信号发送之后,传送数据连续放到FIFO 中(在不使用FIFO 模式下,将被放到输出保持寄存器)。
数据接收操作
与数据发送一样,数据接收的帧也是可以编程的,它包含一个开始位,5 8
数据,一个可选的奇偶位和一位或两位停止位,它们都是通过线性控制器(ULCONn
来设置的。
接收器能够检测溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都将
会将一个错误标志置位。
UART 异步串行口的波特率发生器
每个UART 的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以从S3C2410 的内部系统时钟或UCLK 中来选择。。波特率由时钟源(PCLK UCLK)16 分频然后被UART 波特率除数寄存器(UBRDIVn)指定的16 位除数决定。因此,UBRDIVn 的值可以按照下式确定:
UBRDIVn=(int)PCLK/(bps*16))-1 , 其中bps为波特率。
例如,如果波特率为115200bps PCLK UCLK 40MHz,UBRDIVn 为:
UBRDIVn =int(40000000)(115200*16))-1
= (int)(21.7)-1
= 21-1 = 20
UART异步串行口波特率发生器的误差极限
UART传输10bit数据的时间误差应该小于1.87%(3/160)。
tUPCLK = (UBRDIVn + 1) x 16 x 10 / PCLK    实际的传输10bit所需时间。
tUEXACT = 10 / baud-rate          理想情况下传输10位需要的时间。
UART error=(tUPCLK – tUEXACT) / tUEXACT x 100%
异步串行口的相关寄存器
线路控制寄存器(ULCON)
线性控制寄存器,主要用来规定传输帧的格式。下面表格是线控制寄存器的地址
和位定义:
寄存器
地址
读/写
描述
戈尔巴乔夫近况
重置值
ULCON0
0x50000000
读/写
UART通道0线路控制寄存器
重返阿富汗
0x00
ULCON1 
0x50004000
读/写
UART通道1线路控制寄存器
0x00
ULCON2
0x50008000
读/写
UART通道2线路控制寄存器
0x00 
ULCONn
描述
初始状态
保留
[7]
0 
Infra-Red Mode
[6]
决定是否用红外模式。
0 = 正常模式操作
1 = 红外Tx/Rx模式
0
Parity Mode
[5:3]
指定奇偶产生的类型并在UART的传输与接收操作中检查。
0xx = 非奇偶
100 =
101 =
110 = 强制奇偶/选中为1
111 = 强制奇偶/选中为0
000
Number of Stop Bit
[2] 
指定多少个停止位将被使用对于帧结束信号。
0 = 每帧一个停止位
1 = 每帧两个停止位
0
Word Length
[1:0]
显示每帧传输或接收的数据位的数目。两河口水电站
00 = 5位,01 = 6
10 = 7位,11 = 8
00

本文发布于:2024-09-24 16:33:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/32875.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   传输   数据   传送   中止   字符   发送   控制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议