打印

FIFO原理疑惑,望解答,谢谢

[复制链接]
4522|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thx02334|  楼主 | 2010-10-21 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当接收FIFO里累积的数据增加到预设的深度时触发中断(接收FIFO快满了,请赶紧取走)时,产生中断。假如上位机一下发出100个字节数据,但产生中断时,单片机只是接收了FIFO里的数据(上位机是一直下发数据的),这样的话,会不会少接收数据啊?
这块不是很理解!望指点,十分感谢!

相关帖子

沙发
liang7143| | 2010-10-21 12:28 | 只看该作者
那是肯定的~~~上位机难道不等待下位机处理完,就一直发数据?
再大的FIFO,也是会溢出的~~

使用特权

评论回复
板凳
thx02334|  楼主 | 2010-10-21 12:48 | 只看该作者
假如这么多数据必须一下发出,单片机方面该怎么处理?谢谢指点!

使用特权

评论回复
地板
老鱼探戈| | 2010-10-21 12:56 | 只看该作者
加应答信号

使用特权

评论回复
5
thx02334|  楼主 | 2010-10-21 13:12 | 只看该作者
楼上友能具体说下吗?谢谢。

使用特权

评论回复
6
mytempid| | 2010-10-21 14:25 | 只看该作者
1、假设数据链路为usart
2、假设上位机波特率115200,约11520字符/秒
3、假设FIFO深度16byte

上位机写FIFO的间隔时间是10/115200 = 86.8us
写满FIFO需要时间约16*10/115200 = 1.389ms

下位机只需1.389ms读取1次FIFO(可用中断机制)
每次读取时间小于86.8us,就不会丢失数据

使用特权

评论回复
7
gshuang1| | 2010-10-21 14:56 | 只看该作者
六楼说得对

使用特权

评论回复
8
thx02334|  楼主 | 2010-10-21 15:22 | 只看该作者
非常感谢楼上两位大侠,刚才打电话问了ZLG技术支持,他说不存在丢数据的问题。有点怀疑。但我感觉技术支持的意思是和6楼的差不多,他说中断处理很快,不会丢数据。不知大家怎么看。

使用特权

评论回复
9
xinzha| | 2010-10-21 17:15 | 只看该作者
这是需要计算的,控制好水位以保证有足够的时间处理,另外还要加错误处理,因为即使理论上保证了,还会有突发异常状况。

使用特权

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

本版积分规则

30

主题

72

帖子

0

粉丝