基于FPGA的HSDI接口設(shè)計
關(guān)鍵詞 HSDI FPGA VHDL
引 言
HSDI(High Speed Direct Injection)是一種可配置的高速數(shù)據(jù)接口。例如,德州儀器公司生產(chǎn)的集成式1394a鏈接層控制器與艤端口物理層控制器TSB43DA42和TSB43DB42分別包括3個高速數(shù)據(jù)端口(HSDI)。每個端口均支持?jǐn)?shù)據(jù)I/O,能專門負責(zé)一個同步數(shù)據(jù)路徑,所有端口都支持與各種編解碼器的無縫連接,能夠根據(jù)IEC61883標(biāo)準(zhǔn)實現(xiàn)壓縮的A/V數(shù)據(jù)與數(shù)字音頻的傳輸。還有就是Freescale公司計劃開發(fā)的UWB系列產(chǎn)品。這些UWB網(wǎng)卡符合美國聯(lián)邦通訊委員會(FCC)現(xiàn)行擬定的UWB標(biāo)準(zhǔn),支持多種操作系統(tǒng);同時,這些產(chǎn)品將擁有mini-PCI和SDIO模組外形結(jié)構(gòu),并且,還將具有PCI、mini-PCI、HSDI、PCI-Express、USB 2.0和IEEEl394等各種界面。下面就Freescale公司的一種UWB網(wǎng)卡上的HSDI接口作一介紹。
MC270143 MAC是Freescale公司UWB網(wǎng)卡XSllO上的一部分。它直接與基帶控制器MC270123相連,當(dāng)和MC270123控制器以及MC270113 RF發(fā)送器結(jié)合使用時,可以提供一種完全端到端的WPAN/WLAN芯片集解決方案,并具備低成本、低功耗和高速數(shù)據(jù)傳輸速率。
由于Freescale公司的UWB網(wǎng)卡遵循IEEE 802.15.3網(wǎng)絡(luò)層協(xié)議標(biāo)準(zhǔn),那么對于其上的HSDI接口,從主機來說,遵循IEEE 802.15.3協(xié)議標(biāo)準(zhǔn)的請求和響應(yīng)消息是從HSDI的A口輸入的,而確認(rèn)和指示消息是從HSDI的B口輸出給當(dāng)?shù)刂鳈C的;通過空中鏈路去往另一個UWB設(shè)備的數(shù)據(jù)信息,從HSDI的A口進入,另一個UWB設(shè)備從B口輸出。在HSDI并行接口中,是以字節(jié)為單位來傳輸數(shù)據(jù)的,并且字節(jié)與字節(jié)之間沒有延時。
1 HSDI接口硬件結(jié)構(gòu)
圖1為Freescale公司XSIlO網(wǎng)卡上MC270143模塊的HSDI接口硬件結(jié)構(gòu)框圖。
①HSDI A和HSDI B用于傳輸高速數(shù)據(jù)流或者命令和控制信號,它們支持傳輸同步或異步的數(shù)據(jù)流以及命令消息和相關(guān)的響應(yīng)消息。HSDI A只能配置成輸入接口,HSDI B只能配置成輸出接口。HSDIA和HSDI B都是由8位并行端口和輸入時鐘以及相關(guān)控制信號組成的。
②每個FIFo的容量為51232位。
③O_hsdiahalt信號用來阻止數(shù)據(jù)從HSDI A接口輸入,O_hsdiahaltxin信號產(chǎn)生后MC270143最多還可以接收16字節(jié)的數(shù)據(jù)。也就是說,外部時鐘必須在16個時鐘周期之前產(chǎn)生O_hsdiahalt。
④任何從MC270143接收輸出數(shù)據(jù)的設(shè)備必須能夠在產(chǎn)生I_hsdibhalt后再接收至少1 6字節(jié)的數(shù)據(jù),也可配置MC270143上的HSDI B模塊忽略產(chǎn)生I_hsdibhalt信號。
2 HSDl接口信號描述
整個XSll0模塊的外部接口主要為:輸入是天線部分,輸出是HSDI接口。接口(相對UWB網(wǎng)卡而言)說明如表l所列。
HSDI接口可以配置成發(fā)送和接收定長/可變長度的數(shù)據(jù)包。定長數(shù)據(jù)包模式包括HSDI輸入模式(HSDI A)和HSDI輸出模式(HSDI B):所有輸入到HSDI接口的數(shù)據(jù)都是在hsdiclk的上升沿采樣輸入;輸出數(shù)據(jù)在hsdi-clk的下降沿輸出。相應(yīng)的時序圖如圖2和圖3所示。
說明:在定長和可變長數(shù)據(jù)包類型下,HSDI接口信號描述是相同的;惟一的不同在于,在可變長模式下,hsdisync信號與最后一個有效字節(jié)對齊,而在定長模式下與第一個有效字節(jié)對齊。
3 基于FPGA實現(xiàn)HSDI接口的設(shè)計
利用FPGA硬件處理速率高的特點,通過普通數(shù)據(jù)包的發(fā)送可實現(xiàn)發(fā)送端HSDI接口的設(shè)計,并把數(shù)據(jù)通過HSDI接口發(fā)送到UWB網(wǎng)卡,再由UWB網(wǎng)卡發(fā)送出去,隨后由另外的UWB網(wǎng)卡接收相應(yīng)的數(shù)據(jù)。
發(fā)送端FPGA負責(zé)把數(shù)據(jù)打包并生成相應(yīng)的數(shù)據(jù)有效信號和同步信號,然后通過HSDI接口發(fā)送給UWB網(wǎng)卡。FPGA與HSDI的接口定義如圖4所示。
4 打包發(fā)送模塊程序設(shè)計
由于USB網(wǎng)卡遵循IEEE 802.15.3網(wǎng)絡(luò)層協(xié)議標(biāo)準(zhǔn),考慮到發(fā)送端和接收端.做簡單的應(yīng)用層協(xié)議如下:
Data flg:數(shù)據(jù)段標(biāo)志位,標(biāo)志隨后的為數(shù)據(jù)字節(jié),以便對數(shù)據(jù)進行處理。
首先,把包頭信息定義好固化在1個11字節(jié)的表中,程序為:
其中:dataflg為x“FF”標(biāo)志,隨后的為數(shù)據(jù)信息,同時也說明數(shù)據(jù)信息的長度。
其次,按照HSDI傳輸格式,可以確定的是在發(fā)送hsclivalid、hsdisync、hsdidata信號的時候要用lasdiclk的下降沿送出,以保證網(wǎng)卡的正確采樣。(VHDL程序見本刊網(wǎng)站www.mesnet.com.cn――編者注)
①hsdidata數(shù)據(jù)信號的生成:將發(fā)送包的包頭信息存放在一個固化的小表里(內(nèi)部的自建存儲器)。數(shù)據(jù)的打包發(fā)送主要由2個與時鐘同步的計數(shù)器datacntl和datacnt2(hsdiclk下降沿產(chǎn)生)控制。datacntl為4位,控制發(fā)送11位包頭信息,根據(jù)不同計數(shù)器的值決定發(fā)送包頭信息位數(shù)據(jù)。發(fā)送到最后1位包頭信息時。啟動datacnt2計數(shù),開始發(fā)送包數(shù)據(jù),且發(fā)送的數(shù)據(jù)和計數(shù)器datacnt2的值是相等的,以確保接收端檢測數(shù)據(jù)傳輸?shù)恼_性。
②hsdivalid信號的生成:由datacnt2來控制。hsdi-valic初始化為0,在計數(shù)器datacnt2記到x“FF”時為0,其他情況下為l即可標(biāo)志一個包的有效數(shù)據(jù)位。
③hsdisync信號的生成:由datacntl來控制。hsdi-sync韌始化為0,由于采用的是定長數(shù)據(jù)包模式,所以在計數(shù)器記到x“00”時為1,標(biāo)志包數(shù)據(jù)的第1位,其他情況下為0。modelsim仿真得到的時序如圖5所示。QuartusⅡ仿真結(jié)果如圖6所示。
5 結(jié)論
本文詳細討論了HSDI接口的硬件結(jié)構(gòu)以及接口信號的時序和功能操作。結(jié)合FPGA高處理速度的特點,實現(xiàn)了基于FPGA的HSDI接口設(shè)計,最后結(jié)合實例成功地進行了仿真和驗證,并在實際硬件平臺上實現(xiàn)了發(fā)送和接收解析數(shù)據(jù)包。
評論