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