基于FPGA和DSP的1394b雙向數據傳輸系統(tǒng)
由于PCI9054內部可編程FIFO存儲器的存在,數據可以大批量突發(fā)傳輸而不丟失,這樣不儀滿足實時性要求,同時可以根據用戶的需要采用與PCI時鐘異步的本地端時鐘,PCI9054本地總線工作在C模式時,通過芯片內邏輯控制,將PCI的數據線和地址線分開,很方便地為本地端總線工作時序提供各種方式。圖2所示為PCI9054在C模式下與FPGA相連的本地總線數據突發(fā)DMA傳輸方式的時序圖,其中,LCCLK為輸入時鐘信號,從圖2中可以看出,在本地端總線上讀寫數據時,可以不間斷地進行突發(fā)傳輸,當數據不能連續(xù)傳輸時,則可以插入等待狀態(tài),這樣可以大大提高數據的吞吐量。
3 1394b數據傳輸系統(tǒng)的數據流向
由于1394b總線標準支持等時子事務和異步子事務兩類子事務,因此,其傳輸的數據類型分為等時數據和異步數據,等時傳輸將數量不定的數據按照規(guī)定的時間間隔向某個地址發(fā)送,對實時性要求較高,不需要返回確認信號;而異步傳輸是將數據傳送到特定的地址,對數據傳輸的準確性要求較高,需要接收端以多次握手的方式發(fā)送返回確認信號。在本系統(tǒng)中由DVD播放器發(fā)送的數據經圖像壓縮板壓縮后由SPI口傳入FPGA,或者由攝像頭發(fā)送的數據經過A/D轉換,再由FPGA的通用I/O口送入FPGA,兩者均為等時數據;而一些控制命令等異步數據則由串口送入FPGA,并經過DSP進行處理,DSP和FPGA相結合可以提高數據傳輸的效率。FPGA實現數據的串并轉換以及數據的拼接并對數據打包成符合1394b協(xié)議的數據包類型以及配置數據包的包頭信息,經過讀/寫FIFO并在外部的SRAM進行緩存,通過DMA仲裁模塊進行仲裁處理,用DMA這一快速數據傳輸機制將數據寫入PCI9054的FIFO中。PCI9054作為一種橋接芯片,在本地總線和PCI總線之間提供信息傳遞,通過PCI9054芯片將本地端數據總線標準轉換成能被1394b鏈路層芯片傳輸的PCI總線數據標準,再通過1394b的鏈路層芯片實現對等時和異步數據包的地址和信道號的解碼、數據校驗、數據分析等,最后由物理層芯片通過仲裁邏輯實現對總線的存取,并對本地節(jié)點要發(fā)送的數據進行編碼,由物理層芯片提供的電氣和機械接口將數據位發(fā)送到與之相連的1394b線纜上去,最終送入接有1394b板卡的主機進行DVD發(fā)送的數據解壓縮和播放,以便對攝像頭發(fā)送的視頻進行播放以及異步數據的顯示等操作。讀出的數據則由接有1394b板卡的主機發(fā)送,并通過1394b物理層芯片、1394b鏈路層芯片、FPGA、外部SRAM等進行數據處理,根據數據包類型由相應的端口送出去,在這期間與發(fā)送數據相比進行了相反的操作,這樣就實現了1394b雙向數據傳輸系統(tǒng)。
評論