靳小巍
(山西農業大學 軟件學院,山西 晉中 030801)
高速高性能單片機在網絡監控中的應用
靳小巍
(山西農業大學 軟件學院,山西 晉中 030801)
當前,網絡通信設備成本居高不下。為降低網絡實時監控系統中傳輸設備成本,設計采用高速、高性能單片機作為網絡服務器,完成大數據量視頻圖像傳輸以及控制信號傳遞。搭建實驗環境,編程實現前端視頻采集、圖像數據在網絡服務器中的傳輸以及后端接收、處理和顯示等代碼。為改進和提高網絡圖像傳輸性能,使用單片機嵌入μC/OSII操作系統。實驗結果表明,接收端視頻圖像顯示清晰,控制信號傳輸時延滿足使用要求。
單片機;視頻采集;實時監控;網絡傳輸
隨著單片機(MCU)處理速度的不斷提高,單片機在網絡中的應用逐漸趨于復雜化[1]。本文主要研究美國Cygnal公司生產的8位高速、高性能單片機C8051F020在網絡中作為服務器的復雜應用,以降低網絡通信費用,主要包括實時網絡監控和動態圖像傳輸兩大部分。
C8051F020具有與8051兼容的微控制器內核CIP-51[2],與MCS指令集完全兼容。除了具有標準8051的數字外設外,片內還集成了數據采集和控制系統中常用的模擬部件和其他數字外設及功能部件。與傳統的MCS-51相比,C8051F020采用流水線結構,指令運行速度大幅提高。在25 MHz外頻時,可達最高處理速度25 MIPS。另外,采用3 V低電壓供電,使整個芯片的功耗大幅降低。
圖1為實驗網絡環境構成。

圖1 網絡環境構成
客戶端由預裝了Windows XP操作系統的PC構成。PC通過以太網連接線與單片機實驗板相連,兩者構成以太局域網絡。利用VC++ 6.0編程,通過WINSOCK網絡編程及圖像處理編程,可以實現客戶/服務器(C/S)模型下、建立在TCP/IP之上的客戶端功能,包括網絡監控、請求網絡圖像傳輸及圖像數據接收和顯示功能[3]。
服務器端主要由單片機C8051F020、支持以太網絡收發的芯片RTL8019AS、支持RS232串行通信及外圍測控的芯片組成。RTL8019AS可以獨立完成網絡接發包工作,實現以太網載波監聽、沖突檢測、碰撞重傳等功能,并可以與MCU進行數據交換。單片機C8051F020的程序存儲器中固化有按照uIP、用C語言編程實現的TCP/IP及ARP,還有應用程序。它們分別完成建立在TCP/IP之上的網絡圖像數據傳輸和通過RS232接口的串行通信、外圍測控信號的采集、監控等功能。
采用嵌入式C語言編程實現服務器功能。編譯環境為Keil μVision 4.0,采用J-Link調試盒下載程序和在線調試。
單片機外圍電路主要分成兩部分,分別完成圖像采集和測控功能。圖像采集部分由PC及攝像頭構成,PC預裝Windows XP操作系統。利用VC++ 6.0編程,通過Microsoft提供的VFW(Video For Windows)視頻編程和串行通信編程,可以將采集到的圖像數據利用PC的RS232串行通信接口傳輸給單片機。單片機以中斷方式通過其RS232接口逐字節接收圖像數據并存儲在其內存xdata段。測控部分主要完成對外圍監測信號的采集和上層控制命令的處理,如溫度測量、控制步進電機轉動和開關閉合等。
上層監控命令被封裝在網絡數據包中,按照以太網規范要求[4],從客戶端經由局域網連接線送至服務器端的網絡芯片RTL8019AS,網絡芯片將數據接收并存儲在其內部存儲器中。MCU以查詢(本實驗采用)或中斷方式實現與網絡芯片的數據交換。這樣網絡數據包將被單片機接收并存放在后者內存xdata段。按照TCP/IP逐層傳遞要求,單片機將數據包從下向上逐層上交,直到應用層。應用層識別監控數據類型,并通過單片機外圍電路,實現監控功能。當需要向客戶端回傳測控信號時,單片機將按照TCP/IP要求,對測控信號數據逐層向下打包傳遞。最后,按照以太網規范,通過網絡芯片RTL8019AS,傳送至客戶端。
與網絡監控類似,客戶端通過網絡發送圖像傳輸的請求。服務器端接收請求后,通知外圍電路開始采集圖像。單片機通過其RS232串行通信接口接收外圍PC采集到的圖像數據,并按照TCP/IP要求打包回傳給客戶端。
單片機外圍電路中的攝像頭和PC配合完成圖像采集工作。在PC正確安裝攝像頭驅動程序后,利用VFW視頻編程,可以建立視頻捕獲窗口。攝像頭驅動程序把每一幀圖像以位圖BMP格式寫入視頻捕獲窗口提供的一個數據結構中。每當寫完一幀圖像數據時,視頻捕獲窗口自動調用回調函數。在回調函數中,通過串行通信,可以把一幅圖像數據傳輸給單片機。由于單片機內存容量的限制,傳輸可能是分批和分期進行的。如果采用圖像壓縮,其壓縮工作也可以放在回調函數中完成,當然,要先壓縮后傳輸。本實驗未采用圖像壓縮技術。實際應用中,圖像采集電路中的PC及攝像頭將被圖像傳感芯片和數字圖像處理芯片(DSP)代替。
每當單片機接收到一定數量的圖像數據后,就開始按照TCP/IP要求打包傳輸。一幅圖像可能要經過多次打包和傳輸才能全部發送到網絡客戶端。采用TCP傳輸控制協議,保證了一幅圖像的每一個數據包均可以按序發送和接收。而且,當發生網絡丟包時,服務器端還可以重傳已丟失的數據包。
客戶端通過網絡向服務器端發送圖像傳輸的請求,來啟動圖像傳輸的全過程。當圖像數據以網絡數據包的形式順序逐幀(以太幀)由服務器端發送過來時,客戶端僅需要把它們按照接收到的順序放在一個緩沖區中,并為此幅圖像配置BMP格式的圖像數據頭結構。然后,利用Microsoft提供的圖像顯示函數,就可以在客戶端顯示接收到的一幅圖像了。
由于圖像傳輸的數據量較大,使單片機在時間安排不合理時,會無法承受重負而宕機。極端的表現是:連續長時間的圖像數據接收和并傳輸,這時單片機無法及時響應和處理實時網絡監控信號,使網絡監控遲滯。因此,必須人為控制單片機圖像數據傳輸時間,以留出足夠時間響應實時網絡監控信號。
以實驗實際情況分析,在未嵌入實時操作系統前,這種圖像數據傳輸可能要人為控制在50%機時以內,甚至更少。實驗中,串行通信速率為115 200 b/s,單片機串行接收1 KB的圖像數據用時近100 ms,打包并通過網絡傳輸1 KB的圖像數據用時近150 ms。當測定的圖像數據傳輸率≤2 KB/s時,機時占用近50%,并可保證實時網絡信號的正常處理。這時,傳輸一幅160×120×12位的I420格式的彩色圖像,用時為15 s。
嵌入μC/OSII時,要按照程序模塊的不同功能,建立不同的任務(TASK),并根據模塊功能的輕重緩急為每一任務設置不同的優先級[5]。在實時監控系統中,監控信號的接收和響應比圖像信號的傳輸具有更高的優先級。在嵌入實時操作系統之前,必須人為控制單片機圖像傳輸的機時,以保證單片機對實時監控信號的接收和響應。在嵌入實時操作系統后,由操作系統來控制和分配圖像傳輸的機時,并可及時響應實時監控信號。經實測,在Tick設置為100 ms時,圖像傳輸穩定,實時信號延時在300 ms之內,滿足實際使用要求。
用單片機作為服務器,通過網絡實現遠程實時監控和大數據量圖像傳輸,可以極大地降低遠程含圖像類實時監控的成本,同時減小服務器端設備體積,提高服務器端設備可靠性。研究結果已應用于深圳某公司生產監控系統中,并顯著降低了網絡通信成本。
[1] 劉歡,方華.基于指紋識別的實驗室門禁管理系統設計[J].微型機與應用,2016, 35(23):93-95, 99.
[2] 潘琢金,譯.C8051F020/1/2/3混合信號ISP FLASH微控制器數據手冊[EB/OL].[2017-03-26]http:∥wenku.baidu.com/view/0cef7393dd88d0d233d46a0e.
[3] 李子昌,李智,管四海.自動裝載與視頻監控遠程控制系統[J].微型機與應用,2017,36(1):1-3.
[4] BERKELEY L. TCP/IP詳解[M]. 北京:機械工業出版社, 2000.
[5] LABROSSE J J. 嵌入式實時操作系統μC/OSII[M]. 邵貝貝,譯.北京:北京航空航天大學出版社,2003.
Network application of high speed and high performance MCU
Jin Xiaowei
(School of Software, Shanxi Agriculture University, Jinzhong 030801, China)
In order to cut down the cost of equipments used in the network for real-time monitoring, high speed and high performance MCU is used as a Web server to transmit a large amount of data on image and control signal. Experimental environment is set up. Images are captured by program in the front end and relative data are transferred in the network under control. At the end, data are processed and original images are displayed. To improve transmission performance on images, an embedded operation system μC/OSII is used. Experimental results show that images are transmitted fluently and control signals are transmitted in real time.
MCU; image acquisition; real-time monitoring; network transmission
TP393.1
A
10.19358/j.issn.1674- 7720.2017.20.019
靳小巍.高速高性能單片機在網絡監控中的應用[J].微型機與應用,2017,36(20):65-66,70.
2017-03-26)
靳小巍(1995-),女,本科在讀,主要研究方向:計算機嵌入式系統、網絡通信等。