数据接口的同步方法

数据接口同步是数字系统设计的重要问题,是造成系统不稳定工作的重要原因。

(1)前级输出的延时是随机的,或者有可能变动,在后级完成数据的同步。

对于随机到达的数据,需要建立同步机制。可以采用使数据通过RAM或者FIFO缓存再读取的方法,实现数据同步。将前级模块提供的时钟作为基本时钟,将数据写入RAM或FIFO,然后使用后级模块基本时钟产生读信号,将数据读出来。

关键是必须有堆栈满和空的指示信号来管理数据的写入和读取,以防止数据丢失。

(2)数据有固定的帧格式,同步确定数据起始位置。 

通信系统中,数据按一定的帧格式进行传输,系统对时钟的要求很高,在数据正确接收之前,必须先完成数据的同步,确定数据帧的起始位置,即确定数据帧头是从什么时候开始的。

用同步头表示数据信号的开始,或者使用双口RAM、FIFO来缓存数据在传输到下一级。

找到数据头的方法有两种:第一种就是增加一条表示数据起始位置的信号线,第二种就是对于异步系统,在数据中插入一段有特殊码型的同步码(巴克码)作为同步头,接收端通过相关运算检测峰值来确定同步头。

(3)级联的两个模块的基本时钟是异步时钟域,把前级输出的数据精确传输到下一级中。

如果输入数据的频率和本级模块的处理时钟同频,可以直接用本级模块时钟对输入数据寄存器进行采样,完成输入数据的同步;如果输入数据和本级模块的时钟是异步的,特别是当两个时钟频率不是由同一个晶振产生,则需要对输入数据做两次以上的采样寄存,才能初步完成输入数据的读入。需要说明的是对异步时钟域的数据进行两次以上采样,其作用只是防止了数据状态不稳定的传播,使后级电路处理的数据都是有效电平,但是这种做法不能保证两级寄存器采样后的数据是完全正确的电平,这种歌处理方式一般会读入一定数量的错误数据,所以只适用于允许发生少量错误的电路功能单元。为了避免由异步时钟产生的错误,经常使用双口RAM、FIFO缓存的方法完成异步时钟域之间的数据传输。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值