FPGA+DSP的高速通信接口設計與實現
TS201鏈路口的收發機制非常相似,本文僅給出發送數據時序圖,如圖5所示。L1_IRQ是FPGA發給DSP的外部中斷,用來通知DSP收數據;L1_ACKI是DSP的接收準備好信號;R_BUF_EN是讀發送緩存使能信號;鏈路口時鐘L1_CLKOUT是以讀緩存時鐘R_CLK下降沿的二次分頻,對應從緩存中讀出的4bit鏈路口數據L1_DA-To。注意這里讀緩存及時鐘分頻時會有納秒級的延遲。
3 DSP的相應設置
TS101和TS201的鏈路口都配置了控制寄存器(LCTLX)和狀態奇存器(LSTATx)兩組寄存器。LCTLx用來控制鏈路口的傳輸,LSTATx用來通知鏈路口的工作狀態。TS101鏈路口時鐘頻率可以是核時鐘的8、4、3或2分頻,通過設置LCTLx中的SPD位米完成,本文設計將SPD位置000,即為核時鐘8分頻。由于TS201的接收發送通道獨立,所以其控制寄存器分為接收控制寄存器(LRCTLx)和發送控制寄存器(LTCTLx)。TS101鏈路口發送時鐘頻率可以與核時鐘相同或為其4、2、1.5分頻,通過設置LTCTLx中SPD位來完成。本文設計將SPD位置100,即為核時鐘4分頻,并將LRCTLx/LTCTLx中(接TDSIZE位置1,設置成4bit傳輸方式。如果BCMP#信號懸空,注意一定要將LRCTLx巾RBCMPE位置0。
有兩種方法啟動DSP的鏈路口DMA傳輸:利用鏈路中斷和利用DSP的四個外部中斷(IRQ0-IRQ3)。兩種中斷方式都需要在中斷服務程序中對DMA的TCB寄存器進行配置來啟動鏈路口的接收DMA通道。鑒于外部中斷的優先級高于鏈路口中斷,可以避免數據丟失,本文設計的通信方式均以外部中斷方式通知DSP接收數據。在DMA的TCB寄存器配置過程中,為了保證程序不被其他中斷打斷,可以在中斷服務程序開始時就把所有其他中斷屏蔽掉,存中斷服務程序返回之前再把屏蔽掉的中斷位還原。
本文對TigerSHARC系列的兩種典型DSP芯片的鏈路口進行了分析和比較,并給出了FPGA與這兩種DSP芯片進行鏈路口通倍的具體方法。在FPGA內部實現了DSP鏈路口的設計,同時給出了DSP進行鏈路口通信的具體設置方法。由于實時處理中數據的重發會嚴重影響處理的實時性,故本文的鏈路口通信設計沒有對所傳輸的數據進行校驗。本文給出的基于FPGA路口設計具有很強的通用性,可以應用于基于TS101/TS201的多種應用系統中,提高系統內部的通信能力,也可用于板間DSP的數據傳輸,提高系統外部的通信能力。
fpga相關文章:fpga是什么
通信相關文章:通信原理
評論