打印
[ZLG-ARM]

请教周公一个UARTFIFO方面的问题

[复制链接]
1204|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhulijun1|  楼主 | 2007-2-1 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是一ARM初学者,我的问题是关于UART FIFO的字符超时指示方面:
    书中说UART0 Rx FIFO包含至少一个字符并且在接收3.5到4.5字符的时间内没有发生UART0 Rx FIFO动作,产生字符超时中断,书中的那段话我还是看不明白,究竟要多长时间才产生超时中断?
    如:发送102字节,触发值为10,前100个使CPU接收10个RDA中断,剩下的2个何时才能使CPU产生1个CTI中断?即要延时多长?

相关帖子

沙发
zhulijun1|  楼主 | 2007-2-1 10:54 | 只看该作者

补充

书中的那公式是不是说明这个延时与波特率无关?

使用特权

评论回复
板凳
zlgARM| | 2007-2-1 10:57 | 只看该作者

RE

当接收FIFO中的有效数据个数少于触发个数,而过了一段时间仍然没有数据到达,就会发生CTI中断。

这段时间跟当前的波特率有关系,所以没有给出一个绝对的值。于是我们这样表述时间的长短:“在串口当前的波特率下,发送3.5~4.5个字节所费的时间”。为方便表述,上面一段话提及的“这段时间”,可称呼为CTI触发时间。

CTI中断的发生还有一种情况,如果没有读完接收FIFO里的数据,那么经过CTI触发时间后,将再次触发CTI中断。

使用特权

评论回复
地板
zhulijun1|  楼主 | 2007-2-1 14:04 | 只看该作者

有点明白,谢谢

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

使用特权

评论回复
5
zlgARM| | 2007-2-1 14:30 | 只看该作者

RE

若在此时间里又接收了字节,触发时间清零了吗?

如果你又接收了字节,但仍没有到触发点,CTI触发时间会清0。

您要计算精确的CTI触发时间的话,可以用定时器去测量。

标准答案都是来自于实践的,您做一做试试看。

使用特权

评论回复
6
zhulijun1|  楼主 | 2007-2-1 14:51 | 只看该作者

好好

我一定试出个结果来

使用特权

评论回复
7
zlgARM| | 2007-2-1 14:54 | 只看该作者

RE

太好了!
等着你发一个详细的测试报告上来,分享你的心得!:)。

使用特权

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

本版积分规则

7

主题

20

帖子

0

粉丝