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