楊磊,李會勇
(電子科技大學(xué)電子工程學(xué)院,成都611731)
隨著通信與信息技術(shù)的不斷發(fā)展及數(shù)字產(chǎn)品的普及,DSP被越來越多地應(yīng)用于各種數(shù)字系統(tǒng)中。美國德州儀器(TI)公司于20世紀90年代開發(fā)了能在其DSP產(chǎn)品上運行的實時操作系統(tǒng)內(nèi)核DSP/BIOS,并提出一系列DSP軟件實施方案來加速應(yīng)用開發(fā)進程[1]。
本文將嵌入式技術(shù)應(yīng)用于數(shù)字監(jiān)測接收機系統(tǒng)設(shè)計中,采用TI公司的TMS320DM 6437為核心處理器,以DSP/BIOS操作系統(tǒng)為軟件平臺,通過芯片支持庫和應(yīng)用程序構(gòu)建成一個完整的數(shù)字監(jiān)測接收機系統(tǒng)。監(jiān)測接收機通過周期地掃描給定頻段,利用頻譜分析測量頻譜占用度、頻率發(fā)射類型、帶寬和載干比等參數(shù),并實現(xiàn)自動測量。
針對TI公司的TMS320系列數(shù)字信號處理器,DSP/BIOS為開發(fā)者提供一種實時操作系統(tǒng)解決方案。DSP/BIOS是一個功能豐富、可擴展的內(nèi)核服務(wù)集,開發(fā)人員可以用來管理系統(tǒng)級的資源和構(gòu)建DSP應(yīng)用的基礎(chǔ)架構(gòu)。在DSP/BIOS的協(xié)助下,開發(fā)人員可以拋開底層開發(fā)的困擾,從而專注于算法實現(xiàn)和系統(tǒng)集成[2]。
DSP/BIOS是一個可剪裁的實時操作系統(tǒng),主要由3部分組成:多線程實時內(nèi)核、實時分析工具和芯片支持庫[3]。多線程實時內(nèi)核維護調(diào)度多線程的運行,負責任務(wù)的調(diào)度及時間輪詢算法的實現(xiàn);實時分析工具提供線程算法實時運行的情況,方便用戶驗證系統(tǒng)設(shè)計的正確性和可靠性;芯片支持庫負責管理外設(shè)資源,利用圖形工具便可完成復(fù)雜的外設(shè)寄存器初始化配置。
DSP/BIOS設(shè)計的主要目的是降低存儲器需求的空間和CPU響應(yīng)時間。這種設(shè)計有利于縮減程序代碼量,提高系統(tǒng)模塊化程度,降低指令的執(zhí)行周期以及實現(xiàn)后臺任務(wù)間的通信和管理。
DSP/BIOS的實時分析工具能實時捕獲和顯示數(shù)據(jù),這對于軟件開發(fā)階段診斷系統(tǒng)和查找系統(tǒng)缺陷非常有幫助。實時分析工具主要包含兩方面的內(nèi)容:實時數(shù)據(jù)交換(RTDX)功能和面板工具插件。實時分析工具是在DSP空閑周期內(nèi)完成與目標應(yīng)用程序間的通信,因此不會影響應(yīng)用程序的實時性。
在DSP系統(tǒng)軟件設(shè)計中,一般會涉及大量對片上外設(shè)的操作,往往要消耗過多的時間和精力。TI公司為5000系列和6000系列的DSP提供了各自的芯片支持庫CSL(Chip Support Library)。CSL庫函數(shù)主要用于配置和控制DSP片上外設(shè),使片上外設(shè)更容易使用,縮短開發(fā)時間,增強可移植性。用CSL來配置和管理DSP的硬件外設(shè)模塊,可以使固件程序的開發(fā)變得更加方便和快捷。
數(shù)字監(jiān)測接收機工作原理如圖1所示。數(shù)字監(jiān)測接收機由標準源、調(diào)諧器、中頻數(shù)字信號處理器和電源等模塊組成。接收機通過網(wǎng)絡(luò)與遠程計算機工作站相連,計算機工作站完成信號顯示、對接收機輸出信號的進一步處理,以及對接收機的配置及控制。
圖1 數(shù)字監(jiān)測接收機工作原理
中頻數(shù)字信號處理器是系統(tǒng)的核心部件,負責對寬帶信號進行中頻數(shù)字化處理。其中包括FPGA實現(xiàn)中頻信號高速采樣、數(shù)字DDC(Direct Digital Control,直接數(shù)字控制)和DSP完成中頻/視頻PSD處理,以及信號解調(diào)、ITU測試等工作。
DSP需要利用DSP/BIOS操作系統(tǒng)實現(xiàn)以下功能:接收FPGA數(shù)字下變頻后的中頻數(shù)據(jù),配置FPGA數(shù)字下變頻參數(shù),測量射頻參數(shù)和信號頻譜,解調(diào)數(shù)字/模擬調(diào)制信號,打包處理數(shù)據(jù),解析網(wǎng)絡(luò)命令等。其基本框架如圖2所示。
針對以上分析,系統(tǒng)需要創(chuàng)建10個任務(wù)。其中,DDC數(shù)據(jù)接收為硬中斷任務(wù),系統(tǒng)狀態(tài)切換和打包處理數(shù)據(jù)啟用軟中斷任務(wù),其余皆為可搶占任務(wù)。由于DSP/BIOS采用多任務(wù)優(yōu)先級搶占式調(diào)度,在RTOS中當前處理的任務(wù)設(shè)置為優(yōu)先級最高,處理完成后將其優(yōu)先級降低使得其他任務(wù)能夠工作。網(wǎng)絡(luò)命令接收和解析網(wǎng)絡(luò)命令享有最高優(yōu)先級;DDC參數(shù)配置優(yōu)先級次之;測量射頻參數(shù)、測量信號頻譜和解調(diào)信號采用相同的優(yōu)先級,網(wǎng)絡(luò)數(shù)據(jù)發(fā)送優(yōu)先級最低。任務(wù)之間通過消息機制實現(xiàn)共用數(shù)據(jù)互斥訪問。
根據(jù)系統(tǒng)需求,利用DSP/BIOS配置工具配置中斷和任務(wù)。在系統(tǒng)中對參數(shù)的設(shè)定直接影響到系統(tǒng)的執(zhí)行情況,特別是對各個對象的堆棧設(shè)置,如果分配不合理,將會造成在程序執(zhí)行過程中數(shù)據(jù)丟失,嚴重時將給系統(tǒng)帶來災(zāi)難性破壞[4]。
由于系統(tǒng)需要通過時間片輪詢的方式滿足RTOS多任務(wù)調(diào)度的需求,需要通過配置工具配置一個周期函數(shù)管理(PRD)。其作用是在指定的時間內(nèi)執(zhí)行某一個任務(wù),若超出此時間,則將當前任務(wù)的執(zhí)行掛起轉(zhuǎn)而執(zhí)行同等優(yōu)先級的其他任務(wù)[5]。該任務(wù)通過DSP/BIOS提供的TSK_yield來實現(xiàn)。
系統(tǒng)還需配置時間標志管理(Event Log Manager)來將當前調(diào)試信息實時打印輸出,方便系統(tǒng)調(diào)試和維護。每個任務(wù)都有自己的緩沖空間,任務(wù)間通過信號量和消息郵箱進行互斥訪問公共資源,達到系統(tǒng)協(xié)同合作的目的[6]。DSP/BIOS配置如圖3所示。
圖3 DSP/BIOS配置圖
需要指出的是,測量射頻參數(shù)任務(wù)、測量信號頻譜任務(wù)和解調(diào)信號任務(wù)采用相同的優(yōu)先級,其任務(wù)配置并未在配置工具中設(shè)置,而是在代碼中通過TaskCreate()函數(shù)動態(tài)建立的,提高了系統(tǒng)配置的靈活性和實用性。
在DSP/BIOS中,可以通過線程執(zhí)行圖分析各個線程的執(zhí)行情況。本系統(tǒng)的線程執(zhí)行圖如圖4所示。
圖4 線程執(zhí)行圖
從圖中可以看出數(shù)據(jù)處理任務(wù)(Other Threads,通過TaskCreate函數(shù)建立)和網(wǎng)絡(luò)處理任務(wù)(prdNdk)的執(zhí)行順序。系統(tǒng)先啟動網(wǎng)絡(luò)處理任務(wù)接收原始數(shù)據(jù),完成數(shù)據(jù)處理任務(wù)后,通過任務(wù)調(diào)度切換至網(wǎng)絡(luò)任務(wù),從而完成了數(shù)據(jù)處理任務(wù)和網(wǎng)絡(luò)處理任務(wù)的正常切換。
在系統(tǒng)設(shè)計時,數(shù)據(jù)處理任務(wù)在代碼中動態(tài)創(chuàng)建,不能通過線程執(zhí)行圖分析,只能通過日志分析標注當前任務(wù)運行狀態(tài)。日志記錄圖如圖5所示。4個數(shù)據(jù)處理任務(wù)具有相同的優(yōu)先級,不能搶占其他任務(wù)的資源,只能按照一定的順序輪詢執(zhí)行。從圖中可以看出,系統(tǒng)能正常地完成數(shù)據(jù)處理任務(wù)。
本文利用DSP/BIOS操作系統(tǒng)對數(shù)字監(jiān)測接收機系統(tǒng)進行設(shè)計,采用時間片輪詢方式在任務(wù)間實施調(diào)度。該方案已應(yīng)用在實際的工程中,通過DSP/BIOS分析工具可知該數(shù)字監(jiān)測接收機系統(tǒng)能夠在滿足實時性的情況下正常穩(wěn)定地工作,且設(shè)計和資源分配得到了正確的應(yīng)用。
圖5 日志記錄圖
[1]Texas Instruments Incorporated.TMS320C6000 DSP/BIOS 5.31 Application Programming Interface(API)Reference Guide,2006.
[2]Shawn Dirksen.How to Get Started With the DSP/BIOS Kernel[OL].2008[2010-07].www.ti.com/sc/docs/stdterms.htm.
[3]德州儀器(中國)有限公司應(yīng)用工程師.介紹一種實時操作系統(tǒng)DSP/BIOS[J].電子技術(shù)應(yīng)用,2000,26(12).
[4]Texas Instruments Incorporated.TIDSP/BIOS用戶手冊與驅(qū)動開發(fā)[M].王軍寧,等譯.清華大學(xué)出版社,2008.
[5]金春蓮,黃迅.實時操作系統(tǒng)DSP/BIOS在DSP開發(fā)中的應(yīng)用[J].電子產(chǎn)品世界,2007(17).
[6]徐博.監(jiān)測接收機嵌入式實時通信模塊設(shè)計[D].長沙:國防科學(xué)技術(shù)大學(xué),2006.
[7]劉國敬.軟件無線電數(shù)字監(jiān)測接收機的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2007.
[8]陳渝,黃賢英,曹龍漢.嵌入式多任務(wù)系統(tǒng)開發(fā)方法研究及其應(yīng)用[J].重慶通信學(xué)院學(xué)報,2005,24(3):106-108.
[9]薛飛,魏平,蔡權(quán)偉.一種快速無線電監(jiān)測接收機實現(xiàn)[J].無線電通信技術(shù),2006,32(1).
[10]李志軍,安建平,孫磊.無線電監(jiān)測接收機中的DDC研究[J].北京理工大學(xué)學(xué)報,2008,28(10).