亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DMA技術(shù)單片機數(shù)字攝像頭圖像采集系統(tǒng)設(shè)計

        2015-05-05 06:00:06王建軍
        機械與電子 2015年9期
        關(guān)鍵詞:源地址像素點中斷

        喬 亮,王建軍

        (1.中國人民解放軍94362部隊,山東 青島266100;2.昆明理工大學(xué)機電工程學(xué)院,云南 昆明650500)

        0 引言

        攝像頭作為一種圖像采集傳感器,被廣泛運用在工業(yè)機器人、車載導(dǎo)航儀等智能儀器上面,控制系統(tǒng)通過其采集周圍環(huán)境的圖像信號以便于控制系統(tǒng)控制儀器做出相應(yīng)的判斷。攝像頭分為模擬攝像頭和數(shù)字攝像頭2種。由于數(shù)字攝像頭數(shù)據(jù)量過大,單片機用傳統(tǒng)方法采集會占用大量的CPU資源,這將導(dǎo)致單片機的控制效果大為減弱。此外,數(shù)字攝像頭圖像信號輸出非??欤瑔纹瑱C在處理過程中采集很有可能丟失數(shù)據(jù),從而影響整個控制系統(tǒng)的性能。

        DMA(direct memory access)技術(shù)是指一種高速的數(shù)據(jù)傳輸操作,允許在外部設(shè)備和存儲器之間直接讀寫數(shù)據(jù),既不通過CPU,也不需要CPU干預(yù)。整個數(shù)據(jù)傳輸操作在DMA控制器的控制下進行。CPU只需在開始時刻配置DMA內(nèi)部寄存器參數(shù),且在每次數(shù)據(jù)傳輸開始和結(jié)束時做一點處理,而在傳輸過程中不用CPU干預(yù)。因此,利用DMA技術(shù)直接將圖像數(shù)據(jù)寫入單片機內(nèi)存空間,CPU需要圖像信息時只需從內(nèi)存空間中調(diào)用。這樣將大大地解放CPU資源,單片機CPU可以有更多的時間處理其他外部事件。從而極大地提高了控制系統(tǒng)的工作效率。

        1 采集過程

        1.1 MK60DMA模塊

        MK60的DMA模塊主要由通道復(fù)用管理模塊和DMA控制模塊組成,通道復(fù)用管理模塊主要負責(zé)將MK60的16個DMA通道分配給63個DMA請求源[1-3];DMA管理模塊主要負責(zé)屬性配置和一些基本功能的管理。MK60的DMA模塊有63個DMA請求源。當(dāng)DMA模塊被使能之后,只要1個DMA請求信號產(chǎn)生,DMA模塊就不斷地從源地址內(nèi)存空間中取出數(shù)據(jù),將其送入目的地址內(nèi)存空間。要將數(shù)據(jù)準(zhǔn)確地送入預(yù)期的地址,就需要對DMA模塊進行正確的初始化配置。DMA模塊配置過程主要對DMA通道選擇、DMA請求源、DMA周期觸發(fā)功能、每次讀入字節(jié)數(shù)、源地址數(shù)據(jù)寬度、目的地址數(shù)據(jù)寬度、目的地址、源地址、主循環(huán)計數(shù)、副循環(huán)計數(shù)、源地址偏移、目的地址偏移以及DMA中斷等進行相關(guān)配置[1]。DMA通道選擇主要是從16個DMA通道中選擇1個作為當(dāng)前數(shù)據(jù)的傳輸通道;DMA請求源是為當(dāng)前所選DMA通道配置請求源,即當(dāng)所配置的請求信號(上升沿或下降沿)產(chǎn)生時開始傳輸數(shù)據(jù);DMA周期觸發(fā)功能主要是決定DMA傳輸是定時觸發(fā)還是外部事件觸發(fā);每次讀入字節(jié)是配置DMA每次傳輸?shù)淖止?jié)數(shù);源地址數(shù)據(jù)寬度是指源地址內(nèi)存中所存儲的數(shù)據(jù)寬度(8位、16位、32位等);目的地址數(shù)據(jù)寬度是指目的地址內(nèi)存中所存儲的數(shù)據(jù)寬度(8位、16位、32位等);目的地址是指數(shù)據(jù)要被傳入的內(nèi)存地址;源地址是指數(shù)據(jù)取出的內(nèi)存地址;主循環(huán)計數(shù)和副循環(huán)計數(shù)相當(dāng)于2層循環(huán)嵌套,其每執(zhí)行1次循環(huán)體完成1次DMA傳輸;源地址偏移和目的地址偏指每完成1次DMA傳輸后,源地址和目的地址的偏移量[2]。

        1.2 OV7620時序分析

        對于OV7620攝像頭采集只需要關(guān)注場中斷信號VSYN、行中斷信號HREF和像素中斷信號PCLK。OV7620同步信號時序圖如圖1所示。像素同步信號PCLK為讀取有效像素值提供同步信號,高電平時輸出有效圖像數(shù)據(jù),若當(dāng)前圖像窗口大小為320×240,則在VSYN 2個正脈沖之間有240個HREF的正脈沖,即240行;在每個HREF正脈沖期間有320個PCLK正脈沖,每個PCLK正脈沖下對應(yīng)1個點的圖像數(shù)據(jù),即每行320個像素。這就是VSYN、HREF、PCLK 3個同步信號之間的關(guān)系。

        圖1 OV7620時序圖

        2 MK60采集圖像

        2.1 MK60的DMA初始化配置

        MK60與OV7620攝像頭接線如圖2所示。由圖2可知,使用MK60的PORTA19作為場開始信號VSYN的檢測端口,使用PORTB6作為行開始信號的檢測端口,采用PORTE0作為像素同步信號的檢測端口。PORTD0~PORTD7作為8位圖像灰度數(shù)據(jù)接收端口。根據(jù)1.2節(jié)所述,要采集1場完整的圖像,就必須從檢測到場信號開始讀取圖像數(shù)據(jù),而1場圖像是由多行組成且每行又有多個像素點,要正確采集1場圖像,就必須要將采集到的數(shù)據(jù)對齊,但是DMA只負責(zé)數(shù)據(jù)的傳輸[3],因此,必須根據(jù)攝像頭的特征對DMA進行正確的初始化后,才能夠采集到正確的圖像。一種可以實現(xiàn)圖像采集的DMA初始化過程如圖3所示。

        圖2 MK60與OV7620攝像頭接線圖

        由圖3可知,DMA模塊通道選擇為CH0[4],攝像頭的像素同步信號PCLK與PORTE連接,當(dāng)1個像素點數(shù)據(jù)產(chǎn)生后,PCLK產(chǎn)生上升沿跳變被PORTE捕捉到之后產(chǎn)生DMA請求,DMA得到請求之后開始傳輸當(dāng)前像素點的灰度數(shù)據(jù)。由于DMA采集像素點由PCLK產(chǎn)生信號,因此禁止其周期觸發(fā)功能而采用外部觸發(fā)功能[4-5]。

        圖3 DMA初始化流程

        設(shè)定主循環(huán)計數(shù)為每1行的像素點個數(shù),即當(dāng)行中斷產(chǎn)生之后DMA通道要傳輸?shù)臄?shù)據(jù)個數(shù),因此要設(shè)定為攝像頭每1行的數(shù)據(jù)點個數(shù)。次循環(huán)計數(shù)設(shè)為1,由于1個像素點數(shù)據(jù)為8位的數(shù)據(jù)寬度,DMA 1次可以傳輸完畢,不需要多次次循環(huán)。由于攝像頭的每1個灰度數(shù)據(jù)都從Y0~Y7接口送入 MK60的 GPIOD_PDIR寄存器[6],每次讀取源地址不變,所以設(shè)定源地址為GPIO_PDIR寄存器的首地址、源地址偏移量設(shè)定為0。目的地址為存儲圖像數(shù)據(jù)數(shù)組的首地址,由于1幅圖像有多個像素點組成的二維圖像,要采集到1場圖像,就要將每1個像素點的數(shù)據(jù)存入到1個數(shù)組里面,因此在每個像素點數(shù)據(jù)通過DMA傳輸完成之后,源地址必須偏移。而對于OV7620來說,1個像素點數(shù)據(jù)為8位數(shù)據(jù)寬度,因此源地址偏移量設(shè)定為1個字節(jié)[4]。

        2.2 MK60的端口初始化

        由圖1可知,場開始信號VSYN的下降沿與行開始信號HERF更接近,捕捉VSYN的下降沿更便于圖像對齊。而對于OV7620來說,每1個有效像素點是像素同步信號PCLK高電平時的數(shù)據(jù),而行開始信號HERF的上升沿與像素同步信號PCLK的上升沿對齊,因此捕捉HERF的上升沿便于圖像對齊,捕捉PCLK的上升沿之后,才能夠產(chǎn)生DMA請求來傳輸數(shù)據(jù)。所以根據(jù)圖2的接線圖來初始化MK60的端口,MK60端口初始化流程如圖4所示。其初始化過程為:使能PORTA端口時鐘,將其引腳功能定為GPIO功能,由于PORTA19用來捕捉VSYN的下降沿跳變,因此初始化為輸入、高電平狀態(tài);使能PORTB端口時鐘,將其引腳復(fù)用功能定義為GPIO功能,由于PORTB6用于捕捉HERF上升沿信號,因此初始化為輸入、低電平狀態(tài);使能PORTE端口時鐘,將其引腳復(fù)用功能定義為GPIO功能,由于PORTE0用來捕捉PCLK上升沿信號,因此初始化為輸入、高電平狀態(tài)。由于PORTD0~PORTD7用來采集攝像頭的數(shù)據(jù),因此初始化為GPIO功能、輸入,初始化為低電平[7]。

        圖4 端口初始化流程

        2.3 中斷服務(wù)函數(shù)

        為了能夠準(zhǔn)確地捕捉到場開始信號VSYN和行開始信號HREF,采用外部事件觸發(fā)端口中斷方式,PORTA19采集到VSYN產(chǎn)生的中斷信號之后,進入PORTA中斷服務(wù)函數(shù)。PORTA中斷服務(wù)函數(shù)流程如圖5所示。PORTA中斷產(chǎn)生后,在PORTA中斷服務(wù)函數(shù)中要重新加載DMA目的地址(圖像數(shù)組首地址),使攝像頭的第1個數(shù)據(jù)存入圖像數(shù)組第1個元素。由于當(dāng)PORTA中斷產(chǎn)生之后代表場開始信號,而1場圖像有很多行組成,緊隨PORTA產(chǎn)生中斷之后產(chǎn)生的行開始信號HREF為該場圖像的第1行,因此要在程序進入場中斷之后立馬使能PORTB中斷,來捕捉行開始信號,此后每1個行開始信號都會進入PORTB中斷服務(wù)函數(shù)。

        PORTB中斷服務(wù)函數(shù)流程如圖6所示。由于每1行有很多個像素點,在行開始信號HERF產(chǎn)生(進入行中斷)之后,代表此后每1個PCLK高電平時輸出的數(shù)據(jù)為該行相應(yīng)點的像素數(shù)據(jù),因此,在進入PORTB中斷服務(wù)函數(shù)之后立即使能DMA通道CH0請求,即每產(chǎn)生1個PCLK(PORTE0)上升沿信號DMA都進行1次數(shù)據(jù)傳輸,將相應(yīng)點的灰度數(shù)據(jù)送入到與之對應(yīng)的圖像數(shù)組元素中存儲。每1行采集完之后行采集計數(shù)自增1,當(dāng)采集行數(shù)為1場圖像行數(shù)時,將場采集完成標(biāo)志位置1,關(guān)場中斷回到主函數(shù)將采集到的圖像通過UART串口模塊[8]發(fā)送給上位機顯示,當(dāng)串口發(fā)完1場圖像之后開PORTA中斷,開始采集新的1場圖像數(shù)據(jù)。

        圖5 PORTA中斷服務(wù)流程

        圖6 PORTB中斷服務(wù)流程

        2.4 主要采集過程

        主函數(shù)流程如圖7所示。在MK60系統(tǒng)上電之后關(guān)閉系統(tǒng)總中斷,對端口進行初始化配置、對DMA模塊初始化配置,開PORTA中斷,開總中斷之后進入死循環(huán)函數(shù),等待圖像采集完成標(biāo)志位置1,如果標(biāo)志位置1說明1場圖像采集完成。為了避免下1場圖像對當(dāng)前圖像產(chǎn)生干擾,要暫時關(guān)閉PORTA中斷,調(diào)用UART串口將采集到的圖像發(fā)送給上位機。當(dāng)前圖形發(fā)送完成之后,開PORTA中斷采集新的圖像數(shù)據(jù)。

        圖7 攝像頭數(shù)據(jù)采集系統(tǒng)流程

        3 圖像采集實驗驗證

        MK60通過其內(nèi)嵌的DMA模塊采集到的數(shù)據(jù),通過串口將數(shù)據(jù)發(fā)送給上位機,獲得的圖像如圖8所示。圖像效果較好,驗證了采集過程的正確性。

        圖8 MK60采集到的圖像

        4 結(jié)束語

        攝像頭是一種應(yīng)用非常廣泛的傳感器,其圖像采集在工程測試、環(huán)境監(jiān)控等方面有著重要的意義。通過內(nèi)嵌有DMA模塊的MK60單片機,設(shè)計了一種DMA圖像采集系統(tǒng),該系統(tǒng)CPU基本不用干預(yù)就能完成攝像頭的圖像采集,使得CPU有更多時間去處理其他外部事件,從而極大地提高了單片機的工作能力和效率,對于工業(yè)應(yīng)用有一定應(yīng)用前景。

        [1] Freescale.K60sub-family reference manual——K60 P144M100SF2V2RM rev.2[Z].2012.

        [2] ARM.Cortex-M4technical reference manual revision r0p0[Z].2011.

        [3] Freescale.K60sub-family data sheet rev.6[Z].2011.

        [4] Freescale.Kinetis peripheral module quick reference rev.0[Z].2010.

        [5] Freescale.K60sub-family reference manual rev.6[Z].2011.

        [6] Yiu J.ARM Cortex-M3權(quán)威指南[M].宋巖,譯.北京:北京航空航天大學(xué)出版社,2009.

        [7] 王宜懷,吳瑾,蔣銀珍.嵌入式系統(tǒng)原理與實踐——ARM Cortex-M4Kinetis微控制器[M].北京:電子工業(yè)出版社,2012.

        [8] 楊東軒,王嵩.ARM Cortex-M4自學(xué)筆記——基于 Kinetis K60[M].北京:北京航空航天大學(xué)出版社,2013.

        猜你喜歡
        源地址像素點中斷
        國內(nèi)互聯(lián)網(wǎng)真實源地址驗證研究進展①
        基于canvas的前端數(shù)據(jù)加密
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        基于逐像素點深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
        基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
        實現(xiàn)RSF機制的分布式域間源地址驗證
        網(wǎng)絡(luò)安全策略中防火墻技術(shù)的應(yīng)用
        天融信防火墻的雙線路路由和VPN設(shè)置
        AT89C51與中斷有關(guān)的寄存器功能表解
        精品人妻一区二区三区蜜桃| 欧美国产日产一区二区| 日本熟妇美熟bbw| 全球中文成人在线| 性色av无码久久一区二区三区| 国产人成精品免费视频| 成人无码区免费AⅤ片WWW| 亚洲精品成人久久av| 日本熟妇中出高潮视频| 日韩精品免费一区二区三区观看| 色欲色香天天天综合vvv| 中文字幕久久熟女蜜桃 | 少妇一区二区三区精选| 国产人成视频在线视频| 亚洲乱码中文字幕综合| 精品少妇爆乳无码aⅴ区| 亚洲在战AV极品无码| 日韩十八禁在线观看视频| 免费人成视频网站网址| 欧美黑吊大战白妞| 亚洲两性视频一三区| 人妖与人妖免费黄色片| 亚洲av综合色区无码专区桃色| 女人让男人桶爽30分钟| 国产在线丝袜精品一区免费| 久久精品av一区二区免费| 中文字幕亚洲高清视频| 久久婷婷五月综合色奶水99啪| 大陆极品少妇内射aaaaa| 亚洲男人精品| 精品无码人妻久久久一区二区三区 | 久久青青草原一区网站| 精品国产偷窥一区二区| 国产人澡人澡澡澡人碰视频| 91精品国产综合久久青草| 国产亚洲精品品视频在线| 中文字幕人妻无码视频| 996久久国产精品线观看| 岛国av一区二区三区| 亚洲最好看的中文字幕| 99精品国产一区二区三区不卡 |