基于ARM9的轉(zhuǎn)轍機(jī)缺口監(jiān)測(cè)圖像采集模塊設(shè)計(jì)
4.1 移植Bootloader
USB攝像頭的采集應(yīng)用程序是建立在Linux系統(tǒng)上,首先配置適合系統(tǒng)的Bootloader,Linux內(nèi)核在RAM中運(yùn)行,這就需要Linux的Bootloa der將整個(gè)內(nèi)核復(fù)制到RAM中。系統(tǒng)中Bootloader是運(yùn)行在NORFlash中,它的主要作用是:將Linux內(nèi)核文件、根文件系統(tǒng)文件、Linux啟動(dòng)參數(shù)文件復(fù)制到SDRAM中,并跳至RAM中Linux內(nèi)核的首地址,運(yùn)行Linux。各文件在RAM中存放的空間示意圖,如圖5所示。本文引用地址:http://butianyuan.cn/article/149020.htm
4.2 編譯下載內(nèi)核
將Linux源代碼包放置在工作目錄下解壓,用命令:#tar xjvf linux-2.4.18.tar.bz2。編譯內(nèi)核,在終端輸入命令:#make menu config命令,選擇“load analternate configuration file”,裝載arch/am目錄下的2410配置文件。建立依賴關(guān)系,在終端運(yùn)行命令:#make dep。編譯內(nèi)核,在終端輸入命令:#make zImage。編譯完成后在arch/arm/boot目錄下會(huì)生產(chǎn)ARM Linux內(nèi)核映像文件zIm age,用FlashFXP軟件的FTP下載。
4.3 圖像采集應(yīng)用程序
在圖像采集設(shè)備驅(qū)動(dòng)安裝后,只需再編寫一個(gè)視頻流采集應(yīng)用程序,即可采集視頻圖像。
前面提到Linux系統(tǒng)中把設(shè)備看成設(shè)備文件,在用戶空間可以通過(guò)標(biāo)準(zhǔn)的I/O系統(tǒng)調(diào)用函數(shù)操作設(shè)備文件,從而達(dá)到與設(shè)備通信交互的目的。視頻設(shè)備在Linux系統(tǒng)下為一個(gè)字符型設(shè)備,分配給視頻設(shè)備使用的主設(shè)備號(hào)固定為81,次設(shè)備號(hào)為0~31。在Linux系統(tǒng)中通常使用設(shè)備名為video0~video31,使用以下命令在設(shè)備文件夾/dev/下創(chuàng)建1名稱為video0的節(jié)點(diǎn):# mknod/dev/video0 c 81 0配置Video4Linux內(nèi)核:在終端使用make menuconfig命令打開(kāi)S3C2410Linux內(nèi)核編譯的Main Menu窗口,并進(jìn)入“Multimedia devices→”菜單選項(xiàng),然后將Video For Linux配置為模塊;返回主菜單(Main Menu),再進(jìn)入“USB support→”菜單選項(xiàng),然后將USB Camera support設(shè)置為模塊,退出并保存配置,使用make dep命令建立文件依聯(lián)關(guān)系,然后使用make modules命令編譯鏈接模塊。編譯鏈接完成后,在/linyx/kernel/driv ers /media/video文件夾中生成videodev.o模塊,在/linux/kemel/drivers/usb/文件夾中生成ov511.o模塊,ov511芯片直接就支持Linux,使用這款芯片的攝像頭有網(wǎng)眼V2000。
利用V4L API獲取視頻圖像的應(yīng)用程序流程,如圖6所示。
評(píng)論