基于DSP/BIOS的多信號并行處理軟件架構設計
1 DSP/BIOS簡介
DSP/BIOS是TI公司推出的實時操作系統(tǒng),集成在CCS(Code Composer Studio)開發(fā)環(huán)境中。DSP/BIOS采用靜態(tài)配置策略,通過去除運行代碼能使目標程序存儲空間最小化,優(yōu)化內部數據結構,在程序執(zhí)行前夠通過確認對象所有權較早地檢測出錯誤,可滿足DSP運行時的調試和性能分析,應用DSP/BIOS可以快速編寫高效程序,較大的簡化DSP應用程序的開發(fā)和調試。DSP/BIOS是一組可重復調用的系統(tǒng)模塊應用程序接口API集合,分為系統(tǒng)模塊System、協(xié)助模塊Instrumentation、調度模塊Scheduling、同步模塊Synchronization、通信模塊Input/Out put和配置模塊CSL。系統(tǒng)模塊,主要完成芯片型號確認、字節(jié)序Endian Mode配置、主頻配置、芯片Cashe空間劃分及內存空間分配。協(xié)助模塊Instrumentation,主要負責消息打印、事件日志及信息追蹤工作。調度模塊,為DSP/BIOS核心功能,可細化為定時管理CLK、周期中斷管理PRD、硬中斷管理HWI、軟中斷管理SWI、任務管理TSK和空閑任務管理IDL。CLK控制片內的32位實時邏輯時鐘,負責PRD周期的設置。PRD管理周期對象,觸發(fā)應用程序周期執(zhí)行性,為一種特殊的SWI。HWI管理硬件中斷,主要負責DSP與外設的數據交互,中斷服務程序應盡量短小精焊。SWI是不可阻塞搶斷式,SWI任務只能在程序編制時預先定義好。TSK是可阻塞搶斷式的,支持任務的動態(tài)產生。IDL管理休眠函數,休眠函數在目標系統(tǒng)程序無更高優(yōu)先權的函數運行時啟動,是一種特殊的TSK。同步模塊,負責各個調度模塊之間信息的交換傳遞,保證調度模塊之間的同步和互斥。通信模塊,允許應用程序在目標系統(tǒng)和主機之間交流數據。配置模塊,負責芯片底層硬件的配置。另外DSP/BIOS還帶有插件,支持實時分析、程序跟蹤和性能監(jiān)視。
2 DSP軟件架構
軟件架構采用分層設計思想,共分5層:驅動層、系統(tǒng)層、算法層、控制層和應用層。驅動層完成芯片硬件接口及外圍芯片驅動。系統(tǒng)層運行DSP/BIOS操作系統(tǒng),完成硬件中斷、周期控制和任務調度功能。算法層提供各類業(yè)務需求的算法API。控制層負責軟件的指令解析、內存管理、中斷服務和交換控制。應用層為CPU調用控制DSP提供指令交互和數據交互接口。
3 子層設計
3.1 驅動層
使用DSP/BIOS圖形化的界面,調用芯片支持庫模塊CSL,快速設置DSP底層硬件接口,完成芯片的MCBSP驅動、EMIF驅動和EDMA驅動的開發(fā)。對于外圍芯片的驅動,如A/D芯片驅動,首先硬件上完成DSP芯片與A/D芯片的接線,然后按照配置指令的幀格式完成對A/D芯片的配置。
3.2 系統(tǒng)層
系統(tǒng)層設計為軟件架構設計的關鍵點,充分利用DSP/BIOS提供的調度模塊和同步模塊。將控制層中的指令解析、交換控制和交換表更新模塊與PRD綁定,周期檢查有無新指令,并根據指令解析更新交換表,調度周期由32位實時邏輯時鐘控制。將控制層中的交換控制和數據交換模塊與TSK綁定,根據從其他模塊收到的信號量SEM或者郵箱信息MBX,進行數據格式轉換,完成不同格式的數據在不同信道間的透明傳輸。將中斷服務與HWI進行綁定,完成數據實時收發(fā)。運用同步模塊Synchronization中的郵箱機制MBX與信號量SEM機制完成HWI、PRD和TSK之間的消息傳遞。運用操作系統(tǒng)的調度算法,完成多個任務之間的調度,控制數據收發(fā)及數據處理。
3.3 算法層
把各類算法單獨列為一層,匯聚多類信號算法,采用松散耦合和可重入設計方法,方便算法的移植、維護及多路并行工作設計,并根據應用需求,方便算法的裁減和擴充。各類算法嚴格獨立,都以單獨庫和頭文件的形式提供。算法層的結構如圖2所示。
3.4 通信常用算法
DTMF:雙音多頻信號,每個號碼由兩個音頻信號相加得到,廣泛用在電話撥號和來電顯示中,其生成和檢測算法。
FSK:利用1 200 Hz和2 200 Hz的正弦信號,采用2FSK調制解調方法,廣泛用于來電顯示中,其生成和檢測算法。
TONE:三音生成和檢測算法,包含信號音、忙音、回鈴音生成和三音檢測,廣泛用于電話交換系統(tǒng)中。
G.711:速率為64 khit·s-1的語音編解碼標準,廣泛用于電話交換系統(tǒng)中。
CVSD:連續(xù)可變斜率編碼的英文縮寫,速率為16 khit·s-1的語音編解碼標準,用于低速率通信系統(tǒng)中,其編解碼算法。
3.5 控制層
控制層設計為軟件架構設計第二個關鍵點,在應用層與系統(tǒng)層、算法層之間起到橋梁作用。由指令解析、內存管理、中斷服務和交換控制4個模塊組成。指令解析由操作系統(tǒng)PRD調用,周期性的判斷是否具有新的指令到來,如有新指令到來,首先把新的指令放入到指令FIFO存儲器,然后清空指令空間,避免下次調用指令解析函數時做出誤判斷,最后指令解析模塊會對指令FIFO中的內容進行解析,根據解析結果更新交換控制模塊中的交換表。內存管理為每個業(yè)務通道分配了發(fā)送緩存區(qū)Tx Buffer和接收緩存區(qū)Rx Buffer,并為每個Tx Butter和Rx Buff er配備了管理指針,用于指示Buffer中的數據的存儲位置及空閑位置,并由此計算出每個Buffer的數據個數及空閑空間大小,完成對異常操作如寫操作過程中產生的Buffer溢出或讀操作過程產生的Buffer空的處理。在產生硬件中斷時,中斷服務由BIOS系統(tǒng)HWI調用,完成實時數據收發(fā)。中斷服務需要保證實時性,不作過多控制和計算,盡可能減少執(zhí)行指令數目,以及使用短周期指令,必要情況下使用CCS提供的已經優(yōu)化的Intrinsics函數進行程序的優(yōu)化或運用匯編指令編寫。HWI不可阻塞,在中斷服務中,不可調用具有可能引起阻塞的函數。與系統(tǒng)中其他任務之間的信息交換可以通過協(xié)助模塊中的郵箱機制MBX或信號燈機制SEM進行交互。交換控制模塊實現不同通道數據之間的交換,并伴隨不同數據格式相互轉換。交換控制包含交換表管理和數據交換,具備多種的交換能力。交換表管理具有交換表條目刪除和增加的功能。數據交換模塊根據交換表完成源通道數據到目的通道數據格式轉換,然后將轉換后的數據放置到目的通道的發(fā)送緩存中,等待數據發(fā)送,具有多路并行工作能力??刂茖觾炔磕K之間的數據交互如圖3所示。
3.6 應用層
應用層設計采用內存共享機制,實現DSP與CPU的指令交互和數據交互。為確保每次讀寫數據的完整性和正確性,兩塊處理器間需要建立有效的通信機制,保證不會同時對同一地址進行操作。指令交互負責接收CPU指令并向CPU返回結果。指令解析模塊周期性讀取指令,并進行解析,控制DSP每個業(yè)務通道的操作,如果是DTMF檢測、FSK檢測或TONE檢測指令,DSP將解析出的結果反饋給CPU。如果是DTMF產生、FSK產生或TONE產生指令,DSP將向指定業(yè)務通道發(fā)送號碼對應的DTMF信號、FSK信號或撥號音、忙音、回鈴音或催掛音等;如果是兩信道語音格式轉換指令,DSP將從源信道接收數據,完成轉換格式后,發(fā)往目的通道。數據交互,DSP與CPU通過共享內存還可進行數據交互,數據的存儲狀態(tài)將由內存管理模塊進行控制。
4 結束語
文中介紹的軟件架構,已在實際應用中得到驗證,在TMS320VC5416可同時完成32路多種信號處理DTMF、FSK、TONE、CVSD、G.711任意配置,在TMS320C6418可同時完成128路多信號處理DTMF、FSK、TONE、CVSD、G.711任意配置,并可加入多路G.729處理。該軟件架構能夠保證不同算法的單獨開發(fā)和重復利用,在跨平臺移植時,根據硬件接口不同,僅需對驅動層進行重新配置,其余
評論