<form id="tprxv"></form>

                  <address id="tprxv"></address>

                      <address id="tprxv"></address>

                        <form id="tprxv"><form id="tprxv"><meter id="tprxv"></meter></form></form>

                        Home > 電話會議新聞動態 > 技術文檔 > 基K60的IP電話終端的設計與實現

                        基K60的IP電話終端的設計與實現

                        2014/04/24 meeteasy

                        1、引 言

                        IP電話是一種基于互聯網協議的語音傳輸技術,是VoIP(Voice over Intemet Protoco1)電話的簡稱。當前的同類產品,多采用1片MCU外加1片DSP的設計方案;也有的采用單片MCU的設計方案,如i.mx27、 i.mx51等多媒體處理器芯片 。對于外加的DSP芯片,用軟件完成語音的編解碼,而系統其他功能由MCU完成,這樣整個系統的穩定性既取決于MCU,也取決于DSP;而單片MCU中,采用的是ARM Cortex A系列的MCU,在工業控制領域中易受各種干擾的影響。故本文采用具有較好抗干擾能力的ARM Cortex M系列的 MCU,提出以ARM Cortex-M4 Kinetis微控制器K60作為主控芯片的單MCU設計方案,并進行了實際的測試。

                        2、系統的總體設計方案

                        IP電話終端分為兩類,即基于Pc機的終端和基于嵌入式平臺的終端,其中基于嵌入式平臺的終端是目前的發展方向。嵌入式IP電話終端,需要完成語音的采集、編碼、網絡傳輸、解碼和播放等功能,主要包括三 個部分:

                        (1)處理部分,包括微控制器和語音編解碼器。
                        (2)網絡部分,借助以太網進行音頻數據的傳輸。
                        (3)外設部分,包括麥克風、耳機和鍵盤。

                        2.1 硬件設計方案

                        Kinetis系列是飛思卡爾(Freescale)公司于2010年下半年推出的業內首款基于ARM Cortex.M4內核的微 控制器,K60系列是Kinetis系列的第一階段產品之一。K60具有豐富的外設接口,內部集成了用于以太幀 收發的以太網接口、用于語音采集和播放的I S(Inter.Integrated Sound)接13,故只需外擴一塊語音編解碼芯片 即可實現IP電話的功能。

                        基于K60的IP電話終端的硬件結構框圖如圖1所示,主要包括以下幾個部分:

                        (1)12S接口外接語音編解碼芯片,用于語音的采集和播放。
                        (2)DDR控制器外接DDR SDRAM存儲器芯片,用于存放運行的程序和數據。
                        (3)NAND Flash外接NAND Flash存儲器芯片,用于存放Bootloader、內核映像和根文件系統。
                        (4)lfO接口連接鍵盤,用于輸入各種呼叫和控制命令。
                        (5)以太網控制器外接以太網物理層芯片,用于語音數據的網絡傳輸。
                        (6)UART接口通過RS232收發器連接PC宿主機,用于系統測試。
                        (7)時鐘和電源接口外接外部晶振和電源,用于支撐芯片工作。

                        基于K60的IP電話終端的硬件結構框圖

                        2.2 軟件設計方案

                        由于IP電話終端具有實時處理和多任務并發執行的特點,故提出了基于Linux操作系統的軟件設計方案,其開發模式選用Windows操作系統+Linux虛擬機+Linux目標板的組合方式,即首先在Windows中 安裝Linux虛擬機,并在虛擬機上安裝交叉編譯器和建立NFS文件系統服務器;其次在Linux虛擬機上運行交叉編譯器生成可執行代碼,并將可執行代碼存到NFS文件系統服務器上;最后在Linux目標板上將虛擬機的NFS文件系統掛載,這樣在板上直接運行編譯過的可執行文件即可。

                        基于K60的IP電話終端的硬件構件與軟件構件層次模型如圖2所示,自頂向下分為應用層、中間件和底層三個層次,這種分層設計方法使軟件具有很強的可移植性和擴展性,可被快速地應用于同類產品的開發和 基于本系統的二次開發等。底層構件層功能包括移植Bootloader和Linux內核、文件系統,封裝MCU內置功 能模塊的驅動程序為功能構件,其中Bootloader是直接由移植處理器廠商提供的,Linux內核選用2.6.19.2版 本。文件系統使用JFFS2類型。中間件構件層包括語音采集和播放構件、網絡實時傳輸構件,為應用層構件提 供了訪問底層硬件的接口,降低了應用層軟件的實現難度。應用層構件層通過調用中間件構件提供的函數接口。利用Linux多線程機制和信號量機制實現了IP電話終端功能。

                        基于K6o的IP電話終端的硬件構件與軟件構件層次模型

                        3、系統的硬件設計

                        基于K60的IP電話終端的硬件設計包括K60硬件最小系統和相關的外圍模塊電路的設計。外圍模塊 電路主要包括語音采集和播放電路、鍵盤接口電路、以太網接口電路、存儲器擴展電路和UART接口電路。

                        3.1 K60硬件最小系統

                        本設計選用的是K60系列的芯片MK60N512VMD100,溫度范圍為一4O~105℃,主頻為100MHz,Flash容量為512KB,程序空間為512KB,SRAM為128KB,為144引腳MAPBGA封裝。每個引腳都有多個復用功能, 但在某一時刻最多只能使用其中的一個功能。

                        K60硬件最小系統包括電源電路、復位電路、晶振電路及與寫入器相連的JTAG接口電路。所有的電源引腳必須外接適應的濾波電容來抑制高頻噪聲。復位引腳是一個專用的雙向引腳,內部含上拉電阻。K60內 部集成了多用途時鐘產生器(Multipurpose Clock Generator,MCG)模塊,用于將晶振輸入時鐘倍頻至系統所需時鐘。K60共需要兩個晶振:一個是芯片的主晶振(選用50MI-Iz),用于產生芯片和外主設的工作時鐘;另一個是實時定時器(Real Time Clock,RTC)的晶振。本設計的主晶振選用50MHz的有源晶振,RTC模塊選用 32.768kHz的無源晶振。JTAG接口電路中,JTAG的四個對外引腳TMS、TCK、TDO、TD1分別接K60的PTA0 ~PTA3引腳,可選引腳RST接復位引腳。

                        3.2 語音采集和播放電路

                        lP電話終端的語音采集和播放電路通過將K60的IS接口外接wm9712語音編解碼芯片實現。K60的IS模塊是一個全雙工的串行端口,允許和多種類型的串行設備通信,含有帶獨立時鐘發生和幀同步的獨立的收發器,支持AC97。在AC97標準模式下,時鐘來自于外部,幀同步由內部產生。I s模塊的引腳有6個,分別是串行接收時鐘SRCK、串行接收幀同步SRFS、串行接收數據SRXD、串行發送時鐘STCK、串行發送幀同步STFS和串行發送數據STXD。

                        wm9712是一款支持AC97的16位精度的語音編解碼芯片,可直接與麥克風、耳機相連,內部包含單聲道和立體聲編解碼兩個通道。其中,單聲道通道支持語音的采集和播放,最高頻率為16kHz;立體聲通道僅支持 語音的播放,最高頻率為96kHz。

                        3.3 鍵盤接口電路

                        IP電話終端的鍵盤接口采用3×4矩陣方式,鍵的定義符號為“0”~“9”和“ *”、“#”,鍵的排列與一般 電話機一致。列線n1~n3分別接PTIP0~PTIP2,編程時將這三個引腳定義為輸入并進行上拉;行線ml~m4 分別接PORTA0一PORTA3,編程時將這四個引腳定義為輸出。

                        3.4 以太網接口電路

                        K60內部集成了以太網控制器,但沒有集成以太網物理層收發器,故外接了KSZ8041NL物理層收發器。 K60和KSZ8041NL之間通過簡化的媒體獨立接口(Reduced Medium Independent Interface,RMII)連接,實現以太幀的收發功能,其對外數據傳輸的引腳只有4個:2個差分輸入(RX一、RX+)和2個差分輸出(TX+、TX 一)。但是在使用時還需外接一些電阻電容元件和網絡隔離部件等,以保證傳輸的穩定性。K60的PTA12和PTA13接K60KSZS041NL的RMII接收接口(RXD1和RXDO),PTA16和A17接K60KSZ8041NL的RMII發送接口(TXD0和TXD1)。

                        3.5 存儲器擴展電路

                        本設計外擴了2片DDR SDRAM和l片NAND Flash。其中,DDR SDRAM采用英飛凌(Infineon)公司的 HYB18M51216OAF,因數據寬度只有l6位,故需要2片才能擴展為32位;其行地址線為13位,列地址線為10 位,Bank地址為2位,尋址空間為64M字節。NAND Flash采用三星公司的K9F2G08ROA,容量為256M字節, 頁面大小為2K字節。

                        3.6 UART接口電路

                        IP電話終端中使用MAX3232電平轉換芯片將K60的TTL電平轉化為RS232電平。K60的通用異步收發器(UART)支持全雙工的數據傳輸,可對8位或9位數據模式進行編程,采用NRZ格式。K60中有6個相同且獨立的UART模塊,記為UART0-UART5,其中UART0和UART1的時鐘源為內核時鐘,UART2~UART5的時鐘源為總線時鐘。本設計使用UART1進行IP電話終端和PC機間的通信,UART1的外部引腳只 有2個,分別是發送數據引腳UTXD1和接收數據引腳URXD1。

                        4、系統的軟件設計

                        基于K60的IP電話終端的軟件,分為底層、中間件和應用層三個層次,由于底層構件層主要移植和調用 MCU內部功能構件,故整個軟件的設計主要是中間件和應用層構件的設計。

                        4.1 語音采集和播放構件

                        語音采集和播放構件是基于高級Linux聲音架構(Advanced Linux Sound Architecture,ALSA) 實現的, 包括語音的采集和播放兩個子構件。ALSA支持多種聲卡設備,支持兩種編程模式,即普通ALSA模式和模擬 OSS(Open Sound System,開放聲音系統)模式。由于本設計只完成語音采集和播放,故選擇了接口簡單的模擬OSS模式,該模式是將所有的音頻相關操作都映射為對具體設備文件的操作,它提供的配置接口以ioctl函數的形式提供,而語音的采集和播放則通過調用write和read函數進行。

                        4.2 網絡實時傳輸構件

                        網絡實時傳輸構件通過RTP協議實現,RTP屬于網絡應用層協議。在IP電話中,語音傳輸屬于實時傳輸,其實時性要求比準確性要求更高,故本設計通過調用UDP套接字接El實現RTP協議的功能。UDP套接字的編程接El主要涉及socket、bind、sendto和mcvfrom 4個函數,分別用于建立套接字和基于該套接字的數據 收發。

                        4.3 IP電話終端構件

                        IP電話終端構件主要調用兩個中間件構件提供的函數接口,通過建立兩個相應的子線程使其并發執行的方式實現,兩個子線程分別是語音的采集與發送線程和語音的接收與播放線程。Linux下的多線程編程遵 循Unix可移植操作系統接口(Portable Operating System Interface of Unix,POSIX),操作線程的基本函數有:① 創建線程pthread—create()、②線程返回pthread—exit()、③等待某線程終止pthread_join()、④請求終止某線程 pthread—cancel(),使用Linux的信號量機制實現線程的互斥操作。

                        5、系統的實現

                        5.1 實現方案

                        基于K60的IP電話終端已在局域網內部實現了兩臺終端之間的音頻通信,實現框圖如圖3所示。圖中,將兩臺IP電話終端直接連接到局域網的路由器,同時兩臺電話終端分別通過串口和一臺Pc相連,測試時通過Pc超級終端發送命令控制電話終端上程序的執行。

                        兩臺坤電話終端間通信的框圖

                        圖3 兩臺坤電話終端間通信的框圖

                        5.2測試結果與分析

                        由于IP電話的通話音質主要取決于網絡的狀態,故本系統分別在三種典型的網絡狀態下測試其通信質量:局域網內所有PC全部關閉網絡連接、局域網內一半Pc同時從遠程FTP服務器下載文件和局域網內所有 Pc同時從遠程n1P服務器下載文件,測試結果如附表所示。第一次測試時設置采樣頻率為8kHz且為單聲道,發現在所有Pc全部關閉網絡連接的情況下音質仍然很差,說明不是網絡帶寬太小的問題,而是采樣頻率太低。當采樣頻率加大到16kHz時,語音立刻變清晰了。

                        三種典型網絡狀態下的系統測試結果

                        從附表中可以看出,在網絡狀態良好的情況下,音質效果很好;在網絡狀態一般的情況下,音質效果與普 通電話的相似;在網絡繁忙的情況下,音質效果較差。測試結果表明,基于K60的IP電話終端能成功地采集、收發和播放語音,證明了本設計方案的正確性和有效性。

                        6、結論

                        隨著通信網絡的普及,基于嵌入式平臺的IP電話終端必將有廣闊的市場應用前景。本文的嵌入式IP電話終端,主要具有如下特點和優勢:

                        (1)基于ARM Cortex。M4 Kinetis微控制器K60的單MCU設計使其系統穩定性僅取決于MCU,而所選的 MCU MK60N5l2VMDl00抗干擾性好,保證了系統的高穩定性和強抗干擾性,故本產品可應用于工業控制領域中。

                        (2)MK60N512VMD100溫度范圍為-40~105度,滿足了中國南、北方溫度差異較大的特點,使得本產品既適用于中國南方,也適用于北方。

                        (3)基于Linux操作系統的軟件,分為底層構件層、中間件構件層和應用層構件層三個層次,中間件為應用層提供了訪問底層構件的接口,屏蔽了調用底層硬件驅動的復雜性,故具有很強的可移植性和擴展性,可以被快速地應用于同類產品的開發或基于本系統的二次開發。

                        IP電話, K60, 嵌入式

                        如沒特殊注明,文章均為好會通科技原創,轉載請注明來自 http://www.nuansatogel.com/archives/2588.htm.
                        ?

                        copyright 2004-2013     粵ICP備12061155號-1

                        Sitemap|XML|RSS|隱私政策|EN|
                        精品少妇白浆小泬60P,四虎免费精品视频,黑人大荫蒂BBWBBBAAss,国产麻豆一区二区三区精品视频