專利名稱:用于游戲控制器的數字音頻播放器的制作方法
技術領域:
本發明涉及一種ADPCM (Adaptive Differential Pulse Code Modulation自適應差值脈沖編碼調制)數字音頻播放器,特別是涉及一 種用于游戲控制器數字音頻輸出的播放器。
背景技術:
ADPCM是一種針對16比特(或者更高)聲音波形數據的有損壓縮算 法,它將聲音流中每次采樣的16比特(bit)數據以4比特存儲。由于 ADPCM編碼技術具有壓縮比高、失真較小和算法較簡單的特點,因此被越 來越多地應用到包括計算機軟件、數字音頻輸出中。
現有的ADPCM解碼方案多為微控制器+解碼器+功率放大器的結構,微 控制器通過I2S總線將數據傳送到解碼器,解碼器進行數-模轉換后通過 功率放大器輸出音頻。I2S (Inter-IC Sound Bus)總線是飛利浦公司為 數字音頻設備之間的音頻數據傳輸而制定的一種總線標準,一般高端微控 制器內部均集成fs接口。
上述方案顯然適用于帶有I2S總線,并需立體聲輸出的高端產品。對 于聲音要求不高的單聲道、低采樣頻率音頻輸出的低端產品來說成本太 高,而且使用不夠靈活。
另外,現有的ADPCM解碼芯片由于受到其內部儲存器容量的限制,多
采用實時數據傳送并輸出,對總線的使用率不高,并且在總線負擔過重時,可能會產生數據傳送阻塞,影響音頻輸出的效果。
發明內容
本發明要解決的技術問題是提供一種用于游戲控制器的數字音頻播
放器,成本低、功耗小,適用于單聲道、低采樣頻率的ADPCM音頻應用。
為解決上述技術問題,本發明的用于游戲控制器的數字音頻播放器, 包括一微處理器,與其連接的一功率放大器;
所述微處理器具有I2C接口,通過I2C總線接收4比特ADPCM音頻數 據和控制信息,并對4比特ADPCM音頻數據進行解碼,還原成16比特的 脈碼調制錄音,再進行數模轉換后,將模擬音頻信號輸送給功率放大器, 所述功率放大器對模擬音頻信號放大后輸出。
采用本發明的數字音頻播放器,由于去掉了由硬件實現的解碼器,結 構更加簡單,簡化了現有ADPCM解碼方案的結構,降低了制作成本和功耗, 非常適合于單聲道、低采樣頻率的ADPCM音頻輸出應用場合。
而且由于本發明僅由微處理器和功率放大器組成,微處理器的通訊 接口為I2C總線接口,較I2S總線接口更為通用。
另外,本發明還可在微控制器內增設一個FLASH預存模塊,用于在 I2C總線空閑時,將數據存放于FLASH預存模塊,避免在I2C總線繁忙時 傳送大流量的數據,增加總線的負擔;因此對通訊總線的使用更為合理。
下面結合附圖與具體實施方式
對本發明作進一步詳細的說明
圖l是本發明的原理框圖。
具體實施方式
參見圖l所示,本發明由一個微控制器和一個功率放大器組成。由微 控制器端的12C接口接收數據和控制信息,并在微控制器內部對接收的數 據和控制信息進行解碼處理和數模轉換后,將模擬音頻信號輸送給功率放
大器,經功率放大器放大后輸出。本發明采用的lt (Inter—Integrated Circuit)總線是一種由PHILIPS公司開發的兩線式串行總線,用于連接微 控制器及其外圍設備。i2c總線最主要的優點是其具有簡單性和有效性。 由于12C接口直接集成在微控制器上,因此I2C總線占用的空間非常小, 減少了電路板的空間和芯片管腳的數量,降低了互聯成本。現有微控制器 及其外圍設備之間大多使用It總線,因此本發明的實施應該非常方便。
所述微控制器還具有一 FLASH存儲器,用于數據預存。在lt總線不 繁忙的情況下,將音頻數據預存在FLASH存儲器中,當需要將這段數據進 行音頻輸出時,只需通過I2C總線向微控制器傳送相應的控制位,微控制 器根據該控制位將這段音頻數據激活,這樣可以使整個數據總線具有更高 的使用效率。所述控制位包括FLASH區識別位和播放控制位,FLAH區識 別位用于確定從哪個FLASH區域讀出ADPCM數據。
所述微處理器將I2C總線傳送過來的4比特ADPCM音頻數據進行解碼 后,還原成16比特的PCM (Pulse Code Modulation 脈碼調制錄音)。 所謂PCM錄音就是將聲音等模擬信號變成符號化的脈沖列,再予以記錄。 PCM信號是由[l]、 [O]等符號構成的數字信號;與模擬信號比,它不易受 傳送系統的雜波及失真的影響;動態范圍寬,可得到音質相當好的影響效 果。
所述微處理器向功率放大器輸送音頻信號主要有三種模式FIFO(First In First Out先進先出)模式、靜態FLASH模式和動態FLASH 模式。
FIFO模式下,微控制器通過I2C總線實時接收ADPCM音頻數據,然后 進行解碼后,輸出音頻信號。這種模式適合于所有音樂信號的傳送,是一 種通用的方案。具體實施過程如下
第一步微控制器查詢內部I2C通訊地址表上的初始化標志位,該通 訊地址表被映射到I2C總線上,如果査詢到該初始化標志位已被I2C總線 上的主機置位(本發明的微控制器為I2C總線上的從機,由I2C總線上的 主機進行控制),則進行初始化設置。如果未置位,則重新第一步操作。
第二步微控制器査詢內部I2C通訊地址表上的ADPCM—START (ADPCM 播放請求位)位,如果其己被I2C總線上的主機置位,則微控制器通過I2C 總線接收接收ADPCM數據存放在微控制器的FIFO緩存中,并按照FIFO 順序對數據進行解碼后,輸出音頻信號。如果ADPCM—START位被I2C總線 上的主機清零,則停止解碼,單個音頻輸出完成。
靜態FLASH模式下,微控制器通過I2C總線接收控制標志位(控制標 志位由I2C總線上的主機發送),根據標志位從相應的FLASH中讀出已存 ADPCM音頻數據(該數據在燒錄程序時已經固化,不會改變),解碼后輸 出音頻信號。該模式主要是將預存于FLASH菜單中的音頻數據解碼后進行 輸出。
具體實施過程如下
第一步:微控制器查詢內部12(:通訊地址表上相應的音頻播放標志位, 如果其已被12(:總線上的主機置位,則進行初始化設置(包括指針設置、數據連接等)。如果未置位,則重新第一步操作。
第二步根據指針從FLASH中按照順序讀出數據,進行解碼后輸出音 頻信號。
第三步所有數據解碼完成,微控制器清除相應的音頻播放標志位。
動態FLASH模式下,由兩個獨立的過程組成寫入過程和放音過程。 寫入過程是首先向微控制器傳送一個音樂全部的ADPCM音頻數據,傳送 完成后,微控制器將收到的ADPCM音頻數據從RAM區拷貝到FLASH區,寫 入完畢。放音過程發送控制標志位至微控制器(標志位由12〔總線上的 主機發送),微控制器根據控制標志位從相應的FLASH中讀出已寫入的 ADPCM音頻數據(由寫入過程寫入的數據),解碼后輸出音頻信號。該模 式適用于限制長度的音樂文件的頻繁輸出。
在微控制器內部設有FLASH使用情況表,該表由兩個鏈表組成。第一 鏈表由已使用的FLASH塊的頭地址連接而成,用于對已使用的FLASH塊進 行査找、添加、刪除等操作;第二鏈表2由未使用的FLASH塊的頭地址連 接而成,用于對未使用的FLASH塊進行査找、添加、刪除等操作。
具體實施過程如下。
寫入過程
第一步微控制器査詢內部I2C通訊地址表上的初始化標志位,如果 其己被I2C總線上的主機置位,則進行初始化設置(包括指針設置、FLASH 檫除、鏈表重建等)。 第二步微控制器通過I2C總線接收ADPCM音頻數據,并將數據存放 于微控制器自帶的一個RAM緩存池中。第三步微控制器査詢所述12(:通訊地址表上的寫入標志位,如果其 己被i2c總線上的主機置位,則微控制器從第二鏈表中按照鏈表的排列順 序找到第一塊大小適合的未使用的FLASH塊,把該FLASH塊從第二鏈表中 刪除,添加到第一鏈表中,然后把ADPCM音頻數據從RAM區拷貝到FLASH 區,供聲音播放調用。
第四步循環執行第二、三步,直到所有音樂文件都拷貝到FLASH 區,音樂文件數量根據每個游戲的音樂數量決定,由12(:總線上的主機確 定。
播放過程
第一步:微控制器査詢內部12(:通訊地址表上相應的音頻播放標志位,
如果其已被I2C總線上的主機置位,則進行初始化設置(包括指針設置、
數據連接等)。
第二步根據指針從FLASH按照順序讀出數據,進行解碼后輸出音頻 信號。
第三步所有數據解碼完成,微控制器清除相應的音頻播放標志位。
權利要求
1、一種用于游戲控制器的數字音頻播放器,包括一微處理器,與其連接的一功率放大器;其特征在于所述微處理器具有I2C接口,通過I2C總線接收4比特ADPCM音頻數據和控制信息,并對4比特ADPCM音頻數據進行解碼,還原成16比特的脈碼調制錄音,再進行數模轉換后,將模擬音頻信號輸送給功率放大器,所述功率放大器對模擬音頻信號放大后輸出。
2、 如權利要求1所述的用于游戲控制器的數字音頻播放器,其特征 在于所述微控制器還具有一 FLASH存儲器,用于數據預存;當需要將這 段數據進行音頻輸出時,微控制器根據接收到的控制位,激活這段音頻數 據。
3、 如權利要求1所述的用于游戲控制器的數字音頻播放器,其特征在于所述微處理器向功率放大器輸送音頻信號具有三種模式FIFO模式、靜態FLASH模式和動態FLASH模式。
4、 如權利要求3所述的用于游戲控制器的數字音頻播放器,其特征 在于所述FIFO模式下,微控制器通過I2C總線實時接收ADPCM音頻數 據,然后進行解碼后,輸出音頻信號;具體實施過程如下控制器査詢內部12(:通訊地址表上的初始化標志位,該通訊地址表被 映射到I2C總線上,如果査詢到該初始化標志位已被I2C總線上的主機置 位,則進行初始化設置;微控制器查詢內部I2C通訊地址表上的ADPCM—START位,如果其已被 I2C總線上的主機置位,則微控制器通過I2C總線接收ADPCM數據存放在微控制器的FIFO緩存中,并按照FIFO順序對數據進行解碼后,輸出音頻 信號;如果ADPCM—START位被12(:總線上的主機清零,則停止解碼,單個 音頻輸出完成。
5、 如權利要求3所述的用于游戲控制器的數字音頻播放器,其特征 在于所述靜態FLASH模式下,微控制器通過I2C總線接收控制標志位, 根據標志位從相應的FLASH中讀出已存ADPCM音頻數據,解碼后輸出音頻 信號。
6、 如權利要求3或5所述的用于游戲控制器的數字音頻播放器,其 特征在于所述靜態FLASH模式的具體實施過程如下微控制器查詢內部12<:通訊地址表上相應的音頻播放標志位,如果其 已被I2C總線上的主機置位,則進行初始化設置,包括指針設置、數據連 接;根據指針從FLASH中按照順序讀出數據,進行解碼后輸出音頻信號; 所有數據解碼完成后,微控制器清除相應的音頻播放標志位。
7、 如權利要求3所述的用于游戲控制器的數字音頻播放器,其特征在于:所述動態FLASH模式由兩個獨立的過程組成:寫入過程和放音過程;寫入過程是首先向微控制器傳送一個音樂全部的ADPCM音頻數據,傳送 完成后,微控制器將收到的ADPCM音頻數據從RAM區拷貝到FLASH區,寫 入完畢;放音過程發送控制標志位至微控制器,微控制器根據控制標志 位從相應的FLASH中讀出已寫入的ADPCM音頻數據,解碼后輸出音頻信號。
8、 如權利要求3或7所述的用于游戲控制器的數字音頻播放器,其 特征在于所述微控制器內部設有FLASH使用情況表,該表由兩個鏈表組成;第一鏈表由已使用的FLASH塊的頭地址連接而成,用于對已使用的 FLASH塊進行查找、添加、刪除操作;第二鏈表2由未使用的FLASH塊的 頭地址連接而成,用于對未使用的FLASH塊進行査找、添加、刪除操作;具體實施過程如下寫入過程,微控制器查詢內部12(:通訊地址表上的初始化標志位,如果其已被I2C 總線上的主機置位,則進行初始化設置,包括指針設置、FLASH檫除、鏈 表重建;微控制器通過I2C總線接收ADPCM音頻數據,并將數據存放于一個RAM 緩存池中;微控制器査詢所述i2c通訊地址表上的寫入標志位,如果其已被I2C 總線上的主機置位,則微控制器從第二鏈表中按照鏈表的排列順序找到第 一塊大小適合的未使用的FLASH塊,把該FLASH塊從第二鏈表中刪除,添 加到第一鏈表中,然后把ADPCM音頻數據從RAM區拷貝到FLASH區,供聲 音播放調用;循環執行上述過程,直到所有音樂文件都拷貝到FLASH區; 播放過程微控制器査詢內部12C通訊地址表上相應的音頻播放標志位,如果其 被I2C總線上的主機置位,則進行初始化設置,包括指針設置、數據連接; 根據指針從FLASH按照順序讀出數據,進行解碼后輸出音頻信號; 所有數據解碼完成,微控制器清除相應的音頻播放標志位。
全文摘要
本發明公開了一種用于游戲控制器的數字音頻播放器,包括一微處理器,與其連接的一功率放大器;所述微處理器具有I<sup>2</sup>C接口,通過I<sup>2</sup>C總線接收4比特ADPCM音頻數據和控制信息,并對4比特ADPCM音頻數據進行解碼,還原成16比特的脈碼調制錄音,再進行數模轉換后,將模擬音頻信號輸送給功率放大器,所述功率放大器對模擬音頻信號放大后輸出。本發明成本低、功耗小,適用于單聲道、低采樣頻率的ADPCM音頻應用。
文檔編號G11C7/16GK101620881SQ20081004357
公開日2010年1月6日 申請日期2008年6月30日 優先權日2008年6月30日
發明者鄭文灝 申請人:鼎億數碼科技(上海)有限公司;鼎億公司