999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DMA技術單片機數字攝像頭圖像采集系統設計

2015-05-05 06:00:06王建軍
機械與電子 2015年9期
關鍵詞:信號

喬 亮,王建軍

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

0 引言

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

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

1 采集過程

1.1 MK60DMA模塊

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

1.2 OV7620時序分析

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

圖1 OV7620時序圖

2 MK60采集圖像

2.1 MK60的DMA初始化配置

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

圖2 MK60與OV7620攝像頭接線圖

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

圖3 DMA初始化流程

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

2.2 MK60的端口初始化

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

圖4 端口初始化流程

2.3 中斷服務函數

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

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

圖5 PORTA中斷服務流程

圖6 PORTB中斷服務流程

2.4 主要采集過程

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

圖7 攝像頭數據采集系統流程

3 圖像采集實驗驗證

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

圖8 MK60采集到的圖像

4 結束語

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

[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權威指南[M].宋巖,譯.北京:北京航空航天大學出版社,2009.

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

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

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: 在线观看国产网址你懂的| 亚洲中文字幕av无码区| 久久精品aⅴ无码中文字幕 | 曰AV在线无码| 人人爱天天做夜夜爽| 久热中文字幕在线| 狂欢视频在线观看不卡| 国产老女人精品免费视频| 91日本在线观看亚洲精品| 久久久久人妻一区精品| 亚洲成人在线免费观看| 99久久精品免费看国产免费软件| 亚洲精品在线91| 亚洲Aⅴ无码专区在线观看q| 2018日日摸夜夜添狠狠躁| 大香伊人久久| 免费国产高清视频| 欧美精品xx| 国产91精选在线观看| 国产成人在线无码免费视频| AV天堂资源福利在线观看| 都市激情亚洲综合久久| 色香蕉影院| 欧美午夜精品| 久久精品电影| 国产精品自拍露脸视频 | 青草视频久久| 性做久久久久久久免费看| 色偷偷综合网| 天堂网国产| 国产在线观看成人91| 青青热久免费精品视频6| 国产欧美亚洲精品第3页在线| 亚洲国产无码有码| 久久亚洲国产视频| 91无码视频在线观看| 99精品伊人久久久大香线蕉| 国产xx在线观看| 亚洲中文无码h在线观看| 精品久久蜜桃| 无码高清专区| 人妻21p大胆| 国产欧美日韩在线在线不卡视频| 国产91小视频在线观看| 亚洲国模精品一区| 国产亚洲精品无码专| 亚洲天堂福利视频| 久久精品人人做人人综合试看| 无码精品国产dvd在线观看9久| 热久久综合这里只有精品电影| 久久夜色精品| 亚洲天堂日韩在线| 亚洲一区无码在线| 色欲国产一区二区日韩欧美| 91系列在线观看| 国产午夜人做人免费视频中文 | 91精品久久久无码中文字幕vr| 日本不卡在线播放| 国产一级一级毛片永久| 亚洲天堂免费| 又猛又黄又爽无遮挡的视频网站| 尤物精品视频一区二区三区| 四虎永久免费地址| 97超爽成人免费视频在线播放| 熟女日韩精品2区| 久久香蕉国产线| 成人免费午间影院在线观看| 日本亚洲国产一区二区三区| 色爽网免费视频| 国产不卡网| 精品天海翼一区二区| 亚洲午夜福利精品无码不卡| 午夜欧美在线| 激情六月丁香婷婷| 免费无码AV片在线观看中文| 中文字幕不卡免费高清视频| 毛片基地美国正在播放亚洲 | 国产成人亚洲无吗淙合青草| 欧美性精品不卡在线观看| 欧美性猛交xxxx乱大交极品| 中国成人在线视频| a网站在线观看|