[发明专利]微处理器异步读取外设FIFO长度的方法有效
申请号: | 201410632642.3 | 申请日: | 2014-11-11 |
公开(公告)号: | CN105653378B | 公开(公告)日: | 2019-08-13 |
发明(设计)人: | 张祥安;王吉健 | 申请(专利权)人: | 上海华虹集成电路有限责任公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 上海浦一知识产权代理有限公司 31211 | 代理人: | 戴广志 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 微处理器 异步 读取 外设 fifo 长度 方法 | ||
本发明公开了一种微处理器异步读取外设FIFO长度的方法,步骤一、读取信号输出,在微处理器有需求读取外设芯片FIFO长度的时候,输出一组访问外设的读取FIFO长度的总线信号;步骤二、判断当前FIFO长度是否有效,基于所述读取FIFO长度的总线信号,所述微处理器至多3次读取外设芯片FIFO长度,对于每次读取的长度值进行缓存,并且判定该长度值是否有效;步骤三、判决最终FIFO长度,当判定完FIFO长度一旦有效后,获取最终该一轮发起读外设芯片FIFO长度的数值。本发明能够解决微处理器在异步读取外设芯片FIFO长度时,由于不稳定的原因导致的读取错误问题。
技术领域
本发明涉及微处理器异步访问外设芯片领域,特别是涉及一种微处理器异步读取FIFO(First In First Out先进先出)长度的方法。
背景技术
FIFO是一种基于先进先出机制的数据缓存器电路,它没有外部的读写地址线,它需要顺序的写入和读出数据,由FIFO电路中的读写指针自动完成加1操作,并且根据FIFO电路中的读写指针,产生实时的FIFO长度信号。长度信号代表当前FIFO电路中有多少个缓存数据的存在。一般FIFO电路作为外设从机都是被微处理器主机所读取。传统的FIFO电路的设计,由于微处理器和外设FIFO内部自身对于FIFO电路的操作是异步的,微处理器在异步读取FIFO长度信号的时候,FIFO内部电路可能正在进行FIFO的读写操作,故瞬间的FIFO长度信号不稳定;微处理器可能会读取到一个不是预期内的FIFO长度值,并且之后进行了对于FIFO电路的误读或者误写操作,而以往一般解决方案是进行多次读取FIFO的长度信号线,直到比对认为多次读取到的值是相同的,才认为是稳定可靠的数值,这种机制浪费微处理器的内存,并且占用CPU太多时间。
发明内容
本发明要解决的技术问题是提供一种微处理器异步读取外设FIFO长度的方法,能够在微处理器异步读取外设芯片FIFO长度时,避免出现由于不稳定的原因导致的读取错误。
为解决上述技术问题,本发明的微处理器异步读取外设FIFO长度的方法,包括如下步骤:
步骤一、读取信号输出,在微处理器有需求读取外设芯片FIFO长度的时候,输出一组访问外设的读取FIFO长度的总线信号;
步骤二、判断当前FIFO长度是否有效,基于所述读取FIFO长度的总线信号,所述微处理器至多3次读取外设芯片FIFO长度,对于每次读取的长度值进行缓存,并且判定该长度值是否有效;微处理器的读取速度至少是外设芯片写FIFO速度的2倍;
步骤三、判决最终FIFO长度,当判定完FIFO长度一旦有效后,获取最终该一轮发起读外设芯片FIFO长度的数值。
微处理器第一次发起读取外设的FIFO长度,由于该读取总线信号和外设芯片的工作时钟是异步的,并且由于外设芯片的时钟频率不足以快到可以同步微处理器读取总线信号,故两者之间的信号交互是异步的。这就会发生当外设芯片正在自己硬件写入FIFO数据的时候导致FIFO长度的变化,此时此刻微处理器发起总线去读取FIFO长度,可能读到的数据是不稳定的。因为芯片内部的数据总线到端口的延时不一致,PCB板级上的总线延时也可能不一致,所以一有总线数据翻动的变化,可能就会读取到不稳定的伪数据。因此需要引入至多3次读取外设芯片的FIFO长度数值的方法,并且进行有效性的判断和比较,以便得到一个真正能表示当前时刻的FIFO长度。
在经过比较FIFO长度有效性的机制之后,就可以在至多3次读取的数值中获取一组有效数值作为最终FIFO长度的数值。
本发明利用微处理器的时钟速度比外设快很多这一特点,从而可以利用微处理器至多3次读取比较FIFO长度的值,进行有效判定;避免微处理器在读取FIFO长度时,可能由于外设芯片硬件正在写入FIFO数据造成的长度信息不对称,读取到不稳定的FIFO长度伪数值;能够最终确认该轮发起读取的FIFO长度的真实数值。前提是微处理器的读取速度至少是外设芯片写FIFO速度的2倍。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华虹集成电路有限责任公司,未经上海华虹集成电路有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410632642.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于复杂事件处理引擎的监控系统
- 下一篇:用于管理定时任务的方法和设备