隨著電子信息技術日新月異的高速發展,令人振奮的多媒體應用,包括有線擴音系統(PA-Public address system)、網絡門、MP3播放器以及安全攝像機等需求也是與日俱增。在網絡技術發展的今天,可以采用一種低成本的網絡型微處理器DS80C400來建立與實現。其特點是無需任何硬件的圖像壓縮,便可每秒傳輸4幀原始的黑白圖像,而分辨率可達240180像素。
新型DS80C400是具有高性能結構和多層網絡節點和I/O口及穩定的ROM固件的網絡微控制器,它廣泛應用于工業控制/自動化、數據轉換器、遠距離數據采集設備、環境監測、家庭/辦公室自動化、交易/支付終端及網絡傳感器等領域。本文對如何在音視頻范例網絡多媒體系統中應用DS80C400網絡型微控制器進行分析與討論。
一、網絡型有線擴音(PA)系統的建立
1 常用或傳統的PA系統
PA系統是用于尋呼/內部通信和擴音的系統,其擴音系統有兩個主要部件,即放大器和揚聲器,其組成見圖1示意框圖,一個放大器帶4個16Ω的揚聲器,PBX(Private branch exchange) 用戶交換機是把外面的電話線接到某個建筑住宅或辦公室分機上,而PBX系統功能包括呼叫轉移、快速撥號、內部/外部尋呼和呼叫詳細記錄等。
PA系統工作時,接線員用廣播、尋呼形式對人員播發若干信息,如“所有工作人員請注意,正在測試火警系統”,或“主管人員請到化學品庫報到”,等等。對這類系統人們常常采用傳統的獨立布線和基礎結構的技術就可實現了。
2 網絡型有線擴音(PA)系統
現在,如果將這個系統搬到網絡上則情況會有所不同,不僅可以省掉獨立的音頻布線,而且還可以使系統變得更加智能。這是由于尋呼系統已與各建筑物的訪問控制系統或某個網絡服務器相連接,從而使接線員很方便知道某個人員所處的位置。而且,這種計算機化的網絡型PA系統還能夠自動重復某個消息,從而使接線員能夠被解放出來去處理更多的呼叫。 更為新穎的是:系統亦可以接入公司范圍內的郵件系統,實現郵件到語音的轉換服務;或者通過一個能夠輸入傳呼請求的網站發布消息,而無須人工干預。
那么怎樣才能建立這樣一種網絡型PA系統呢?首先,至少需要一臺運行WEB界面和電子郵件網關并帶麥克風的服務器,我們稱這臺服務器為主控服務器(Master control server)。下一步,需要一些揚聲器模塊,如DS80C400網絡型微控制器、具有能夠驅動揚聲器的數模轉換器(DAC)。這些揚聲器單元的價格要求低廉,而且要求現場安裝相當容易。圖2為DS80C400網絡型微控制器內部結構組成框圖。
圖3展示了網絡型音視頻PA系統架構示意圖。該網絡型PA系統在兩座建筑物M與L之間實現網絡運行,它包括7個揚聲器單元和一個主控服務器;建筑物之間的網絡連接采用了一個路由器(Router),而不是網橋。在本網絡型PA系統中,DS80C400網絡微控制器驅動揚聲器單元。由于這類網絡型PA系統無須很高的帶寬和處理能力,因而該DS80C400控制器所具備的PC系統的處理能力和存儲資源足以支撐系統運行。為此,對采樣率在22.05kHz8位的非壓縮單聲道音頻帶寬要求, 足以在180Kbps以內提供優異的話音質量。而且也不用為硬件解壓縮支付成本, 從而大大提高了本網絡型PA系統的性能價格比。
圖4為該類網絡型音頻系統的相對帶寬需求示意圖。圖4中所示的剖面線為網絡型音頻PA系統帶寬區域,說明該類網絡型音頻系統的音頻帶寬只需要0.25Mbps, 即使在早期的網絡(半雙工式)10Mbps上(見圖4坐標縱軸),相對于本網絡型PA系統具備5Mbps有效帶寬的容量來說,那音頻帶寬(0.25Mbps)也僅使用了其中5%的容量。與當今的大多數以太網帶寬需要100Mbps相比,顯得極低,大大節省了容量。
3 揚聲器單元硬件的配置
除DS80C400外,揚聲器單元還需要一些存儲器(512KB的SRAM就足夠了)、網絡PHY(開放系統互連)、DAC、放大器和揚聲器。為此,通過下列技術簡化了安裝和代碼的分發:
● 通過DS80C400網絡微控制器所配備的網絡引導方式“NetBoot”, 并由NetBoot采用DHCP(動態主配置協定)和TFTP(普通文件傳送協定)網絡協議獲取IP地址和裝載程序數據,降低了安裝和配置成本;
● 以太網供電(見圖3上下二橫圓形粗線所示,以太網電纜)簡化了布線,降低了材料成本。
上電后,DS80C400 ROM通過DHCP(動態主配置協定)獲取IP地址,接著查詢網絡,以獲取最新版的應用程序。應用程序執行后,系統就準備接收音頻數據。在現場找一個未使用的網口,連上電纜,就完成了新揚聲器模塊單元的安裝。
4 揚聲器單元軟件
為簡化硬件的安裝,軟件需要做一些額外的工作。由于兩座建筑之間存在路由器(見圖3中間),廣播、呼叫消息不能夠直接從一座建筑物到達另一座建筑物。所以,不能采用簡單的消息廣播。一個新的揚聲器必須發送組播消息,直到主控服務器確認了該揚聲器的位置和參數。一個新的揚聲器系統事先無法知道主控服務器的位置,因而也需要發送組播消息來請求主控器確認自己。如果考慮安全問題,則交換信息可以采用數字簽名,以排除那些冒充服務器的系統。一旦采用傳統的單播消息配置后,該揚聲器單元就加入一個組播群,等待音頻包,這些音頻包由主控器組播。使用組播是因為DS80C400和TINI(Tiny interNet interface,微型因特網接口)運行環境支持組播,它不同于從一個源發往一個目標的單播數據包,允許多個目標主機接收相同的數據,從而消除了重復傳輸,節省了帶寬。在網絡中,組播包采用一類特殊的目標IP地址,稱之組播群網絡。
PA系統的范例程序采用C語言編寫。要說明的是除join( )之外,這些編寫步驟對于那些為TCP/IP網絡編寫代碼的程序員來說,應該是相當熟悉的。
5 關于以太網供電
要將設備連接到網絡中需要給網絡添加額外的電纜,幸好,電源可以被整合到以太網電纜中空余的導線上。解決這個問題有多種方法,最為常見的是IEEE 802.3af標準,規定將48V電源連接至8引腳以太網連接器的7、8引腳(+)和4,5引腳(GND)。48V電源普遍應用于電話系統,因此配線柜中通常已帶了這個電源。為了能夠應用于網絡型微控制器,電源必須降壓至某個合適的水平。
6 文本到語音
使用麥克風記錄現場語音或播放存儲在網絡服務器上的錄音,是應用網絡型PA系統的方式之一。另外—種是利用接收自電子郵件、WEB頁或蜂窩電話短消息業務的文本廣播消息。
為系統添加語音合成非常容易,轉換可以直接在主控服務器上進行,利用文本到語音轉換引擎從輸入文本產生音頻波形,然后就可以將這個波形如同其他音頻信號一樣發送至揚聲器,揚聲器模塊無須作任何改動。文本到語音轉換引擎已廣泛應用,并且已經成為有些操作系統(例如Mac OSX)的組成部分。
7 娛樂級音頻
如果音頻采樣以非壓縮方式傳輸,則CD音頻就會遇到問題。以44.1kHz 16位采樣、未經處理的立體聲需要1.44Mbps的網絡帶寬(幾乎占了10Mbps網絡的30%),已經超出了許多網絡可提供的帶寬。
MP3這樣的壓縮算法能夠降低數據速率,由此大大提高網絡負載能力,使系統切實可行。配合硬件解壓縮芯片,DS80C400能夠輕松完成任務。事實上,36MHz的時鐘速率足以連續播放192KB的MP3。
8 成像
將視頻信號連接至DS80C400,如安防照相機,采用一個廉價的照相機每秒獲取一個快照,并傳送到網上用于顯示和存儲。服務器端的后處理可完成運動監視并警示保安人員,比較好的照相機選擇是現代的蜂窩電話——它們不僅小巧、廉價而且隨處可得,大多采用一種串行協議進行通信,但不同的制造商也可能采用不同的通信協議。
實驗表明,無須任何硬件輔助的圖像壓縮,DS80C400便可每秒傳輸4幀原始的黑白圖像(240180),而且還留有一定的余量可用于處理話音級的音頻。對于那些熟悉Unix網絡編程的人來說,closesocket( )就是close( )。DS80C400版本的close( )函數由文件系統使用,與Windows系統一樣,DS80C400上的套接字句柄與文件句柄是不可互換的,必須使用獨立的套接字函數。
相機系統提供給DS80C400的時鐘頻率為73.7MHz,接近于75MHz的極限值。73.7MHz的頻率由基頻模式的18.432MHz晶體和集成在DS80C400上的PLL(Phase locked loop,鎖相環路)經4倍頻后得到。這種設計降低了整個系統的成本,同時還允許工作在接近微控制器最高頻率的上限。此外,18.432MHz4對于異步串行通信來講還是一個很好的波特率發生器。
9 網絡門
將安防照相機與雙向音頻、按鈕和蜂鳴器等結合在一起是很容易做到的。這樣的系統允許我們建造一個網絡門(見圖5)。應用是無止境的,尤其是與訪問控制和安全登錄等結合在一起時。對于DS80C400來說,按鈕和蜂鳴器僅僅是外部設備,可以直接連接到普通I/O上。
在Keil C中,通過sfr和shit,很容易定義I/O端口:
/* Define port 1 */
Sfr pl = 0x90;
/* Define P1.7 (port 1 is bit addressable) */
sbit pl_7 = pl^7;/* Toggle Pl.7 */
p_7 = !pl一7;
采用ibutton和內置于DS80C400的1-Wire主控制器接口,很容易在網絡門上添加安全認證功能(某種程度上講,該接口的編程要復雜一些,因此Dallas Semiconductor提供了庫文件,以便簡化任務)。
注意:像網絡門這樣的系統可能需要完成多種處理(或任務),DS80C400 ROM包含了一個任務調度器。下面實例說明了如何在C語言中使用它。還有,在工業級應用中,應該檢查返回代碼。
unsigned Char pri, task;
/* Get the current task */
task = task_getcurrent( );
/* The current task’S priority */
pri = task_getpriority(0);
/* Decrease the priority */
task_Setpriority(0, pri-1);/* Sleep */
task_Sleep(0, 0, 500);
樣例程序還包含了一些有用的函數,如task_fork( ),通過復制當前任務,創建一個新的任務。Task_kill ( )取消一個任務,以及task_suspend( )掛起一個任務。
二、總結
可以采用多種方法開發DS80C400的應用軟件。若想快速評估方案,可以考慮采用Java語言和TINI運行環境。對于那些要求考慮每個指令周期的應用,最好采用最優化的匯編語言。
在本文中,我們采用了C語言。Keil C編譯器支持DS80C400連續的24位尋址模式,允許高達16MB的代碼/數據存儲空間。為了使用這種模式,要求采用擴展版本的編譯器和連接器(CX51、LX51)。這些工具包含在專業開發者工具中(PK51)。
Dallas Semiconductor公司提供接口至DS80C400內部網絡棧的C庫文件??梢哉业皆搸煳募?,以及一份使用Keil開發環境創建DS80C400項目的詳細操作指南。這些庫文件極大地簡化了網絡編程.例如,創建兩個TCP連接已簡化為全球皆知的socket( )和connect ( )順序調用。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7269瀏覽量
149495 -
轉換器
+關注
關注
27文章
8427瀏覽量
145108 -
多媒體
+關注
關注
0文章
487瀏覽量
36790
發布評論請先 登錄
相關推薦
評論