陸子幸+宋健+王凱
摘 要:該監控系統使用jz2440開發板,采用UVC攝像頭對圖像進行采集,然后通過WiFi無線網卡實現視頻數據的傳輸,并且通過mjpg_streamer軟件進行視頻流的傳輸,最終在PC機和手機兩個客戶端實時的顯示監控畫面。經測試結果表明:該遠程監控系統能夠提高監控系統的穩定性、高效性,可以實現視頻圖像的實時傳輸。
關鍵詞:UVC攝像頭;無線傳輸;圖像壓縮;遠程監控
DOI:10.16640/j.cnki.37-1222/t.2018.05.113
0 引言
遠程監控系統包括嵌入式技術、計算機網絡技術、多媒體技術、計算機視覺技術等信息技術,各種先進技術的結合使得監控系統的整體效率越來越高,讓這些技術更好的結合并應用到現實的監控中是現在應該去解決的問題。[1-3]在實現遠程監控的過程當中,視頻圖像的處理和傳輸是比較關鍵的技術。現在的監控系統多采用嵌入式Linux操作系統,該系統是一個開源的操作系統,這一點就會使得它的更新發展速度大大提高 [4-5]。
1 系統的整體設計方案
本系統是在Linux操作系統下實現的,系統整體設計方案如下:①在搭建的Linux操作系統的基礎上實現采集和傳輸的軟件設計。②在嵌入式平臺下利用USB攝像頭和WiFi無線網卡實現對圖像的采集及傳輸。③通過mjpg_streamer軟件將攝像頭采集到的視頻圖像傳給用戶。系統的整體方案如圖1所示。
2 系統軟件的設計
2.1 USB攝像頭驅動
本系統所用的攝像頭是中星微zc301p攝像頭,需要在內核中配置它才能夠使用,然后重新編譯燒寫內核即可。
Device Drivers --->
<*> Multimedia support --->
<*> Video For Linux
[*] Video capture adapters (NEW) --->
[*] V4L USB devices (NEW) --->
<*> USB Video Class (UVC)
[*] UVC input events device support (NEW)
[*] GSPCA based webcams --->
<*> ZC3XX USB Camera Driver
從上面到就能看到UVC和GSPCA兩者的驅動支持了,它們兩個是兩種攝像標準,一般的操作系統都會提供UVC標準的驅動程序,不需要安裝任何的驅動就可以運行,早期的很多攝像頭用的就是GSPCA標準,ZC301p就屬于這一類型,在 GSPCA based webcams下最后能夠找到ZC3XX的驅動支持。配置成功后USB攝像頭就可以像普通文件一樣被訪問,對它進行讀、寫操作等。
2.2 WIFI無線網卡驅動的配置
本系統使用的是RT3070芯片的WiFi無線網卡,它的ID信息是:USB\VID_148F&PID_3070,要想使用網卡需要去配置內核。在虛擬機上執行以下命令cd drivers/net/wireless;grep "3070" * -nR。根據搜索到的結果確定使用哪一個源碼,打開源碼所在目錄的Makefile進而確定配置項CONFIG_RT2800USB,然后在內核目錄下執行make menuconfig命令,對內核進行如下配置:
-> Networking suppor
-> Wireless
<*> cfg80211 - wireless configuration API
<*> Generic IEEE 802.11 Networking Stack (mac80211)
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Ralink driver support (RT2X00 [=y])
<*>Ralink rt27xx/rt28xx/rt30xx(USB) support
配置完之后執行make uImage,用新內核重新啟動開發板,插上WiFi無線網卡。根據打印信息知道要想使用該網卡,還需要添加固件,執行sudo cp rt2870.bin/work/nfs_root/fs_mini_mdev_new/lib/firmware命令把固件rt2870.bin放到根文件目錄下。然后重新插上網卡,在虛擬機上執行ifconfig wlan0 up啟動網卡,再執行命令ifconifg會打印出網卡的信息,說明該網卡成功使用。
3 視頻圖像的終端顯示測試
3.1 手機客戶端顯示
要想實現視頻流的傳輸需要移植mjpg-streamer軟件,在移植之前,首先要對libjpeg進行移植,因為mjpg-streamer是會依賴于libjpeg庫。這些工作完成之后啟動開發板連接上USB HUB,然后插上wifi無線網卡和UVC攝像頭,在虛擬機上進行測試,執行mjpg_streamer -i "input_uvc.so -f 10 -r 640*480" -o "output_http.so -w www" 命令啟動mjpeg-stream軟件。手機連接上無線網卡發出來的WiFi熱點,運行編寫的手機Android軟件,輸入開發板的IP,進入監控界面。手機監控如圖2所示。
3.2 PC機客戶端顯示
(下轉第137頁)
(上接第129頁)
PC客戶端可以直接在瀏覽器上看到監控界面,實現跨平臺、即插即用的效果。它是通過IP 地址和端口號創建 Socket 對象,并創建此 Socket 對象的輸入、輸出流。最后PC機連接上無線網卡所發出來的WiFi熱點,然后在google瀏覽器上輸入:192.168.1.17:8080/?action=stream,就可以瀏覽監控界面,如圖 3所示。
4 總結
本系統以ARM9開發板為平臺,在Linux操作系統下實現遠程監控,由于嵌入式技術在監控系統中的應用,使得監控系統的靈活性大大提高,解決了傳統監控系統不能夠靈活的添加模塊的不足。使用UVC攝像頭進行圖像的采集,且簡化UVC攝像頭驅動的代碼,應用WiFi無線傳輸的技術可以達到對視頻圖像實時傳輸的目的。
參考文獻:
[1]周立功等.ARM嵌入式系統基礎教程[M].北京航空航天大學出版社,2005.
[2]韋東山.嵌入式Linux應用開發手冊[M].北京:人民郵電出版社,2008(246).
[3]馬強.基于嵌入式Linux的視頻采集系統設計與實現[D].西安電子科技大學,2011.
[4]LU T,ZANG H H,LI X J.Embedded video monitoring system on ARM and linux[C].Electrical and Control Engineering (ICECE),2011.
[5]李保國.基于嵌入式ARM的遠程視頻監控系統研究[D].南京理工大學,2009.
基金項目:國家自然科學基金項目(51505337);山東省高等學校科技計劃(J17KA150)。
作者簡介:陸子幸(1990-),男,山東泰安人,碩士研究生,研究方向:嵌入式應用技術。