楊 進
(1.南京鐵道職業技術學院 通號學院,南京210035;2.江蘇省軌道交通控制工程中心)
?
USB接口單片機的VoIP終端設計
楊 進1,2
(1.南京鐵道職業技術學院 通號學院,南京210035;2.江蘇省軌道交通控制工程中心)
介紹了一種以單片機SONIX2202、D類功放AX2012和語音芯片NY3P010AS8為核心設計的網絡電話機,該裝置通過USB接口連接到計算機上,可撥打國際國內長途電話及手機,系統還帶有語音撥號等功能。本文對該裝置的工作原理、硬件配置、軟件設計及功能進行了詳細論述,經樣機實驗證明,其各項功能均可很好地實現。
SONIX2202;AX2012;網絡電話
自1999年網絡電話試驗網開通以來,隨著軟交換技術的發展,網絡電話的通話質量有了明顯改善[1]。由于網絡電話采用數據壓縮與分組交換方式傳遞語音信息,占用帶寬僅有傳統電話的1/5,因此有非常明顯的價格優勢,越來越多的用戶在使用IP電話[2-4]。參考文獻3對Voce Over Internen Protocol 電話終端進行了研究與探討,參考文獻[4]~[7]對SIP協議的VoIP系統進行詳細論述。但普遍存在的問題是這些系統硬件設計都比較復雜。本文所設計的VoIP終端電路結構簡單、價格低廉、性能穩定可靠。下面主要從硬件和軟件方面闡述該終端的設計及實現過程。
1.1 硬件系統總體結構
本系統由USB矩陣鍵盤、單片機、語音電路、D類功放音頻接口電路4個部分組成。單片機完成矩陣鍵盤按鍵識別,并負責通過單片機自帶的USB接口發送數字代碼給PC機上的USB主機;語音電路完成按鍵語音播報功能;音頻接口電路主要是用D類功放電路對音頻線語音信號進行放大,完成掛機時語音外放功能,并對摘機和掛機兩種狀態的語音進行分流。系統框圖如圖1所示。

圖1 無線通信單元系統框圖
整個系統由USB接口提供5 V電源。
1.2 USB矩陣鍵盤電路設計
矩陣鍵盤采用非編碼式行列鍵盤,電路原理圖如圖2所示。電路結構簡單,在按鍵去抖動方面,未采用專用鍵盤芯片或門電路作硬件處理,也沒有采用延時查詢方式去抖動,而是采用實時操作系統的任務調度設計方法,用定時掃描和計數去抖的鍵盤處理方法。按鍵有數字0~9、回車鍵、開始撥號鍵、刪除鍵。
經過軟件處理好的按鍵代碼通過USB接口發送給計算機USB主機。SONIX2202是一款帶USB1.1內核的高性能廉價、低功耗單片機。USB高速方式的傳輸速率為12 Mbps,低速方式的傳輸速率為1.5 Mbps,完全可以滿足發送鍵盤碼的要求。

圖2 矩陣鍵盤電路原理圖

圖4 D類功放音頻接口電路原理圖
1.3 語音電路設計
系統核心芯片選用臺灣Nyquest公司單晶片CMOS語音合成芯片NY3P010AS8,可通過專用工具將數字0~9、回車鍵、開始撥號鍵、刪除鍵以及其他需要錄制的中文語音依次燒寫到該OPT芯片中,然后通過單片機編程,讀取各個地址的聲音文件。外圍電路僅需一個電容和一個喇叭即可工作。電路原理圖如圖3所示。

圖3 語音單元電路原理圖
BUSY引腳在芯片工作時(播放聲音),輸出低電平,停止工作或者待機時保持高電平;DATA引腳是接收控制脈沖的腳位,收到幾個脈沖,就播第幾個地址的語音內容;RESET引腳在任何時候,只要收到一個脈沖,就可以使芯片的播放指針歸零,同時停止芯片工作,進入待機狀態。
1.4 D類功放音頻接口電路設計
為了實現掛機時語音的外放功能,本設計采用D類功放芯片AX2012作為音頻的放大芯片,并用一個叉簧開關轉換摘機和各個掛機的語音分流。電路原理圖如圖4所示。AX2012是一款國產低功耗立體聲無濾波器類D類音頻放大器,有QFN20和SOP16兩種封裝形式。該芯片的工作僅需很少的外部元件,可以選擇的增益為6、12、18、24dB,可利用G0和G1進行增益選擇,同時該芯片具有較高的抑制噪聲的性能。
2.1 新型非編碼式矩陣鍵盤軟件設計
傳統的非編碼式鍵盤軟件系統設計中,由于軟件延遲去抖法存在兩大缺點:程序浪費大量時間而不能執行其他任務,系統的實時性不好;在噪聲影響下,很可能剛好兩次檢測都為抖動信號,造成鍵碼誤判。因此本設計采用新的算法[8],整個軟件系統主要分為按鍵掃描子程序、去抖動子程序和計算鍵碼值三個部分。
按鍵掃描子程序負責將外部按鍵信息讀入到內部緩沖器中。下面以0~9數字鍵為例,在RAM中創建一個按鍵信息緩沖區,將每個鍵的狀態讀入緩沖器中,如表1所列。

表1 鍵碼緩沖區
去抖動子程序設計為逐行掃描,且每調用一次子程序只掃描一行,其流程圖如圖5所示。

圖5 按鍵掃描子程序流程圖
新的消抖程序設計思想是:當第一次檢測到有按鍵按下時,程序首先設有鍵按下的標志位,并打開計時器開始計時,然后轉去執行其他任務。之后,每運行到鍵盤操作,程序都會檢測對應鍵的狀態,當計時時間到時,鍵盤消抖處理程序已經執行了n次,進行了n次按鍵狀態的檢測。只有當n次檢測鍵的狀態都沒有發生變化時,消抖處理結束,確認本次是一次有效的按鍵,只要有一次檢測到對應的鍵的狀態發生變化,就認為此鍵操作無效。
計算鍵碼值程序部分是將鍵盤上對應位置按鍵代碼轉換為人為定義的數據或者符號。
2.2 語音軟件設計
語音程序部分是通過語音的方式播報出所按下的按鍵數字或者符號。
該語音芯片的控制方式是采用模擬串行控制方式,如需要播放第幾個地址的內容就發送幾個脈沖。脈沖時間大于0.2 ms即可,一般可采用1 ms左右。部分源代碼如下:
Void yuyin(x){
//播放地址x段的語音
RST=1; //發送給RST一個2 ms脈沖
Delay_ms(2);
RST=0;
Delay_ms(2);
While(x>0){
DATA=1; //發送一個1ms選擇脈沖
Delay_ms(1);
DATA=0;
Delay_ms(1);
x--; //沒有發送完,則繼續發脈沖
}
}

[1] 王剛.基于中國互聯網的P2P-VoIP系統網絡域若干關鍵技術研究[D].北京郵電大學,2012:3-10.
[2] 魏德哲,李清寶等.基于VoIP處理器與USB接口的IP電話設計[J].微計算機信息,2005,21(9):83-84.
[3] 李迎新,林滸等. USB VoIP終端的設計與實現[J]. 小型微型計算機系統,2006,27(3):542-546.
[4] 張振華.基于SIP協議的VoIP網絡電話終端的研究與實現,北京交通大學,2009,6:1-8.
[5] 胡亨卓.基于SIP的IP電話系統的設計與實現[D].華中科技大學.2009.11:30-45.
[6] 徐韜.基于Android終端的小型VoIP系統設計與實現[D]. 單片機與嵌入式系統應用,2011.12:54-55.
[7] 徐志洋.基于SIP協議的嵌入式VoIP系統的設計與實現[D].合肥工業大學,2012,20:14-22.
[8] 徐彩霞.新型非編碼式鍵盤掃描方法研究[J].蘇州:蘇州市職業大學學報,2010.21(1):26-28.
楊進(碩士),從事鐵道信號、遠程信息控制方向的教學與研究工作。
(責任編輯:楊迪娜 收修改稿日期:2013-07-25)

參考文獻
[1] 張起貴,張勝,張剛,等.最新DSP技術——“達芬奇”系統、框架和組件[M].北京:國防工業出版社,2009.
[2] Texas Instruments Incorporated.TMS320DM6446 Digital Media System-on-Chip, SPRS283E,2007.
[3] 鄭靈翔.嵌入式系統設計與應用開發[M].北京:北京航空航天大學出版社,2006.
[4] 潘巨龍,黃寧.ARM9嵌入式Linux系統構建與應用[M].北京:北京航空航天大學出版社,2006.
[5] 吳才章.基于ARM的圖像采集與顯示系統設計[J].自動化技術與應用,2010,29(3):118-122.
[6] 郭劍,趙建.嵌入式Linux的圖像采集與顯示[J].現代電子技術,2006(7):129-131.
[7] 趙勇,袁譽樂,丁銳.DAVINCI技術原理與應用指南[M].南京:東南大學出版社,2008.
祝夏雨(碩士研究生),主要研究方向為嵌入式系統開發、攝像機標定。
(責任編輯:高珍 收修改稿日期:2013-08-12)
VoIP Terminal Based on USB Interface Microcontroller
Yang Jin1,2
(1.Department of Signal & Communication, Nanjing Institute of Railway Technology, Nanjing 210035, China; 2. Railway Control Engineering Center of Jiangsu Province)
The VoIP phone based on microcontroller SONIX2202, class-D audio power amplifier AX2012 and voice chip NY3P065 is introduced. The VoIP phone can be connected with computer by USB connector,it can used to call overseas, interstate and mobile,and it also has the function of voice dialing. The working principle, hardware configuration, software design and functions are introduced in details. The circuit of this system works successfully through the test.
SONIX2202; AX2012; VoIP
TP368.1
A