新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 多路同步串口的FPGA传输实现

多路同步串口的FPGA传输实现

作者:詹必胜 吴斌方 杨光友 湖北工业大学时间:2010-03-02来源:电子产品世界收藏

  同步串口传输时序如图2所示,当frame为1时,串行数据有效,当frame为0时,一帧数据传输结束。本例中传输的一帧数据为32bit。

本文引用地址:http://www.amcfsurvey.com/article/106466.htm

  内部采用异步FIFO解决时钟频率和时钟频率不匹配的问题,写时钟由DSP输出的同步时钟信号提供,时钟频率为60MHz;读时钟由的锁相环PLL时钟提供,PLL输出时钟频率为100MHz。

  接收模块

  由于DSP的8个同步串口同时写入,FPGA数据接收模块一共有8个,每个模块接收到的数据都存放在一个特定的FIFO中,将其称之为R_FIFO。

  DSP输出信号为frame,clk,data,FPGA以DSP同步串口的输出时钟clk作为采集数据的时钟。系统上电结束后,FPGA等待ARM发送接收允许指令,接收允许后,FPGA就可以开始接收数据。

  当frame信号为高,FPGA即开始接收从DSP发送的串行数据,在每个dsp_clk的上升沿读取一个bit的数据,之后将数据转入移位寄存器中。FPGA引入一个模块,时刻监测frame的下降沿,当frame下降时,即表示一个字的数据发送完毕,移位寄存器的数据放入R_FIFO的数据输入口,将R_FIFO的写使能置高,向R_FIFO发出写入请求,写入此时的数据至R_FIFO中,依次循环。当R_FIFO中的数据个数不为0时,即向FPGA的发送模块发送请求。

  发送模块

  接收模块接收到DSP同步串口数据后,即通过reg与answer信号与FPGA数据发送模块之间进行数据传输,如图3所示。



评论


相关推荐

技术专区

关闭