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