馬躍輝, 冀保峰,2, 程一淼, 高宏峰
(1. 河南科技大學(xué)信息工程學(xué)院, 河南 洛陽 471023;2. 電子科技大學(xué)航空航天學(xué)院, 四川 成都 611731)
國內(nèi)外的視頻監(jiān)控行業(yè)經(jīng)歷了本地模擬信號(hào)監(jiān)控系統(tǒng)、基于PC插卡的數(shù)字監(jiān)控系統(tǒng)和基于嵌入式技術(shù)的數(shù)字監(jiān)控系統(tǒng)的發(fā)展過程。目前已經(jīng)發(fā)展到第三個(gè)階段,正大規(guī)模向著嵌入式技術(shù)的數(shù)字監(jiān)控方向發(fā)展,視頻監(jiān)測系統(tǒng)已經(jīng)成為當(dāng)今可視化領(lǐng)域的一個(gè)新的開發(fā)熱點(diǎn)。隨著以太網(wǎng)的覆蓋面越來越廣,借助以太網(wǎng)能夠滿足用戶直觀實(shí)時(shí)地且不受地點(diǎn)限制觀看監(jiān)控畫面,相比較于傳統(tǒng)視頻監(jiān)控系統(tǒng),嵌入式視頻監(jiān)控明顯具有更高的可靠性和便利性,能夠給用戶帶來更多舒適、安全和智能的生活體驗(yàn)。
系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)如圖1所示,主要由STM32F103ZET6主控制器和其他子模塊組成。主控制器主要用于處理和分析傳感器信息以及以太網(wǎng)操作信息,控制內(nèi)部運(yùn)行代碼及SD存儲(chǔ)。子模塊主要有攝像頭傳感器模塊,SD卡存儲(chǔ)和以太網(wǎng)模塊。通過以太網(wǎng)接口將系統(tǒng)連接到路由器,用戶通過以太網(wǎng)進(jìn)行訪問就可以實(shí)時(shí)查看監(jiān)控信息。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
本系統(tǒng)采用STM32F103ZET6作為系統(tǒng)的核心MCU,它是基于CortexTM-M3的內(nèi)核帶有512 k字節(jié)閃存的微控制器,最高工作頻率為72 MHz,高達(dá)64 k字節(jié)的SRAM,帶4個(gè)片選的靈活的靜態(tài)存儲(chǔ)器控制器,支持CF卡、SRAM、PSRAM、NOR和NAND存儲(chǔ)器,有3路SPI高速全雙通接口,12個(gè)DMA通道,8個(gè)16位定時(shí)器,3個(gè)12位的ADC,支持多達(dá)20個(gè)軟件的中斷/事件請(qǐng)求。STM32F103ZET6不僅具有強(qiáng)大的外設(shè)接口,還具有睡眠模式、待機(jī)模式和停止模式三種低功耗模式。
圖像采集模塊采用OV7670,它是一個(gè)能夠提供單片VGA攝像頭和影像處理器的所有功能的CMOS圖像傳感器,它支持整幀輸出、子采樣、取窗口等模式,支持8/10位圖像分辨率,支持多種數(shù)據(jù)格式,包括RAW RGB、RGB以及YCbCr等格式。它體積小,工作電壓低,可以對(duì)圖像進(jìn)行伽瑪曲線、白平衡、飽和度、色度等處理。OV7670采集的圖像,采用VGA時(shí)序,通過VSYNC、HREF/HSYNC和PLCK引腳輸出圖像。先將圖像暫存儲(chǔ)于圖像緩沖器件AL422B中,按照FIFO讀取數(shù)據(jù)的時(shí)序,控制相關(guān)的引腳,可以直接由MCU的IO口讀取數(shù)據(jù)后,將數(shù)據(jù)放入SD卡或者送入以太網(wǎng)。帶有FIFO可減少對(duì)單片機(jī)采集圖像數(shù)據(jù)時(shí)對(duì)MCU速度的要求。
以太網(wǎng)模塊使用ENC28J60芯片,它帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)接口(Serial Peripheral Interface, SPI)的獨(dú)立以太網(wǎng)控制器。它可作為任何配備有 SPI 的控制器的以太網(wǎng)接口。 ENC28J60 符合 IEEE 802.3 的全部規(guī)范,采用了一系列包過濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制。它還提供了一個(gè)內(nèi)部 DMA模塊,以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的 IP 校驗(yàn)和計(jì)算。與主控制器的通信通過兩個(gè)中斷引腳和SPI實(shí)現(xiàn),數(shù)據(jù)傳輸速率高達(dá)10 Mb/s。兩個(gè)專用的引腳用于連接LED,進(jìn)行網(wǎng)絡(luò)活動(dòng)狀態(tài)指示。ENC28J60與微處理器的連接如圖2所示。要實(shí)現(xiàn)TCP/IP協(xié)議棧,選擇移植LwIP代碼,LwIP是由瑞士計(jì)算機(jī)科學(xué)院Adam Dunkels等開發(fā)的適用于嵌入式領(lǐng)域的輕量級(jí)TCP/IP協(xié)議棧。它可以移植到含操作系統(tǒng)的平臺(tái)中,也可以在無操作系統(tǒng)的平臺(tái)下運(yùn)行,并且占用的RAM和ROM比較少,支持較為完整的TCP/IP協(xié)議,還便于裁剪、調(diào)試。
圖2 ENC28J60與STM32硬件連接圖
本系統(tǒng)軟件設(shè)計(jì)中主要由OV7670視頻采集,SD卡存儲(chǔ)和ENC28J60以太網(wǎng)連接組成。
OV7670視頻采集程序驅(qū)動(dòng)主要在于正確的設(shè)置SCCB時(shí)序與FIFO讀取時(shí)序。OV7670輸出時(shí)序采用VGA時(shí)序,它分為行時(shí)序和幀時(shí)序。行時(shí)序即輸出每一行像素的時(shí)序,以PCLK輸出像素時(shí)鐘,以D0-D9輸出像素?cái)?shù)據(jù),以HREF輸出行起始信號(hào)和行結(jié)束信號(hào)。幀時(shí)序與行時(shí)序的區(qū)別主要在于多了一條信號(hào)線VSYNC,用于表示幀起始信號(hào)與幀結(jié)束信號(hào)。讀FIFO時(shí)序,OV7670模塊的FIFO硬件中已將FIFO的RE管腳設(shè)置為低電平,說明已激活了讀操作。當(dāng)OE管腳為低電平時(shí),輸出處于使能狀態(tài),隨著讀時(shí)鐘RCK的運(yùn)轉(zhuǎn),數(shù)據(jù)輸出管腳D7-D0就會(huì)按地址遞增的方式輸出數(shù)據(jù)。一次采集圖像軟件流程圖如圖3所示,MCU讀取FIFO圖像數(shù)據(jù)傳輸給ENC28J60和SD卡。如此循環(huán)采集圖像。
圖3 OV7670圖像采集軟件流程圖
利用ENC28J60以太網(wǎng)控制器接入以太網(wǎng),移植LwIP協(xié)議棧,并利用LwIP提供的函數(shù)在STM32上建立服務(wù)器和創(chuàng)建Telent應(yīng)用。建立服務(wù)器后可以使用PC的瀏覽器訪問網(wǎng)頁,通過點(diǎn)擊網(wǎng)頁按鈕控制視頻的播放與停止。移植LwIP協(xié)議棧時(shí),在opt.h文件下進(jìn)行裁剪、配置,如是否使用操作系統(tǒng),是否使用DHCP配置,上層的應(yīng)用是使用RAW或者API函數(shù)等。用戶在終端通過瀏覽器做出相應(yīng)操作,操作指令通過以太網(wǎng)傳輸給ENC28J60,MCU通過讀取ENC28J60獲取指令。MCU得到傳輸數(shù)據(jù)指令時(shí),在確保用戶賬號(hào)和密碼輸入正確之后,MCU將攝像頭采集圖像信息進(jìn)行編碼壓縮成JPEG圖片,將壓縮后的圖像數(shù)據(jù)換成如TCP/IP網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)流,通過ENC28J60傳輸?shù)揭蕴W(wǎng),經(jīng)過一定的處理,可以把這些圖像信息合成 20 幀每秒顯示在終端瀏覽器界面上,由于人眼的視覺暫留效益,這些連續(xù)的圖像能夠被看成是達(dá)到了流暢的視頻效果。在MCU捕獲到上傳圖像信息指令時(shí),MCU同時(shí)做出停止向SD卡存儲(chǔ)圖像信息的指令,以減少對(duì)MCU頻率的利用,提高圖像數(shù)據(jù)上傳至以太網(wǎng)的速度。圖像數(shù)據(jù)傳輸軟件流程圖如圖4所示。
圖4 圖像數(shù)據(jù)傳輸軟件流程圖
系統(tǒng)的調(diào)試環(huán)境是MDK軟件與PC機(jī)。利用MDK5軟件對(duì)STM32進(jìn)行仿真,先將系統(tǒng)代碼進(jìn)行編譯,按下硬件調(diào)試的Debug按鈕,MDK軟件就通過J-LINK把編譯時(shí)生成的可執(zhí)行鏡像文件加載到STM32芯片的SRAM上運(yùn)行,在MDK軟件上調(diào)試代碼,并利用MDK的邏輯分析儀,觀測要分析引腳的運(yùn)行波形。將ENC28J60模塊接入路由器,在PC機(jī)設(shè)置靜態(tài)地址分配,MAC固定地址即STM32作為服務(wù)器的固定IP地址 “198.168.1.10”,子網(wǎng)掩碼設(shè)置為“255.255.225.0”。在PC機(jī)瀏覽器輸入STM32固定IP地址,就可以觀看視頻圖像。經(jīng)過測試,本系統(tǒng)的波形完全正常,且通過網(wǎng)絡(luò)調(diào)試工具看到流暢的視頻圖像如圖5所示,完全符合設(shè)計(jì)的要求。
圖5 網(wǎng)絡(luò)調(diào)試工具顯示圖像
本文根據(jù)社會(huì)現(xiàn)實(shí)需求,設(shè)計(jì)了一套基于STM32的遠(yuǎn)距離監(jiān)控系統(tǒng),詳細(xì)介紹系統(tǒng)硬件部分與軟件的設(shè)計(jì),該系統(tǒng)很好實(shí)現(xiàn)遠(yuǎn)距離監(jiān)控和存儲(chǔ)圖像信息,并具有低功耗,成本低,運(yùn)行穩(wěn)定的優(yōu)點(diǎn)。
[1] 徐文,孟文,曾麗.基于STM32與WiFi無線通訊技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀表,2016,31(11):35-38.
[2] 焦鉻,易小波,李仁發(fā).基于嵌入式Internet的遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(5):19-5.
[3] 伍連明,陳世元.基于GPRS的遠(yuǎn)程數(shù)據(jù)采集模塊[J].現(xiàn)代電子技術(shù),2009(3):25-28.
[4] 庫少平,徐良平.Realview MDK軟件仿真器的測試技術(shù)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(8):18-21.
[5] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].第4版.北京:電子工業(yè)出版社,2006:170-348.
[6] 胡棟.JPEG圖像編碼的基本方法與國際標(biāo)準(zhǔn)[S].第2版.北京:北京郵電大學(xué)出版社,2003.
[7] 李雄祥,孫延明,鄭時(shí)雄.Pro/E軟件中J-Link接口的探討分析[J].機(jī)床與液壓,2003(6):120-122.