自動(dòng)語(yǔ)音記錄系統(AVRS)的SOPC設計與實(shí)現
摘 要:本文基于A(yíng)ltera公司的高性能Stratix器件,利用SOPC Builder、DSP Builder、Matlab和Simulink等軟件設計實(shí)現了一種新型的自動(dòng)語(yǔ)音記錄系統(AVRS),實(shí)現了對多路電話(huà)的通話(huà)進(jìn)行同期監控錄音,可廣泛應用于需要經(jīng)常性語(yǔ)音記錄的部門(mén)。
關(guān)鍵詞:自動(dòng)語(yǔ)音記錄系統;SOPC;Nios;Stratix
1 引言
目前各行業(yè)對電話(huà)進(jìn)行通話(huà)錄音變得越來(lái)越普遍,如政府機構出于國家安全的原因需要在線(xiàn)錄音監控;安全部門(mén)對一些重點(diǎn)監控對象的往來(lái)通信需要錄音和實(shí)時(shí)監聽(tīng);責任重大的政府部門(mén)及重要生產(chǎn)部門(mén)對有些重要指令需錄音;金融銀行或證券機構及與大宗金錢(qián)有關(guān)的交易需要錄音;而一些商務(wù)、服務(wù)領(lǐng)域則把錄音資料作為語(yǔ)音記錄和提高服務(wù)質(zhì)量的一種手段。目前,各行業(yè)使用的電話(huà)語(yǔ)音記錄設備主要包括磁帶式電話(huà)語(yǔ)音記錄設備、基于PC機的電話(huà)語(yǔ)音記錄設備和基于FLASH芯片的電話(huà)語(yǔ)音記錄設備。這些電話(huà)語(yǔ)音記錄設備由于體積過(guò)大或記錄時(shí)間較短等缺點(diǎn)在實(shí)際應用時(shí)滿(mǎn)足不了某些用戶(hù)的特殊需求,因此亟需一種超大存儲容量、性能可靠和體積小巧的語(yǔ)音記錄設備。
針對這種現狀,我們研制了一種新型的自動(dòng)語(yǔ)音記錄系統(AVRS),它可對多路電話(huà)的通話(huà)進(jìn)行同期監控錄音,將通話(huà)內容轉換為數字信息,以語(yǔ)音文件形式存儲于硬盤(pán)上,并可通過(guò)電話(huà)檢索方式進(jìn)行查詢(xún),查詢(xún)到的語(yǔ)音文件可通過(guò)電話(huà)直接播出。本系統采用FPGA及大容量的筆記本硬盤(pán),集成度高、存儲信息大,信息可長(cháng)期保存于硬盤(pán)中,文檔管理方便、保密性強。
2 系統結構和功能
自動(dòng)語(yǔ)音記錄系統(AVRS)的應用結構圖如圖1所示,它通常由PSTN、交換機、自動(dòng)語(yǔ)音記錄系統、計算機和電話(huà)機構成。本文所設計的自動(dòng)語(yǔ)音記錄系統(AVRS)具有如下功能:
(1)提供了高密度的解決方案,以分機并線(xiàn)方式可進(jìn)行多達4路到64路的通話(huà)錄音,支持ADPCM、G.711、G.729壓縮格式,可兼容世界主流交換機。
(2)可以提供多通道通話(huà)全程實(shí)時(shí)錄音;提供多種錄音啟動(dòng)方式,如摘機控制、連接通話(huà)控制或聲音控制等;操作人員可在任何時(shí)間啟動(dòng)監聽(tīng)功能;實(shí)時(shí)監聽(tīng)對通話(huà)雙方及通話(huà)質(zhì)量沒(méi)有任何影響。
(3)對于呼叫信息的記錄可以實(shí)現在錄制通話(huà)語(yǔ)音文件的同時(shí)同步記錄呼叫信息,提供完整的呼叫信息記錄,包括主叫號碼、被叫號碼、呼叫方向、通話(huà)時(shí)間和通話(huà)時(shí)長(cháng)等。
(4)可以實(shí)現遠程監控管理的功能,通過(guò)預留的電話(huà)遠程撥入,在語(yǔ)音引導下可實(shí)時(shí)監視所有通道的運行狀態(tài);可以按多種查詢(xún)條件(按通道、日期時(shí)間、主叫號碼、被叫號碼等)查詢(xún)或刪除錄音記錄;可以實(shí)現80,000多個(gè)通道小時(shí)的在線(xiàn)存儲量,錄音記錄除可存儲在自動(dòng)語(yǔ)音記錄系統(AVRS)中的硬盤(pán)上,還可通過(guò)設備上的USB口傳輸到計算機中。
3 硬件設計
自動(dòng)語(yǔ)音記錄系統由Stratix EP1S125、Nios軟核處理器、SDRAM、IDE接口筆記本硬盤(pán)、PCM編解碼電路、配置器件MAX7128S、LCD顯示模塊、鍵盤(pán)、時(shí)鐘電路、USB接口電路、電話(huà)線(xiàn)接口電路和電源等組成,電路原理框圖如圖2所示。
3.1 Stratix FPGA
現代大容量、高速度的FPGA一般都內嵌有可配置的高速RAM、PLL、LVDS以及硬件乘法累加器等DSP模塊,用FPGA來(lái)實(shí)現數字信號處理可以很好地解決并行性和速度問(wèn)題,而且其靈活的可配置特性,使得FPGA構成的DSP系統非常易于修改、易于測試及硬件升級。
Altera公司于2002年推出了新一代Stratix FPGA,它采用0.13微米和銅工藝制造,1.5V核心電壓,Stratix器件的DSP模塊提供了高于DSP處理器的數據處理能力,并且更為靈活和經(jīng)濟。每一Stratix DSP模塊可提供多達8個(gè)運行在250MHz的并行乘法器,數據吞吐能力高達2GMACS。最大的Stratix器件EP1S125包括28個(gè)DSP模塊,可完成高達224個(gè)并行乘法操作,并提供56GMACS的總線(xiàn)數據吞吐能力,而傳統的DSP處理器最多僅可同時(shí)進(jìn)行8個(gè)并行乘法操作,數據吞吐量也只有8.8GMACS。除了DSP模塊中的專(zhuān)用乘法器以外,還可利用邏輯單元(LE)實(shí)現乘法器和DSP功能。例如,可在Stratix器件中利用大約9600個(gè)邏輯單元實(shí)現一個(gè)256階FIR濾波器。Stratix系列的EP1S120包括大約114,140個(gè)邏輯單元,可以容納11個(gè)這樣的濾波器。每一濾波器可運行在200MHz,這意味著(zhù)通過(guò)利用LE可提供563GMACS的器件總吞吐能力。結合DSP模塊提供的56GMACS數據吞吐能力,Stratix器件可提供高達620GMACS的數據總吞吐能力,因此Stratix器件適用于大數據量數字信號處理[1]。
本系統的設計中采用了Stratix EP1S125,利用它可完成對多通道通話(huà)全程實(shí)時(shí)監測、錄音和存儲等功能。
3.2 Nios軟核處理器
Nios軟核處理器是一種流水線(xiàn)技術(shù)、單指令流的32位RISC內嵌處理器,其性能超過(guò)200 DMIPS。它針對Altera的可編程邏輯器件和片上可編程系統的設計思想做了相應優(yōu)化。作為一種可配置的通用RISC處理器,它可以與用戶(hù)自定義邏輯結合構成SOC系統,并下載到Altera的可編程器件中去。32位Nios軟核處理器結合外部閃存以及大容量存儲器,可構成一個(gè)功能強大的32位嵌入式處理器系統,其大部分指令可以在一個(gè)時(shí)鐘周期內完成。Nios軟核處理器家族包括32位和16位兩種版本的體系結構。
3.3 PCM編解碼電路
本系統設計中的PCM編解碼電路采用了IDT821064編解碼芯片,它提供了4個(gè)獨立模擬音頻通道,適合用于企業(yè)和運營(yíng)商級的網(wǎng)絡(luò )、無(wú)線(xiàn)網(wǎng)絡(luò )、接入網(wǎng)絡(luò )市場(chǎng)中的通信設備,具備完善的可編程性而無(wú)需外部組件,設計中根據所需要錄音的通道數可以通過(guò)增加相應的IDT821064即可滿(mǎn)足要求。IDT821064可進(jìn)行阻抗匹配、音調生成、混合線(xiàn)圈平衡響應修正和增益設定,可依據系統結構選擇適當的微處理器接口(MPI)或通用通信接口(GCI),它采用64腳的PQFP封裝[2]。
設計中Nios軟核需要針對每個(gè)IDT821064提供GCI接口控制信號,考慮到控制指令一般只發(fā)送一兩次,沒(méi)有必要占用過(guò)多的資源,并且為了方便調試,選用了可以獨立操作的PIO,通過(guò)軟件對它們置位和復位來(lái)發(fā)送控制命令。
圖3是GCI接口時(shí)序圖,DCL是數據時(shí)鐘信號,FSC是幀同步信號,DD/DU是數據輸出/輸入信號。根據此時(shí)序圖,我們可以編寫(xiě)相關(guān)HDL代碼實(shí)現PCM串行數據的接收和發(fā)送。
3.4 IDE硬盤(pán)的控制
IDE接口的硬盤(pán)驅動(dòng)器提供了兩種數據傳輸模式:PIO模式和DMA模式。由于PIO模式控制相對容易,提供了一種編程控制輸入輸出的快速傳輸方法。該模式采用了高速的數據塊I/O,以扇區為單位,用中斷請求方式與CPU進(jìn)行批量數據交換。在扇區讀寫(xiě)操作時(shí),一次按16位長(cháng)度通過(guò)內部的高速PIO數據寄存器實(shí)現傳輸。通常情況下,數據傳輸以扇區為單位,每傳輸一扇區數據產(chǎn)生一個(gè)中斷。
如果CPU要對硬盤(pán)進(jìn)行寫(xiě)數據操作,首先CPU把必要的參數寫(xiě)入對應的地址寄存器,等待DRDY有效,然后將操作碼寫(xiě)入命令寄存器,同時(shí)驅動(dòng)器設置狀態(tài)寄存器的DRQ位,表示準備好接收數據,CPU通過(guò)數據寄存器將數據寫(xiě)入扇區緩沖區,當扇區緩沖區填滿(mǎn)后,驅動(dòng)器清除DRQ位,并置位BSY。驅動(dòng)器將扇區緩沖區中的數據寫(xiě)入磁盤(pán),當寫(xiě)盤(pán)結束,清除BSY位,發(fā)中斷請求信號INTRQ,CPU接收到中斷信號后,讀驅動(dòng)器狀態(tài)寄存器,同時(shí)將中斷信號INTRQ清除。
如果CPU要對硬盤(pán)進(jìn)行讀數據操作,首先將參數寫(xiě)入地址寄存器和特性寄存器(如果需要),然后把命令碼寫(xiě)入命令寄存器,命令開(kāi)始執行。這時(shí)驅動(dòng)器置狀態(tài)寄存器中的BSY=1,同時(shí)將硬盤(pán)上指定扇區內的數據送入扇區緩沖區。當扇區緩沖區準備好數據后,置位DRQ,清BSY,發(fā)中斷請求信號INTRQ。CPU檢測到中斷后,讀取狀態(tài)寄存器,測試ERR位,若等于1則轉入出錯處理,否則若DRQ位為1,CPU從扇區緩沖區中讀取數據,數據讀完后,驅動(dòng)器復位DRQ位,然后驅動(dòng)器重新設置BSY位[3]。
4 軟件設計
軟件設計包括配置生成SOPC系統、嵌入式操作系統的移植、語(yǔ)音壓縮算法的設計、應用級代碼編寫(xiě)及調試等部分。下面對其作簡(jiǎn)單介紹。
4.1 配置生成SOPC系統
SOPC是SoC技術(shù)和可編程邏輯技術(shù)結合的產(chǎn)物,是一種特殊的嵌入式系統。首先它是SoC,即可以由單個(gè)芯片完成整個(gè)系統的主要邏輯功能;其次,它還是可編程系統,具有靈活的設計方式,可裁減、可擴充、可升級,并具備一定的系統可編程功能。SOPC 設計技術(shù)涵蓋了嵌入式系統設計技術(shù)的全部?jì)热?,包括:以處理器和?shí)時(shí)多任務(wù)操作系統(RTOS)為中心的軟件設計技術(shù)、以PCB和信號分析為基礎的高速電路設計技術(shù)、軟硬件協(xié)同設計技術(shù)。
本文所設計的自動(dòng)語(yǔ)音記錄系統(AVRS)是建立在以Stratix器件EP1S125基礎上的SOPC,在QuartusII中我們利用SOPC Builder工具來(lái)配置生成片上系統。SOPC Builder是一個(gè)功能強大的基于圖形界面的片上系統的定義和定制工具,可以在短時(shí)間內完成用戶(hù)定制的SOPC設計。根據應用的需要,從SOPC Builder庫中選擇IP模塊、存儲器、外圍接口和處理器,并且配置生成一個(gè)高集成度的嵌入式系統。
在配置生成片上系統時(shí),SOPC Builder會(huì )自動(dòng)產(chǎn)生一些必需的仲裁邏輯來(lái)協(xié)調系統中各個(gè)部件的工作。我們首先將系統的工作頻率設為50MHz,根據系統的硬件要求可以得到如圖4所示的系統配置圖,利用SOPC Builder編譯生成包括C/C++語(yǔ)言頭文件、外圍接口驅動(dòng)的諸多文件,極大地方便了后續應用軟件的開(kāi)發(fā)。
4.2 μC/OS-II操作系統移植
μC/OS-II是一種源代碼公開(kāi)、結構小巧、具有可剝奪實(shí)時(shí)內核的實(shí)時(shí)操作系統。其內核提供任務(wù)調度與管理、時(shí)間管理、任務(wù)間同步與通信、內存管理和中斷服務(wù)等功能。μC/OS-II適合于小型控制系統,具有執行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴展性強等特點(diǎn),加之它穩定、可靠,現已被廣泛應用在航空、醫療器械、工業(yè)控制等領(lǐng)域[4]。
μC/OS-II設計時(shí)就充分考慮到在不同平臺上移值的需求,將同平臺相關(guān)的部分局限在一個(gè)很小范圍內,對于不同的平臺只需對下面一些函數和宏進(jìn)行重寫(xiě)。
OS_ENTER_CRITICAL和OS_ENTER_CRITICAL:這是兩個(gè)宏,用來(lái)進(jìn)行臨界段保護。在本設計中使用匯編代碼關(guān)中斷來(lái)實(shí)現。
OS_TASK_SW:這是一個(gè)用于進(jìn)行任務(wù)切換的宏。本設計中利用CPU的軟件中斷方式
實(shí)現,也就是說(shuō)調用此宏產(chǎn)生軟件中斷,然后由相應的中斷處理程序來(lái)具體實(shí)現任務(wù)上下文保護和任務(wù)切換。
OSIntCtxSw:實(shí)現中斷級任務(wù)切換,用純匯編實(shí)現。
OSCtxSw:實(shí)現用戶(hù)級上下文切換,用純匯編實(shí)現。
OSTickISR:為系統定時(shí)器中斷的處理函數,用純匯編實(shí)現。
OSTaskStkInit:用來(lái)創(chuàng )建任務(wù)時(shí),對任務(wù)堆棧進(jìn)行初始化。
4.3 語(yǔ)音壓縮算法的設計
語(yǔ)音壓縮算法的設計實(shí)現基于DSP Builder、Matlab和Simulink等工具。DSP Builder是Altera公司推出的一個(gè)面向DSP開(kāi)發(fā)的系統級工具。它是作為Matlab的一個(gè)Simulink工具箱出現的。Matlab是功能強大的數學(xué)分析工具,廣泛用于科學(xué)計算和工程計算,可以進(jìn)行復雜的數字信號處理系統的建模、參數估計、性能分析。Simulink是Matlab的一個(gè)組成部分,用于圖形化建模仿真。
我們在設計中首先利用Matlab強大的系統設計、分析能力和DSP Builder提供的模塊(或IP核)完成頂層系統設計及系統仿真測試,實(shí)現了ADPCM、G.729壓縮算法,并驗證了語(yǔ)音壓縮算法的正確性,然后通過(guò)DSP Builder中的Signal Compiler將Simulink模型文件自動(dòng)轉換成VHDL的RTL表述和工具命令語(yǔ)言(TCL)腳本,再進(jìn)行RTL級的功能仿真,并配合QuartusⅡ軟件進(jìn)行綜合、適配與時(shí)序仿真。
4.4 應用級代碼編寫(xiě)及調試
在QuartusⅡ中進(jìn)行VHDL代碼的編寫(xiě)以實(shí)現對系統各部分的控制,最后進(jìn)行RTL級的功能仿真,并進(jìn)行綜合、適配與時(shí)序仿真。在形成對指定FPGA進(jìn)行編程配置的SOF文件之前可以將設定好的嵌入式邏輯分析儀Signal TapⅡ一同適配并下載到FPGA芯片中去,然后通過(guò)Matlab的Simulink窗口可觀(guān)測到通過(guò)JTAG口來(lái)自于Signal TapⅡ測得的芯片中DSP硬件模塊的實(shí)時(shí)工作波形,從而實(shí)現硬件仿真和調試。
5 結束語(yǔ)
本文所設計的自動(dòng)語(yǔ)音記錄系統(AVRS)最突出的特點(diǎn)是采用FPGA和SOPC技術(shù)進(jìn)行的設計相當快速。由于SOPC開(kāi)發(fā)環(huán)境的完備功能,可以把注意力集中在系統整體構架和功能上來(lái),而無(wú)需過(guò)多的考慮細節性的電路設計,同時(shí)還可以得到比較好的系統穩定性和可靠性。
自動(dòng)語(yǔ)音記錄系統(AVRS)已經(jīng)進(jìn)行了初步的仿真試驗,能夠達到非常好的實(shí)用效果,可滿(mǎn)足金融、保險、電力、
評論