<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的遠(yuǎn)程無(wú)線(xiàn)視頻監(jiān)控終端設(shè)計(jì)

          基于ARM的遠(yuǎn)程無(wú)線(xiàn)視頻監(jiān)控終端設(shè)計(jì)

          作者: 時(shí)間:2011-02-03 來(lái)源:網(wǎng)絡(luò) 收藏


          1.2 中央管理控制模塊
          中央管理控制模塊是以嵌入式ARM微處理器為核心,實(shí)現(xiàn)視頻圖像信號(hào)的采集與壓縮管理、視頻圖像數(shù)據(jù)的收發(fā),以及控制信號(hào)的解釋執(zhí)行等。該中央管理控制模塊包括:電源和復(fù)位電路、系統(tǒng)時(shí)鐘電路、Flash存儲(chǔ)器接口電路、SDRAM接口電路、JTAG接口電路、串行接口電路等。
          1.3 無(wú)線(xiàn)傳輸模塊
          無(wú)線(xiàn)傳輸模塊采用GPRS Modem傳輸壓縮后的視頻圖像數(shù)據(jù),GPRS Modem中的MC55無(wú)線(xiàn)模塊闈具有3頻段,適用于歐洲和亞洲的頻段:90 0,1 800和1 900 MHz,其3種頻段的切換可由AT指令控制。MC55模塊是系統(tǒng)的無(wú)線(xiàn)網(wǎng)絡(luò)接口,具有GPRS class-10多時(shí)隙功能,class-B操作模式,支持增強(qiáng)型AT命令集,模塊自帶TCP/IP協(xié)議棧。嵌入式微處理器S3C2440通過(guò)串口與GPRS Modem提供的串口相連,所有數(shù)據(jù)都通過(guò)串口實(shí)現(xiàn)交換。嵌入式微處理器S3C2440與GPRS Modem連接的電路原理圖如圖4所示。



          2 監(jiān)控終端的軟件設(shè)計(jì)
          監(jiān)控終端的軟件設(shè)計(jì)是基于嵌入式Linux操作系統(tǒng)的,其模塊框圖如圖5所示。


          1)在監(jiān)控終端硬件基礎(chǔ)上搭建一個(gè)軟件平臺(tái)即操作系統(tǒng)層,搭建的軟件開(kāi)發(fā)平臺(tái)需要完成系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)(U-BOOT的修改與移植)、嵌入式Linux操作系統(tǒng)內(nèi)核的移植以及設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)等。系統(tǒng)啟動(dòng)代碼即Bootloader是在操作系統(tǒng)內(nèi)核之前運(yùn)行的一段小程序。通過(guò)這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。通過(guò)對(duì)U-Boot-1.3.3的修改和移植完成系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)。監(jiān)控終端軟件的核心是嵌入式Linux操作系統(tǒng),一切功能的實(shí)現(xiàn)都基于Linux操作系統(tǒng)完成的。嵌入式Linux操作系統(tǒng)內(nèi)核采用Linux 2.6.26的內(nèi)核版本,并對(duì)其進(jìn)行配置,實(shí)現(xiàn)操作系統(tǒng)在監(jiān)控終端硬件平臺(tái)上的移植。根文件系統(tǒng)是指嵌入式Linux系統(tǒng)啟動(dòng)時(shí)所使用的第一個(gè)文件系統(tǒng),在啟動(dòng)內(nèi)核時(shí)需要掛載根文件系統(tǒng)來(lái)支持訪(fǎng)問(wèn)外部設(shè)備,以及裝載和運(yùn)行內(nèi)核模塊與應(yīng)用程序,通過(guò)BusyBox1.6.1進(jìn)行配置實(shí)現(xiàn)了根文件系統(tǒng)的建立,同時(shí)通過(guò)Cramfs工具包,制作了Cramfs文件系統(tǒng)。
          嵌入式Linux系統(tǒng)內(nèi)核通過(guò)設(shè)備驅(qū)動(dòng)程序與外圍設(shè)備進(jìn)行交互,設(shè)備驅(qū)動(dòng)程序是一組數(shù)據(jù)結(jié)構(gòu)和函數(shù),它們通過(guò)定義的接口控制一個(gè)或多個(gè)設(shè)備,設(shè)計(jì)了IME6400驅(qū)動(dòng)程序和MC55驅(qū)動(dòng)程序。將IME6400按照字符設(shè)備來(lái)處理,編寫(xiě)一個(gè)字符設(shè)備驅(qū)動(dòng)。字符設(shè)備是Linux中最簡(jiǎn)單的設(shè)備,應(yīng)用程序使用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用打開(kāi)、讀取、寫(xiě)和關(guān)閉。內(nèi)核使用file_operations結(jié)構(gòu)訪(fǎng)問(wèn)驅(qū)動(dòng)程序的函數(shù),open()函數(shù)用于完成設(shè)備打開(kāi)計(jì)數(shù)、中斷申請(qǐng)和環(huán)形緩沖區(qū)的初始化工作;release()函數(shù)的用法和作用正好與open()函數(shù)相反;ioctl()函數(shù)用于提供各種各樣的硬件控制,即應(yīng)用程序需要通過(guò)ioctl()函數(shù)來(lái)讀取和修改環(huán)形緩沖區(qū)的標(biāo)識(shí)變量。MC55的設(shè)備驅(qū)動(dòng)程序主要包括MC55的file_operations數(shù)據(jù)結(jié)構(gòu)及MC55的打開(kāi)、關(guān)閉、讀、寫(xiě),MC55的硬件初始化等函數(shù)。MC55的打開(kāi)函數(shù)MC55_open()用于實(shí)現(xiàn)GPRS設(shè)備的打開(kāi);關(guān)閉函數(shù)MC55_close()用于實(shí)現(xiàn)GPRS設(shè)備的關(guān)閉;讀函數(shù)MC55_read()用于實(shí)現(xiàn)數(shù)據(jù)的讀取接收;寫(xiě)函數(shù)MC55_write()用于實(shí)現(xiàn)數(shù)據(jù)的發(fā)送;I/O初始化程序MC55_ hardware_init()實(shí)現(xiàn)對(duì)GPRS設(shè)備輸入、輸出端口的初始化;MC55的初始化程序void_initMC55_init()完成對(duì)GPRS設(shè)備的初始化工作。
          2)在軟件平臺(tái)的基礎(chǔ)上,開(kāi)發(fā)系統(tǒng)的應(yīng)用程序即應(yīng)用層。借助交叉編譯工具,開(kāi)發(fā)視頻監(jiān)控終端上運(yùn)行的采集、壓縮、傳輸程序。監(jiān)控終端的應(yīng)用程序主要包括MPGE4壓縮編碼模塊控制程序和GPRS模塊傳輸數(shù)據(jù)的程序,同時(shí)還要對(duì)視頻A/D轉(zhuǎn)換器SAA7111A的工作方式進(jìn)行配置。
          SAA7111A工作方式的配置是微處理器S3C2440通過(guò)I2C總線(xiàn)對(duì)其內(nèi)部32個(gè)寄存器的配置實(shí)現(xiàn)的。SAA7111A初始化設(shè)定為:1路模擬視頻信號(hào)輸入(AI11)、自動(dòng)增益控制、PAL制式、YUV4:2:2的16位數(shù)字視頻信號(hào)輸出。由于輸入視頻信號(hào)屬于PAL制式,需要把寄存器08H中的FSEL(50、60 Hz場(chǎng)頻選擇)位設(shè)置為0;另外還需要把該寄存器中的HPLL(鎖相環(huán)使能選擇)位設(shè)置為O,使HREF(行輸出參考)、VREF(場(chǎng)輸出參考)信號(hào)輸出同步;把寄存器11H中的COLO位設(shè)置為1。表示Y和C通道同時(shí)工作;把11H中的OEHV、OEYC位設(shè)置為11,功能是使能芯片的VPO、HS、VS、HREF、VREF這些輸出端口。



          關(guān)鍵詞: arm

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();