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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一個嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)

          一個嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)

          作者: 時間:2012-04-10 來源:網(wǎng)絡(luò) 收藏

          (1) 解碼器模塊:采用SAA7114H解碼芯片,主要功能是將1路模擬量化后形成YUV數(shù)據(jù)格式通過并行輸出端口傳輸?shù)絀ME6410視頻MPEG-4壓縮處理單元。

          本文引用地址:http://www.ex-cimer.com/article/171658.htm

          (2) 音頻編解碼器模塊:主要是完成模擬音頻到數(shù)字音頻的解碼工作,采樣速率32K bps。

          (3) MPEG-4壓縮處理器模塊:數(shù)字視頻數(shù)據(jù)編碼壓縮工作由INTIME公司的IME6410視/音頻壓縮處理器完成。微控制器通過主機接口對IME6410配置和接收壓縮得到的視頻碼流。

          (4) SDRAM模塊:IME6410和網(wǎng)絡(luò)處理器S3C2500B各需要一片SDRAM,為DSP和網(wǎng)絡(luò)處理器中程序運行提供外部存儲器。

          (5) FLASH模塊:用來存儲DSP和網(wǎng)絡(luò)處理器中運行的程序。

          (6) 網(wǎng)絡(luò)處理器模塊:選用SAMSUNG的ARM940T內(nèi)核的S3C2500B網(wǎng)絡(luò)處理器,S3C2500B將編碼后的視頻/音頻數(shù)據(jù)流打包形成標準的網(wǎng)絡(luò)數(shù)據(jù)流并傳輸?shù)揭蛱鼐W(wǎng)中。用戶可通過互聯(lián)網(wǎng)發(fā)送命令,對IP編碼器進行參數(shù)調(diào)整,例如編碼的幀率、編碼效率、圖像質(zhì)量、IP地址設(shè)定等。

          (7) 異步串口:支持RS-232、RS-422/485等多種協(xié)議,用于和PC通訊和控制攝像頭。用戶可根據(jù)需要設(shè)置系統(tǒng)的工作參數(shù),例如網(wǎng)絡(luò)的IP地址,編碼的幀率、編碼效率、圖像質(zhì)量等。

          (8) I/O模塊:通用I/O接口可以滿足用戶的控制目的,例如攝像機的鏡頭焦距控制等。

          (9) PHY層網(wǎng)絡(luò)接口:完成調(diào)制、解調(diào)功能。

          3 視頻服務(wù)器軟件的

          uCLinux具有精巧、高效的內(nèi)核,完整的網(wǎng)絡(luò)功能和良好的可裁剪性,它內(nèi)置的TCP/IP協(xié)議找、良好的開放性和可擴展性以及高效的任務(wù)管理,能夠滿足數(shù)字視頻服務(wù)器的要求[5]。

          本視頻服務(wù)器采用了uCLinux作為操作系統(tǒng),移植BLOB作為系統(tǒng)引導(dǎo)模塊,移植ez-ipupdate動態(tài)域名解析,使用在系統(tǒng)內(nèi)核態(tài)下編寫的driver視頻數(shù)據(jù)的獲取,使用在系統(tǒng)用戶態(tài)下編寫的應(yīng)用服務(wù)程序iplay實現(xiàn)組幀、發(fā)送以及與用戶交互等功能。

          3.1 系統(tǒng)引導(dǎo)模塊

          系統(tǒng)引導(dǎo)模塊LOADER移植自BLOB(Boot Loader OBject)項目,它是LART項目的系統(tǒng)引導(dǎo)模塊。移植的BLOB的發(fā)行版是BLOB-2.0.5-pre2,編譯器使用arm-linux- toolchain。由于視頻服務(wù)器上的硬件環(huán)境與處理器SAMAUNG的S3C2500B的軟件開發(fā)包SMDK2500中的配置有所不同,因此對 BLOB中的源代碼在移植過程中作出了修改。以下是對BLOB程序做出的具體修改。

          (1) 串口參數(shù)代碼修改

          由于視頻服務(wù)器上的串口時鐘源和SMDK2500不一樣,因此對文件“/src/lib/serial-s3c2500.c”做出修改。

          (2) 修改BLOB程序中各塊在內(nèi)存中的分布。

          因為BLOB中的各部分內(nèi)存分配和SMDK2500不一樣,因此需要修改內(nèi)存分配的預(yù)定義。修改文件是“include/BLOB/arch/smdk2500.h”。

          (3) 增加對網(wǎng)卡支持

          由于BLOB只支持網(wǎng)口,且只能在編譯前指定使用使用WAN還是LAN,故首先在編譯配置時添加:enable-network,這個指定修改在文件“/src/BLOB/smdk2500.c”中。為了在網(wǎng)絡(luò)中避免地址沖突,需要為本機網(wǎng)卡設(shè)置唯一的MAC地址。這個修改在文件“src /lib/ether.c”中。

          (4) 修改啟動延時

          針對本系統(tǒng)的啟動延時,修改文件“src/BLOB/main.c”中的原設(shè)置時間。

          3.2 系統(tǒng)內(nèi)核的移植

          系統(tǒng)內(nèi)核Kernel是基于uClinux-dist-20040408的uClinux的分發(fā)版,下面是移植的修改部分。

          (1) 修改時鐘頻率的設(shè)置

          修改的原因是目標版與評估版采用的時鐘源不一樣。需要修改的文件為“uClinux-dist/linux-2.4.x/arch/armnommu/mach-SMDK2500/config.c”。

          (2) 添加支持從flash中獲取MAC地址

          為了防止網(wǎng)絡(luò)上出現(xiàn)MAC地址重復(fù)的情況,采用了從flash中直接讀取BLOB中設(shè)定的MAC地址。在此需修改在文件“uClinux- dist/linux-2.4.x/arch/armnommu/mach-SMDK2500/readf.c”中相關(guān)的調(diào)用函數(shù)實現(xiàn)調(diào)用自己的函數(shù)。添加的自定義函數(shù)用來從flash的BLOB區(qū)域中指定的位置來獲取MAC參數(shù),然后向系統(tǒng)內(nèi)核kernel提供獲取的MAC參數(shù)內(nèi)容。

          (3) 添加kernel中對GPIO口通用操作的支持

          為了在系統(tǒng)內(nèi)核kernel中調(diào)試和使用GPIO提供統(tǒng)一的調(diào)用接口,需要修改文件為“uClinux-dist/linux-2.4.x/arch/armnommu/mach-SMDK2500/lmhgpio.c” 。

          (4) 修改有關(guān)內(nèi)存分配的內(nèi)容

          為了使系統(tǒng)支持內(nèi)存GFP_DMA方式的內(nèi)存分配,需要修改文件“uClinux-dist/linux-2.4.x/mmnommu/page_alloc2.c”。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

          技術(shù)專區(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); })();