异步信号接收,为什么需要两级缓冲?
我看到一个关于串口通信的例子。里面所有的异步接受端口,都建立了两级缓冲(register)。我在其他的资料上也看到相关的概念。
模糊的感觉是为防止输入信号处于亚稳态,但还不是很理解。
请高人指点。 有一个原因是因为要有协议栈,得读到完整的一段数据才能处理,所以需要第二级的缓冲区。楼下的继续补充↓↓↓↓ 回复【1楼】norman33非常菜
-----------------------------------------------------------------------
但串口输入是1 bit, 第二级缓冲的作用是什么呢? 防止输入信号刚好在时钟边缘跳变, 此时将出现保持时间不足的问题. 2即换成后,异步信号变成了同步信号,才可以和其他的同步逻辑一起处理 是防止亚稳态用的,LZ搜索下“跨越时间的鸿沟”这篇译文吧。 记差名字了,是“跨越鸿沟”。
点击此处下载 ourdev_677608S9D1JW.pdf(文件大小:454K) (原文件名:跨越鸿沟:同步世界中的异步信号.pdf) 回复【5楼】lxx_sea_sky
-----------------------------------------------------------------------
谢谢了 降低亚稳态发生概率。触发器进入亚稳态的时间可以用MTBF
一级触发器的MTBF 可能是秒分天级,2级触发器的MTBF 就是 几百年,几千年。 那时候,我们恐怕已经是分子原子了。这个芯片也灰飞烟灭了,任何东西多挡不住时间洗涤。
参考下面的资料。
基于FPGA,关于数字电路中的亚稳态现象--毕业论文稿 http://wenku.baidu.com/view/009e7f95dd88d0d233d46a73.html
ASIC中的异步时序设计 http://wenku.baidu.com/view/65f3b018964bcf84b9d57bbb.html 回复【7楼】zgq800712SEED
-----------------------------------------------------------------------
哈哈,说得很真切 这是为了做到异步复位,同步释放。
两级缓存可以留给触发器足够的建立时间,消除亚稳态。 学习了 1.建立时间与保持时间的满足
2.消除毛刺,得到稳定的信号
个人感觉也可以用计数器代替这个二级触发器吧
页:
[1]