當前位置:首頁 > 通信技術 > 通信技術
[導讀]針對數(shù)字通信系統(tǒng)中底層協(xié)議棧開發(fā)過程中處理數(shù)據(jù)量大,出現(xiàn)問題不易再現(xiàn)、難于追蹤的問題,設計了一種專門用于底層協(xié)議棧開發(fā)的高速數(shù)據(jù)采集、仿真系統(tǒng)。系統(tǒng)采用USB總線作為高速數(shù)據(jù)通路,使用FPGA進行格式轉換及數(shù)據(jù)緩沖。論述了仿真系統(tǒng)的工作原理和系統(tǒng)框架,分析了數(shù)據(jù)轉換、解析的流程,給出了系統(tǒng)仿真的一般模式。

隨著軟件無線電思想與技術的發(fā)展,現(xiàn)代數(shù)字通信系統(tǒng)中,越來越多地使用DSP等數(shù)字信號處理器結合高速AD、DA轉換器進行OSI 7層通信體系模型中物理層(信號的調制、解調)和數(shù)據(jù)鏈路層(信道編、解碼)部分的數(shù)據(jù)處理工作。近年來,數(shù)字信號處理理論發(fā)展迅猛,數(shù)字信號處理器工作頻率及能力不斷提高,數(shù)字通信系統(tǒng)中越來越多的工作能夠通過DSP來完成,因而DSP本身的程序結構也越來越復雜。由于通信信號(尤其是無線通信)本身具有很強的實時性、隨機性的特點,造成DSP的輸入數(shù)據(jù)缺乏規(guī)律性,一閃即逝,從而導致相應的處理程序出現(xiàn)了問題不易復現(xiàn),且問題難于追蹤、捕捉,這就給DSP的程序設計與調試帶來了較大困難。針對這一問題,本文根據(jù)一般底層通信協(xié)議棧的數(shù)據(jù)處理方法,設計了一套適合于對底層協(xié)議棧進行開發(fā)和調試的數(shù)據(jù)采集仿真系統(tǒng),以達到追蹤、再現(xiàn)問題并查找程序缺陷的目的。
1 數(shù)據(jù)采集系統(tǒng)
    數(shù)據(jù)采集系統(tǒng)主要完成從正在工作中的通信終端中采集數(shù)據(jù)的任務。
1.1 采集點的選擇
    整個通信系統(tǒng)中有多個數(shù)據(jù)采集切入點可選,可以對中頻信號直接采樣,也可以對基帶信號采樣,還可以通過模擬系統(tǒng)中的AD數(shù)據(jù)接收時序,直接接收AD輸出數(shù)據(jù)。但前兩種采集點不能確保采集到的信號數(shù)據(jù)與DSP輸入數(shù)據(jù)完全一致,而模擬AD數(shù)據(jù)時序的方式則可能影響DSP與AD之間的主從關系,影響DSP協(xié)議棧的正常運行,而且各種外部中斷的采集也比較困難。因而最為穩(wěn)妥的方式是DSP通過數(shù)據(jù)總線輸出其接收到的數(shù)據(jù)。這種方法的缺點是需要占用DSP少量資源,但這與協(xié)議棧運行相比,完全可以忽略不計,不計不會影響協(xié)議棧本身的運行。
1.2 硬件連接
    參考文獻[1]對各種數(shù)據(jù)采集系統(tǒng)進行了分析比較,并指出USB總線為數(shù)據(jù)采集卡與PC機較理想的接口,因此選用CY68013A作為USB接口芯片。采用1片F(xiàn)PGA進行DSP與CY68013A之間數(shù)據(jù)格式的轉換,CY68013A固件程序存放在E2PROM中,通過I2C總線連接,連接方式如圖1所示。

    其中,DSP除了輸出16位數(shù)據(jù)總線之外,還引出7位地址線(A0~A6),用以區(qū)分不同的數(shù)據(jù)類型。FPGA須將DSP外部總線輸出的數(shù)據(jù)格式轉換為CY68013A外部GPIF可兼容的格式。
1.3 FPGA程序設計
    CY68013A外部GPIF端口可作為數(shù)據(jù)輸入端口的僅有16位(FD0~FD15),而DSP輸出的信息數(shù)據(jù)一共有23位(16位數(shù)據(jù)線D0~D15和7位地址線A0~A6),故而需要將多出的7位地址信息嵌入到數(shù)據(jù)中去。將1個16位數(shù)據(jù)拆分成2個,每個數(shù)據(jù)中的低8位(FD0~FD7)用于存儲原數(shù)據(jù)信息(D0~D7或D8~D15),高7位(FD8~FD14)存放地址類型信息(A0~A6),最高位(FD15)用于標識當前數(shù)據(jù)中FD0~FD7是原數(shù)據(jù)的D0~D7或是D8~D15,具體格式如圖2(b)所示。CY68013A GPIF端口使用內部48 MHz時鐘,根據(jù)參考文獻[2],每個GPIF信號周期為20.83 ns,二者時鐘不同步,F(xiàn)PGA為了與高速設備兼容,需要使用更高的時鐘源。因此,為了保證GPIF能夠采集到RDY信號,F(xiàn)PGA輸出的信號至少需要保持1.5個GPIF信號周期。GPIF每次從外部讀取數(shù)據(jù)存入FIFO需要6個狀態(tài),故而每個輸出數(shù)據(jù)間隔應大于6個GPIF信號周期。以TI公司C55系列DSP為例,主頻時鐘144 MHz,與FPGA連接的為EMIFS外部總線,則FPGA轉換信號時序如圖2所示。其中,圖2(a)為DSP EMIFS輸出時序, 圖2(b)為經FPGA轉換后的CY68013A GPIF輸入時序及數(shù)據(jù)格式。

    考慮到DSP輸出數(shù)據(jù)時鐘可能較CY68013A GPIF采集時鐘快,因而FPGA需要設計內置的FIFO存儲器,用于緩存DSP輸出的數(shù)據(jù)。
1.4 USB固件設計
    由于CY68013A內置的8051內核時鐘周期較慢,不適于高速傳輸,因而采集程序中僅使用8051進行初始化配置,而不干預數(shù)據(jù)傳輸過程。CY68013A通過外部GPIF讀取數(shù)據(jù)存入FIFO中,F(xiàn)IFO滿時通過USB傳入PC機。采用Cypress公司提供的通用程序框架以及圖形化GPIF設計工具,參照圖2(b)的時序,編輯GPIF波形。USB總線選擇傳輸大量數(shù)據(jù)時比較常用的Bulk傳輸模式,硬件配置程序采用Cypress公司提供的程序模板,參考文獻[3]對該模板進行了詳細說明,這里不再贅述,程序框架與參考文獻[4、5]類似。
1.5 PC機接收程序
    USB接口驅動程序可直接使用Cypress公司提供的ez-usb驅動。由于ez-usb驅動沒有提供高級的文件操作IO方式,因而需要調用比較底層的DeviceIoControl函數(shù)來處理??紤]到Bulk傳輸方式完全是由主機端(PC機)發(fā)起讀操作,從機端(采集板)只能被動地等待,而當CY68013A內置的FIFO寫滿之后,如果主機不能及時地發(fā)起讀操作,則FIFO不再接收數(shù)據(jù)寫入操作,因而會有少量的數(shù)據(jù)丟失。對于底層協(xié)議棧調試,這種少量的數(shù)據(jù)丟失可能引起程序流程錯誤,是不能接受的。因此PC機端接收程序應采用多線程處理方式,將接收USB數(shù)據(jù)的工作列為單獨的線程,并將其優(yōu)先級設置為實時性最高的THREAD_PRIORITY_TIME_CRITICAL,防止接收數(shù)據(jù)過程被系統(tǒng)中其他進程打斷,以確保每次讀操作能夠及時發(fā)出。同時也要保證負責數(shù)據(jù)采集的PC機操作系統(tǒng)中同時運行的進程盡量少,關掉不必要的后臺進程。
    PC機接收到的數(shù)據(jù)先存入臨時文件中,以備后續(xù)解析、仿真程序使用。臨時文件以字(16 bit)為單位存儲,每個數(shù)據(jù)用2個字來表示,低字節(jié)在前,與FPGA轉換后的數(shù)據(jù)格式一致,如表1所示。

2 仿真系統(tǒng)
    仿真系統(tǒng)使用采集系統(tǒng)采集到的數(shù)據(jù),再現(xiàn)通信終端中的協(xié)議棧運行狀態(tài),便于開發(fā)者隨時檢查程序錯誤,對程序進行調試。
2.1 系統(tǒng)框架
    要想再現(xiàn)底層協(xié)議棧運行狀態(tài),除了保證協(xié)議棧整體輸入、輸出一致外,最大的難度在于系統(tǒng)的定時,要能夠準確再現(xiàn)各種事件的發(fā)生時刻?;谲浖o線電技術的數(shù)字通信系統(tǒng)大都采用過采樣方式,AD/DA速率都比較高而且穩(wěn)定,因而底層協(xié)議棧也大多以AD/DA的輸入、輸出中斷作為系統(tǒng)定時。當通信終端作為接收機時,底層協(xié)議棧需要以AD采樣數(shù)據(jù)作為其他部分(信道估計與均衡、解調、信道解碼等)的驅動數(shù)據(jù);作為發(fā)射機時,DA輸出數(shù)據(jù)是底層協(xié)議棧的最終輸出結果,需要仿真程序進行驗證。故而仿真程序可以采用AD/DA中斷來劃分程序運行的最小時間片,其他各種事件的發(fā)生都通過中斷個數(shù)來計時,仿真程序通過判斷AD/DA數(shù)據(jù)的個數(shù)調用各程序函數(shù)來再現(xiàn)底層協(xié)議棧運行狀況及數(shù)據(jù)流向。這樣就可以在不增加開銷的情況下,盡最大可能保證仿真程序與實際DSP中運行的協(xié)議棧一致,方便再現(xiàn)問題。
2.2  輸出數(shù)據(jù)
    根據(jù)1.1節(jié)所選擇的數(shù)據(jù)采集點,需在DSP的底層協(xié)議棧代碼中輸出仿真時所用的數(shù)據(jù): (1)需要輸出的為前端AD/DA數(shù)據(jù),以及底層協(xié)議棧與上層協(xié)議棧之間的交互數(shù)據(jù),這是底層通信協(xié)議棧接收、發(fā)射信息時所需的輸入數(shù)據(jù)與最終的輸出結果; (2)其他外圍設備產生的中斷和輸入數(shù)據(jù)也會影響底層協(xié)議棧流程,是仿真時所必須的部分;(3)底層協(xié)議棧各任務掛起、運行、結束等狀態(tài)變化需要輸出,以保證仿真程序運行時刻與實際情況一致。另外,在2次AD/DA中斷之間會發(fā)生多次變化的全局變量也需要輸出,以彌補時間片劃分的不足。
2.3  數(shù)據(jù)解析
    1.5節(jié)中所存儲的接收數(shù)據(jù)不方便直接用于仿真,需要進行格式轉換。根據(jù)2.1節(jié)中所述系統(tǒng)框架,所有事件通過AD/DA數(shù)據(jù)計時,故而除AD/DA數(shù)據(jù)外,其他類型數(shù)據(jù)需要記錄AD/DA數(shù)據(jù)個數(shù)信息,作為時間戳,因而可將所有數(shù)據(jù)分為兩大類:AD/DA數(shù)據(jù)和非AD/DA數(shù)據(jù)。為仿真方便,將這2種類型數(shù)據(jù)分別存放于2個文件中。在解析數(shù)據(jù)時,需要將1.3小節(jié)中為了與CY68013A兼容而通過FPGA拆分開的2個16位數(shù)據(jù)重新合并為1個,并將不同類型的數(shù)據(jù)分開。AD/DA數(shù)據(jù)一般長度固定,由AD/DA轉換器分辨率(位數(shù))而定,例如,AD/DA數(shù)據(jù)為16位,每次中斷輸出1個數(shù)據(jù),則解析后的數(shù)據(jù)格式如表2所示。

  非AD/DA數(shù)據(jù)根據(jù)程序需求,長度不固定,可在協(xié)議棧程序輸出數(shù)據(jù)中包含長度信息,也可在接收程序與輸出程序中提前規(guī)定好數(shù)據(jù)長度。例如,非AD/DA數(shù)據(jù)以字為單位,數(shù)據(jù)長度為N,則解析后的數(shù)據(jù)格式如表3所示。

    由于底層協(xié)議棧需要兼顧外圍硬件控制,各種外部中斷比較多,很可能會打斷數(shù)據(jù)輸出,因而在解析數(shù)據(jù)時,需要考慮各種數(shù)據(jù)之間的嵌套。為此,可以對每種數(shù)據(jù)采用單獨的緩沖區(qū),待解析到1條完整數(shù)據(jù)之后再存入文件中,同時還要保證文件中各種非AD/DA數(shù)據(jù)按照發(fā)生時間的先后順序排列。其流程如圖3所示。

2.4 系統(tǒng)仿真
    系統(tǒng)仿真之前,首先要將運行于DSP中的底層協(xié)議棧代碼轉換為PC機上可運行的代碼,一般DSP大多采用C語言和匯編語言相結合的方式進行開發(fā),C代碼基本上不需要進行大量修改,而匯編代碼需要根據(jù)其工作原理,轉譯成C代碼。系統(tǒng)仿真時采用2.3節(jié)中解析后的數(shù)據(jù)文件作為輸入,按照2.1節(jié)定義的仿真系統(tǒng)框架,以AD/DA數(shù)據(jù)為驅動,通過判斷非AD/DA數(shù)據(jù)的發(fā)生時刻(AD/DA數(shù)據(jù)計數(shù)值)來調動底層協(xié)議棧各部分任務運行,以達到再現(xiàn)協(xié)議棧運行狀況、調試程序的目的。仿真流程如圖4所示。有些硬件操作需要底層協(xié)議棧控制,仿真時可以按照“[發(fā)生時間] 硬件操作內容”的格式寫到文件中作為仿真程序的輸出。這樣通過查詢輸出文件,各種硬件操作的先后關系一目了然,更形象化,有利于發(fā)現(xiàn)硬件控制上的邏輯錯誤。

    本文設計了一種專門用于底層協(xié)議棧開發(fā)的數(shù)據(jù)采集與仿真系統(tǒng),利用USB高速傳輸特點以及物理連接的便利性,采用CY68013A進行數(shù)據(jù)傳遞,充分利用其GPIF資源,使用FPGA進行格式轉換。文中對仿真系統(tǒng)的整體框架和數(shù)據(jù)轉換細節(jié)進行了詳細說明。該系統(tǒng)可用于各種類型協(xié)議棧調試,便于追蹤、再現(xiàn)問題。經過實驗驗證,系統(tǒng)可承受100 Mb/s的實時數(shù)據(jù)流,在數(shù)字集群手持終端開發(fā)中進行了廣泛應用,不僅降低了協(xié)議棧的開發(fā)難度,而且縮短了開發(fā)周期,有很高的實用性。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉