新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于OMAP3530平臺的車道線識別檢測的實現

        基于OMAP3530平臺的車道線識別檢測的實現

        作者: 時間:2015-01-28 來源:網絡 收藏

          系統硬件設計

        本文引用地址:http://www.104case.com/article/269117.htm

          本文選取ICETEK--Mini開發板為實驗平臺,該開發板是由北京瑞泰創新科技有限責任公司與美國德州儀器公司合作推出,是一個開放的的硬件平臺,它是以TI最新的、高性能的 CortexA8處理器為核心,以DSP64x+內核作為強勁的輔助圖像處理,優化硬件2D/3D加速器,形成一個精簡完備的計算機系統。

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

          系統軟件設計

          OMAP3530是一款雙核微處理器,由核和DSP核兩部分組成,二者之間軟件的編程和運行都是相互獨立的,通過DSP/BIOS Link完成雙核之間的通信。端采用嵌入式Linux操作系統,動態創建、控制和刪除DSP節點,實現數據的高效傳輸。DSP端采用DSP/BIOS實時操作系統,支持eXPressDSP實時軟件技術,由DSP/BIOS實時內核、可重構的DSP算法和第三方軟件模塊組成。

          由系統結構可見,軟件設計主要包括:ARM端引導程序和Linux系統的移植;捕獲道路圖像程序。

          ARM端引導程序和Linux系統的移植

          為便于項目的開發和調試,ICETEK-OMAP3530-Mini板采用SD卡啟動,本系統中使用的X-Loader的版本是x-loader1.4.2,U-boot的版本是Uboot-2009.01,Linux內核的版本是Linux-2.6.28,Busybox的版本是busybox-1.12.2,該過程的主要步驟如下:

          (1)在開發主機Linux PC里安裝交叉編譯工具;

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

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

          (4)驅動配置并交叉編譯內核,生成內核鏡像文件uImage;

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

          (6)將上述生成的二進制文件復制到SD.

          捕獲道路圖像

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

          利用V4L2提供的接口,我們可以編寫出具有視頻采集功能的測試代碼。下面就主要的環節做一些說明。

          (1)打開視頻設備

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

          (2)查詢設備屬性

          通過調用ioctl函數和接口命令VIDIOC_QUERYCAP,查詢攝像頭的信息,見程序段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查詢攝像頭屬性

          (3)設置像素格式

          一般的USB攝像頭都會支持YUV,可能還會支持其他更多的格式。通過上一步對攝像頭所支持像素格式的查詢,下面利用ioctl函數對格式進行設置,見程序段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,

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

        全息投影相關文章:全息投影原理


        關鍵詞: OMAP3530 ARM OV7670

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凌云县| 家居| 关岭| 南昌市| 磐安县| 元谋县| 环江| 田林县| 壶关县| 鄂托克前旗| 桃源县| 麟游县| 将乐县| 简阳市| 宜都市| 广灵县| 教育| 全南县| 大城县| 犍为县| 分宜县| 曲松县| 襄垣县| 镇江市| 岳池县| 三原县| 河津市| 马鞍山市| 兴和县| 新蔡县| 安顺市| 湘乡市| 砚山县| 申扎县| 西昌市| 金寨县| 邓州市| 太仆寺旗| 克山县| 屯门区| 重庆市|