基于PCIE總線的多DSP系統(tǒng)接口設計和驅動開發(fā)
2 DSP與FPGA互連接口設計
2.1 互連及數(shù)據(jù)通信方法
首先,采用DSP高速鏈路口實現(xiàn)DSP點對點連接,TS201芯片采用全雙工模式,當處理器內核工作在500 MHz時,鏈路口最高也可工作在500 MHz,每個鏈路口的雙向吞吐率可以達到1 GB/s,實現(xiàn)了點對點的高速傳輸。任意兩片DSP之間都通過鏈路口連接,使得DSP之間傳遞數(shù)據(jù)變得靈活,使程序設計變得簡單。另外,每塊DSP通過一個鏈路口與FPGA互連,在數(shù)據(jù)傳輸不沖突的情況下,F(xiàn)PGA可以同時與多片DSP通信,實現(xiàn)FPGA和DSP的高速數(shù)據(jù)交換。
2.2 接口設計原理與實現(xiàn)
由于系統(tǒng)中DSP之間實現(xiàn)了點對點互連,接口的設計主要涉及到DSP和FPGA之間的時序電路開發(fā)。TS201有4個鏈路口,鏈路口采用全雙工模式,每個鏈路口有兩個獨立的DMA通道可以同時進行通信。每個通道用LxCLKOUTP/N,LxACKI,LxCLKINP/N和LxACKO控制數(shù)據(jù)傳輸,LxBCM PI和LxBCMP用于指示現(xiàn)行緩沖器發(fā)送是否完成。利用鏈路口傳輸數(shù)據(jù)時,數(shù)據(jù)幀的開始是由時鐘的上升沿來指示的,在時鐘上升沿和下降沿分別傳送數(shù)據(jù)。由于鏈路口具有收發(fā)兩個模塊,所以FPGA需要在內部實現(xiàn)收發(fā)兩個模塊來與DSP的兩個模塊相對應。
依照鏈路口通信協(xié)議,F(xiàn)PGA向DSP發(fā)送數(shù)據(jù)時的鏈路口發(fā)送時鐘是由內部鎖相環(huán)產生的,接收DSP傳送的數(shù)據(jù)時的接收時鐘由DSP的隨路時鐘提供。鏈路口時鐘、數(shù)據(jù)信號線均使用LVDS電平標準進行連接,ACK和BCMP信號則采用單端的方式連接至FPGA。
FPGA內部邏輯主要包括接收/發(fā)送模塊和接收/發(fā)送緩沖。接收模塊與DSP的鏈路口發(fā)送端連接,發(fā)送模塊與DSP的接收端連接,在FPGA和DSP通信時這兩個模塊可以對數(shù)據(jù)分別進行打包和拆包處理。接收/發(fā)送緩沖則用來配合接收/發(fā)送模塊,在傳輸數(shù)據(jù)時用來緩沖數(shù)據(jù)。
FPGA與DSP之間傳輸數(shù)據(jù)時發(fā)送方先要將數(shù)據(jù)傳送給鏈路口發(fā)送模塊緩沖(一個異步FIFO),接收方控制模塊檢測到LxACKI為高并且FIFO內至少有一個4字數(shù)據(jù)塊的數(shù)據(jù)時,雙方握手完成,啟動數(shù)據(jù)傳輸,否則繼續(xù)等待。一個數(shù)據(jù)移位控制模塊使數(shù)據(jù)按照鏈路口通信協(xié)議的標準進行排列后傳送給DDIO模塊產生DDR數(shù)據(jù),另一個DDIO宏單元則是用來產生同步的時鐘。發(fā)送模塊的仿真波形如圖2所示。
3 PCIE驅動程序開發(fā)
3.1 WDM驅動程序的開發(fā)介紹
WDM是微軟全力推出的一種設備驅動程序模型,相對于KDM(Kernel Driver Model),WDM增加了對即插即用(pnp)、電源管理等新的硬件標準的支持。
WDM的分層結構有利于系統(tǒng)的設計、擴展和驅動程序的開發(fā)。采用DriverStudio來開發(fā)運行在Windows XP下的WDM模式PCIE設備驅動程序(用DriverWorks編寫代碼,用DriverMonitor和SoftlCE調試驅動。Drive/Works對WindowsDDK的類進行了很好的封裝,因此在開發(fā)WDM驅動程序時,DriverWorks向導產生驅動框架,開發(fā)人員只需選擇合適的例程即可,因此可以在較短的時間內開發(fā)出效率較高的驅動程序。
一個WDM驅動程序的功能模塊一般由初始化、創(chuàng)建和刪除設備、即插即用處理、訪問硬件、處理Win32 I/O及控制請求、調用其他驅動程序等組成。
評論