国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PCI Express的雙路IEEE 1394b接口卡的設計與實現(xiàn)

2015-06-15 22:27:18馮源等
現(xiàn)代電子技術 2015年12期
關鍵詞:鏈路層物理層寄存器

馮源等

摘 要: 在此選用PLX公司的橋芯片PEX8114,設計并實現(xiàn)基于PCIe架構的雙路1394b總線接口卡的硬件平臺。在該平臺上進行基于VxWorks操作系統(tǒng)的1349b驅動開發(fā)和主機PCIe接口驅動開發(fā)。經(jīng)過與1394總線測試設備的驗證測試,兩路1394b總線接口可以實現(xiàn)400 Mb/s的高速數(shù)據(jù)實時傳輸,證明了該模塊系統(tǒng)應用的可行性和可靠性,對其他通信系統(tǒng)的設計具有參考價值。

關鍵詞: IEEE 1394b; OHCI; PCI Express; 高速串行總線; PowerPC處理器

中圖分類號: TN915.04?34; TP336 文獻標識碼: A 文章編號: 1004?373X(2015)12?0033?06

0 引 言

隨著嵌入式控制領域對大容量、高速、實時數(shù)據(jù)傳輸需求的不斷增長,以IEEE 1349b總線為代表的新一代串行總線應運而生,在工業(yè)控制、汽車和航空航天等領域應用越來越廣。同時由于總線速率和處理器主頻的不斷增強,要實現(xiàn)外部高速總線數(shù)據(jù)的傳輸和處理,還必須選擇與之匹配的主機接口來實現(xiàn)外部總線協(xié)議邏輯與處理器的高速互聯(lián)。采用傳統(tǒng)的PCI總線的并行數(shù)據(jù)傳輸接口已經(jīng)無法滿足芯片級互連對帶寬、成本、靈活性及可靠性的要求。串行點對點的PCI Express(簡稱PCIe)總線克服了PCI總線在系統(tǒng)帶寬、可靠性和可擴展性等方面的固有缺陷。

本文針對PCIe的技術優(yōu)勢,采用PCIe?PCI橋芯片(PEX8114),實現(xiàn)了雙路IEEE 1394b總線接口卡。1394鏈路層接口以高速DMA方式將數(shù)據(jù)傳輸?shù)街鳈C,以滿足高速實時采集的應用需求。

1 IEEE 1394b總線網(wǎng)絡簡介

IEEE 1394b通信系統(tǒng)的層次結構見圖1。1394節(jié)點由主機和1394接口兩部分組成。其中驅動和應用軟件駐留在主機上,驅動軟件以一組標準API函數(shù)形式提供給應用程序,應用程序通過調用驅動軟件完成對1394b模塊功能的使用、管理與控制。1394b接口模塊主要實現(xiàn)了3個協(xié)議層:事務層(Transaction layer)、鏈路層(LLC)和物理層(PHY)。

1394b通信可以同時支持等時和異步傳輸模型和服務,可以滿足不同應用的要求。異步傳輸是一種確認的傳輸方式,用于對數(shù)據(jù)傳輸?shù)目煽啃砸筝^高的場合。等時傳輸是一種無應答的傳輸方式,強調數(shù)據(jù)的實時性,特別適合大容量圖像和視頻數(shù)據(jù)的傳輸。

由于IEEE 1394b總線高帶寬、低延遲、支持獨立于主機的點對點傳輸、良好的可擴展性和升級能力等特點,使其可以作為航空航天領域設備的互聯(lián)總線。特別是隨著航空電子設備智能化、自動化功能的增強,使基于圖像識別、跟蹤和測量變得日益重要,大容量高速傳輸圖像數(shù)據(jù)成為航空電子系統(tǒng)的一個重要特點。所以充分利用IEEE 1394b總線的這些優(yōu)越性能,適時地將其應用到航空電子統(tǒng)一網(wǎng)絡中,可視為解決通信問題的明智選擇。

2 系統(tǒng)硬件設計

PCIe?1394b接口卡實現(xiàn)基于IEEE 1394b協(xié)議的總線收發(fā)功能。主機通過PCIe總線接口來訪問1394b的鏈路層寄存器和數(shù)據(jù)緩沖區(qū),從而實現(xiàn)主機對1394b接口卡的配置和數(shù)據(jù)收發(fā)功能。1394b的物理層芯片的一端與鏈路層芯片的物理層和鏈路層接口相連,另一端為收發(fā)傳輸、仲裁提供電氣接口。1394b的物理層端口和模塊連接器之間采用有源變壓器進行隔離耦合,以保證總線的信號品質和有效通信距離。其功能架構圖如圖2所示。

在本文中,主機作為1394b節(jié)點的控制器,系統(tǒng)加電后,主機通過PCIe接口對1394b鏈路層芯片進行初始化,包括初始化寄存器、設置各個FIFO的大小、使能中斷、設置工作方式等。主機在本地SRAM中分別開辟了發(fā)送和接收緩沖區(qū),1394鏈路層芯片TSB82AA2工作于異步DMA傳輸方式。主機將需要發(fā)送的數(shù)據(jù)寫入發(fā)送緩沖區(qū)后,然后啟動鏈路層芯片發(fā)送通道DMA控制器,鏈路層芯片從主機的發(fā)送緩沖區(qū)中將數(shù)據(jù)搬移到鏈路層芯片內的FIFO中,最后由鏈路層芯片完成FIFO數(shù)據(jù)的發(fā)送。數(shù)據(jù)接收時,當接收節(jié)點的物理層芯片TSB41BA3D檢測到數(shù)據(jù)包到達時,物理層芯片根據(jù)接收的上下文配置,將匹配成功的數(shù)據(jù)包上傳鏈路層接收FIFO中,鏈路層啟動接收通道DMA控制器將接收FIFO中的數(shù)據(jù)直接搬移到主機的接收緩沖區(qū)中,完成數(shù)據(jù)的接收。

2.1 PCIe主機接口的實現(xiàn)

實現(xiàn)通用PCIe總線接口主要有以下兩種方式:

(1) 專用橋接口芯片。專用橋接口芯片可以實現(xiàn)完整的PCIe主控模塊和目標模塊接口功能,將復雜的PCIe總線轉換為相對簡單的本地總線。這樣用戶可以集中精力于應用方面的開發(fā),而不是費力調試PCIe總線接口。而且此類接口芯片有完整的參考電路可以借鑒,降低了開發(fā)難度,提高了開發(fā)的效率。目前,PLX公司已推出了此類功能芯片有PEX8112和PEX8114等。

(2) 可編程邏輯設計方案。現(xiàn)階段,主流的FPGA和DSP廠商都在其產(chǎn)品中集成了基于PCIe協(xié)議的IP核,其優(yōu)點在于高度集成,節(jié)省PCB資源,具有靈活的可編程性,但開發(fā)難度比較大,開發(fā)周期比較長。

2.2 基本硬件配置

PCIe?1394b接口卡1394的鏈路層芯片選用TI公司的TSB82AA2,該芯片帶有獨立的PCI控制器,內部帶有多個DMA發(fā)送通道和接收通道。物理層選用TI公司支持S400β傳輸模式,并提供3個端口的物理層芯片TSB41BA3。選用PULSE生產(chǎn)的1394b專用有源變壓器實現(xiàn)1394b物理層端口和模塊連接器之間隔離耦合。采用PLX公司的橋芯片PEX8114實現(xiàn)主機PCIe接口到1394鏈路層芯片PCI接口的協(xié)議轉換。

如圖2所示,PCIe?1394b接口卡硬件電路包括:電源電路、時鐘電路、鏈路層電路、物理層電路和主機接口電路。

2.3 1394b接口電路的實現(xiàn)

鏈路層芯片TSB82AA2提供了PCI主機接口和與物理層連接接口,實現(xiàn)CRC校驗以及同步服務,該芯片中集成了中斷寄存器、發(fā)送/接收FIFO和DMA通道控制器。物理層芯片完成物理層功能,實現(xiàn)仲裁機制,對收發(fā)信號進行編碼/解碼。

1394b的鏈路層?物理層接口交聯(lián)信號包括PCLK、LCLK_PMC、CTL0?CTL1、D0?D7、LREQ、PINT、LPS以及S5_LKON,具體連接方式如圖3所示。

2.4 高速電路與PCB設計

1394b接口卡的PCB設計遵循高速信號布線和信號完整性的要求。PCIe?1394b接口卡主要包括PCIe接口和1394b總線接口兩部分高速電路設計。模塊設計時主要考慮了以下幾點:

(1) 元器件布局合理,應盡量保持1394物理/鏈路層接口接近,PCIe橋芯片與主機連接器接近,以減少噪聲耦合和信號的損耗;

(2) 電源變換芯片的位置應遠離晶振、1394物理層、高速信號等敏感區(qū)域,并且耦合電容應盡量靠近各芯片的電源管腳,以減少噪聲耦合的機會;

(3) 1394物理端口應設計端接網(wǎng)絡以實現(xiàn)與線纜傳輸線的阻抗匹配,并且端接網(wǎng)絡盡量靠近物理層芯片的TP管腳;

(4) 1394和PCIe總線都采用差分信號,差分信號對在走線時要求同一組內的差分信號嚴格等長,組和組之間的信號長度盡量一致,以保證信號編碼的對稱性;

(5) 時鐘信號是敏感信號,PCIe總線接口的100 MHz差分時鐘,1394b物理層的49.152 MHz,以及物理層鏈路層接口的98.304 MHz的時鐘信號。這些時鐘信號線應盡量少打過孔,避免與其他信號線并行走線,避開電源,對時鐘線進行必要的保護,將其放在單獨的層中,適當增加線間距,周圍流出額外的間隙等;

(6) 其他減少電磁干擾的措施還包括:保證地線回路與信號通路盡量接近,避免地線回路不連續(xù),布線時不使用90°拐角的信號線等。

3 VxWorks環(huán)境下驅動的開發(fā)

在本文中與該1394b接口卡適配的主機采用飛思卡爾公司的PowerPC8640處理器,移植嵌入式實時操作系統(tǒng)VxWorks5.5,在Tornado環(huán)境下開發(fā)系統(tǒng)驅動。驅動軟件作為應用程序與硬件通信的橋梁,對系統(tǒng)性能有著重要影響,可靠的驅動軟件是硬件穩(wěn)定運行的保證。

PCIe?1394b接口卡驅動軟件結構圖如圖4所示,驅動軟件主要由主機PCIe接口驅動和IEEE 1394b總線驅動組成。

3.1 主機PCIe接口驅動開發(fā)

系統(tǒng)上電后,主機PCIe接口驅動軟件對PowerPC8640的PCIe總線控制器和橋芯片PEX8114進行配置,配置完成后,主機就可以訪問1394設備。配置流程如圖5所示。

首先初始化PowerPC8640的基地址和空間大小。PowerPC8640在內部定義了多個局部存取窗口,按照優(yōu)先級選取一個窗口作為PCIe的配置窗口,可設置窗口的基地址和窗口大小。然后掃描PCIe鏈路上的PCIe設備,這時能掃描到PowerPC8640的PCIe設備,通過查看ID號可判定。在掃描到PowerPC8640的PCIe設備后進行PCIe鏈路訓練,查詢訓練狀態(tài)。如果狀態(tài)為0x16,訓練通過,PCIe鏈路正常,可以進行下一步設置;如果不是,則需要檢查鏈路上的異常,出現(xiàn)異常一般需要看物理鏈接、時鐘、以及PCB走線等。訓練通過后進行PowerPC8640的PCIEe設備寄存器設置,需要把PowerPC8640的PCIe設備配置為主設備,設置PowerPC8640的PCIe設備為BUS0,點對點連接的設備(PEX8114)為BUS1。

配置完PowerPC8640的PCIe設備后再次掃描PCIe鏈路,查找鏈路上的橋芯片PEX8114,PEX8114的總線號是BUS1,找到后再按照類型1配置橋芯片的頭標區(qū),配置原級總線號、次級總線號寄存器,并配置下游設備的PCI空間基址和大小。配置完PEX8114橋芯片后再次掃描PCIe鏈路,這時就可以找到要訪問的1394設備的ID號,然后再配置這2路1394設備各自的PCI配置空間。主機PCIe接口的初始化是整個模塊能夠正常工作的前提,在完成上述流程后,主機就可以訪問到1394設備,為下一步調用1394b總線驅動奠定了基礎。

3.2 IEEE 1394b總線驅動設計

3.2.1 1394 OHCI協(xié)議

本文基于1394 OHCI協(xié)議的驅動程序設計。1394 OHCI是專門針對主機端開發(fā)的協(xié)議,也是IEEE 1394串行總線鏈路層協(xié)議的一種具體實現(xiàn)方式,并附帶一些支持事務層和總線管理層的特性。1394 OHCI還包含高性能DMA數(shù)據(jù)傳輸和一個主機總線接口。該接口既可作為主機總線上的主設備,又可作為從設備。作為一個從設備,它譯碼并響應主機對1394 OHCI內部寄存器的訪問。作為一個主設備,采用DMA方式發(fā)送(AT DMA)和接收(AR DMA)所有在IEEE 1394協(xié)議中規(guī)定的數(shù)據(jù)包,實現(xiàn)1394的異步傳輸和等時傳輸。

如圖6所示,1394接口卡通過PCI總線把1394 OHCI的寄存器映射到內存,并且內存和1394卡上都有FIFO存儲空間作為傳輸數(shù)據(jù)的緩存,這樣所有對1394寄存器的操作和數(shù)據(jù)收發(fā)都轉變成對內存的操作。所有收發(fā)數(shù)據(jù)都駐留在CPU端內存空間中所創(chuàng)建的1394 FIFOs中,當啟動發(fā)送或接收時,1394鏈路層芯片的DMA控制器會自動的讀取或寫入內存中1394 FIFOs中的數(shù)據(jù),從而在不需CPU直接參與的情況下,實現(xiàn)了CPU和1394設備之間的數(shù)據(jù)流搬移,減少軟件開銷。

3.2.2 設備管理

設備管理提供1394b設備管理和控制,實現(xiàn)設備打開、設備關閉、復位總線、設備強制根節(jié)點、禁止設備端口、查看設備端口狀態(tài)等功能。用戶可以通過這些接口實現(xiàn)對1394設備工作狀態(tài)的管理、查詢和判斷。主要包括初始化、物理層操作、總線操作。

(1) 初始化。1394設備的初始化需要完成打開設備、分配資源、加載設備配置、掛接中斷、使能中斷等功能。其流程圖見圖7。初始化工作的核心是對鏈路層芯片TSB82AA2內部配置寄存器的初始化,主要包括控制寄存器、中斷寄存器、中斷屏蔽寄存器、FIFO控制寄存器等。通過等時接收通道配置,中斷配置,異步請求接收配置,異步響應接收配置等,為等時和異步包的發(fā)送和接收做好準備。在完成這一系列配置后,使能鏈路層,最后觸發(fā)總線物理復位。1394的初始化過程必須遵守一定的順序,并且每次發(fā)生總線復位后,都需要對1394的鏈路層、物理層進行重新配置,初始化。

(2) 物理層操作。物理層操作的驅動程序可以實現(xiàn)對物理層芯片的所有寄存器的讀/寫訪問,從而獲取相關總線信息。物理層寄存器的訪問是通過一系列的鏈路層寄存器訪問來實現(xiàn)。通過訪問物理層寄存器,可以控制和獲知總線狀態(tài),如發(fā)起總線復位,強制根結點等。

(3) 總線操作。所有與總線信息相關的驅動都包含在總線操作的驅動程序中,包括總線拓撲圖的生成,速度圖的生成,等時帶寬資源的獲取、分配以及釋放,等時通道資源的獲取、分配以及釋放,總線管理器ID的獲取和強制總線復位發(fā)起。

3.2.3 通信管理

通信管理提供異步流的發(fā)送和接收,等時接收功能。另外通過異步4 B數(shù)據(jù)包讀/寫,異步塊數(shù)據(jù)包讀/寫的驅動功能完成異步傳輸。異步包的特點是保證數(shù)據(jù)的正確到達,他是一種點對點的數(shù)據(jù)包。異步流包和異步包不同,異步流包采用等時數(shù)據(jù)包格式,但是在異步周期里發(fā)送,這樣做的優(yōu)點是保證數(shù)據(jù)包的正確傳遞,同時支持一對多通信。

(1) 異步流包發(fā)送。由主機通知鏈路層芯片該消息數(shù)據(jù)準備好,根據(jù)數(shù)據(jù)包發(fā)送條件判斷出該數(shù)據(jù)包具備發(fā)送條件后,配置異步流發(fā)送上下文,啟動DMA,鏈路層芯片從主機內存中指定的數(shù)據(jù)包地址中將數(shù)據(jù)搬移到鏈路層芯片的FIFO 緩沖中,然后啟動并完成異步流的發(fā)送。異步流包發(fā)送流程如圖8所示。

(2) 異步流包接收。設備在接收到消息之前,首先在設備的初始化時,初始化主機內存中的緩沖區(qū),配置異步流的接收上下文鏈,啟動接收,當設備檢測到數(shù)據(jù)包到達時,物理層芯片根據(jù)接收的上下文配置,將和配置的通道號匹配的異步流包上傳鏈路層,鏈路層啟動DMA將接收到的數(shù)據(jù)直接放在接收上下文指定的主機緩沖區(qū)內,然后更新接收的上下文,自動切換到下一個緩沖區(qū)對應的上下文。

(3) 等時包發(fā)送和接收。OHCI協(xié)議規(guī)定了至少有8個DMA通道可以用來發(fā)送等時數(shù)據(jù),每個等時通道在每個等時周期只能發(fā)送一個數(shù)據(jù)包。等時包的發(fā)送流程與異步流包的發(fā)送路程類似,這里不再贅述。等時包的接收流程,如圖9所示。

3.2.4 中斷管理

中斷管理接口用于實現(xiàn)中斷回調接口的注冊和注銷等功能。任何一次DMA傳輸完成或退出,芯片都會產(chǎn)生一個中斷通知主機,主機通過讀取中斷事件寄存器來判斷發(fā)生了何種中斷。根據(jù)初始化時已經(jīng)配置好的中斷屏蔽寄存器,針對其中使能的每一種中斷原因編寫相應的中斷服務例程,由中斷管理接口完成中斷例程的掛接。

4 IEEE 1394b總線通信測試

為了驗證設計的正確性和實時性,構造了IEEE 1394b總線通信的測試環(huán)境,如圖10所示。在PC機上使用TI公司的PCI?1394卡作為總線上的節(jié)點A,配合操作界面,啟動1394b數(shù)據(jù)包的發(fā)送和接收功能。主機PowerPC8640和雙路PCIe?1394b接口卡整體作為被測對象,其內部的兩個節(jié)點分別標記為節(jié)點B和C。系統(tǒng)中節(jié)點A、B、C都具有3個端口。節(jié)點B和節(jié)點C分別與節(jié)點A的0和2號端口連接,這樣節(jié)點A就可以向節(jié)點B和C之間進行數(shù)據(jù)通信。

圖10 IEEE 1394b總線通信的測試環(huán)境

為了監(jiān)控和分析總線上的數(shù)據(jù)和物理層信號品質,本文采用1394總線數(shù)據(jù)分析儀和信號質量測試儀,它們作為兩個獨立的葉子節(jié)點,分別與被測對象中節(jié)點B的1和2號端口連接。其中1394總線數(shù)據(jù)分析儀用來分析總線的網(wǎng)絡拓撲、包格式、包速率、包內容和包間隔等參數(shù);信號質量測試儀主要測試信號完整性,包括差分幅度、上升下降時間、眼圖、抖動、差分延遲、共模電壓、誤碼率等。通信實驗中,包的發(fā)送分為單次發(fā)送和連續(xù)發(fā)送,測試結果表明:發(fā)送和接收數(shù)據(jù)正確,不丟包,誤碼率≤10-10,模塊中兩路1394b接口通信穩(wěn)定,實時性較好。

5 結 語

本文從航空電子系統(tǒng)大容量信息傳輸?shù)男枨蟪霭l(fā),提出航空電子系統(tǒng)基于IEEE 1394b高速串行總線實現(xiàn)數(shù)據(jù)傳輸?shù)脑O想。借助成熟的PCIe互聯(lián)技術,在板卡上構建了兩路1394b通信接口,以PowerPC8640為主機,開發(fā)了基于VxWorks操作系統(tǒng)的1349b驅動程序和主機PCIe接口驅動程序。經(jīng)過實際的通信測試,證明將這種高速串行總線技術應用到航空電子系統(tǒng)中的圖像數(shù)據(jù)通信是可行的。

參考文獻

[1] BUDRUK Ravi, ANDERSON Don, SHANLEY Tom. PCIExpress系統(tǒng)體系結構標準教材[M].北京:電子工業(yè)出版社,2005.

[2] 王齊.PCIExpress體系結構導讀[M].北京:機械工業(yè)出版社,2011.

[3] 張大樸,王曉,張大為,等.IEEE 1394協(xié)議及接口設計[M].西安:西安電子科技大學出版社,2004.

[4] 李世平,戴凡,汪旭東.IEEE 1394(FireWire)系統(tǒng)原理與應用技術[M].西安:西安電子科技大學出版社,2004.

[5] 王苗苗,張春熹,史潔琴.IEEE 1394應用于航空電子系統(tǒng)圖像通信的研究[J].微計算機信息,2006,22(4):225?227.

[6] PLXTechnology, Inc. ExpressLanePEX8114BA, PCIExpress?to?PCI/PCI?XBridgeDataBook [EB/OL]. [2007?03?11]. http://www.plxtech.com.

[7] 張偉棟,劉志敏.基于PowerPC8640的PCI?E總線接口設計[J].航空計算技術,2011(3):119?121.

[8] 梁青,羅金生.基于RapidIO的雙路IEEE 1394b串行總線控制器的實現(xiàn)[J].測控技術,2013,32(5):67?71.

[9] 馬晨,陳彥萍.基于PCIexpress總線1394b網(wǎng)絡傳輸系統(tǒng)WDM驅動設計[J].測控技術,2013,32(3):94?97.

[10] 馬進,王偉,楊煜普.基于DMA的1394總線高速數(shù)據(jù)傳輸實現(xiàn)[J].計算機工程與設計,2010,31(20):4410?4413.

猜你喜歡
鏈路層物理層寄存器
基于K-ML-MPWFRFT的物理層安全傳輸技術
基于多空間內存共享的數(shù)據(jù)鏈路層網(wǎng)絡包捕獲方法
Lite寄存器模型的設計與實現(xiàn)
計算機應用(2020年5期)2020-06-07 07:06:44
公路聯(lián)網(wǎng)電子不停車收費系統(tǒng)路側單元物理層自動測試軟件研發(fā)
分簇結構向量寄存器分配策略研究*
基于FPGA全功能MVB網(wǎng)絡從設備鏈路層IP核設計
多天線物理層安全傳輸系統(tǒng)性能分析
數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進
IEEE 1394事務層接口的設計與實現(xiàn)
1Gbps電力線載波通信物理層算法設計
電測與儀表(2014年8期)2014-04-04 09:19:26
武穴市| 依安县| 永定县| 南澳县| 驻马店市| 玉林市| 乐清市| 洛隆县| 怀宁县| 新龙县| 巨鹿县| 本溪市| 乐清市| 定南县| 宜章县| 镇巴县| 娱乐| 义乌市| 沛县| 洪洞县| 宁河县| 天水市| 阿克| 岳池县| 禹州市| 龙游县| 涿州市| 兴文县| 松江区| 宜良县| 西丰县| 江达县| 财经| 汉川市| 郎溪县| 汉中市| 本溪市| 沛县| 崇礼县| 阿拉善左旗| 蕲春县|