楊翠軍, 錢 敏, 朱 靜
(蘇州大學 微電子系,江蘇 蘇州 215021)
數字音頻技術日益被關注和研究,諸如語音加密[1]、語音識別[2]、數字音效處理等在生產生活中有著廣闊的應用前景。隨著人們對語音質量的要求越來越高,對語音芯片和相關處理器也提出了更高的性能要求[3]。項目采用 SOPC技術設計了一種嵌入式數字音頻處理系統。可編程片上系統,是 Altera公司提出來的一種靈活、高效的片上系統(SOC)解決方案,是一種新的軟硬件協同設計的系統設計技術。它將處理器、存儲器、I/O口、低電壓差分信號接口(LVDS)、時鐘與數據恢復(CDR)等功能模塊集成到一個可編程器件上,構成一個可編程的片上系統[4]。項目中利用該技術在 FPGA芯片上配置 Nios Ⅱ軟核處理器并配合語音芯片TLV320AIC23來搭建硬件平臺,并利用軟件集成開發環境Nios Ⅱ IDE進行軟件設計來控制整個系統工作,實現了數字音頻的高速實時采集與回放功能。
系統結構中主要有模擬音頻輸入源數字通用光盤播放器(DVD),Altera公司 Cyclone Ⅱ系列的EP2C35芯片,語音芯片TLV320AIC23及耳機組成,整個系統的結構框如圖1所示。系統的工作原理為:從 DVD混合 2聲道輸出模擬音頻,經過TLV320AIC23內部的A/D轉換器轉換為串行音頻數字流,進入已配置有Nios Ⅱ CPU和其他相關接口模塊的 FPGA,由其對該數字音頻進行接收、并利用SDRAM來協助CPU對數據進行存取,最后發送至TLV320AIC23內部的D/A轉換器,轉換為模擬音頻提供給耳機回放。

圖1 系統硬件結構
Avalon總線是Altera公司開發的一種專用的內部總線技術,主要用于片內處理器與外設之間的通信。
Avalon總線是由SOPC Builder自動生成的,系統用戶不需要關心總線與外設的具體連接。Avalon總線系統一般由Avalon交換結構和Avalon外設組成。Avalon交換結構是系統模塊的主干,由各種控制、數據和地址信號以及仲裁邏輯組成,將系統模塊的各外設連接起來。Avalon外設分為主外設和從外設兩類。能夠在Avalon總線上發起總線傳輸的外設是主外設,而從外設只能響應Avalon總線傳輸。Avalon接口規范定義了Avalon交換結構和Avalon外設連接端口之間的信號和時序。
系統的硬件平臺主要由配置有Nios Ⅱ CPU和相關接口模塊的 FPGA 芯片、語音芯片TLV320AIC23以及存儲器等部分構成。設計中選用了Altera Cyclone Ⅱ系列EP2C35型號的FPGA芯片。該芯片具有33216個邏輯單元、475個用戶自定義I/O接口、35個嵌入式乘法器和4個鎖相環。在FPGA內部配置了以下模塊:PLL、Nios Ⅱ嵌入式軟核處理器、掛接在 Avalon總線上的 JTAG UART、System ID、SDRAM Controller、FLASH(CFI)Controller、DMA Controller等IP核以及用戶定制邏輯外設模塊i2c、aic23。存儲器用于對數字音頻數據進行緩存。下面主要對Nios Ⅱ嵌入式軟核處理器、語音芯片TLV320AIC23及其配置、自定制邏輯外設控制模塊aic23等幾個關鍵模塊的設計進行介紹。
Nios II處理器是Altera公司推出的第二代用于可編程邏輯器件的可配置的軟核處理器。由于處理器是軟核形式,可以在多種系統設置組合中進行選擇,達到性能和成本的要求。Nios Ⅱ處理器包括3種類型內核:高速內核(Nios II/f)、經濟內核(Nios II/e)和標準內核(Nios II/s)[5]。因為設計時采用的Cyclone Ⅱ系列EP2C35芯片邏輯資源豐富以及音頻采集的高速性實時性要求,所以選用了高性能的Nios Ⅱ軟核作為系統的CPU。使用Altera的Quartus Ⅱ軟件自帶的SOPC Builder工具在Avalon總線上掛接需要的IP內核及自定制的邏輯外設模塊來完成整個嵌入式系統的開發。表1為SOPC Builder中添加的所有IP。

表1 SOPC Builder中添加的IP
TLV320AIC23是 TI推出的一款高性能的立體聲音頻Codec芯片,支持MIC和LINE IN兩種輸入方式[6]。芯片的模數轉換(ADC)和數模轉換(DAC)部件高度集成在芯片內部,支持8~96 kHz采樣頻率,數據傳輸字長為 16 bit、20 bit、24 bit和 32 bit可選。
TLV320AIC23提供兩種控制接口用于對其內部的寄存器進行編程,一種為三線制接口(SPI),一種為兩線制接口(I2C)。當引腳MODE為低電平時,選擇I2C接口,而為高電平時,選擇SPI接口。此次設計時選擇I2C總線接口。引腳SDIN和 SCLK分別用于傳輸串行數據和串行時鐘。設計中TLV320AIC23是作為一個只寫的從設備,由I2C總線控制器作為主設備來對其進行讀寫訪問。芯片CS引腳接數字地決定了其設備地址為7’b0011010。I2C總線傳輸時序如圖2所示,在發送完7 bit設備地址及讀/寫位后,接著傳輸的16 bit按兩次傳輸,第一次傳輸的是7 bit目的寄存器地址加1 bit數據,第二次傳輸的是剩下的8 bit數據。由于SOPC Builder沒有提供 I2C外設內核,設計中需要自定制符合Avalon接口規范的I2C IP,并將其集成到系統中去。

圖2 I2C總線傳輸時序
此次設計中模塊aic23是一個基于Avalon總線的用戶自定制邏輯從設備外設,并通過Avalon交換結構和處理器進行通信。該模塊中主要包括外設的Avalon Slave端口定義、數字音頻接收、數字音頻發送這3個部分。aic23模塊結構圖如圖3所示。
外設的從端口定義了一組符合Avalon接口規范的信號類型(如片選、讀使能、寫使能、地址、數據等)用于描述從外設上基于地址的讀/寫接口,且一般與Avalon總線時鐘信號同步。在完成模塊的硬件描述語言 Verilog HDL設計及其驗證后,利用SOPC Builder中Creat New Component將其封裝為SOPC Builder元件,最后集成到系統中去。

圖3 aic23模塊結構
語音芯片TLV320AIC23支持4種數字音頻接口模式:右對齊模式、左對齊模式、I2S模式及DSP模式。此次設計中采用 DSP模式,其中LRCIN/LRCOUT分別為輸入輸出左右聲道控制信號,BCLK為時鐘信號,DIN/DOUT分別為輸入輸出串行數據信號。DSP模式傳輸時序如圖4所示[7]。在音頻采集時,DVD輸出的模擬音頻信號經過TLV320AIC23內部的A/D轉換器轉換為數字音頻信號送給音頻接收部分,音頻接收部分按照DSP模式的時序來接收并傳輸給輸入先進先出數據緩存器(FIFO)進行緩存。當輸入FIFO中的數據量達到預設值時,啟動DMA傳輸將緩存區的數據傳送至 SDRAM 中。在音頻回放時將 SDRAM中的音頻數據通過輸出FIFO送至音頻接收部分,按照DSP模式的時序來發送至TLV320AIC23內部的D/A轉換器轉換為模擬音頻信號,最后通過耳機播放。

圖4 DSP模式傳輸時序
項目的軟件設計工作主要在 Nios Ⅱ集成環境下完成,Nios Ⅱ集成開發環境(IDE)是Nios Ⅱ系列嵌入式處理器的基本開發工具。用戶可以直接使用C/C++語言以及IDE集成環境提供的硬件抽象層(HAL)函數來完成軟件程序的編寫[8]。設計中主要完成SOPC中兩個自定制模塊i2c、aic23寄存器頭文件、驅動程序及頂層應用程序的編寫。以下按照系統工作流程的順序列出程序的主要部分:
1)對I2C、DMA模塊初始化,注冊音頻中斷處理函數。

2)在IDE控制臺選擇進入音頻測試系統,首先測試TLV320AIC23的模擬旁路功能。

3)測試系統的中斷模式實時采集與回放功能。

4)測試系統的錄音與回放功能。

在實驗室條件下對系統進行測試,并最終成功利用耳機對音頻進行了回放。在采集過程中使用Altera SignalTap Ⅱ嵌入式邏輯分析儀對FPGA信號及狀態進行捕獲檢測,圖5為SignalTap Ⅱ檢測波形。

圖5 SignalTap Ⅱ檢測波形
此次設計采用SOPC技術,通過在Altera公司的Cyclone Ⅱ FPGA 上配置Nios Ⅱ軟核處理器及相關自定制邏輯外設模塊來搭建硬件平臺,并利用軟件集成開發環境Nios Ⅱ IDE進行軟件設計來控制音頻采集與回放的流程,實現了數字音頻的高速采集、存儲及回放等功能。由于采用SOPC技術,該系統具有設計靈活、采集速度快和擴展升級性好等優點。
[1]劉帥,王以剛.VoIP的語音動態加密方法研究[J].信息安全與通信保密,2009(02):80-81.
[2]龐雄昌,王喆.基于GDTW + SVM的語音識別[J].信息安全與通信保密,2007(06):90-92.
[3]袁曄,韓立金,景曉軍.基于音頻編解碼器TLV320AIC23與 FPGA/CPLD的數字化語音處理系統[J].電子技術應用,2007(10):37-40.
[4]周立功.SOPC嵌入式系統基礎教程[M].北京:北京航空航天大學出版社,2006.
[5]王曉迪,張景秀.SOPC系統設計與實踐[M].北京:北京航空航天大學出版社,2008.
[6]崔麗珍,馬勇,王慧琴.基于DM 642語音處理系統研究與實現[J].通信技術,2010,43(11):67-68.
[7]李杰,陳希明,程強,等.基于SOPC的數字音頻系統設計[J].天津理工大學學報,2009,25(04):63-66.
[8]林青松,李立凱,楊寧.基于Nios Ⅱ的紅外圖像預處理系統[J].通信技術,2009,42(09):171-173.