<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用DSP/BIOS操作系統進(jìn)行快速開(kāi)發(fā)設計的軟件架構設計

利用DSP/BIOS操作系統進(jìn)行快速開(kāi)發(fā)設計的軟件架構設計

作者: 時(shí)間:2012-10-10 來(lái)源:網(wǎng)絡(luò ) 收藏

  3.2 系統層

  系統層設計為設計的關(guān)鍵點(diǎn),充分利用提供的調度模塊和同步模塊。將控制層中的指令解析、交換控制和交換表更新模塊與PRD綁定,周期檢查有無(wú)新指令,并根據指令解析更新交換表,調度周期由32位實(shí)時(shí)邏輯時(shí)鐘控制。將控制層中的交換控制和數據交換模塊與TSK綁定,根據從其他模塊收到的信號量SEM或者郵箱信息MBX,進(jìn)行數據格式轉換,完成不同格式的數據在不同信道間的透明傳輸。將中斷服務(wù)與HWI進(jìn)行綁定,完成數據實(shí)時(shí)收發(fā)。運用同步模塊Synchronization中的郵箱機制MBX與信號量SEM機制完成HWI、PRD和TSK之間的消息傳遞。運用的調度算法,完成多個(gè)任務(wù)之間的調度,控制數據收發(fā)及數據處理。

  3.3 算法層

  把各類(lèi)算法單獨列為一層,匯聚多類(lèi)信號算法,采用松散耦合和可重入設計方法,方便算法的移植、維護及多路并行工作設計,并根據應用需求,方便算法的裁減和擴充。各類(lèi)算法嚴格獨立,都以單獨庫和頭文件的形式提供。算法層的結構如圖2所示。

  3.4 通信常用算法

  DTMF:雙音多頻信號,每個(gè)號碼由兩個(gè)音頻信號相加得到,廣泛用在電話(huà)撥號和來(lái)電顯示中,其生成和檢測算法。

  FSK:利用1 200 Hz和2 200 Hz的正弦信號,采用2FSK調制解調方法,廣泛用于來(lái)電顯示中,其生成和檢測算法。

  TONE:三音生成和檢測算法,包含信號音、忙音、回鈴音生成和三音檢測,廣泛用于電話(huà)交換系統中。

  G.711:速率為64 khit·s-1的語(yǔ)音編解碼標準,廣泛用于電話(huà)交換系統中。

  CVSD:連續可變斜率編碼的英文縮寫(xiě),速率為16 khit·s-1的語(yǔ)音編解碼標準,用于低速率通信系統中,其編解碼算法。

  3.5 控制層

  控制層設計為設計第二個(gè)關(guān)鍵點(diǎn),在應用層與系統層、算法層之間起到橋梁作用。由指令解析、內存管理、中斷服務(wù)和交換控制4個(gè)模塊組成。指令解析由PRD調用,周期性的判斷是否具有新的指令到來(lái),如有新指令到來(lái),首先把新的指令放入到指令FIFO存儲器,然后清空指令空間,避免下次調用指令解析函數時(shí)做出誤判斷,最后指令解析模塊會(huì )對指令FIFO中的內容進(jìn)行解析,根據解析結果更新交換控制模塊中的交換表。內存管理為每個(gè)業(yè)務(wù)通道分配了發(fā)送緩存區Tx Buffer和接收緩存區Rx Buffer,并為每個(gè)Tx Butter和Rx Buff er配備了管理指針,用于指示Buffer中的數據的存儲位置及空閑位置,并由此計算出每個(gè)Buffer的數據個(gè)數及空閑空間大小,完成對異常操作如寫(xiě)操作過(guò)程中產(chǎn)生的Buffer溢出或讀操作過(guò)程產(chǎn)生的Buffer空的處理。在產(chǎn)生硬件中斷時(shí),中斷服務(wù)由系統HWI調用,完成實(shí)時(shí)數據收發(fā)。中斷服務(wù)需要保證實(shí)時(shí)性,不作過(guò)多控制和計算,盡可能減少執行指令數目,以及使用短周期指令,必要情況下使用CCS提供的已經(jīng)優(yōu)化的IntrinsICs函數進(jìn)行程序的優(yōu)化或運用匯編指令編寫(xiě)。HWI不可阻塞,在中斷服務(wù)中,不可調用具有可能引起阻塞的函數。與系統中其他任務(wù)之間的信息交換可以通過(guò)協(xié)助模塊中的郵箱機制MBX或信號燈機制SEM進(jìn)行交互。交換控制模塊實(shí)現不同通道數據之間的交換,并伴隨不同數據格式相互轉換。交換控制包含交換表管理和數據交換,具備多種的交換能力。交換表管理具有交換表條目刪除和增加的功能。數據交換模塊根據交換表完成源通道數據到目的通道數據格式轉換,然后將轉換后的數據放置到目的通道的發(fā)送緩存中,等待數據發(fā)送,具有多路并行工作能力??刂茖觾炔磕K之間的數據交互如圖3所示。

  3.6 應用層

  應用層設計采用內存共享機制,實(shí)現與CPU的指令交互和數據交互。為確保每次讀寫(xiě)數據的完整性和正確性,兩塊處理器間需要建立有效的通信機制,保證不會(huì )同時(shí)對同一地址進(jìn)行操作。指令交互負責接收CPU指令并向CPU返回結果。指令解析模塊周期性讀取指令,并進(jìn)行解析,控制每個(gè)業(yè)務(wù)通道的操作,如果是DTMF檢測、FSK檢測或TONE檢測指令,DSP將解析出的結果反饋給CPU。如果是DTMF產(chǎn)生、FSK產(chǎn)生或TONE產(chǎn)生指令,DSP將向指定業(yè)務(wù)通道發(fā)送號碼對應的DTMF信號、FSK信號或撥號音、忙音、回鈴音或催掛音等;如果是兩信道語(yǔ)音格式轉換指令,DSP將從源信道接收數據,完成轉換格式后,發(fā)往目的通道。數據交互,DSP與CPU通過(guò)共享內存還可進(jìn)行數據交互,數據的存儲狀態(tài)將由內存管理模塊進(jìn)行控制。

  4 結束語(yǔ)

  文中介紹的,已在實(shí)際應用中得到驗證,在TMS320VC5416可同時(shí)完成32路多種信號處理DTMF、FSK、TONE、CVSD、G.711任意配置,在TMS320C6418可同時(shí)完成128路多信號處理DTMF、FSK、TONE、CVSD、G.711任意配置,并可加入多路G.729處理。該軟件架構能夠保證不同算法的單獨開(kāi)發(fā)和重復利用,在跨平臺移植時(shí),根據硬件接口不同,僅需對驅動(dòng)層進(jìn)行重新配置,其余層的代碼可直接移植,加速了多信號并行處理軟件開(kāi)發(fā)設計。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: DSP BIOS 操作系統 軟件架構

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>