[ZLG-ARM] 请教周公一个UARTFIFO方面的问题

[复制链接]
2145|6
 楼主| zhulijun1 发表于 2007-2-1 10:43 | 显示全部楼层 |阅读模式
我是一ARM初学者,我的问题是关于UART&nbsp;FIFO的字符超时指示方面:<br />&nbsp;&nbsp;&nbsp;&nbsp;书中说UART0&nbsp;Rx&nbsp;FIFO包含至少一个字符并且在接收3.5到4.5字符的时间内没有发生UART0&nbsp;Rx&nbsp;FIFO动作,产生字符超时中断,书中的那段话我还是看不明白,究竟要多长时间才产生超时中断?<br />&nbsp;&nbsp;&nbsp;&nbsp;如:发送102字节,触发值为10,前100个使CPU接收10个RDA中断,剩下的2个何时才能使CPU产生1个CTI中断?即要延时多长?<br />
 楼主| zhulijun1 发表于 2007-2-1 10:54 | 显示全部楼层

补充

书中的那公式是不是说明这个延时与波特率无关?
zlgARM 发表于 2007-2-1 10:57 | 显示全部楼层

RE

当接收FIFO中的有效数据个数少于触发个数,而过了一段时间仍然没有数据到达,就会发生CTI中断。<br /><br />这段时间跟当前的波特率有关系,所以没有给出一个绝对的值。于是我们这样表述时间的长短:“在串口当前的波特率下,发送3.5~4.5个字节所费的时间”。为方便表述,上面一段话提及的“这段时间”,可称呼为CTI触发时间。<br /><br />CTI中断的发生还有一种情况,如果没有读完接收FIFO里的数据,那么经过CTI触发时间后,将再次触发CTI中断。<br /><br />
 楼主| zhulijun1 发表于 2007-2-1 14:04 | 显示全部楼层

有点明白,谢谢

哦,有点明白了,那我是不是可以这样来理解:如上,发送102字节,触发值为10,前100个使CPU接收10个RDA中断,剩下的2个使CPU在接收后延时3.5至4.5个字节的接收时间内产生1个CTI中断?&nbsp;即如你所述的:触发时间为“在串口当前的波特率下,发送3.5~4.5个字节所费的时间”,若在此时间里又接收了字节,触发时间清零了吗?,再者书上所述的“实际时间为[(字长度)*7-2]*8+[(触发值-字符数)*8+1]pclk”是不是不对?<br />
zlgARM 发表于 2007-2-1 14:30 | 显示全部楼层

RE

若在此时间里又接收了字节,触发时间清零了吗?<br /><br />如果你又接收了字节,但仍没有到触发点,CTI触发时间会清0。<br /><br />您要计算精确的CTI触发时间的话,可以用定时器去测量。<br /><br />标准答案都是来自于实践的,您做一做试试看。
 楼主| zhulijun1 发表于 2007-2-1 14:51 | 显示全部楼层

好好

我一定试出个结果来
zlgARM 发表于 2007-2-1 14:54 | 显示全部楼层

RE

太好了!<br />等着你发一个详细的测试报告上来,分享你的心得!:)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部