摘 要: 在以太網和TCP/IP協(xié)議基礎上,運用32位微控制器采集多媒體信號在內的多種信息并進行遠程傳輸的多媒體遠程監(jiān)控網的整體模型。介紹了監(jiān)控節(jié)點平臺的軟件和硬件設計,并分析了系統(tǒng)性能。
關鍵詞: 32位微控制器 以太網 Linux 圖像信號采集
1 應用背景
傳統(tǒng)的監(jiān)控網絡建立在以單片機和PC機構成的計算機網絡上,最常用的聯(lián)網手段是使用串行總線,如RS485等。自從上世紀80年代以來,現場總線技術在工業(yè)過程監(jiān)控網絡上得到了廣泛的應用?;诖思夹g的監(jiān)控網絡,由于受帶寬限制而只能用于傳送簡單的數據(如溫度、壓力采樣值等),且傳輸距離僅在車間范圍。
隨著安全監(jiān)控技術的發(fā)展需要,監(jiān)控系統(tǒng)要求處理圖像、視頻、音頻信號。為滿足這些要求,通常的做法是建立專用的信號網絡傳輸圖像和聲音信號,一般為模擬信號。而這樣的網絡布線成本高,維護困難。如果需要遠程監(jiān)控,還要采用特殊手段對信號進行轉換,接入遠程監(jiān)控網絡。如果能利用目前計算機網絡中廣泛應用的以太網,則這些問題便可以得到解決。
應用以太網進行信號傳輸具有如下優(yōu)點。
(1)高帶寬。目前百兆以太網廣泛應用,千兆以太網逐漸成熟。(2)安全性高。以太網及TCP/IP協(xié)議上實現了多種有效的加密手段。(3)容易互聯(lián)。遵循TCP/IP協(xié)議,采集到的數據可以方便地共享給遠程用戶。(4)利用現有資源,減少布線維護成本。
雖然傳統(tǒng)的8或16位單片機也可以支持以太網控制器,但由于其本身處理能力有限,因此不能利用以太網高帶寬的特性。本文將采用32位嵌入式處理器PXA255建立數據采集節(jié)點。由于手持應用的32位處理器PXA255處理能力強,可以運行在400MHz,處理器支持多個運行級別和內存管理,因此從硬件上支持操作系統(tǒng),很適合作為采集終端。
2 多媒體平臺設計
多媒體監(jiān)控系統(tǒng)的示意圖如圖1所示。一個C類以太網段最多可以支持254個節(jié)點,而通過路由器等中繼設備,一個監(jiān)控系統(tǒng)理論上可以支持的節(jié)點數目沒有上限。通過以太網關,可以方便地實現數據在Internet上的共享,并保證數據安全。
作為實驗室系統(tǒng),本文設計了2個采集節(jié)點和1臺PC作為監(jiān)視節(jié)點的系統(tǒng)。采集節(jié)點以32位嵌入式微控制器PXA255為中心,采集視頻、聲音和鍵盤輸入等信號,通過以太網和監(jiān)視節(jié)點通信。監(jiān)視節(jié)點顯示上述信號的實時狀態(tài)。系統(tǒng)的核心是數據采集端的設計和實現。
2.1 硬件設計
監(jiān)控節(jié)點的硬件模塊示意圖如圖2所示。其中微控制器為PXA255;SDRAM是2片K4S561632A;構成Strong ARM 1111 Processor的是Xscale的擴展芯片,提供了USB Host控制器;音頻芯片使用CS4201;以太網控制器使用LAN91C96;Flash采用2片28F128J3A,為系統(tǒng)提供32MB的靜態(tài)數據存儲空間。
圖中未標出的還有PXA255的JTAG接口,用于燒寫Flash和測試硬件電路。視頻采集設備采用了Logitech公司的QuickCam網絡攝像頭,該攝像頭采用USB接口和采集板USB Host接口連接。
QuickCam使用CMOS感光元件,采集速率為30幅/秒、640×480分辨率16色圖像。USB攝像頭直接為采集板提供數字圖像信號,免去了傳統(tǒng)采集設備從模擬信號到數字信號轉換的過程。同時,USB設備具有即插即用特性,使得更換設備更方便。
圖中LCD Panel是可選設備。PXA255可支持640×480真彩色LCD顯示屏。實驗室系統(tǒng)中采集端連接了1個5英寸的LCD顯示屏,可用于檢驗采集端之間傳輸圖像的效果。
2.2 軟件設計
(1)ARM Linux上的程序設計
系統(tǒng)軟件采用了自由軟件ARM Linux。ARM Linux是桌面和服務器上廣泛使用的GNU/Linux操作系統(tǒng),是以ARM為核心的處理器上的移植版本。與流行的商業(yè)嵌入式操作系統(tǒng)相比,ARM Linux的內核由于和桌面GNU/Linux系統(tǒng)內核一致,因而內核穩(wěn)定性得到保證。其源代碼目前遵循GPL協(xié)議發(fā)布,可以保證系統(tǒng)的可維護性。
在ARM Linux中訪問硬件的方式與桌面Linux和UNIX類似。硬件設備在ARM Linux系統(tǒng)中由設備節(jié)點表示,每個設備節(jié)點都有1個主設備號和1個次設備號。二者的組合在同一系統(tǒng)中是惟一的。應用程序通過訪問設備節(jié)點訪問硬件,操作系統(tǒng)調用設備號對應的驅動程序來響應應用程序的請求。
PXA255集成了AC97CODEC芯片控制接口。本系統(tǒng)使用了CS4201CODEC芯片,采集端因此具備了采集聲音信號的能力。音頻設備在ARM Linux系統(tǒng)中表示為一個字符類型設備,因此讀寫該類型設備的數據單位為字符。
ARM Linux對USB攝像頭設備提供底層支持。采集節(jié)點采用了Logitech公司的QuickCam攝像頭,CMOS感光部件能提供640×480分辨率、16位色深的圖像。攝像頭設備在ARM Linux文件系統(tǒng)中也是字符類型設備,可以以字符為單位讀出數據。但一幅完整的圖像一般由多個字符組成,因此只讀一幅圖像的一部分通常是沒有意義的。此外,多次使用read系統(tǒng)調用,在應用程序和內核之間進行上下文切換,對系統(tǒng)影響很大。因此,對這種設備一般使用內存影射的方式訪問。通過mmap系統(tǒng)調用把驅動程序或者內核空間內存影射到用戶空間,使得應用程序可以直接訪問影射的內存,避免了多次上下文切換。
ARM Linux為系統(tǒng)提供以太網控制器的驅動程序和與UNIX相似的TCP/IP協(xié)議棧。通信程序是建立在標準Socket接口上的客戶/服務器程序,采集端運行網絡服務器、接受監(jiān)控端請求、發(fā)送數據到監(jiān)控端并處理監(jiān)控端的命令。
(2)采集端程序設計
具體實現中,采集端軟件由3個獨立的線程構成。主線程流程圖如圖3所示,其流程如下:建立一個Socket服務器和監(jiān)控端建立的基于流的Socket連接;建立若干管道作為不同信號由采集線程到網絡通信線程之間的數據緩沖區(qū);打開攝像頭和其他采集設備;啟動網絡通信和數據采集2個線程后,主線程放棄CPU,直至網絡通信線程結束才被重新調度。
網絡通信線程流程圖如圖4所示。主要部分采用select系統(tǒng)調用,以等待可用的采集數據和監(jiān)控端的命令。此處利用了Linux系統(tǒng)中Socket連接和管道都可以用統(tǒng)一的文件描述符表示的特點。select系統(tǒng)調用處于阻塞線程,直到任一描述符有可讀數據:即如果Socks連接得到了監(jiān)控端命令,則根據該命令停止采集和傳輸,直到對硬件進行配置后才重新進入采集程序;如果管道中有采集數據可用,則把數據發(fā)送到監(jiān)控端。
采集線程流程圖如圖5所示。在ARM Linux操作系統(tǒng)中,獲得內核空間用內存映像機制獲取圖像。具體說就是使用ARM Linux的mmap函數,把QuickCam捕獲的圖像映射到用戶內存空間,用ioctl系統(tǒng)調用向攝像頭驅動程序發(fā)送命令。VIDIOCMCAPTURE命令攝像頭獲取一幅圖像,VIDIOCSYNC命令圖像同步到映射的用戶內存空間。同步命令返回后,映射內存為最近獲取的圖像。采集線程把數據直接復制到相應管道。
其他數據(如聲音、鍵盤輸入)由于數據量較小且不確定,一般不采用內存空間映射的方法獲取,而直接采用read系統(tǒng)調用。但因為在數據源無數據可讀時,read會阻塞直到有數據為止。因此,如果有多個數據源,也應該使用select系統(tǒng)調用,由系統(tǒng)輪詢各個數據源,直到其中一個有可讀數據時使用read,再進入select輪詢狀態(tài)。這樣可以使多個數據源任一個有數據時都可以得到及時處理。
3 性能指標
QuickCam攝像頭每秒可獲得近30幅640×480分辨率的16位色圖像。但由于JPEG壓縮算法需要較高的CPU資源,采集端實際可獲得10幅/秒圖像。圖像為320×240分辨率16位色,經過JPEG壓縮后最小可達2KB以下??紤]到需要控制圖像失真和壓縮時間,因此選擇壓縮比為10:1,每幅圖像大約10KB。壓縮比小于40:1,一般可以認為圖像壓縮是無損的。
通過10M以太網交換機連接采集板和PC控制臺端,最大傳輸能力為7Mbps,因此理論上系統(tǒng)每秒可以傳輸90幅圖像。實驗表明,采集端得到的圖像確實可以送達監(jiān)控端。
以太網的數據鏈路層和物理層協(xié)議與現場總線不同,采用的是CMSA/CD方式。如果總線負載超過25%,多媒體傳輸速度會受到數據碰撞的影響。采用點名方式分時采集各點數據可以避免多個采集端同時發(fā)送多媒體數據,還可以利用實時交換機代替普通交換機獲得更好的實時性能。
如果需要提高系統(tǒng)的性能,則減少壓縮算法占用的CPU時間是關鍵。此外,將單獨采集圖像的系統(tǒng)性能和圖像與聲音等同時采集的系統(tǒng)性能做對比,可以發(fā)現,在采集端加入其他中斷源對于采集圖像信號也有較大影響。
4 結束語
系統(tǒng)已實現了采集平臺與監(jiān)控中心、平臺之間的視頻、音頻以及溫度壓力報警等信號的互傳。目前工作的重點是在系統(tǒng)上實現對視頻和音頻信號的硬件壓縮解壓,進一步提高信號傳輸速度和質量。
由于Linux系統(tǒng)的API和UNIX系統(tǒng)兼容,使得大多數為UNIX和Linux編寫的應用程序都可以不經修改或稍加修改就可應用在本系統(tǒng)中,如目前已經應用的JPEG圖像壓縮算法庫等。這使得該系統(tǒng)不僅適合視頻信號采集,而且在工業(yè)監(jiān)控的很多領域都有了應用前景。
參考文獻
1 Intel Corporation.Intel PXA255 Processor Design Guide. http://www.intel.com,2003
2 Intel Corporation.Intel PXA255 User′s Menu.http://www. intel.com,2003
3 Rubini A.Linux Device Drivers.北京:中國電力出版社,2000
4 Jerry D G.多媒體數字壓縮原理與標準.北京:電子工業(yè)出版社,2000
5 呂風軍.數字圖像處理編程入門.北京:清華大學出版社,1999
6 Steven W R.UNIX環(huán)境高級編程.北京:機械工業(yè)出版社,2000