嵌入式Linux系統(tǒng)下的視頻服務(wù)器解析方案
0 引言
本文引用地址:http://m.butianyuan.cn/article/171497.htm通信網(wǎng)絡(luò)已經(jīng)普及到人類(lèi)生活的各個(gè)方面,布控區(qū)域廣闊的網(wǎng)絡(luò)視頻采集系統(tǒng)也在迅速的發(fā)展,嵌入式視頻采集系統(tǒng)的服務(wù)器直接連入已經(jīng)建成的網(wǎng)絡(luò),既沒(méi)有線(xiàn)纜長(zhǎng)度的限制,也沒(méi)有信號(hào)衰減的限制,通過(guò)沒(méi)有距離概念的網(wǎng)絡(luò),徹底拋棄了地域的限制。系統(tǒng)具有幾乎無(wú)限的無(wú)縫擴(kuò)展能力,所有設(shè)備都以IP地址劃分,增加設(shè)備只是意味著IP地址的增加,可組成非常復(fù)雜的視頻采集系統(tǒng),服務(wù)器輸出的視頻數(shù)據(jù)已完成模擬到數(shù)字的轉(zhuǎn)換并壓縮,采用TCP/IP協(xié)議在網(wǎng)絡(luò)上傳輸,支持跨網(wǎng)關(guān)、跨路由器的遠(yuǎn)程視頻信息傳輸。
本文根據(jù)網(wǎng)絡(luò)視頻采集的需要,將網(wǎng)絡(luò)傳輸與視頻采集相結(jié)合,設(shè)計(jì)了以S3C2440為核心的USB攝像頭視頻采集和嵌入式Linux系統(tǒng)下的視頻服務(wù)器,從而實(shí)現(xiàn)了遠(yuǎn)程網(wǎng)絡(luò)視頻信息采集。
1 系統(tǒng)總體設(shè)計(jì)
該系統(tǒng)是以ARM9處理器S3C2440為核心,在嵌入式Linux系統(tǒng)平臺(tái)下,通過(guò)USB攝像頭采集視頻信息,然后對(duì)所得到的視頻數(shù)據(jù)通過(guò)內(nèi)部總線(xiàn)送到視頻服務(wù)器MJPG-streamer上,視頻服務(wù)器經(jīng)過(guò)對(duì)圖像壓縮處理,經(jīng)過(guò)以太網(wǎng)傳輸出去,遠(yuǎn)端客戶(hù)機(jī)通過(guò)瀏覽器或者專(zhuān)用軟件訪(fǎng)問(wèn)視頻服務(wù)器,即可瀏覽現(xiàn)場(chǎng)信息,從而實(shí)現(xiàn)網(wǎng)絡(luò)視頻采集。系統(tǒng)總體如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)的硬件框圖如圖2所示。
系統(tǒng)處理器采用高性能ARM9處理器S3C2440,S3C2440是基于ARM920T核心的RISC處理器,主頻為400 MHz,實(shí)現(xiàn)了MMU,具有AMBA總線(xiàn)和哈佛結(jié)構(gòu)高速緩沖體系結(jié)構(gòu),有獨(dú)立的16 KB的指令緩存和16 KB的數(shù)據(jù)緩存。主要應(yīng)用于高性能,低價(jià)格,低功耗的嵌入式設(shè)備和手持設(shè)備。處理器內(nèi)部集成了完備的硬件資源,外部存儲(chǔ)控制器,4通道DMA,3通道的UART,2通道SPI,2通道USB主機(jī)和1通道USB設(shè)備,4通道PWM定時(shí)器和內(nèi)部看門(mén)狗定時(shí)器,130個(gè)GPIO等。
NAND FLASH采用K9F2G08,該存儲(chǔ)芯片容量大,高達(dá)256 MB,改寫(xiě)速度非???,易于使用,具有可靠的耐用性,適合用于大量數(shù)據(jù)存儲(chǔ),該FLASH以512 B為塊進(jìn)行讀寫(xiě)操作,通過(guò)輸入輸出接口傳送地址和命令,傳遞專(zhuān)門(mén)的數(shù)據(jù)接口與CPU相連,數(shù)據(jù)總線(xiàn)為8 b,寫(xiě)入操作必須在空白區(qū)域進(jìn)行,所以在改寫(xiě)數(shù)據(jù)時(shí)要先進(jìn)行擦除,然后再寫(xiě)入。
NAND FLAsH在本系統(tǒng)中用來(lái)存放bootloader引導(dǎo)代碼,Linux內(nèi)核代碼以及Yaffs文件系統(tǒng)。SDRAM為同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,類(lèi)似于PC機(jī)的內(nèi)存,在系統(tǒng)啟動(dòng)時(shí),先將內(nèi)核代碼從FLASH復(fù)制到SDRAM中,用來(lái)程序的讀取,存儲(chǔ),執(zhí)行,從而提高CPU讀取和寫(xiě)入數(shù)據(jù)的速度。本采用2片32 MB的HY57V作為系統(tǒng)內(nèi)存,把他們并聯(lián)起來(lái)形成32位的數(shù)據(jù)總線(xiàn),提高CPU的訪(fǎng)問(wèn)速度,增加運(yùn)行Linux系統(tǒng)的流暢性。由于SDRAM掉電不能保存數(shù)據(jù),所以要不斷的進(jìn)行動(dòng)態(tài)刷新來(lái)保存數(shù)據(jù),使用之前要進(jìn)行初始化。
目前最流行的以太網(wǎng)控制器是DAVICOM公司的DM9000網(wǎng)卡芯片,該芯片自適應(yīng)10 Mb/s和100 Mb/s的網(wǎng)絡(luò),處理器通過(guò)GPIO與網(wǎng)卡相連,支持3.3 V接口電壓,32位接口存儲(chǔ)器可以方便直接與S3C2440相連,在連接RJ-45接口,即可實(shí)現(xiàn)以太網(wǎng)物理層和數(shù)據(jù)鏈路層的連接。設(shè)備驅(qū)動(dòng)程序在Linux操作系統(tǒng)下可以方便的移植,故選擇此網(wǎng)卡芯片作為以太網(wǎng)控制器。攝像頭采用市場(chǎng)普通USB攝像頭,即插即用,處理器通過(guò)USB控制器控制攝像頭。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件可分為Bootloader,Linux內(nèi)核,Yaffs文件系統(tǒng)和MJPG-streamer視頻服務(wù)器,系統(tǒng)框圖如圖3所示。
“Bootloader是在操作系統(tǒng)運(yùn)行之前運(yùn)行的一段小程序,來(lái)完成硬件設(shè)備的初始化,從而將系統(tǒng)軟硬件環(huán)境帶到合適狀態(tài),為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備”。Bootloader可以從SAMSUNG公司官方網(wǎng)站下載,經(jīng)過(guò)交叉編譯生成Bin文件,下載到板子上。
Linux內(nèi)核采用Linux 2.6.32版本,運(yùn)行make menuconfig配置萬(wàn)能驅(qū)動(dòng)USB攝像頭,在Device Drivers下,選擇Multimedia device,選擇Video Capture adapters,選擇V4L USB devices,選擇GSPA based webcams,即可選擇萬(wàn)能驅(qū)動(dòng)USB攝像頭。
系統(tǒng)采用Yaffs文件系統(tǒng),Yaffs是專(zhuān)為嵌入式系統(tǒng)使用NAND型閃存而設(shè)計(jì)的一種日志型文件系統(tǒng)。它減少了一些功能,速度更快,掛載時(shí)間很短,對(duì)內(nèi)存的占用較小,所以系統(tǒng)采用Yaffs文件系統(tǒng)。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論