摘 要: 為了提高辦公的效率和實現人民生活的智能化,研制了一種基于ARM-Linux的便攜式語音業務群呼系統。系統以S3C2440為處理器、TC35i為GSM模塊、UDA1341為語音芯片,ARM處理器通過AT指令控制GSM模塊將錄制好的語音業務進行群呼。測試結果表明,該系統具有錄入話音、設置呼叫號碼、自動撥號放音和統計未呼叫成功號碼等功能,系統操作簡單、界面友好、成本低廉。
關鍵詞: 語音業務;ARM;Linux;GSM模塊
0 引言
科技的發展和社會的進步影響和改變了人們的生產和生活方式。隨著生產的社會化程度日益加劇,出現了一大批規模巨大的企事業和生產企業,這就給這樣單位和公司發布開會通知帶來了困難:一些大公司和單位如果要召開緊急會議,就需要用短信群發或逐個撥打語音電話通知與會人員,而如果通過發送短信通知會議人員則會由于短信聲音小且振鈴時間短不易被人們發覺(而且缺少實時性);而通過語音撥號則由于需要逐個撥打而顯得極為繁重,特別是如果公司和企事業單位人數太多,這一問題就尤為突出[1]。因此,設計一個能錄入通話內容、在線添加和修改被叫人號碼、自動撥號及統計未撥通號碼的語音群呼系統非常必要。
根據實際需要,該系統需要滿足如下功能:
?。?)錄入、添加、修改、刪除用戶;
(2)錄音功能;
?。?)設定撥號次數;
?。?)按照設定的次數和錄入的用戶信息自動撥號并完成錄入語音的播放;
(5)顯示撥號狀態、統計撥號次數和返回未撥通的用戶名單。
1 系統組成及工作過程
該群呼系統由主控制器、人機接口、語音模塊、GSM模塊等構成,如圖1所示。
系統通過語音模塊錄制需要播放的語音存入存儲器中,然后在ARM處理器的控制下將觸摸屏手寫筆存入的用戶號碼通過GSM模塊撥通,撥通后將該語音通過GSM的語音接口播放出去,撥號的結果通過觸摸屏顯示出來。
在該系統中,人機接口采用TFT-LCD觸摸屏、ARM處理器采用三星的S3C2440處理器、語音芯片采用飛利浦公司的UDA1341、GSM模塊采用西門子公司的TC35i。
2 硬件設計
本系統的硬件設計比較復雜,這里只給出部分核心電路,包括ARM處理器與觸摸屏的連接、語音模塊與ARM處理器及GSM模塊的連接、GSM模塊與ARM處理器的連接。
2.1 ARM處理器與觸摸屏的連接
TFT-LCD的主要特點是為每個像素配置一個半導體開關器件,由于每個像素都可以通過點脈沖直接控制,因此每個節點都相對獨立,并可以進行連續控制[2]。
該LCD接口是一個41Pin 0.5 mm間距的白色座,其中包含了常見LCD所用的大部分控制信號(行場掃描、時鐘和使能等)和完整的RGB數據信號(RGB輸出為8:8:8,即最高可支持1 600萬色的LCD);37、38、39、40為四線觸摸屏接口,它們可以直接連接觸摸屏使用。
2.2 語音模塊與ARM處理器及GSM模塊的連接
圖2所示為語音模塊與ARM處理器及GSM模塊的連接的硬件框圖。
ARM處理器S3C2410的IIS總線信號與語音芯片UDAl34l的IIS信號直接相連[3]。L3接口的引腳L3MODE、L3CLOCK和L3DATA分別連到S3C2440的GPBl、GPB2和GPB3通用數據輸出引腳。UDAl34l對外提供兩組音頻信號輸入接口,每組包括左右2個聲道。由于IIS總線只處理音頻數據,而其他的信號(如編碼、控制等信號)單獨傳送[4]。為了使必需的引腳數最小并且保持連線簡單,IIS總線由3條信號線組成:時分復用的數據通道線、字段選擇線和時鐘信號線。本系統由系統主控制器提供時鐘信號,控制數字音頻數據在各個IC之間的流向。此時,發送器在外部時鐘信號的控制下產生數據,處于從模式。具體連接如圖3所示。
2.3 GSM模塊與ARM處理器的連接
ARM處理器S3C2440與GSM模塊TC35i是通過USB轉串口進行通信的。用USB Host接口與GSM模塊連接[5]。USB Host與普通PC的USB接口是一樣的,接口電路如圖4所示。
3 軟件設計
軟件設計包括Linux內核移植、QT-4.6移植、語音業務GSM拔號軟件設計和語音錄放軟件設計,本文只對該系統的GSM語音拔號軟件設計和語音錄放軟件設計這兩個核心部分進行介紹,至于Linux內核移植、QT-4.6移植這些部分與其他的嵌入式開發系統并無太大差別[6-7],這里不再贅述。
3.1 語音業務GSM拔號程序設計
ARM處理器通過串口發送AT指令來控制GSM模塊TC35i的工作。AT指令及該GSM模塊的使用及相關信息可以參考相關文獻資料。
首先需要進行串口的設置,串口通信的設置要符合TC35i通信的要求;然后就是對TC35i初始化,初始化的過程主要包括與TC35i建立連接、音頻模式的設置、取消回顯等;最后就是進行循環呼叫,在呼叫的同時,不斷讀取并且更新拔號的狀態,同時也統計呼叫的次數,每當呼叫一個號碼之后,進行一下號碼呼叫,直到所有的號碼呼叫完為止。撥號放音應用主程序及子程序如圖5、圖6所示。
3.2 語音錄放程序設計
?。?)錄音部分
本系統支持兩種錄音格式,一種是原始數據pcm格式,沒有經過任何壓縮的WAV音頻文件;另一種是經過lame壓縮的mp3格式。從聲卡讀取pcm數據,加上文件頭信息直接寫入WAV文件,如果要錄制成mp3格式,需要使用lame庫對pcm數據進行壓縮,然后寫入mp3文件。其設計流程圖如圖7所示。
?。?)放音部分
放音與錄音相反,放音時,如果為WAV文件格式,解析頭獲取采樣率、量化位數、聲道數,對聲卡進行初始化,然后跳過文件頭,直接讀取pcm數據寫入聲卡,就能播放WAV文件。對于MP3文件格式,需要使用libmad解碼成pcm數據即可。其設計流程圖如圖8所示。
4 測試結果
至此系統設計完成,圖9、圖10所示為對系統的撥號部分和語音的錄放部分分別進行的測試。
5 結論
本文介紹了一種基于ARM+Linux的便攜式語音業務群呼系統硬件與軟件設計,通過自行設計樣機的測試表明該系統具有能錄入話音、設置呼叫號碼、自動撥號放音和統計未呼叫成功號碼等功能,系統操作簡單、界面友好、成本低廉。隨著生產社會化的日益加劇和人民對生活智能化的要求日益提高,以該系統所代表的技術和理念的語音業務群呼智能系統必將廣泛應用于各領域之中。
參考文獻
[1] 劉誠.智能家居控制子系統的設計實現[D].北京:北京大學,2008.
[2] 潘玉龍.嵌入式家庭智能終端的集成與實現[D].北京:北京大學,2004.
[3] Samsung. S3C2410 datasheet[DB/OL]. (2010-05-30)[2013-02-15]. http://download.csdn.net/download/omycle/2408896.
[4] Philips.UDA1341 datasheet[DB/OL].(1998-12-18)[2013-02-15]. http://datasheet.eepw.com.cn/datasheet/search
[5] Siemens. TC35i user guide[DB/OL].(2009-09-10)[2013-02-15]. http://www.siemens.com.
[6] 田澤.ARM9嵌入式Linux開發試驗與實踐[M].北京:北京航空航天大學出版社,2006.
[7] 熊茂華.ARM9嵌入式系統設計與開發應用[R].北京:清華大學嵌入式設計研究院,2008:136-180.