嵌入式和碼分多址實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控系統(tǒng)
4.1 控制終端程序設(shè)計(jì)
控制終端軟件的核心是嵌入式Linux操作系統(tǒng),一切功能的實(shí)現(xiàn)都基于 Linux操作系統(tǒng)完成,Linux本身作為一個(gè)桌面系統(tǒng),進(jìn)入嵌入式操作系統(tǒng)領(lǐng)域時(shí),需要解決的問(wèn)題主要包括硬件支持、提供二次開(kāi)發(fā)的環(huán)境以及小型化(裁減內(nèi)核)等,小型化的目的是在滿足操作系統(tǒng)基本功能和用戶特定需要的情況下,使內(nèi)核盡可能小,作為一個(gè)操作系統(tǒng),Linux內(nèi)核主要負(fù)責(zé)程序的管理與調(diào)度、內(nèi)存的管理及對(duì)外設(shè)的驅(qū)動(dòng)和管理等,由于Linux內(nèi)核采用模塊化的設(shè)計(jì),很多模塊可以獨(dú)立地加載或卸載,所以小型化就是對(duì)Linux內(nèi)核重新編譯,在編譯時(shí)仔細(xì)地選擇嵌入式設(shè)備所需要的功能模塊,同時(shí)刪除不需要的功能,這里只需要串口驅(qū)動(dòng)、USB攝像頭接口驅(qū)動(dòng)(包含USB Host,USB Core和USB Device)還有撥號(hào)網(wǎng)絡(luò)應(yīng)用,還要支持PPP、TCP/IP網(wǎng)絡(luò)協(xié)議,其他都可以刪除掉,使系統(tǒng)運(yùn)行所需要的內(nèi)核顯著減小至1Mb以內(nèi)。
具體程序設(shè)計(jì)包括Bootloader啟動(dòng)代碼、設(shè)備驅(qū)動(dòng)程序(USB攝像頭接口驅(qū)動(dòng)程序、串口驅(qū)動(dòng)程序)、撥號(hào)、PPP及TCP/IP協(xié)議處理,監(jiān)控接收轉(zhuǎn)發(fā)控制程序等??刂屏鞒倘鐖D3所示。
a)系統(tǒng)加電后復(fù)位。
b)Bootloader初始化CPU、SDRAM、分配地址空間等。
c) Bootloader把Linux內(nèi)核的壓縮文件解壓到SDRAM中,同時(shí)把控制權(quán)從Bootloader移交到Linux。Linux的內(nèi)核有兩種運(yùn)行方式可供選擇??梢栽贔lash存儲(chǔ)器上直接運(yùn)行,也可以加載到內(nèi)存中運(yùn)行。Flash存儲(chǔ)器運(yùn)行方式就是把內(nèi)核的可執(zhí)行映像燒寫到Flash存儲(chǔ)器上,系統(tǒng)啟動(dòng)時(shí)從Flash存儲(chǔ)器的某個(gè)地址開(kāi)始運(yùn)行內(nèi)核,進(jìn)入SDRAM繼續(xù)運(yùn)行,這種做法能減少內(nèi)存需要,實(shí)際上很多嵌入式系統(tǒng)都采用這種方法,內(nèi)存加載方式把內(nèi)核的壓縮文件存放在Flash存儲(chǔ)器上,系統(tǒng)啟動(dòng)時(shí)自動(dòng)讀取壓縮文件并在內(nèi)存中解壓,然后開(kāi)始執(zhí)行,這種方式相對(duì)較復(fù)雜,但運(yùn)行速度更快,我們采用的就是這種方式。
d)開(kāi)始執(zhí)行SDRAM中的代碼,Linux內(nèi)核初始化,完成堆棧,中斷的分配等。
e)加載串口驅(qū)動(dòng)模塊和USB攝像頭驅(qū)動(dòng)模塊,完成串口和USB口的初始化。
f)運(yùn)行PPP撥號(hào)程序,通過(guò)CDMA網(wǎng)絡(luò)與Internet進(jìn)行連接,在Linux下的PPP包是專門為解決Modem撥號(hào)上網(wǎng)問(wèn)題而編寫的,并且是公開(kāi)源代碼的,PPP撥號(hào)腳本程序主要是通過(guò)調(diào)用pppd和chat這兩個(gè)應(yīng)用程序,并通過(guò)AT指令實(shí)現(xiàn)對(duì)Modem的操作。
至此,已經(jīng)建立了從圖像采集到圖像傳輸?shù)耐暾那度胧?a class="contentlabel" href="http://www.biyoush.com/news/listbylabel/label/監(jiān)控系統(tǒng)">監(jiān)控系統(tǒng),但是,作為一個(gè)嵌入式操作系統(tǒng),他是為某一專門的用途而設(shè)計(jì)的。運(yùn)行不同的用戶應(yīng)用程序,就可以實(shí)現(xiàn)用戶要求的不同功能,生動(dòng)地體現(xiàn)了嵌入式系統(tǒng)的靈活性。
我們運(yùn)行的用戶程序是一個(gè)無(wú)限循環(huán)的過(guò)程,控制終端在不斷等待拍照請(qǐng)求,通過(guò)比較識(shí)別認(rèn)為有請(qǐng)求后,CPU通過(guò)USB攝像頭驅(qū)動(dòng)控制攝像頭拍照,同時(shí)接收?qǐng)D片并發(fā)送控制中心,或通過(guò)SMTP協(xié)議,發(fā)送到指定的Email地址,完成一次請(qǐng)求。
4.2 控制中心服務(wù)器程序設(shè)計(jì)
服務(wù)器端軟件實(shí)現(xiàn)的主要功能是接收、保存和重顯由嵌入式終端發(fā)送過(guò)來(lái)的監(jiān)控圖片,控制中心主機(jī)通過(guò)撥號(hào)、帶寬上網(wǎng)等方式登錄到Internet上,注意必須申請(qǐng)一個(gè)靜態(tài)IP地址,使主機(jī)每次登錄到Internet所獲得的IP地址(互聯(lián)網(wǎng)IP地址)不變,主機(jī)登錄Internet后,即可運(yùn)行服務(wù)器端軟件,服務(wù)器端程序設(shè)計(jì)主要包括網(wǎng)絡(luò)通信、接收?qǐng)D片、保存圖片、即時(shí)重顯圖片和察看圖片,用戶通過(guò)此軟件可以方便地瀏覽由控制終端發(fā)來(lái)的圖片。
另一種方案是不設(shè)置控制中心服務(wù)器,控制終端抓怕到的圖片直接發(fā)送到指定的Email地址,這種方案容易管理,只需定期查收Email,清除Email存儲(chǔ)空間即可,運(yùn)行成本很低,但可靠性差。
5 結(jié)束語(yǔ)
利用無(wú)線網(wǎng)絡(luò)與IT技術(shù)對(duì)傳統(tǒng)監(jiān)控領(lǐng)域進(jìn)行革新,是市場(chǎng)的需要,在這個(gè)過(guò)程中,嵌入式系統(tǒng)因其體積小、處理能力強(qiáng)、支持網(wǎng)絡(luò)服務(wù)等功能,無(wú)疑扮演了重要角色。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論