新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 適于底層協議棧開發(fā)的數據采集與仿真系統

        適于底層協議棧開發(fā)的數據采集與仿真系統

        作者: 時間:2010-05-07 來源:網絡 收藏

        2.2 輸出數據
        根據1.1節(jié)所選擇的點,需在DSP的棧代碼中輸出時所用的數據: (1)需要輸出的為前端AD/DA數據,以及棧與上層棧之間的交互數據,這是通信協議棧接收、發(fā)射信息時所需的輸入數據與最終的輸出結果; (2)其他外圍設備產生的中斷和輸入數據也會影響底層協議棧流程,是時所必須的部分;(3)底層協議棧各任務掛起、運行、結束等狀態(tài)變化需要輸出,以保證程序運行時刻與實際情況一致。另外,在2次AD/DA中斷之間會發(fā)生多次變化的全局變量也需要輸出,以彌補時間片劃分的不足。
        2.3 數據解析
        1.5節(jié)中所存儲的接收數據不方便直接用于仿真,需要進行格式轉換。根據2.1節(jié)中所述框架,所有事件通過AD/DA數據計時,故而除AD/DA數據外,其他類型數據需要記錄AD/DA數據個數信息,作為時間戳,因而可將所有數據分為兩大類:AD/DA數據和非AD/DA數據。為仿真方便,將這2種類型數據分別存放于2個文件中。在解析數據時,需要將1.3小節(jié)中為了與CY68013A兼容而通過FPGA拆分開的2個16位數據重新合并為1個,并將不同類型的數據分開。AD/DA數據一般長度固定,由AD/DA轉換器分辨率(位數)而定,例如,AD/DA數據為16位,每次中斷輸出1個數據,則解析后的數據格式如表2所示。

        本文引用地址:http://www.104case.com/article/157453.htm

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

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

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 门头沟区| 钟山县| 邯郸县| 土默特右旗| 禹城市| 柳州市| 平凉市| 临泽县| 大理市| 曲阜市| 三明市| 开原市| 延吉市| 长白| 沙坪坝区| 桂东县| 和林格尔县| 巴青县| 宝清县| 河南省| 延安市| 明溪县| 孝昌县| 门源| 清流县| 辉县市| 靖西县| 潞西市| 马公市| 高邑县| 灵璧县| 宝兴县| 商南县| 田林县| 双牌县| 南通市| 安徽省| 锦州市| 泽库县| 浏阳市| 阿鲁科尔沁旗|