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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于OMAP3530平臺(tái)的車(chē)道線識(shí)別檢測(cè)的實(shí)現(xiàn)

          基于OMAP3530平臺(tái)的車(chē)道線識(shí)別檢測(cè)的實(shí)現(xiàn)

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

            系統(tǒng)硬件設(shè)計(jì)

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

            本文選取ICETEK--Mini開(kāi)發(fā)板為實(shí)驗(yàn)平臺(tái),該開(kāi)發(fā)板是由北京瑞泰創(chuàng)新科技有限責(zé)任公司與美國(guó)德州儀器公司合作推出,是一個(gè)開(kāi)放的的硬件平臺(tái),它是以TI最新的、高性能的 CortexA8處理器為核心,以DSP64x+內(nèi)核作為強(qiáng)勁的輔助圖像處理,優(yōu)化硬件2D/3D加速器,形成一個(gè)精簡(jiǎn)完備的計(jì)算機(jī)系統(tǒng)。

            選用CMOS攝像頭.是Omnivision公司生產(chǎn)的一款30萬(wàn)像素的彩色圖像傳感器芯片,體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。其特點(diǎn)有:靈敏度高,適合低亮度下使用;標(biāo)準(zhǔn)串行攝像頭控制總線(SCCB),兼容IIC接口;自動(dòng)曝光控制;自動(dòng)增益控制;自動(dòng)白平衡;自動(dòng)消除燈光條紋;自動(dòng)黑電平校準(zhǔn);圖像格式可以是原始RGB、RGB(4:2:2)、RGB565/555/444、YUV(4:2:2)、YCbCr(4:2:2)。與ICETEK-OMAP3530-Mini板通過(guò)USB接口連接在一起。

            系統(tǒng)軟件設(shè)計(jì)

            OMAP3530是一款雙核微處理器,由核和DSP核兩部分組成,二者之間軟件的編程和運(yùn)行都是相互獨(dú)立的,通過(guò)DSP/BIOS Link完成雙核之間的通信。端采用嵌入式Linux操作系統(tǒng),動(dòng)態(tài)創(chuàng)建、控制和刪除DSP節(jié)點(diǎn),實(shí)現(xiàn)數(shù)據(jù)的高效傳輸。DSP端采用DSP/BIOS實(shí)時(shí)操作系統(tǒng),支持eXPressDSP實(shí)時(shí)軟件技術(shù),由DSP/BIOS實(shí)時(shí)內(nèi)核、可重構(gòu)的DSP算法和第三方軟件模塊組成。

            由系統(tǒng)結(jié)構(gòu)可見(jiàn),軟件設(shè)計(jì)主要包括:ARM端引導(dǎo)程序和Linux系統(tǒng)的移植;捕獲道路圖像程序。

            ARM端引導(dǎo)程序和Linux系統(tǒng)的移植

            為便于項(xiàng)目的開(kāi)發(fā)和調(diào)試,ICETEK-OMAP3530-Mini板采用SD卡啟動(dòng),本系統(tǒng)中使用的X-Loader的版本是x-loader1.4.2,U-boot的版本是Uboot-2009.01,Linux內(nèi)核的版本是Linux-2.6.28,Busybox的版本是busybox-1.12.2,該過(guò)程的主要步驟如下:

            (1)在開(kāi)發(fā)主機(jī)Linux PC里安裝交叉編譯工具;

            (2)交叉編譯X-Loader,生成鏡像文件x-load.bin.ift,然后轉(zhuǎn)化為SD卡啟動(dòng)用程序MLO;

            (3)交叉編譯U-boot,生成u-boot.bin和mkimage工具;

            (4)驅(qū)動(dòng)配置并交叉編譯內(nèi)核,生成內(nèi)核鏡像文件uImage;

            (5)利用Busybox制作文件系統(tǒng);

            (6)將上述生成的二進(jìn)制文件復(fù)制到SD.

            捕獲道路圖像

            Linux系統(tǒng)對(duì)視頻設(shè)備的操作提供了兩套API,分別是Video 4 Linux(簡(jiǎn)稱(chēng)V4L)和Video 4 Linux 2(簡(jiǎn)稱(chēng)V4L2)。早期開(kāi)發(fā)的V4L存在很多缺陷,Bill Dirks等人對(duì)其進(jìn)行了重新設(shè)計(jì),更名為V4L2,相比于V4L有很好的擴(kuò)展性和靈活性,并且支持更多的硬件設(shè)備。這兩套API不兼容,本文采用V4L2進(jìn)行USB攝像頭視頻編程。

            利用V4L2提供的接口,我們可以編寫(xiě)出具有視頻采集功能的測(cè)試代碼。下面就主要的環(huán)節(jié)做一些說(shuō)明。

            (1)打開(kāi)視頻設(shè)備

            cameraFd=open(“/dev/video0”, O_RDWR, O);

            (2)查詢(xún)?cè)O(shè)備屬性

            通過(guò)調(diào)用ioctl函數(shù)和接口命令VIDIOC_QUERYCAP,查詢(xún)攝像頭的信息,見(jiàn)程序段1.

            ———————————————————————

            if (ioctl(fd, VIDIOC_QUERYCAP, == -1) {

            …

            } else {…

            if ((cap.capabilities V4L2_CAP_VIDEO_CAPTURE) == V4L2_CAP_VIDEO_ CAPTURE) {

            …}

            if ((cap.capabilities V4L2_CAP_STREAMING) == V4L2_CAP_STREAMING) {

            …} }

            while(ioctl(fd,VIDIOC_ENUM_FMT, {…}

            ———————————————————————

            程序段1查詢(xún)攝像頭屬性

            (3)設(shè)置像素格式

            一般的USB攝像頭都會(huì)支持YUV,可能還會(huì)支持其他更多的格式。通過(guò)上一步對(duì)攝像頭所支持像素格式的查詢(xún),下面利用ioctl函數(shù)對(duì)格式進(jìn)行設(shè)置,見(jiàn)程序段2.———————————————————————

            fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

            fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;

            fmt.fmt.pix.height = IMAGEHEIGHT;

            fmt.fmt.pix.width = IMAGEWIDTH;

            fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;

            ioctl(fd, VIDIOC_S_FMT,

            ———————————————————————

          全息投影相關(guān)文章:全息投影原理


          關(guān)鍵詞: OMAP3530 ARM OV7670

          評(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); })();