基于CMX618的數字語(yǔ)音通信系統
2.2 系統的硬件設計與實(shí)現
基于CMX618的語(yǔ)音通信模塊主要由語(yǔ)音編解碼器CMX618和LPC2138組成,如圖2所示。本文引用地址:http://dyxdggzs.com/article/152471.htm
該語(yǔ)音通信系統使用CMX618內置的CODEC模塊,其內部集成了A/D和D/A轉換、通道濾波、增益調節等功能,足以滿(mǎn)足對模擬語(yǔ)音的抽樣、量化等操作的指標要求。因此,無(wú)需再外接芯片,也節省了大量的物理空間,這在實(shí)際的開(kāi)發(fā)設計中是十分重要的。
微控制器LPC2138通過(guò)C-BUS串行總線(xiàn)與CMX618連接。C-BuS是一個(gè)四線(xiàn)中斷一驅動(dòng)串行系統,可在主控制器和CMX618內部寄存器間進(jìn)行數據傳輸、控制或狀態(tài)信息的發(fā)送。
2.3 系統的軟件設計與實(shí)現
系統的軟件設計主要是編寫(xiě)CMX618的驅動(dòng)程序,以及對主控制器LPC2138進(jìn)行編程實(shí)現對CMX618的控制。在上電后,首先應初始化CMX618和LPC2138。對語(yǔ)音編解碼芯片,要配置其中的一些功能寄存器,這包括設置編解碼位速率、組幀結構、增益大小、輔助功能選用以及開(kāi)啟中斷標志位等;對主控制芯片,則要配置接口方式、中斷條件和傳輸速率等。
實(shí)際應用中,為使編解碼過(guò)程中的糾錯能力達到最佳,在使用前向糾錯(FEC)編碼器處理語(yǔ)音編碼時(shí)??蛇x擇聲碼器幀以3×20 ms或4×20 ms的形式進(jìn)行數據包傳輸。這種把多幀數據進(jìn)行封裝、打包傳輸的形式,更有效地抑制了誤碼的產(chǎn)生。
這里,要注意CMX618語(yǔ)音編解碼芯片的狀態(tài)(state)寄存器(地址為MYM40)。編碼和解碼操作在狀態(tài)寄存器中都有對應的標志位,當采用中斷方式編解碼時(shí),每次要先讀出狀態(tài)寄存器中對應標志位的值,只有當對應標志位的值為“1”時(shí),才會(huì )產(chǎn)生中斷,執行相應的操作,如圖3所示。
其中,在狀態(tài)(state)寄存器(地址為MYM40)中對應的狀態(tài)標志有VDA,VDW,RDY。其中,VDA為編碼標志位;VDW為解碼標志位;RDY為等待配置標志位。
2.4 關(guān)鍵問(wèn)題
(1)采用RALCWI算法時(shí),由于存在算法抖動(dòng),會(huì )使編碼每一幀時(shí)花費的時(shí)間不同,這使微處理器對輸出數據的時(shí)間不好掌握。為解決此問(wèn)題,在編碼時(shí),會(huì )給微處理器一條指令,只要編碼可行,就會(huì )進(jìn)行數據傳輸;在解碼時(shí),則會(huì )增加一個(gè)初始延遲時(shí)間,避免CODEC因無(wú)采樣數據而產(chǎn)生時(shí)間空隙。
評論