打印
[NXP ARM]

关于LPC2131 UART FIFO的三个问题?

[复制链接]
3319|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
火箭球迷|  楼主 | 2010-6-10 22:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、接收数据的FIFO可以避免在任务切换的空隙接收的数据丢失,那发送用的FIFO有什么用呢?发送数据的机理,我理解为:数据先到FIFO,然后再发送至移位寄存器,最后送出。那么为什么要先送到FIFO呢?
2、关于FIFO的字符超时中断,书中原话如下:“当UART Rx FIFO包含至少1个字符并且在接收3.5到4.5字符的时间内没有发生UART Rx FIFO动作时,产生中断。UART Rx FIFO的任何动作(读或写UART RSR)都将清除该中断。当接收到的信息不是触发值的倍数时,CTI中断将会清空UART RBR。例如,如果一个外设想要发送一个105个字符的信息,而触发值为10个字符,那么前100个字符将使CPU接收10个RDA中断,而剩下的5个字符使CPU接收1到5个CTI中断(取决于服务程序)。”两处红字分别是什么意思?
对于接收105个字符的中断子程序是不是要分为两部分:FIFO中断和CTI中断?到底CTI要中断几次?
3、串口通信格式中的奇偶选择和间隔控制是什么意思?

相关帖子

沙发
zwll| | 2010-6-12 20:26 | 只看该作者
超时中断只有一次,其它都是FIFO满中断

使用特权

评论回复
板凳
司徒老鹰| | 2010-6-12 20:31 | 只看该作者
字体这么小~~~

使用特权

评论回复
地板
zwll| | 2010-6-19 16:49 | 只看该作者
呵呵,楼主打字打了半天还有时间改字体

使用特权

评论回复
5
ajax_wh| | 2010-6-21 10:59 | 只看该作者
对于以上问题分别回答如下:
(1)发送FIFO的作用和接收FIFO是一样的。当向发送寄存器写入数据后,数据被写入FIFO,UART发送数据时要分别加上头、尾和校验(如果设置的话),这些都增加了发送的时间,通过引入FIFO,可以吸收因为突发数据引起的溢出。FIFO只也是缓冲,只是FIFO简化了数据输入输出的方式。
(2)至于中断的次数,不必深究,因为这与当时CPU的状态相关,接收同样的字符数量,中断次数是不一样的。
(3)你说的奇偶是校验类型吧,查查相关的资料就明白了。至于间隔控制是这样的:串口通信是异步通信,一帧数据由起始位+数据(5,6,7,8位)+校验(可选)+停止位组成,间隔就是指两个数据帧之间的时间间隔。这个间隔的大小要由具体的应用确定,如果接收数据的一方接收速度比较慢,就要增大间隔。
     以上是本人浅见,请识者指正!

使用特权

评论回复
6
zwll| | 2010-6-22 20:36 | 只看该作者
楼上好热心啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:姚明的铁杆球迷

150

主题

3470

帖子

3

粉丝