摘要:本文對SPCE061A芯片的主要特點進行了描述,并運用SPCE061A相關原理提出了一個簡單基于SPCE061A的IP電話系統。
關鍵詞:SPCE061A;IP電話;系統設計
中圖分類號:TN912文獻標識碼:A文章編號:1009-3044(2008)20-30229-02
The IP Phone System Based on SPCE061A
BAI Zeng,GUO Cui-juan
(Tianjin Industry University, Information and Communication Engineering Institute, Tianjin 300160, China)
Abstract: The papers describe the main features of the chip SPCE061A, and propose a simple IP phone system based on the SPCE061A with the relevant principles of SPCE061A.
Key words: SPCE061A; IP phone; system design
1 引言
IP電話技術是一種以Intemet/Intranet等IP數據網絡為傳輸載體的語音傳送通信技術。最初它只是一種互聯網上的增值應用服務,形式也較為簡單。隨著互聯網的普及,其在商業運營中的應用價值逐漸被人們發現。本文試圖基于SPCE061A單片機設計IP電話系統。
2 SPCE061A的主要特性
SPCE061A是凌陽科技研發生產的性價比很高的一款十六位單片機,使用它可以非常方便的實現語音的錄放系統,該芯片擁有8路10位精度的ADC,其中一路為音頻轉換通道,并且內置有自動增益電路。SPCE061A芯片內部集成了ICE(在線實時仿真/除錯器)、FLASH(閃存)、SRAM(靜態內存)、通用I/O端口、定時器/計數器、中斷控制、CPU時鐘鎖相環(PLL)、ADC(模擬數字轉換器)、DAC(數字模擬轉換器)輸出、UART(通用異步串行輸入輸出接口)、SIO(串行輸入輸出接口)、低電壓監測/低電壓復位等模塊。這為實現語音錄入,建立IP PHONE系統提供了方便的硬件條件。兩路10精度的DAC,只需要外接功放(SPY0030)即可完成語音的播放。另外凌陽十六位單片機具有易學易用的效率較高的一套指令系統和集成開發環境。在此環境中,支持標準C語言,可以實現C語言與凌陽匯編語言的互相調用,并且提供了語音錄放的庫函數,只要了解庫函數的使用,就會很容易完成語音錄放,這些都為IP電話系統軟件開發提供了方便的條件。
SPCE061A芯片特性如下工作電壓:內核工作電壓VDD為3.0~3.6V(CPU),I/O口工作電壓VDDH為VDD~5.5V(I/O);CPU時鐘:0.32MHz~49.152MHz;內置2K字SRAM和32K閃存ROM;系統處于備用狀態下(時鐘處于停止狀態),耗電小于2μA@3.6V;具備觸鍵喚醒的功能;32位通用可編程輸入/輸出端口;2個16位可編程定時器/計數器(可自動預置初始計數值);7通道10位電壓模-數轉換器(ADC)和單通道聲音模-數轉換器;2個10位DAC(數-模轉換)輸出通道;14個中斷源可來自定時器A/B,時基,2個外部時鐘源輸入,鍵喚醒;具備串行設備接口;低電壓復位(LVR)功和低電壓監測(LVD)功能;內置在線仿真(ICE,In- Circuit Emulator)接口。SPCE061A的內部結構框圖如圖1所示。
3 系統基本原理
目前IP電話有4種工作模式:PC到PC的形式;電話到PC的形式;PC到電話的形式:電話到電話的形式。基于這4種使用模式的IP電話采用的技術主要有兩種:一種是ITU-I的H.323技術和IETF的SIP技術。目前,國內主要采用的是基于H.323技術的IP電話系統。
本系統的外擴存儲器采用凌陽公司生產的SPR4096芯片,SPR4096內置512k×8bit高性價比FLASH存儲器以及4k×8bitSRAM。SPR4096與SPCE061A之間的通訊采用SIO協議來實現的。語音處理采用一塊SPR4096芯片。它是一個高性能的4Mbit(512*8-bit)FLASH,分為256個扇區(Sector),每個扇區為2K-byte。SPR4096內置了一個4K*8-bit(328128A)的SRAM。本方案中的語音采樣數據就暫存于此。SPR4096按串行接口模式工作,其工作頻率可達5MHz。SPR4096與SPCE061A硬件連接圖如圖2所示。
設計目的是要實現PC到PC之間的語音通信。PC機作為H.323的終端的用戶界面。呼叫方進入用戶界面,得到網守的認證后向被叫方發起呼叫。被叫方連接確認呼叫,呼叫方用凌陽單片的MIC進行原音輸入,通過A/D轉換,和移植到單片機中的語音壓縮算法G.723的壓縮,把數據送入單片機外擴的USB模組。經USB總線上傳到PC機。PC機把數據包送到IP網絡,進行分組轉發。同理,被叫端收到IP網絡分組轉發來的數據包,經USB總線下載到單片機上,單片機調用解碼算法,A/D轉換后將語音樣點送入單片機內置的SPEAKER,按預定頻率(8KHz)播放。
圖3中的電話線接口是用來連接公用電信網電話線的功能單元,包括振鈴檢測、極性檢測等功能電路;聽筒即受話器和送話器的組合,用來實現將電聲轉換;模擬語音電路主要是實現將聽筒的信號放大、消側音、2/4線轉換等功能;MODEM模塊實際是一款內置的、功能完整的56k/33.6k調制解調器。圖3的核心l6位單片機SPCE061A。SPCE061A的主要實現的作用是:①控制模擬語音電路,實現完整的模擬電話功能,如DTMF撥號、控制模擬語音通話、來電顯示等。②接收鍵盤命令,控制LCD顯示屏顯示各種狀態信息。③傳送并核對約定的信號并根據核對結果決定是否上網通話。④控制MODEM,以預設的賬號和密碼登陸網絡并獲取本機訪問路徑信息。⑤登陸服務器并提交本機訪問路徑信息,查詢對方的訪問路徑信息并據此與對方建議網絡連接。⑥將聽筒送來的模擬語音信號轉換成數字信號,壓縮后通過網絡按網絡協議向對方傳送;將網絡上對方送來的數字信號解壓縮,轉換成模擬信號送到聽筒。⑦根據鍵盤命令完成各種設置,并提供語音提示。
4 軟件設計
本系統設計直接采用H.323體系結構中的網守OPENGK,它提供對H.323端點呼叫的管理功能。在邏輯上,網守是一個獨立于端點的功能單元,然而在物理實現時,它可以裝備在終端、MCU或者網關中。在本系統中它獨立的裝于服務器上。OPENGK程序使用的是Windows界面,比較友好。可以通過HTTP的Web方式查看和配置網守的屬性,無疑此種方式是相當有利于遠程管理的。程序流程如下:
(1)應用程序啟動:應用程序啟動,進行其它應用程序初始化設置。
(2)Start:應用程序完畢之后,調用OpenGk::OnStart()函數,在此函數中創建了終端類的實例。
(3)創建終端實例:在此應用程序中,繼承自H.323EndPoint的MyEndPoint類中定義了一個從H.323gatekeeperServer類中繼承來的MyGatekeeperServer類的實例。通過此種方式實現網守。在創建守終端實例后,終端會進行初始化操作,并在終端初始化函數中調用StartListener函數創建RAS等偵聽線程。等待到來的RAS消息。
(4)等待RAS消息:網守在完成創建偵聽線程后,就開始等待到來的RAS消息,如端點登記消息,網守搜尋消息,呼叫消息等,然后根據接受到的消息執行不同的操作。
本系統使用的語音壓縮格式有兩個:通話功能采用的是16kbit/s的SACM—A2000格式,完全可以滿足窄帶通信的要求,語音提示則采用壓縮比最高的2.4kbit/s的SACM_S240格式,可以最大限度地節省處理器空間。
5 結束語
本設計在MSVC++6.0和凌陽的IDE環境實現。但這只是一個簡單的IP電話系統。若想建立更完善的IP電話機,需要更高的硬件環境。實踐證明,SPCE061A單片機具有大容量的儲存器和強大的運算處理能力,系統只用單顆芯片即完成了語音處理和控制功能。同專用的語音識別芯片相比,SPCE061A具有結構簡單、成本低、易于實現的優點。同時,凌陽科技公司提供SPCEO6lA的C函數庫和語音處理函數庫供用戶調用,縮短了開發周期.SPCE061A具有l6位單片機的所有特征,又有語音處理技術方面的獨特優勢,利用其語音處理優勢可開發出IP電話系統、語音應答系統、語音合成系統等,具有廣闊的市場前景。
參考文獻:
[1] 管曉春,楊勇.基于SPCE061A的數碼語音錄音及播放系統的設計[J].電腦應用技術,2007(04).
[2] 管曉春.基于uC/OS-II和SPCE061A的應用系統設計[J].電腦應用技術,2007(04).
[3] 南光群.SPCE061A單片機與SPLC501液晶顯示模塊的連接[J].電工技術,2007(07).
[4] 張丹,賀西平,張峰,等.凌陽SPCE061A單片機超聲測距系統設計[J].陜西師范大學學報(自然科學版),2007(04).
[5] 高紅亮,劉金華.基于SPCE061A的語音識別技術及其應用研究[J].可編程控制器與工廠自動化,2007(09).
[6] 文環明,張艷.基于SPCE061A的電子語音播報稱重系統[J].電腦開發與應用,2007(12).
[7] 韓東波,曾兵,葛良全,等.基于SPCE061A的語音控制智能小車設計[J].計算機測量與控制,2007(09).
[8] 陳秀華,趙悅,唐毅謙.基于SPCE061A單片機的語音控制機器人的設計[J].中國水運(學術版),2007(08).
[9] 高紅亮,劉金華.基于SPCE061A的語音識別技術應用[J].電子技術,2007(Z1).
[10] 袁霞,杜潛,姚麗娜,等.基于凌陽單片機SPCE061A的語音識別控制系統的設計[J].河南機電高等專科學校學報,2007(02).
[11] 周文彬,周洵.基于SPCE061A的語音增強[J].電子質量,2007(04).
[12] 王選民,黃利君.應用SPCE061A單片機實現高精度測頻[J].微計算機信息,2006(32).
[13] 段世政,聶惠娟.基于SPCE061A的語音識別系統設計[J].新鄉師范高等專科學校學報,2006(05).
[14] 呂英英,邵建龍,張銳.基于SPCE061A實現的語音數控電源[J].儀器儀表用戶,2006(05).
[15] 姚幽然,黎亞元,李文波,等.SPCE061A在遠程控制系統中的應用[J].機電工程技術,2006(06).