网站大量收购闲置独家精品文档,联系QQ:2885784924

UART串行口简介..doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UART串行口简介.

UART异步串行口 UART异步串行口简介 数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速 度快,适用于短距离通信,但要求通讯速率较高的应用场合。 串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利 用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场 合。 UART 异步串行口的传输格式 异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然 而在同一个字符中的两个相邻位代码间的时间间隔是固定的。 通信协议(通信规程):是指通信双方约定的一些规则。在使用异步串口传送一个 字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、资料位、奇偶校验 位、停止位。通讯时序图如下: 开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0”作为 起始位,然后出现在通信线上的是字符的二进制编码数据。 每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。 后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇 数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。 最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位 的时间宽度。 至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后, 下一个字符开始传送才又发出起始位。 每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特 率为110,150,300,600,1200,2400,4800,9600 ,19200,38400,115200等。 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)来设置。发送器也能够产生发送中止条件。中止条件迫使串口输出保持在逻辑0 状态,这种状态保持一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,在通过这个全0 状态将中止信号发送给对方。中止信号发送之后,传送数据连续放到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)(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% 异步串行口的相关寄存器 线路控制寄存器

您可能关注的文档

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档