引言
隨著通信與信息技術的不斷發展及數字產品的普及,DSP被越來越多地應用于各種數字系統中。美國德州儀器(TI)公司于20世紀90年代開發了能在其DSP產品上運行的實時操作系統內核DSP/BIOS,并提出一系列DSP軟件實施方案來加速應用開發進程。
本文將嵌入式技術應用于數字監測接收機系統設計中,采用TI公司的TMS320DM6437為核心處理器,以DSP/BIOS操作系統為軟件平臺,通過芯片支持庫和應用程序構建成一個完整的數字監測接收機系統。監測接收機通過周期地掃描給定頻段,利用頻譜分析測量頻譜占用度、頻率發射類型、帶寬和載干比等參數,并實現自動測量。
1 DSP/BIOS
針對TI公司的TMS320系列數字信號處理器,DSP/BIOS為開發者提供一種實時操作系統解決方案。DSP/BIOS是一個功能豐富、可擴展的內核服務集,開發人員可以用來管理系統級的資源和構建DSP應用的基礎架構。在DSP/BIOS的協助下,開發人員可以拋開底層開發的困擾,從而專注于算法實現和系統集成。
DSP/BIOS是一個可剪裁的實時操作系統,主要由3部分組成:多線程實時內核、實時分析工具和芯片支持庫。多線程實時內核維護調度多線程的運行,負責任務的調度及時間輪詢算法的實現;實時分析工具提供線程算法實時運行的情況,方便用戶驗證系統設計的正確性和可靠性;芯片支持庫負責管理外設資源,利用圖形工具便可完成復雜的外設寄存器初始化配置。
1.1 多線程實時內核
DSP/BIOS設計的主要目的是降低存儲器需求的空間和CPU響應時間。這種設計有利于縮減程序代碼量,提高系統模塊化程度,降低指令的執行周期以及實現后臺任務間的通信和管理。
1.2 實時分析工具
DSP/BIOS的實時分析工具能實時捕獲和顯示數據,這對于軟件開發階段診斷系統和查找系統缺陷非常有幫助。實時分析工具主要包含兩方面的內容:實時數據交換(RTDX)功能和面板工具插件。實時分析工具是在DSP空閑周期內完成與目標應用程序間的通信,因此不會影響應用程序的實時性。
1.3 芯片支持庫
在DSP系統軟件設計中,一般會涉及大量對片上外設的操作,往往要消耗過多的時間和精力。TI公司為5000系列和6000系列的DSP提供了各自的芯片支持庫CSL(Chip Support Library)。CSL庫函數主要用于配置和控制DSP片上外設,使片上外設更容易使用,縮短開發時間,增強可移植性。用CSL來配置和管理DSP的硬件外設模塊,可以使固件程序的開發變得更加方便和快捷。
2 數字監測接收機系統
2.1 數字監測接收機系統分析
數字監測接收機工作原理如圖1所示。數字監測接收機由標準源、調諧器、中頻數字信號處理器和電源等模塊組成。接收機通過網絡與遠程計算機工作站相連,計算機工作站完成信號顯示、對接收機輸出信號的進一步處理,以及對接收機的配置及控制。
中頻數字信號處理器是系統的核心部件,負責對寬帶信號進行中頻數字化處理。其中包括FPGA實現中頻信號高速采樣、數字DDC(Direct Digital Control,直接數字控制)和DSP完成中頻/視頻PSD處理,以及信號解調、ITU測試等工作。
DSP需要利用DSP/BIOS操作系統實現以下功能:接收FPGA數字下變頻后的中頻數據,配置FPGA數字下變頻參數,測量射頻參數和信號頻譜,解調數字/模擬調制信號,打包處理數據,解析網絡命令等。其基本框架如圖2所示。
針對以上分析,系統需要創建10個任務。其中,DDC數據接收為硬中斷任務,系統狀態切換和打包處理數據啟用軟中斷任務,其余皆為可搶占任務。由于DSP/BIOS采用多任務優先級搶占式調度,在RTOS中當前處理的任務設置為優先級最高,處理完成后將其優先級降低使得其他任務能夠工作。網絡命令接收和解析網絡命令享有最高優先級;DDC參數配置優先級次之;測量射頻參數、測量信號頻譜和解調信號采用相同的優先級,網絡數據發送優先級最低。任務之間通過消息機制實現共用數據互斥訪問。
2. 2 DSP/BIOS設置
根據系統需求,利用DSP/BIOS配置工具配置中斷和任務。在系統中對參數的設定直接影響到系統的執行情況,特別是對各個對象的堆棧設置,如果分配不合理,將會造成在程序執行過程中數據丟失,嚴重時將給系統帶來災難性破壞。
由于系統需要通過時間片輪詢的方式滿足RTOS多任務調度的需求,需要通過配置工具配置一個周期函數管理(PRD)。其作用是在指定的時間內執行某一個任務,若超出此時間,則將當前任務的執行掛起轉而執行同等優先級的其他任務。該任務通過DSP/BIOS提供的TSK_yield來實現。
系統還需配置時間標志管理(Event Log Manager)來將當前調試信息實時打印輸出,方便系統調試和維護。每個任務都有自己的緩沖空間,任務間通過信號量和消息郵箱進行互斥訪問公共資源,達到系統協同合作的目的。
DSP/BIOS配置如圖3所示。
需要指出的是,測量射頻參數任務、測量信號頻譜任務和解調信號任務采用相同的優先級,其任務配置并未在配置工具中設置,而是在代碼中通過TaskCreate()函數動態建立的,提高了系統配置的靈活性和實用性。
3 結果分析
3.1 任務調度
在DSP/BIOS中,可以通過線程執行圖分析各個線程的執行情況。本系統的線程執行圖如圖4所示。
從圖中可以看出數據處理任務(Other Threads,通過TaskCreate函數建立)和網絡處理任務(prdNdk)的執行順序。系統先啟動網絡處理任務接收原始數據,完成數據處理任務后,通過任務調度切換至網絡任務,從而完成了數據處理任務和網絡處理任務的正常切換。
3.2 日志分析
在系統設計時,數據處理任務在代碼中動態創建,不能通過線程執行圖分析,只能通過日志分析標注當前任務運行狀態。日志記錄圖如圖5所示。4個數據處理任務具有相同的優先級,不能搶占其他任務的資源,只能按照一定的順序輪詢執行。從圖中可以看出,系統能正常地完成數據處理任務。
結語
本文利用DSP/BIOS操作系統對數字監測接收機系統進行設計,采用時間片輪詢方式在任務間實施調度。該方案已應用在實際的工程中,通過DSP/BIOS分析工具可知該數字監測接收機系統能夠在滿足實時性的情況下正常穩定地工作,且設計和資源分配得到了正確的應用。