引言
隨著(zhù)時(shí)代和技術(shù)的發(fā)展,對于數據總線(xiàn)帶寬的要求越來(lái)越高,現有的總線(xiàn)標準越來(lái)越難以滿(mǎn)足實(shí)際應用中對高總線(xiàn)速率的要求。先進(jìn)的總線(xiàn)技術(shù)對于解決系統的瓶頸,提高系統性能起著(zhù)至關(guān)重要的作用,同時(shí)為了實(shí)現批量數據的傳輸,IEEE又公布了支持更高傳輸速率的IEEE Std 1394b-2002(簡(jiǎn)稱(chēng)1394b)串行總線(xiàn)標準,高速可升級性可支持高達800 Mb/s下的數據傳輸速率,并且能夠向后兼容先前的1394-1995和1394a標準。由于1394b是一種數據傳輸速率更高的串行總線(xiàn)標準,支持異步傳輸和等時(shí)傳輸兩種傳輸方式。分層的軟件和硬件模型可使其通信建立在事務(wù)層、鏈路層和物理層協(xié)議的基礎之上。本文充分利用FPGA和DSP芯片的硬件資源,基丁1394b傳輸協(xié)議和規范的基礎上,介紹139 4b數據傳輸系統的硬件設計結構、系統的工作流程和總線(xiàn)的配置過(guò)程。
1 1394b的特點(diǎn)
1394b雙向數據傳輸系統的主要特點(diǎn)如下:
(1)高速可升級:支持100 Mb/s、200 Mb/s、400 Mb/s和800 Mb/s的傳輸速率,使用塑料光纖時(shí)可以提高到3.2 Gb/s;
(2)支持點(diǎn)到點(diǎn)傳輸:各個(gè)節點(diǎn)可脫離主機自主執行事務(wù);
(3)即插即用:可以在任何時(shí)候向1394b網(wǎng)絡(luò )添加或移除設備,既不用擔心會(huì )影響數據的傳輸,也不需要進(jìn)行重新配置,總線(xiàn)會(huì )重新枚舉,節點(diǎn)也可以自動(dòng)配置,無(wú)需主機干預;
(4)熱插拔:無(wú)需將系統斷電就可以加入或移除設備;
(5)傳輸距離:采用CAT-5UTP5線(xiàn)(5類(lèi)非屏蔽雙絞線(xiàn))時(shí),可以保證傳輸速率在100 Mb/s的前提下將傳輸距離延長(cháng)至100 m,使用玻璃光纖時(shí)可在3.2Gb/s的前提下延長(cháng)至50 m;
(6)支持兩種傳輸方式:包括等時(shí)(Isochronous)和異步(Asynchronous)數據傳輸方式;
(7)拓撲結構:設備間采用樹(shù)形或菊花鏈拓撲結構,每條總線(xiàn)最多可以連接63臺設備;
(8)可提供電源:一些低功耗設備可以通過(guò)總線(xiàn)取得電源,而不必為每一臺設備配置獨立的供電系統;
(9)公平仲裁:等時(shí)傳輸具有較高的優(yōu)先級,同時(shí)異步傳輸也能獲得對總線(xiàn)的公平訪(fǎng)問(wèn);
(10)提高系統性能:將資源看作寄存器和內存單元,可以按照CPU內存的傳輸速率進(jìn)行讀/寫(xiě)操作,因此具有高速傳輸能力。
2 1394b數據傳輸系統的硬件實(shí)現
由于1394b鏈路層芯片必須通過(guò)PCI總線(xiàn)接口與FPGA進(jìn)行相連,實(shí)現數據的傳輸。如果只用FPGA和DSP來(lái)實(shí)現對PCI外設的控制,需要設計復雜的接口邏輯,在1394b高速數據傳輸系統中不僅會(huì )影響FPGA本身的性能,而且會(huì )給FPGA之外的電路或者系統帶來(lái)諸多問(wèn)題。因此這里采用PCI9054總線(xiàn)接口芯片配合FPGA和DSP來(lái)實(shí)現1394b雙向數據傳輸系統,將對復雜的PCI總線(xiàn)接口的控制轉換為對相對簡(jiǎn)單的本地總線(xiàn)接口的控制,不僅對PCI協(xié)議有著(zhù)良好的支持,而且提供給設計者良好的接口,大大減少了設計者的工作量。PCI9054芯片在PCI總線(xiàn)端支持32位/33 MHz,當本地總線(xiàn)端采用32位數據總線(xiàn)時(shí),其數據傳輸速率可達132 MB/s,故能夠滿(mǎn)足1394b總線(xiàn)上800 Mb/s的數據傳輸速率要求。
本設計中的主控芯片采用Altera公司的EP2C70F672C6型FPGA主流芯片,DSP選用TI公司的TMS320C6415 DSP芯片,1394b套片選用TI公司的鏈路層芯片TSB82AA2和物理層芯片TSB81BA3,PCI9054采用PLX公司的32位33MHz的PCI總線(xiàn)通用接口芯片。1394b雙向數據傳輸系統的硬件總體結構圖如圖1所示,主要由現場(chǎng)可編程門(mén)陣列(FPGA)模塊、DSP模塊、AD/DA數據轉換接口模塊、SPI數據輸入/輸出接口模塊、串口(UART)通信模塊、SRAM存儲模塊、EPCS串行配置器件模塊、FLASH存儲模塊、PCI9054模塊以及1394b套片模塊組成。
由于PCI9054內部可編程FIFO存儲器的存在,數據可以大批量突發(fā)傳輸而不丟失,這樣不儀滿(mǎn)足實(shí)時(shí)性要求,同時(shí)可以根據用戶(hù)的需要采用與PCI時(shí)鐘異步的本地端時(shí)鐘,PCI9054本地總線(xiàn)工作在C模式時(shí),通過(guò)芯片內邏輯控制,將PCI的數據線(xiàn)和地址線(xiàn)分開(kāi),很方便地為本地端總線(xiàn)工作時(shí)序提供各種方式。圖2所示為PCI9054在C模式下與FPGA相連的本地總線(xiàn)數據突發(fā)DMA傳輸方式的時(shí)序圖,其中,LCCLK為輸入時(shí)鐘信號,從圖2中可以看出,在本地端總線(xiàn)上讀寫(xiě)數據時(shí),可以不間斷地進(jìn)行突發(fā)傳輸,當數據不能連續傳輸時(shí),則可以插入等待狀態(tài),這樣可以大大提高數據的吞吐量。
3 1394b數據傳輸系統的數據流向
由于1394b總線(xiàn)標準支持等時(shí)子事務(wù)和異步子事務(wù)兩類(lèi)子事務(wù),因此,其傳輸的數據類(lèi)型分為等時(shí)數據和異步數據,等時(shí)傳輸將數量不定的數據按照規定的時(shí)間間隔向某個(gè)地址發(fā)送,對實(shí)時(shí)性要求較高,不需要返回確認信號;而異步傳輸是將數據傳送到特定的地址,對數據傳輸的準確性要求較高,需要接收端以多次握手的方式發(fā)送返回確認信號。在本系統中由DVD播放器發(fā)送的數據經(jīng)圖像壓縮板壓縮后由SPI口傳入FPGA,或者由攝像頭發(fā)送的數據經(jīng)過(guò)A/D轉換,再由FPGA的通用I/O口送入FPGA,兩者均為等時(shí)數據;而一些控制命令等異步數據則由串口送入FPGA,并經(jīng)過(guò)DSP進(jìn)行處理,DSP和FPGA相結合可以提高數據傳輸的效率。FPGA實(shí)現數據的串并轉換以及數據的拼接并對數據打包成符合1394b協(xié)議的數據包類(lèi)型以及配置數據包的包頭信息,經(jīng)過(guò)讀/寫(xiě)FIFO并在外部的SRAM進(jìn)行緩存,通過(guò)DMA仲裁模塊進(jìn)行仲裁處理,用DMA這一快速數據傳輸機制將數據寫(xiě)入PCI9054的FIFO中。PCI9054作為一種橋接芯片,在本地總線(xiàn)和PCI總線(xiàn)之間提供信息傳遞,通過(guò)PCI9054芯片將本地端數據總線(xiàn)標準轉換成能被1394b鏈路層芯片傳輸的PCI總線(xiàn)數據標準,再通過(guò)1394b的鏈路層芯片實(shí)現對等時(shí)和異步數據包的地址和信道號的解碼、數據校驗、數據分析等,最后由物理層芯片通過(guò)仲裁邏輯實(shí)現對總線(xiàn)的存取,并對本地節點(diǎn)要發(fā)送的數據進(jìn)行編碼,由物理層芯片提供的電氣和機械接口將數據位發(fā)送到與之相連的1394b線(xiàn)纜上去,最終送入接有1394b板卡的主機進(jìn)行DVD發(fā)送的數據解壓縮和播放,以便對攝像頭發(fā)送的視頻進(jìn)行播放以及異步數據的顯示等操作。讀出的數據則由接有1394b板卡的主機發(fā)送,并通過(guò)1394b物理層芯片、1394b鏈路層芯片、FPGA、外部SRAM等進(jìn)行數據處理,根據數據包類(lèi)型由相應的端口送出去,在這期間與發(fā)送數據相比進(jìn)行了相反的操作,這樣就實(shí)現了1394b雙向數據傳輸系統。
FPGA作為整個(gè)系統的控制管理模塊,主要完成以下任務(wù):
(1)對SPI端口、UART端口和AD/DA端口數據的發(fā)送和接收;
(2)將待發(fā)送的數據進(jìn)行串并轉換和數據拼接;
(3)將數據進(jìn)行打包、解包處理并通過(guò)SRAM進(jìn)行數據的緩存;
(4)與PCI9054芯片進(jìn)行通信,以完成數據的傳送。
本系統中DSP的主要功能是:
(1)與PCI9054芯片和1394b鏈路層芯片通信實(shí)現設備的自舉和身份的確認;
(2)發(fā)送和接收一些控制命令,控制數據的傳輸;
(3)實(shí)現異步數據的發(fā)送和接收功能,根據異步請求數據的類(lèi)型對其進(jìn)行相應的處理;
(4)為等時(shí)傳輸申請等時(shí)信道和帶寬,傳輸后釋放所申請的信道和帶寬。
圖3所示是系統中FPGA的內部框圖,由于數據傳輸速率較快,數據的處理需要一定的時(shí)間,不能將每一組數據無(wú)間斷的傳輸,且FPGA內部FIFO容量有限,采用SRAM與FPGA相結合完成輸入輸出數據的緩存;DSP實(shí)現一些輔助的操作如對異步數據的處理、配置PCI9054芯片的內部寄存器和1394b鏈路層寄存器等操作以及PCI的傳輸控制、設備識別、為等時(shí)傳輸申請信道和帶寬等;EPCS串行配置芯片實(shí)現配置數據的存儲,使系統上電后將配置數據自動(dòng)下載到FPGA內部,同時(shí)可以用FLASH存儲器存放DSP用戶(hù)代碼,在DSP上電工作后,利用DSP提供的boot機制,再將程序下載到DSP RAM中,使本系統實(shí)現脫機工作。
4 1394b的系統工作流程
1394b總線(xiàn)的配置是自動(dòng)進(jìn)行的,它不受任何設備和主機的干擾??偩€(xiàn)配置過(guò)程主要有三個(gè)步驟:
(1)總線(xiàn)初始化;
(2)自標識;
(3)樹(shù)標識。
在這三個(gè)過(guò)程之后,整個(gè)系統在邏輯上形成了樹(shù)狀拓撲結構,每個(gè)節點(diǎn)都被賦予了一個(gè)節點(diǎn)號并都發(fā)出節點(diǎn)說(shuō)明信息??偩€(xiàn)的初始化過(guò)程如下:
(1)設備識別:設備識別可通過(guò)E2PROM來(lái)完成;
(2)分配I/O空間和Memory空間;
(3)配置PCI9054的DMA寄存器;
(4)對1394b鏈路層和物理層芯片進(jìn)行配置。
由于1394b OHCI(Open Host Control Interface Specification)協(xié)議是1394b串行總線(xiàn)鏈路層協(xié)議的一種實(shí)現方式。1394bOHCI協(xié)議規定1394b的等時(shí)傳輸和異步傳輸均為DMA方式,所以需要對PCI9054的DMA寄存器進(jìn)行配置。PCI9054中有兩個(gè)獨立的通道采用DMA方式傳輸數據可以不受主機的干預,同時(shí)采用突發(fā)方式傳輸數據可以提高數據的傳輸速率,同時(shí)也可以充分發(fā)揮PCI總線(xiàn)的性能。
系統上電后,通常需要進(jìn)行設備的自舉,協(xié)助主機完成設備識別和設備身份的確認,設備的自舉主要包括:初始化鏈路層寄存器;初始化配置ROM;判斷電纜是否插入;強制根節點(diǎn);響應根節點(diǎn)、讀取配置ROM請求直到根節點(diǎn)調用相應驅動(dòng)程序完成設備識別。圖4所示為本系統的工作流程圖。
設備自舉完成以后,即可等待數據包的到來(lái),根據數據包的類(lèi)型,如果是異步數據包則進(jìn)行相應的處理;如果是等時(shí)數據包則進(jìn)行等時(shí)信道和帶寬的申請,申請成功后則配置DMA寄存器以DMA方式進(jìn)行等時(shí)數據的發(fā)送或等時(shí)數據的接收,等時(shí)數據傳輸完畢后釋放其信道和帶寬,這樣完成一次數據的傳輸,接下來(lái)進(jìn)行下一次數據的傳輸,如此循環(huán)完成整個(gè)數據的傳輸。
5 結束語(yǔ)
IEEE 1394b作為一種與平臺無(wú)關(guān)的技術(shù),可以同時(shí)應用在MAC和PC中,本文研究的主要內容是利用FPGA、DSP和PCI9054芯片實(shí)現1394b數據傳輸系統?,F在國內基本上還停留在1394或1394a總線(xiàn)數據的傳輸上,本系統是在前人的基礎上,實(shí)現1394b總線(xiàn)上的數據傳輸,同時(shí)本系統兼容1394a實(shí)現1394的傳輸,還可以將傳輸速率提高作為驗證1394b協(xié)議的通用平臺,1394b能提供800 Mb/s或更高的傳輸速度,雖然市面上還沒(méi)有1394b接口的光儲產(chǎn)品出現,但相信在不久之后也必然會(huì )出現在用戶(hù)眼前,無(wú)論是在視頻傳輸還是在計算機外設、網(wǎng)絡(luò )互連等方而,都將有廣闊的市場(chǎng)。
評論