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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于STM32的嵌入式雙目圖像采集系統(tǒng)設(shè)計

          基于STM32的嵌入式雙目圖像采集系統(tǒng)設(shè)計

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

          1 引言

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

          隨著圖像處理技術(shù)及嵌入式系統(tǒng)的發(fā)展,利用嵌入式系統(tǒng)進行圖像處理,已使如視頻監(jiān)控、視頻電話和視頻會議等應(yīng)用成為可能。嵌入式系統(tǒng)上進行則是實現(xiàn)這些應(yīng)用的前提[1~2]。

          雙目立體視覺通常由兩個攝像頭從兩個不同的角度,同時獲取外界物體的兩幅圖像,或由單獨一個攝像頭在不同時間、不同位置獲取外界物體的兩幅圖像,并基于視差的原理來獲取外界物體的三維幾何信息,復(fù)現(xiàn)外界物體的形狀和位置。

          目前已有很多方案實現(xiàn)在嵌入式平臺上的。本文基于嵌入式的系統(tǒng)選擇了意法半導(dǎo)體(ST)公司生產(chǎn)的F103ZET6芯片為主控芯片,F(xiàn)IFO結(jié)構(gòu)的AL422B芯片實現(xiàn)圖像數(shù)據(jù)緩存,SD卡實現(xiàn)圖像存儲以及四線制電阻觸摸屏實現(xiàn)外部控制[3]。實現(xiàn)通過OV7670雙攝像頭采集圖像數(shù)據(jù),經(jīng)主芯片控制存儲、顯示[4]。

          2 嵌入式主控芯片介紹

          ARM Cortex-M 處理器是一系列定位于深度嵌入式開發(fā)應(yīng)用設(shè)計的。F103ZET6是由意法半導(dǎo)體(ST)公司生產(chǎn)的新一代內(nèi)核處理器,具有以下特點:

          性能和能效:具有高性能和低動態(tài)能耗,在90nm基礎(chǔ)上提供了12.5DMIPS/mW 的性能,處理器確保對于同時需要低能耗和出色性能的應(yīng)用不存在折衷。

          豐富的連接:功能和性能的巧妙組合使基于的設(shè)備可以有效處理多個I/O 通道和協(xié)議標(biāo)準(zhǔn),如USB OTG(On-The-Go)[5]。

          3 μC/OS-II操作系統(tǒng)介紹

          μC/OS-II操作系統(tǒng)實時性有保障,延時可預(yù)測,代碼可小到2K,完全可以滿足設(shè)計需要。C/OS-II移植過程中只選擇用戶和系統(tǒng)兩種模式。μC/OS-II包括任務(wù)調(diào)度、時間管理、內(nèi)存管理、資源管理(信號量、郵箱、消息隊列)四大部分,沒有文件系統(tǒng)、網(wǎng)絡(luò)接口、輸入輸出界面。它的移植只與4個文件相關(guān):匯編文件(OS_CPU_A.ASM)、處理器相關(guān)C文件(OS_CPU.H、OS_CPU_C.C)和配置文件(OS_CFG.H)[6~7]。

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

          系統(tǒng)采用ARM 處理器作為核心,負責(zé)對系統(tǒng)設(shè)備初始化、數(shù)據(jù)總線仲裁、承載操作系統(tǒng)運行;為了彌補圖像傳輸過程中的時鐘偏差和圖像顯示不流暢等缺點,采用AL422B圖像緩存芯片;圖像經(jīng)主芯片控制將于液晶屏顯示,并存貯于SD卡中。系統(tǒng)結(jié)構(gòu)圖如圖1所示[8]。


          4.1 核心器件選型

          系統(tǒng)的核心ARM 處理器使用由意法半導(dǎo)體公司生產(chǎn)的新一代Cortex-M3內(nèi)核的F103ZET6,具有高性能和低動態(tài)能耗,帶有FSMC 外設(shè)可以外掛NAND FLASH、SRAM等,支持代碼從擴展的外部存儲器中直接運行,而不需要首先調(diào)入內(nèi)部SRAM,便于系統(tǒng)的數(shù)據(jù)傳輸[9]。

          圖像傳感器采用Ommivision公司的OV7670 CMOS攝像頭,較CCD 攝像頭具有較高的性價比,具有標(biāo)準(zhǔn)的SCCB接口,兼容I2 C接口,其高靈敏度和自動畫面控制功能滿足檢測系統(tǒng)的精度要求[10]。

          4.2 檢測電路設(shè)計

          系統(tǒng)采用集成了A/D和DSP的圖像傳感器模塊,通過SCCB總線,由STM32完成定義相應(yīng)寄存器和初始化;通過寄存器可設(shè)置圖像數(shù)據(jù)輸出格式,系統(tǒng)選擇RGB565格式輸出,一個像素點占16位,而像素數(shù)據(jù)總線為D0-D7,因此用兩個PCLK時鐘周期分別輸出高8位和低8位;


          圖2 圖像傳感器模塊接口

          XCLK是由CPLD 提供的輸入時鐘;VSYNC、HREF分別在每幀、每行開始和結(jié)束時電平發(fā)生跳變,供CPLD 判斷[11]。圖像傳感器模塊接口如圖2所示。

          4.3 數(shù)據(jù)緩存電路設(shè)計

          數(shù)據(jù)緩存使用AverLogic公司推出的一個存儲容量為393216字節(jié)×8位的FIFO存儲芯片AL422B,其所有的尋址、刷新等操作都由集成在芯片內(nèi)部的控制系統(tǒng)完成。數(shù)據(jù)緩存接口如圖3所示,DO0-DO7是8位寫出數(shù)據(jù)總線;DI0-DI7是8位寫入數(shù)據(jù)總線;CE引腳為片選,OE為輸出控制,WE是寫操作控制;通過STM32的FSMC與外設(shè)連接。采用AL422B芯片對連續(xù)的數(shù)據(jù)流進行緩存,防止在進機和存儲操作時丟失數(shù)據(jù);數(shù)據(jù)集中起來進行進機和存儲,避免了頻繁的總線操作,減輕CPU的負擔(dān)。


          圖3 數(shù)據(jù)緩存接口圖

          4.4 實時顯示電路設(shè)計

          系統(tǒng)的實時顯示采用了ILI9325主控的2.4寸65536色TFT液晶屏,兼容系統(tǒng)需要的16位總線寬度的RGB格式圖像,最高可顯示320*240 分辨率;內(nèi)部集成圖像RAM,因而將其接入STM32的FSMC外設(shè)控制器,采用LCD8080i接口方式;CS為片選,RD、RW 分別為讀寫控制,RS是寄存器選擇引腳,如圖4所示[13]。

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

          STM32F103ZET6編程在Keil uVision4環(huán)境下通過C語言實現(xiàn)。系統(tǒng)的主流程如圖5所示。


          圖5 系統(tǒng)的軟件流程

          5.1 文件OS_CPU.H的編寫

          1)μC/OS-II不使用C語言中的short、int、long等于處理器相關(guān)的數(shù)據(jù)類型,而是以移植性更強的整數(shù)數(shù)據(jù)類型代替,這樣直觀、便于移植。所以必須對操作系統(tǒng)和ARM體系結(jié)構(gòu)的數(shù)據(jù)類型進行統(tǒng)一。

          2)雖然ARM 處理器對堆棧向上及向下的兩種增長模式都予以支持,但是通常系統(tǒng)僅支持堆棧從上往下長,并且是滿遞減堆棧,所以文件中定義堆棧增長方式的常量OS_STK_GROWTH的值應(yīng)為1.

          3)定義聲明使能中斷、結(jié)束中斷、任務(wù)切換等函數(shù)。

          5.2 文件OS_CPU.C的編寫

          1)任務(wù)堆棧初始化函數(shù)OSTaskStkInit()堆棧的概念在ARM 體系結(jié)構(gòu)和系統(tǒng)移植中非常重要,是在ARM 處理器中利用有限的寄存器完成數(shù)據(jù)和狀態(tài)記錄的載體。在編寫堆棧初始化函數(shù)OSTaskStkInit()之前,必須根據(jù)處理器的結(jié)構(gòu)特點確定堆棧的結(jié)構(gòu),所以需要對ARM 體系結(jié)構(gòu)有充分的認(rèn)識。根據(jù)ARM 體系結(jié)構(gòu)每種運行模式14個通用寄存器,有一個或兩個狀態(tài)寄存器,很容易該寫出OSTaskStkInit()的代碼。

          TCB結(jié)構(gòu)體中OSTCBStkPtr總是指向用戶堆棧最高地址,該地址空間內(nèi)存放用戶堆棧長度,其上空間存放系統(tǒng)堆棧映像,即:用戶堆??臻g大小=系統(tǒng)堆??臻g大小+1。

          2)μC/OS-II分別使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來開中斷和開中斷,可以直接在C語言編程中應(yīng)用。

          3)可以根據(jù)ARM特點和移植目標(biāo),增加應(yīng)用函數(shù)。例如處理器模式轉(zhuǎn)換函數(shù)、人物初始指令集函數(shù)、鉤子函數(shù)等。

          5.3 文件OS_CPU_A.ASM 的編寫

          這個文件采用匯編語言編寫。完成了系統(tǒng)軟中斷的地址分配、相應(yīng)的存儲區(qū)域等,編寫了任務(wù)級任務(wù)切換函數(shù)OS_TASK_SW()、中斷級任務(wù)切換函數(shù)OSIntCtxSw()、啟動最高優(yōu)先級任務(wù)函數(shù)0SStartHighRdy()等函數(shù)。完成了C語言和機器硬件語言的對接。

          6 結(jié)語

          本文在基于STM32核心嵌入式μC/OS-II平臺上利用的、雙向的、可靠的、無重復(fù)的數(shù)據(jù)連接,加上Vxworks系統(tǒng)自身的實時性強和可靠性高等優(yōu)點,該通信方式完全滿

          足某型車載武器系統(tǒng)的高速實時網(wǎng)絡(luò)通信要求,在實際的操作使用中,取得了良好的效果。

          立即加入意法半導(dǎo)體技術(shù)社區(qū)



          評論


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