国产91免费_国产精品电影一区_日本s色大片在线观看_中文在线免费看视频

您現在的位置: 通信界 >> 互聯網絡 >> 技術正文  
 
深入研究嵌入式web服務器視頻監(jiān)控的應用[圖]
[ 通信界 / 佚名 / www.6611o.com / 2012/7/5 21:24:59 ]
 

1.引言

后PC機時代的到來引發(fā)了信息產品的產生,而Internet與信息產品的結合是當今發(fā)展的一個趨勢,嵌入式Internet技術的產生正好迎合了這個趨勢。據分析,嵌入式Internet系統(tǒng)在Internet電話、游戲裝置和手持式通信裝置的推動下將會有突飛猛進的發(fā)展。由于Internet技術的滲透,嵌入式系統(tǒng)正變得越來越智能化并具有越來越多的網絡友好特性;又由于Web技術的飛速發(fā)展,給嵌入式系統(tǒng)帶入Internet提供了絕佳的途徑。

嵌入式web技術是視頻監(jiān)控系統(tǒng)設計應用最廣泛的技術之一。本文根據監(jiān)控系統(tǒng)對敖據吞吐量和安全可靠性等各方面的實際要求,結合相關研究的新進展,深入討論了web服務器在監(jiān)控系統(tǒng)設計中的應用技巧,并詳細做了實現上的闡述。對所有基于嵌入式web技術的監(jiān)控系統(tǒng)的設計具有非常實際的指導作用。

把圖像采集、視頻壓縮和WEB功能集中到一個體積很小的設備內,可以直接連入局域網和Internet,達到即插即用,省掉多種復雜的電纜,安裝方便,用戶也無須安裝任何硬件設備即可觀看,這使得由嵌入式網絡視頻監(jiān)控服務器組成的監(jiān)控網絡組網和擴展都極為靈活方便。

2.WEB服務器所在系統(tǒng)工作原理

如圖1所示,系統(tǒng)有兩種網絡接入方式:通過PPPOE自動撥號,動態(tài)獲取IP聯入Internet;自定義靜態(tài)IP連入局域網。

  之后,系統(tǒng)的整個工作流程包括兩條主線:

1.通過HTTP/TCP/IP方式,解析來自監(jiān)控端的網頁請求,包括:攝像機控制(云臺上下左右、鏡頭光圈、縮放等等),數據庫讀寫(視頻參數如分辨率、亮色度、碼流,畫質),視頻調度與傳輸(多個用戶之間視頻數據的發(fā)送停止及其相互協調,系統(tǒng)參數也放在這里)。

2.通過RTP/UDP/IP方式,為監(jiān)控端提供所需的實時視頻信息。RTP/UDP/IP的方式兼顧了視頻傳輸的實時性與QoS保證。

3.WEB服務器的選擇

根據工作原理的描述,WEB服務器處于整個系統(tǒng)核心的位置,需要解決的幾個難點包括:

1.安全性。只有授權登陸用戶才能進行系統(tǒng)配置(網絡參數、視頻特性等等)。普通用戶只能簡單監(jiān)控。

2.流量控制。視頻數據連續(xù)且大量,服務器應該具備一定的協調各路監(jiān)控數據的能力。

3.實時性。對于監(jiān)控端的web請求指令響應速度,特別是在高負荷的情況下。

4.性能。在多路監(jiān)控請求同時存在的情況下,系統(tǒng)的響應速度。

5.支持串口命令。云臺控制指令需要串口支持。

6.數據庫交互。包括用戶數據庫,系統(tǒng)配置參數等等,都需要實現脫機保存。

綜上所述,Thttpd在安全性、性能、流量控制等方面有效的滿足系統(tǒng)需要,當然,實時性也得到很好的保證。下面,結合源碼,首先實現Thttpd的基本功能,然后將視頻數據轉發(fā)、安全性、支持串口命令、數據庫交互的實現完善起來。

4.Thttpd基本功能的實現

首先,確保在編譯uCLinux內核的makemenucONfig這一步,選中busybox中的Thttpd。

然后,根據需要,修改源碼/user/thttpd下的config.h:

#defineDEFAULT_PORT80

//服務器監(jiān)聽端口

#defineDEFAULT_DIR/home/httpd

//設定服務器根目錄

#defineINDEX_nameindex.html

//設定訪問服務器時的默認主頁

#defineAUTH_FILEpasswd

//授權用戶數據庫文件

#defineCGI_PATTERN/cgi-bin/*.cgi

//CGI的文件名格式

#defineCGI_PATH/home/httpd/cgi-bin

//CGI的所在目錄

接下來,建立服務器根目錄和文件目錄:

由于uCLinux的根文件系統(tǒng)為ROMFS,只讀,因此要在生成文件系統(tǒng)映像之前建立好其中的目錄和文件。首先是Web服務器根目錄,再是根目錄下的子目錄:文件根目錄和CGI程序目錄。修改/vendor/Samsung/4510B/makefile文件,在ROMFS_DIRS列出的目錄中增加home/httpd(服務器根目錄和文件根目錄),home/httpd/cgi-bin(CGI程序目錄)。

最后,將監(jiān)控系統(tǒng)相關的網頁和CGI程序分別放在/vendor/Generic/httpd和/vendor/Generic/httpd/cgi-bin中,就可以隨內核編譯過程時自動復制到image的相關目錄下。在/vendor/Samsung/4510B/rc中添加thttpd實現上電自動執(zhí)行。

5.HTTP基本驗證(RFC2617)的實現

首先必須生成存放用戶及其密碼的數據庫文件:

由于Thttpd在http驗證的實現上基于b64_decode_table解密,因此需要提供相對應b64加密而成的數據庫文件。然后,編譯/user/htpasswd.c,切換到相應目錄下,

執(zhí)行。/htpasswd-cpasswdroot

Addingpasswordforroot.

Newpassword:

Re-typenewpassword:

其中,-c表示創(chuàng)建一個名字為passwd的新的用戶數據加密文件,同時第一個用戶名為root。

之后,將passwd文件復制到/vendor/Generic/httpd下面,并且注意在thttpd/config.h中define的AUTH_FILE與passwd同名。至此,thttpd的http驗證功能就順利添加完成。

6.視頻調度與傳輸

在本系統(tǒng)中,模擬視頻數據經過AD,采樣等預處理進入支持MPEG4編碼的ASIC芯片壓縮后,打包發(fā)送的任務由Thttpd完成。

在多個監(jiān)控端請求同時存在的情況下,指令響應本身Thttpd已經完成,所以我們只需要實現數據傳輸。

在main函數里Mainloop開始之前依次執(zhí)行get_device,driver_init,device_init和alloc_resource,interrupt_enable,device_STart,視頻流的編碼壓縮就開始了。添加定時器響應函數,(void)tmr_create((struCTTimeval*)0,transfer_bitstream,(ClientData)mpeg4_fd,0,1);

其中mpeg4_fd,是編碼芯片的設備描述符,transfer_bitstream為響應函數(內容略)。

然后,根據Thttpd連接請求的變化,在handle_read與handle_send中添加簡單相應連接有效性判斷的代碼即可完成數據調度與傳輸的功能。

7.串口命令支持

云臺控制指令的發(fā)送需要RS485的支持。

在thttpd.c的main函數里添加設備支持:打開串口設備。

intcom1fd=open(/dev/ttyS1,O_RDWR|O_NOCTTY);

傳輸波特率的設定:

tcgetattr(com1fd,&oldtio);

cfmakeraw(&oldtio);

cfsetispeed(&oldtio,B9600);

cfsetospeed(&oldtio,B9600);

tcsetattr(com1fd,TCSANOW,&oldtio);

在libhttpd.c里包含定義云臺信令的頭文件后,在httpd_parse_request中添加如下代碼,

memcpy(CMD,YT_FOCUS_IN,YT_CMD_NUM);

將web請求轉換為對應的云臺信令存儲在cmd數組中,最后,由于uclinux把所有設備作為文件操作,所以可以通過write(com1fd,cmd,YT_CMD_NUM);將云臺信令正確發(fā)出去。

8.配置信息的保存(MTD驅動的實現)

uCLinux在ARM上移植過程中,它是在BootlOAder初始化系統(tǒng)并重映射內存后,由Bootloader將Kernel和根文件系統(tǒng)的映像從FLASH上直接復制到RAMuCLinux系統(tǒng)起始地址(0x8000),然后通過設定PC值將控制權交給uCLinux。

這種方式采用的是ROMFS文件系統(tǒng),系統(tǒng)結構簡單,實現方便,但ROMFS是只讀文件系統(tǒng)。RAM盤雖可寫但一旦掉電就會丟失內容。若想長久保存應用程序的配置文件可采用兩種方法:一種是將flash上劃出幾個固定的扇區(qū)可讀可寫,用以專門存放所有要用到的配置文件;另一種是建立可寫的JFFS2文件系統(tǒng)。前一種方法代碼簡單、靈活,適用于不太頻繁的文件寫入。后一種實現起來也比較簡單,但時間、空間等方面的代價要高于前一種,適用于非常頻繁的文件寫入(比如一分鐘超過十次)。基于本系統(tǒng)中對配置數據存儲的實時性要求不高,而嵌入式資源又十分寶貴,因此考慮采用第一種方法,這就是MTD(memorytechnologydevice內存技術設備)。MTD是用于訪問memory設備(ROM、flash)的Linux的子系統(tǒng)。其所有源代碼在/drivers/mtd子目錄下。

由于MTD的主要目的是為了使新的memory設備的驅動更加簡單,因為它介于特定的閃存設備和文件系統(tǒng)之間,可以理解為它在硬件和上層之間提供了一個抽象的接口。所以硬件驅動程序不需要知道象JFFS2和FTL那樣的用戶模塊使用的方法。所有它們真正需要提供的就是一組對底層閃存進行read、write和erase操作的簡單例程,即/mtd目錄下mtd-utils.c相應函數。將mtd-utils.c繼承過來,另外,加上手工添加的flash分區(qū)表即可達到配置文件保存的目的。

配置信息的保存

本系統(tǒng)只有一片FLASH,大小為2M。擬分區(qū)如下:

nAME:bootloader(128KB),

size:0x20000,

offset:0x0,

mask_flags:MTD_WRITEABLE//只讀分區(qū)

name:kernel&rootfs(1856KB),

size:0x1D0000,

offset:0x20000

name:Systemconfig(64KB),

size:0x10000,

offset:0x1F0000

將包含本分區(qū)表的文件放在drivers/mtd/map下,并修改相應的makefile使之編譯時有效。

然后,選擇適當的MTD用戶模塊,啟用對閃存的訪問:MTD_CHAR和MTD_BLOCK。MTD_CHAR提供對閃存的原始字符訪問,而MTD_BLOCK將閃存設計為可以在上面創(chuàng)建文件系統(tǒng)的常規(guī)塊設備(象IDE磁盤)。與MTD_CHAR關聯的設備是在/vendor/Samsung/4510B/makefile的DEVICES中添加mtd0,c,90,0、mtd1,c,90,2、mtd2,c,90,4,而與MTD_BLOCK關聯的設備是添加mtdblock0,b,30,0、mtdblock1,b,30,1、mtdblock2,b,30,2。

最后,需要將MTD子系統(tǒng)編譯到內核中,即打開makemenuconfig里MTD相關的選項。

9.配置信息的管理

在thttpd.c的main函數,加入open(/dev/mtd2,O_RDWR)可打開mtdblock2。將drivers/mtd下mtd-utils.c復制到user/thttpd目錄下,即可使用其中的一些函數方便的實現flash的read和write操作。

10.結語

對于嵌入式Web服務器的研究和應用,其意義是重大的。它為我們管理、控制和監(jiān)測各種各樣設備提供了一個很好的途徑。這種設備可以是具有有限內存資源的8位或16位系統(tǒng),已足夠提供一個用戶界面,而且這種方式是基于Internet的。這種設備可以在世界任何一個地方,只要它連入Internet就能夠控制它。

目前國外的相關研究很多,如Pharlap公司的MicroWeb、AgranatSystems公司的EmWeb、EmWare公司的emMicro、Allegro公司的RomPager、WindRiver公司的Wind,還有Boa、Enea、PicoWeb、ChipWeb、Ipic、NetAcquire、Voyager、Quiotix等。國內的有Webit。

創(chuàng)新:

1. 嵌入式web技術的應用已越來越廣泛,但大多采用比較簡單的服務器BOA,真正深入應用功能更強大的Thttpd的方案少之又少,本文正是Thttpd在實際應用中的深入研究。

2. 本文根據監(jiān)控系統(tǒng)對數據吞吐量和安全可靠性等各方面的實際要求,結合相關研究的新進展,深入討論了web服務器在監(jiān)控系統(tǒng)設計中的應用技巧,并詳細做了實現上的闡述。文中涉及的某些技術應用技巧,譬如web server的功能框圖,可廣范應用于各種基于嵌入式web技術的系統(tǒng)中去。譬如路由器設計。

參 考 文 獻

[1] Thttpd 網站。http://www.acme.com/software/thttpd/

[2] Wayne Wolf. Computers as Components Principle of Embedded System Design [M]. Princeton University, 2002.

[3] 錢 斌,徐海云。 嵌入式 web 服務器在 CTM 系統(tǒng)中的應用[J].微計算機信息,2006,17(5): 99-101.

[4] Greg Holden. Apache Server源代碼分析[M]. 北京: 機械工業(yè)出版社, 2000.

 

作者:佚名 合作媒體:不詳 編輯:顧北

 

 

 
 熱點技術
普通技術 “5G”,真的來了!牛在哪里?
普通技術 5G,是偽命題嗎?
普通技術 云視頻會議關鍵技術淺析
普通技術 運營商語音能力開放集中管理方案分析
普通技術 5G網絡商用需要“無憂”心
普通技術 面向5G應運而生的邊緣計算
普通技術 簡析5G時代四大關鍵趨勢
普通技術 國家網信辦就《數據安全管理辦法》公開征求意見
普通技術 《車聯網(智能網聯汽車)直連通信使用5905-5925MHz頻段管理規(guī)定(
普通技術 中興通訊混合云解決方案,滿足5G多元業(yè)務需求
普通技術 大規(guī)模MIMO將帶來更多無線信道,但也使無線信道易受攻擊
普通技術 蜂窩車聯網的標準及關鍵技術及網絡架構的研究
普通技術 4G與5G融合組網及互操作技術研究
普通技術 5G中CU-DU架構、設備實現及應用探討
普通技術 無源光網絡承載5G前傳信號可行性的研究概述
普通技術 面向5G中傳和回傳網絡承載解決方案
普通技術 數據中心布線系統(tǒng)可靠性探討
普通技術 家庭互聯網終端價值研究
普通技術 鎏信科技CEO劉舟:從連接層構建IoT云生態(tài),聚焦CMP是關鍵
普通技術 SCEF引入需求分析及部署應用
  版權與免責聲明: ① 凡本網注明“合作媒體:通信界”的所有作品,版權均屬于通信界,未經本網授權不得轉載、摘編或利用其它方式使用。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:通信界”。違反上述聲明者,本網將追究其相關法律責任。 ② 凡本網注明“合作媒體:XXX(非通信界)”的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。 ③ 如因作品內容、版權和其它問題需要同本網聯系的,請在一月內進行。
通信視界
華為余承東:Mate30總體銷量將會超過兩千萬部
趙隨意:媒體融合需積極求變
普通對話 苗圩:建設新一代信息基礎設施 加快制造業(yè)數字
普通對話 華為余承東:Mate30總體銷量將會超過兩千萬部
普通對話 趙隨意:媒體融合需積極求變
普通對話 韋樂平:5G給光纖、光模塊、WDM光器件帶來新機
普通對話 安筱鵬:工業(yè)互聯網——通向知識分工2.0之路
普通對話 庫克:蘋果不是壟斷者
普通對話 華為何剛:挑戰(zhàn)越大,成就越大
普通對話 華為董事長梁華:盡管遇到外部壓力,5G在商業(yè)
普通對話 網易董事局主席丁磊:中國正在引領全球消費趨
普通對話 李彥宏:無人乘用車時代即將到來 智能交通前景
普通對話 中國聯通研究院院長張云勇:雙輪驅動下,工業(yè)
普通對話 “段子手”楊元慶:人工智能金句頻出,他能否
普通對話 高通任命克里斯蒂安諾·阿蒙為公司總裁
普通對話 保利威視謝曉昉:深耕視頻技術 助力在線教育
普通對話 九州云副總裁李開:幫助客戶構建自己的云平臺
通信前瞻
楊元慶:中國制造高質量發(fā)展的未來是智能制造
對話亞信科技CTO歐陽曄博士:甘為橋梁,攜"電
普通對話 楊元慶:中國制造高質量發(fā)展的未來是智能制造
普通對話 對話亞信科技CTO歐陽曄博士:甘為橋梁,攜"電
普通對話 對話倪光南:“中國芯”突圍要發(fā)揮綜合優(yōu)勢
普通對話 黃宇紅:5G給運營商帶來新價值
普通對話 雷軍:小米所有OLED屏幕手機均已支持息屏顯示
普通對話 馬云:我挑戰(zhàn)失敗心服口服,他們才是雙11背后
普通對話 2018年大數據產業(yè)發(fā)展試點示范項目名單出爐 2
普通對話 陳志剛:提速又降費,中國移動的兩面精彩
普通對話 專訪華為終端何剛:第三代nova已成為爭奪全球
普通對話 中國普天陶雄強:物聯網等新經濟是最大機遇
普通對話 人人車李健:今年發(fā)力金融 拓展汽車后市場
普通對話 華為萬飚:三代出貴族,PC產品已走在正確道路
普通對話 共享退潮單車入冬 智享單車卻走向盈利
普通對話 Achronix發(fā)布新品單元塊 推動eFPGA升級
普通對話 金柚網COO邱燕:天吳系統(tǒng)2.0真正形成了社保管