網(wǎng)路攝影監視系統設計與實(shí)現,包括原理圖、源代碼
1.摘要
遠端攝影監視被使用在越來(lái)越多的地方,例如:保全、道路 (流量) 監視、河川山坡地狀況監視等。電腦網(wǎng)路的發(fā)達,使得攝影監視也可以利用電腦網(wǎng)路來(lái)實(shí)現。本工作以 FPGA 嵌入式系統設計網(wǎng)路攝影監視系統。每一個(gè)本地攝影機配置一個(gè) IP,即可由遠端電腦監視各個(gè)地方的狀況。
1.1.背景資訊 (Background Information)
由於現在自然災害頻傳,並且社會(huì )安全,像是搶劫、闖空門(mén)等事故時(shí)有耳聞,交通事故發(fā)生機率也居高不下。若有一臺攝影機,再搭配現在廣為發(fā)達的網(wǎng)際網(wǎng)路,讓我們就算出遠門(mén)也可以隨時(shí)隨地監控攝影機,隨時(shí)了解特定點(diǎn)的狀況,也可以利用攝影機的預錄功能來(lái)觀(guān)看一些交通事故的發(fā)生經(jīng)過(guò),不但可以減少糾紛,還可以利用攝影機來(lái)監視是否有不肖業(yè)者在濫墾濫伐,進(jìn)而減少土石流的產(chǎn)生,然而可以做到這種功能的嵌入式系統,並非只有一種,以下是以FPGA嵌入式系統和較為普遍的ARM嵌入式系統所做的比較。
- FPGA與ARM嵌入式系統比較:
ARM | FPGA | |
調適性 | ARM開(kāi)發(fā)板在出廠(chǎng)時(shí)就已經(jīng)將線(xiàn)路部署好,也沒(méi)有較大的空間供使用者配置新的硬體與功能,調適性較低。 | FPGA開(kāi)發(fā)板是一款可以讓使用者自行規劃的板子,開(kāi)發(fā)板上只有一些比較基本的元件,再來(lái)就是依據使用者需求再自行安裝,調適性較高。 |
開(kāi)發(fā)性 | ARM開(kāi)發(fā)板由於內部的一些指令都已寫(xiě)入,所以對於使用者來(lái)說(shuō),就算只是新手,也可以很容易上手。 | FPGA開(kāi)發(fā)板由於需要自行架設一些必要的軟體,且網(wǎng)路上有關(guān)他的開(kāi)發(fā)資料又很少,所以在開(kāi)發(fā)上會(huì )比較困難。 |
智財保護 | 因為使用者只針對內部應用程式做修改,所以被盜用的機會(huì )較大 | 因為整體是由使用者自己開(kāi)發(fā),所以比較不會(huì )遭人盜用 |
價(jià)格 | 貴 | 便宜 |
2.系統軟硬體平臺簡(jiǎn)述與資源運用分析
2.1硬體架構
本專(zhuān)案採用XUPV5-LX110T開(kāi)發(fā)平臺,搭載Microblaze的嵌入式處理器,並擁有雙Flash PROMs(每個(gè)32 Mbyte)、100MHz系統時(shí)間產(chǎn)生器(Timer),其中高速乙太網(wǎng)路支援mll、gmll、rgmll和sgmll port,並且開(kāi)發(fā)套件包含1GB的CF Card、256M SODIMM模組。FPGA的優(yōu)點(diǎn)是可以自行設定晶片以建置客製化硬體功能,而本專(zhuān)案所設計的硬體架構精簡(jiǎn),所使用元件不多,這將可以減少開(kāi)發(fā)成本又可以達到本專(zhuān)案需求,硬體架構如圖1。
圖1 硬體架構圖
2.2.系統架構
本專(zhuān)案採用Linux 2.6作業(yè)系統,並預先載入USB、SD Card、Camera等裝置驅動(dòng)程式供上層使用,Libraries則是預先載入SDL(Simple Directmedia Layer),以供上層FFMpeg所包含的ffplay元件使用,操作人機介面是以網(wǎng)頁(yè)方式呈現,以Thttpd並利用網(wǎng)頁(yè)程式語(yǔ)言PHP與CGI實(shí)作,使Record Controller與FFMpeg可被CGI叫用,並達到執行影像側錄與播放影像功能,系統架構如圖2所示。
圖2 系統架構圖
2.3.資源運用分析
本系統平臺運用基本的硬體架構就可以達到我們的需求,開(kāi)機流程主要是先由放在Flash內的BIOS將晶片組和記憶體子系統初始化後把Kernel解壓縮到系統的主記憶體(MPMC)開(kāi)始執行,當開(kāi)始執行時(shí),首先會(huì )對系統進(jìn)行自我檢測以確定設備可以正常動(dòng)作,接著(zhù)將Local Memory載入到記憶體0X9CFF0000的位置開(kāi)始執行,再載入由作業(yè)系統的開(kāi)機磁區,進(jìn)入作業(yè)系統,完成開(kāi)機。I/O則是透過(guò)Local Bus與記憶體(MPMC)進(jìn)行資料傳輸,其中INIT是中斷處理程式控制器負責控制可編譯系統時(shí)間產(chǎn)生器(Timer),UART可讓使用者連接至本系統進(jìn)行設定,而擷取到的資料可以透過(guò)GPIO儲存到SD Card中,USB阜可以提供USB攝影機做連接。
3.系統實(shí)作內容
3.1.實(shí)作內容
本實(shí)作內容採用XUPV5-LX110T開(kāi)發(fā)平臺(如圖4)與Xilinx EDK 10.1.3開(kāi)發(fā)軟體建置本系統平臺,並利用Petalinux工具包將Linux2.6移植到平臺上,編輯過(guò)程,核心必須勾選支援USB、SD Card、Thttpd、Network、RS232等所需選項,由於Camera的驅動(dòng)在Petalinux工具並無(wú)支援,必須自行加入Camera的驅動(dòng)還有SDL媒體資料庫以及即時(shí)串流轉檔程式FFMpeg,再自行撰寫(xiě)應用程式達到控制效果。
圖4 XUPV5-LX110T硬體平臺
本專(zhuān)案硬體流程如圖5所示,利用現有USB介面安裝Camera供影像記錄用,當Camera裝置訊號流傳送到本系統,並透過(guò)匯流排將訊號傳送到MPMC儲存供MicroBlaze用,在透過(guò)系統軟體上的處理,在送到GPIO上的Storage裝置儲存。
圖5 硬體流程圖
本系統平臺主要功能是使用自行所撰寫(xiě)的程式Record Controller,利用此程式下達錄製指令, ffmpeg收到Record Controller所傳遞錄製訊號開(kāi)始錄製,當錄製完成回傳完成訊息給Record Controller,即儲存到儲存裝置。
圖6 系統流程圖
4.資料流向
圖7 資料流程圖
5.操作概念 (Operational Concept)
本系統主要分為三大部份,從Internet連結到登入頁(yè)面判斷使用者。如果使用者正確則登入到操作頁(yè)面,不正確則無(wú)法登入。進(jìn)入操作頁(yè)面後,可以點(diǎn)選播放即時(shí)影像,由操作頁(yè)面顯現出來(lái),或停止播放或下載錄影檔。
5.1測試流程
Step1:網(wǎng)頁(yè)即時(shí)播放、停止、暫停使用者經(jīng)過(guò)登入驗證後透過(guò)Virtex5將攝影機擷取影像並在網(wǎng)頁(yè)上進(jìn)行時(shí)撥放、停止、暫停等功能。
Step2 : 錄影
透過(guò)Record Controller傳送側錄時(shí)間指令,使ffmpeg開(kāi)始處理USB Camera所傳送進(jìn)來(lái)的影像訊號,在轉換成flv檔儲存起來(lái)。
圖8 錄影
Step3:循環(huán)式資料保存
當Record Controller發(fā)現Storage內所儲存之資料到達所設定之範圍,Record Controller則會(huì )下達刪除最早之資料,以達到循環(huán)效果。
圖9 循環(huán)式資料保存
5.2實(shí)作時(shí)程紀錄
圖10 甘特圖
6.預期功能與目標
本專(zhuān)案提供的功能有下列幾項:
- 本工作由 USB 介面攝影機拍攝產(chǎn)生影像數位信號。遠端電腦以 IP 連
入時(shí),開(kāi)啟一個(gè)含播放器之網(wǎng)頁(yè),播放即時(shí)攝影內容。
- 登入網(wǎng)頁(yè)可以進(jìn)入操作網(wǎng)頁(yè)。
- 操作頁(yè)面可以監看即時(shí)畫(huà)面與監看錄影。以及提供開(kāi)啟、關(guān)閉、暫停、下載錄影檔等功能。
- 根據使用者的操作,攝影機將影像檔存至SD卡內。
本專(zhuān)案以低成本的FPGA搭配基本的硬體架構加上作業(yè)系統,達到成本低、效率高、準確度高的需求。
7.目前實(shí)作完成進(jìn)度
目前我們已經(jīng)將Linux移植到開(kāi)發(fā)板上,並且有網(wǎng)路功能、web server功能和網(wǎng)頁(yè)的登入功能,以下是移植後的開(kāi)機畫(huà)面和登入頁(yè)面。另外攝影機可以在Linux的pc上擷取影像並使用ffmpeg轉檔錄影成flv格式,循環(huán)式資料保存已做到可以自動(dòng)新建檔案,建三個(gè)檔後自動(dòng)刪除最早開(kāi)啟的檔案。應用程式與驅動(dòng)方面我們已經(jīng)將ffmpeg轉檔程式和攝影機驅動(dòng)的媒體庫SDL交叉編譯成功。
圖11 開(kāi)機流程圖
圖12 開(kāi)機流程圖
圖13 登入頁(yè)面
8.可能遭遇之困難點(diǎn)及解決方法
8.1.遭遇之因難
由於開(kāi)發(fā)板上的usb驅動(dòng)晶片是需要付費的,所以沒(méi)辦法使用開(kāi)發(fā)板上的USB阜。
8.2解決方法
然而本專(zhuān)案針對上述之問(wèn)題提出一項解決之方法。使用外接模組的方法將USB模組接上開(kāi)發(fā)板。
9.未來(lái)進(jìn)度
USB阜功能完成後將我們的應用程式以及本專(zhuān)案所需要之程式移植到開(kāi)發(fā)板上,之後做測試。
8.結論
將攝影功能的處理配置到FPGA嵌入式系統開(kāi)發(fā)板上,可以讓以往動(dòng)輒上萬(wàn)的監視攝影系統的價(jià)錢(qián)下修至幾千元,再利用網(wǎng)路的普及,使用者可以輕輕鬆鬆透過(guò)網(wǎng)路觀(guān)看所拍攝到的影像,提高住家的生活品質(zhì)。將攝影機移到戶(hù)外更可以嚴防一些人為因素的災害,觀(guān)看到是否有有心人士任意破壞環(huán)境以及生態(tài)。
評論