李明進
(電子科技大學(xué)成都學(xué)院 微電子技術(shù)系,四川 成都 611731)
基于有限資源的網(wǎng)絡(luò)視頻傳輸?shù)奶骄?/p>
李明進
(電子科技大學(xué)成都學(xué)院 微電子技術(shù)系,四川 成都 611731)
如何解決資源與能力之間的矛盾是嵌入式開發(fā)的關(guān)鍵。該文在基于MCU(如單片機)或者同等級別的平臺上,從系統(tǒng)級層面探究了實現(xiàn)網(wǎng)絡(luò)視頻傳輸?shù)目蚣埽⒒赟TM32F103單片機,采用軟件方式實現(xiàn)TCP/IP協(xié)議棧,采用OV7670圖像傳感器和FIFO芯片AL422B實現(xiàn)圖像采集模塊,采用SPI網(wǎng)絡(luò)控制器實現(xiàn)ENC28J60通信模塊,設(shè)計完成了基于網(wǎng)絡(luò)的視頻圖像傳輸系統(tǒng),探討了系統(tǒng)中各個模塊對資源的需求,以及需要解決的問題。該視頻圖像傳輸系統(tǒng)可用于遠程作業(yè)、家居等圖像要求不高的網(wǎng)絡(luò)圖像實時監(jiān)控。
網(wǎng)絡(luò)視頻傳輸;μC/OS-II操作系統(tǒng);TCP/IP協(xié)議;STM32F103單片機;ENC28J60通信模塊
隨著服務(wù)的智能化發(fā)展,世界的越來越網(wǎng)絡(luò)化,終端的越來越輕微化,嵌入式系統(tǒng)在網(wǎng)絡(luò)化中的開發(fā)已成為控制領(lǐng)域中最重要的組成部分之一。網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)在社會安全領(lǐng)域中,如智能家居、交通管理、環(huán)境監(jiān)測、電子礦工和災(zāi)后救援隊等,得到了廣泛應(yīng)用[1],網(wǎng)絡(luò)通信使得數(shù)據(jù)能進行遠距離傳輸,便于管理;網(wǎng)絡(luò)視頻監(jiān)控也成為了嵌入式系統(tǒng)在網(wǎng)絡(luò)化開發(fā)中的一個重要方向。但是由于嵌入式系統(tǒng)自身的資源有限,考慮到價格因素,在單片機級別的系統(tǒng)上無法支持功能較強的操作系統(tǒng),從而無法加載完備的TCP/IP協(xié)議棧,加之TCP/IP協(xié)議本身較復(fù)雜,使得很多有心者心有余而力不足,只好望而卻步。本文作為一種嘗試,為基于有限的資源載體進行傳輸網(wǎng)絡(luò)大數(shù)據(jù)提供一種方案。
目前來說,能夠直接支持大數(shù)據(jù)量(如視頻、音頻)網(wǎng)絡(luò)傳輸?shù)南到y(tǒng)級芯片比較多,從操作系統(tǒng)到視頻編解碼的支持也非常成熟[2-4],其中嵌入式中以ARM系列為核心的最多,從ARM9到Cortex-A系列[5],從單核到多核,無一不能逐步滿足數(shù)據(jù)傳輸能力的要求,而且更新快。對于最新的發(fā)展,如瑞芯微的RK3288,處理器采用ARM的A17系列內(nèi)核,圖形處理器(GPU)為Mali-T764,而蘋果的A7所采用的是IMG PowerVR G6430,4 個SIMD 陣列設(shè)計(相當于四核,共16個著色器),以及TI的66AK2Ex (A15+C66x DSP)和66AK2Hx (A15+C66x DSP),這些發(fā)展一直推動著整個行業(yè)向前發(fā)展,早已能夠滿足我們之前的需求,但這不是本文討論的范圍;因為從用戶的角度來說,除了性能上的滿足外,考慮的因素還有價格和體積等。在這里所指的有限資源主要指局限于硬件處理的能力,而考慮的是如何利用軟件來解決硬件處理能力不足帶來的問題。
熱門的微控制單元(MCU)包括Atmel的AT89C51、TI的MSP430、STM32F103、80C51等,本文將探討以STM32F103單片機為開發(fā)平臺,μC/OS-II作為實時操作系統(tǒng)的遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。
STM32F103屬于ARM公司推出的基于ARM v7構(gòu)架的標準體系結(jié)構(gòu)的Cortex-M系列的增強型。Cortex-M3市場價格便宜,且具有低功耗、短中斷延時、低調(diào)試等眾多優(yōu)勢,滿足本文探究的目的。Cortex-M3工作在72 MHz,內(nèi)置高達512 KB的Flash存儲器和20 KB的SRAM,具有豐富的外設(shè)端口,其具有休眠、停止和待機3種低功耗模式,其支持SPI外設(shè),方便了對網(wǎng)絡(luò)傳輸模塊的控制與數(shù)據(jù)交互。μC/OS-II是一個可以基于ROM運行的、可裁剪的、搶占式的實時多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器,是和很多商業(yè)操作系統(tǒng)性能相當?shù)膶崟r操作系統(tǒng)(RTOS)。它僅僅包含了任務(wù)調(diào)度、任務(wù)管理、時間管理、內(nèi)存管理和任務(wù)間的通信和同步等基本功能,沒有提供輸入輸出管理、文件系統(tǒng)、網(wǎng)絡(luò)等額外的服務(wù),所需要的處理器的資源較少;但由于μC/OS-II良好的可擴展性和源碼開放,這些非必需的功能完全可以由用戶自己根據(jù)需要分別實現(xiàn),本文將自行搭建TCP/IP協(xié)議棧,完成網(wǎng)絡(luò)通信功能。系統(tǒng)框架圖如圖1所示。
圖1 網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)架構(gòu)圖
網(wǎng)絡(luò)通信是以MCU通過SPI接口控制以太網(wǎng)控制器來實現(xiàn),選擇帶有SPI接口的獨立以太網(wǎng)控制器ENC28J60,而避免使用目前市場上大部分封裝超過80腳的以太網(wǎng)控制器,如RTL8019AS、CS8900A等,這類器件不僅結(jié)構(gòu)復(fù)雜、面積較大,而且系統(tǒng)開銷太大,不符合本文探究的目的。網(wǎng)絡(luò)通信模塊電路圖如圖2所示。
圖2 網(wǎng)絡(luò)通信模塊設(shè)計
3.1 視頻傳輸帶寬需求
在視頻監(jiān)控系統(tǒng)中,對存儲空間容量的大小需求與畫面質(zhì)量的高低以及視頻線路等都有很大關(guān)系??紤]采用標清 D1(704×576)的視頻傳輸,其每幀的大小Fs=396 kb。數(shù)據(jù)率Rv=N×Fs,其中N為每秒鐘傳輸幀的個數(shù)。數(shù)據(jù)率Rv與帶寬Bw的關(guān)系需滿足Bw≥Rv×M,其中M為傳輸?shù)囊曨l路數(shù)。
若以D1傳輸一路視頻信號,取傳輸?shù)囊曨l路數(shù)M=1,每秒鐘傳輸幀的個數(shù)N=25,則傳輸帶寬Bw至少需要1×25×396 kbps=9 900 kb/s=9.67 Mb/s,其中b/s為每秒傳輸比特率。
定義L為分組長度,單位是bit,即所有分組都是由Lbit組成的;a為分組到達的平均速率(單位:分組/秒(pkt/s)),則比特到達隊列的平均速率是La/b·s-1。假設(shè)R為鏈路速率 ,以b/s為單位,則比率La/R被稱為流量強度。平均排隊時延與流量強度的關(guān)系如圖3所示。
圖3 流量強度與排隊時延的關(guān)系
從圖3可以看出,當La/R接近于0時,平均排隊時延非常小,接近于0,幾乎沒有分組到達或間隔很大(稀疏),到達的分組幾乎不排隊;當La/R接近于1時,分組陸續(xù)到達,形成隊列,時延變大;因此實際需要的帶寬要遠大于傳輸視頻的帶寬??紤]家庭所使用的寬帶上網(wǎng)的實際帶寬一般小于2 Mb/s,所以必須采用適當?shù)膲嚎s算法才能滿足視頻傳輸?shù)男枨骩6-8]。
3.2 圖像采集模塊設(shè)計
根據(jù)傳輸視頻帶寬的需求,本系統(tǒng)圖像采集選用OV7670圖像傳感器。該傳感器體積小、工作電壓低,提供單片 VGA 攝像頭和影像處理器的所有功能。通過串行攝像機控制總線(SCCB)控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率為8位的影像數(shù)據(jù)。該產(chǎn)品 VGA 圖像最高達到 30 幀/秒,用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式,可以滿足本系統(tǒng)傳輸要求。所有圖像處理功能過程包括伽瑪曲線、白平衡、飽和度、色度等都可以通過 SCCB 接口編程。該圖像傳感器應(yīng)用獨有的傳感器技術(shù),通過減少或消除光學(xué)或電子缺陷如固定圖案噪聲、托尾、浮散等,提高圖像質(zhì)量,得到清晰的穩(wěn)定的彩色圖像。
圖像采集使用的FIFO選用芯片AL422B。AL422B是AverLogic公司推出的一個存儲容量為393 216 Byte×8 bit的FIFO存儲芯片;由于其所有的尋址、刷新等操作都由集成在芯片內(nèi)部的控制系統(tǒng)完成,因而使用非常簡單。3 Mb的存儲空間對于普通的視頻應(yīng)用綽綽有余,并且它加快了存取速度,因此可以在多媒體系統(tǒng)、視頻采集與編輯系統(tǒng)、畫中畫電視、掃描轉(zhuǎn)換和數(shù)碼相機等方面廣泛應(yīng)用。
圖像采集與MCU的功能框圖如圖4 所示。
圖4 網(wǎng)絡(luò)視頻監(jiān)控電路框圖
本網(wǎng)絡(luò)監(jiān)控系統(tǒng)是基于μC/OS-II嵌入式操作系統(tǒng)所進行的設(shè)計,功能包括數(shù)據(jù)采集模塊和通信模塊。
通信模塊主要包括初始化SPI芯片W25X16,初始化以太網(wǎng)接口芯片ENC28J60,建立TCP服務(wù)器任務(wù)以建立TCP連接并進行網(wǎng)絡(luò)圖像傳輸[9]。數(shù)據(jù)采集模塊主要進行初始化OV7670圖像傳感器芯片以進行圖像采集。
構(gòu)建TCP服務(wù)器任務(wù)使用ucos提供的任務(wù)創(chuàng)建函數(shù)OSTaskCreateExt在系統(tǒng)中建立TCP服務(wù)器任務(wù),以提供給遠程客戶端訪問接口。TCP服務(wù)器的構(gòu)建,首要任務(wù)是配置服務(wù)器平臺的MAC、IP、PORT,再構(gòu)建一個監(jiān)聽客戶機連接的循環(huán)體,對接收的數(shù)據(jù)包進行判定,完成與客戶端間的握手信號,然后通過應(yīng)用層數(shù)據(jù)報文的解包獲取相應(yīng)應(yīng)用數(shù)據(jù),提取相關(guān)的命令,完成相應(yīng)數(shù)據(jù)的處理。其中需要完成對TCP/IP協(xié)議棧的支持,識別不同的報文類型,如ARP報文、ICMP報文和TCP三次握手連接報文。編寫TCP/IP相應(yīng)的數(shù)據(jù)包的接收函數(shù)與數(shù)據(jù)包的發(fā)送函數(shù),需要嚴格按照TCP/IP的5層分層模型來封裝和解封裝。對于發(fā)送數(shù)據(jù)包來說,需要對數(shù)據(jù)段按照物理層、網(wǎng)絡(luò)層、鏈路層協(xié)議進行打包[10]。當接收到數(shù)據(jù)后需要對其進行分析,提取出有效信息,然后對圖像采集部分與SD數(shù)據(jù)存儲部分進行控制。TCP服務(wù)器處理流程如圖5所示。
數(shù)據(jù)采集模塊在ucos系統(tǒng)建立一個圖像采集任務(wù),通過SCCB總線讀寄存器,將采集的數(shù)據(jù)傳遞給網(wǎng)絡(luò)模塊進行實時傳輸,同時傳遞給SD模塊進行保存,并通過LCD屏進行顯示。
本設(shè)計是以STM32F103作為開發(fā)平臺,基于μC/OS-II所進行的網(wǎng)絡(luò)視頻傳輸?shù)囊环N嘗試,雖然完成了基本功能的演示,但是在實測過程中出現(xiàn)了視頻卡、響應(yīng)慢等缺陷,需要進一步探究[11]。對于在有限資源基礎(chǔ)上進行大數(shù)據(jù)傳輸?shù)囊环N嘗試,還有很多需要改進的地方,包括改進視頻壓縮算法,進行網(wǎng)絡(luò)連接控制和數(shù)據(jù)傳輸分離,將視頻服務(wù)器改用UDP傳輸?shù)取?/p>
圖5 TCP服務(wù)器解包流程
[1]吳曉健.視頻監(jiān)控發(fā)展趨勢和方案比較[J].電子設(shè)計技術(shù), 2011, 18(6):58-59.
[2]羅鏗.網(wǎng)絡(luò)視頻傳輸系統(tǒng)研究和設(shè)計[D].南京理工大學(xué), 2012.
[3]李秦川.基于光學(xué)相機的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué), 2013.
[4]楊濤.基于S3C2440的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:武漢理工大學(xué), 2012.
[5]姚文詳,宋巖.ARM Cortex-M3權(quán)威指南:The definitive guide to the ARM Cortex-M3[M].北京:北京航空航天大學(xué)出版社, 2009:23-168
[6]SEO C W, HAN J K, NGUYEN T Q.Rate control scheme for consistent video quality in scalable video codec.[J].IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society, 2011, 20(8):2166-2176.
[7]RAVI A.Performance analysis and comparison of Dirac video codec with H.264 / MPEG-4 part 10 AVC[J].Dissertations & Theses-Gradworks, 2009, 9(4):635-654.
[8]徐飛.淺析圖像壓縮編碼方法[J].電腦知識與技術(shù), 2010,6(23):6584-6586.
[9]SISALEM D, WOLISZ A.Towards TCP-Friendly Adaptive Multimedia Applications Based on RTP[C]//IEEE International Symposium on Computers and Communications.[S.L.]:IEEE, 1999:166.
[10]CORBETJ, RUBINI A, GREG.Linux設(shè)備驅(qū)動程序[M].北京:中國電力出版社, 2006:23-132.
[11]WU D, HOU Y T, ZHANG Y Q.Transporting real-time video over the Internet: challenges and approaches[J].Proceedings of the IEEE, 2000, 88(12):1855-1877.
The Study of Network Video Transmission Based on Limited Resources
LI Mingjin
(Department of Microelectronics Technology, Chengdu Colledge of University of Electronic Science and Technology of China, Chengdu 611731, China)
How to solve the contradiction between resources and capabilities is critical for embedded development.In this paper, a framework of network video transmission based on MCU (such as SCM)or the same level of the platform is studied,a framework of network video transmission from the system level is implemented, and TCP/IP protocol stack is implemented using a software based on STM32F103 single chip computer, image collection module is realized using OV7670 image sensor and the FIFO chip AL422B, the ENC28J60 communications module is implemented by SPI network controller.This paper designs a network-based video image transmission system, and discusses the resource requirements of each module in the system and the problems to be solved.This video image transmission system can be used for remote jobs, Home and others image less real-time network monitoring.
network video transmission;μC/OS-II;TCP/IP protocol stack; STM32F103;ENC28J60
2015-10-20;修改日期:2016-11-24
李明進(1977-),男,講師,主要從事計算機網(wǎng)絡(luò)與嵌入式系統(tǒng)的研究工作。
TN919.8
A
10.3969/j.issn.1672-4550.2017.01.015