99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號(hào)
點(diǎn)擊聯(lián)系吳工 點(diǎn)擊聯(lián)系周老師
您的當(dāng)前位置:主頁(yè) > FPGA原創(chuàng) >

圖像邊緣檢測(cè)工程模塊劃分總結(jié)與分析

發(fā)布時(shí)間:2020-01-04   作者:王斌 瀏覽量:

本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處!

很多朋友在工程模塊劃分的時(shí)候總會(huì)遇到很多問題,比如不知道如何下手、模塊劃分不合理等;當(dāng)然我最初也和大家一樣不知道如何下手,學(xué)習(xí)了明德?lián)P的課程后,再加上和老師的多多交流,我也總結(jié)出了一套方法思路,今天就通過明德?lián)P邊緣檢測(cè)工程來與大家分享一下模塊的劃分思路。

明德?lián)P邊緣檢測(cè)工程是明德?lián)P的網(wǎng)絡(luò)班、就業(yè)班的其中一個(gè)項(xiàng)目,實(shí)現(xiàn)了圖像的實(shí)時(shí)采集、邊緣檢測(cè)算法、存儲(chǔ)控制以及與串口等功能,涉及到了比較全面的知識(shí)與算法。一起來看看如何劃分模塊。

 

一、模塊劃分要點(diǎn)總結(jié)

1、列出項(xiàng)目的功能要求(客戶提出的產(chǎn)品功能要求)

 

2、畫出硬件的系統(tǒng)結(jié)構(gòu)框圖(添加外設(shè))

 

3、框圖中每個(gè)外圍接口都對(duì)應(yīng)有一個(gè)接口轉(zhuǎn)換模塊

接口轉(zhuǎn)換模塊的作用是將外圍器件的接口時(shí)序轉(zhuǎn)為通用的接口時(shí)序,或者將通用接口時(shí)序轉(zhuǎn)換為外圍器件接口時(shí)序,這樣使得FPGA內(nèi)部其他模塊不用再關(guān)心外圍接口的時(shí)序了。

MDY規(guī)范通用接口時(shí)序:

l data以及對(duì)應(yīng)的vld,傳輸單個(gè)數(shù)據(jù)格式

l MDY的包文格式,din,vld,SOP,EOP,MTY,ERR

l wren,waddr,wdata;rden,raddr,rdata,rdata_vld

 

4、考慮是否涉及指令系統(tǒng)操作碼+數(shù)據(jù)格式)

上位機(jī),例如PC,ARM,DSP或者其他的器件,只涉及到一個(gè)接口,但是卻有很多指令或者命令功能要發(fā)送,因此就需要一個(gè)指令系統(tǒng)。

指令系統(tǒng)一定會(huì)涉及到命令、地址和數(shù)據(jù)。這種情況,肯定會(huì)有一個(gè)“寄存器解析模塊”,根據(jù)命令、地址和數(shù)據(jù),改變相應(yīng)的寄存器的值。

 

5、考慮外圍器件是否涉及寄存器配置

項(xiàng)目中有某些外設(shè),上電工作前需要進(jìn)行配置才能按要求工作。因此需要對(duì)外設(shè)內(nèi)部寄存器進(jìn)行讀寫,這一流程是通過FPGA來進(jìn)行配置。

遇到這個(gè)情況,使用MDY推薦的模塊寄存器配置結(jié)構(gòu):

寄存器配置表模塊+寄存器讀寫配置模塊+外設(shè)配置接口時(shí)序轉(zhuǎn)換模塊

 

6、根據(jù)實(shí)際情況,增加、補(bǔ)充或者拆分,優(yōu)化對(duì)應(yīng)模塊,隨時(shí)調(diào)整

原則:根據(jù)接口信號(hào),看模塊間是否方便對(duì)接。接口就決定了模塊功能。所以在這一層的調(diào)整,一定要清楚接口的定義。

    

7、考慮是否涉及多路進(jìn)一路出,要用FIFO

調(diào)度FIFO要考慮自身帶寬能否滿足多路一起突發(fā)發(fā)送時(shí)的數(shù)據(jù)量情況。如果帶寬不滿足,就要要輸出給上游模塊RDY信號(hào)。此時(shí)RDY信號(hào)有效取決于自己設(shè)置FIFO的Almost Full信號(hào)。如果帶寬滿足則不必設(shè)RDY信號(hào)。

 

8、考慮是否涉及到速率匹配問題,要加上RDY信號(hào)或者FIFO

首先考慮與外圍器件通信的接口上是否需要rdy信號(hào)(FPGA內(nèi)部運(yùn)行頻率往往與設(shè)接口速率不一致),然后考慮FPGA內(nèi)部模塊間數(shù)據(jù)帶寬是否不一致,有等一等的情況。

 

二、邊緣檢測(cè)工程案例分析

根據(jù)前面總結(jié)的要點(diǎn),通過實(shí)際項(xiàng)目案例來分析一下FPGA內(nèi)部功能模塊是怎樣劃分的。這里我們選取已經(jīng)做過的圖像邊緣檢測(cè)項(xiàng)目,接下來按照上面總結(jié)的模塊劃分步驟,一步步完成模塊初步劃分!

 

1.列出項(xiàng)目的功能要求

本項(xiàng)目功能要求:系統(tǒng)上電,OV7670攝像頭將實(shí)時(shí)采集圖像數(shù)據(jù)傳送給FPGA,經(jīng)過FPGA算法處理獲得邊緣圖像,最終輸出邊緣圖像到顯示器上。

功能分析:

a) 選用攝像頭OV7670作為圖像采集

b) 攝像頭內(nèi)部寄存器需要上電配置,因此外設(shè)需要配置按鍵

c) FPGA內(nèi)部做邊緣檢測(cè)算法處理

d) 輸出給顯示器顯示(用VGA接口)

 

2.畫出硬件系統(tǒng)結(jié)構(gòu)框圖

根據(jù)步驟1總結(jié)出的功能要求,找到除FPGA外需要哪些外圍器件。

外圍器件總共需要三個(gè):

a) 按鍵

b) 攝像頭OV7670

c) 顯示器

畫出系統(tǒng)框圖如下所示:

 

3.框圖中每個(gè)外圍接口都對(duì)應(yīng)有一個(gè)接口轉(zhuǎn)換模塊

a) 按鍵對(duì)應(yīng)的接口轉(zhuǎn)換模塊是按鍵消抖檢測(cè)模塊;

b) OV7670攝像頭對(duì)應(yīng)的接口轉(zhuǎn)換模塊是OV7670圖像采集模塊;

c) 顯示器與FPGA連接是VGA接口,因此其對(duì)應(yīng)的接口轉(zhuǎn)換模塊是VGA顯示驅(qū)動(dòng)模塊。

完善后框圖如下所示:

 

4.考慮是否涉及指令系統(tǒng)

本項(xiàng)目不涉及指令系統(tǒng),因此這里可以跳過。

 

5.考慮外圍器件是否涉及寄存器配置

本項(xiàng)目中OV7670攝像頭部分涉及寄存器配置。使用MDY推薦模板:寄存器配置表模塊+寄存器讀寫配置模塊+外設(shè)配置接口時(shí)序轉(zhuǎn)換模塊;

由于外設(shè)OV7670配置接口使用的是SCCB協(xié)議,所以外設(shè)配置接口時(shí)序轉(zhuǎn)換模塊對(duì)外接口也應(yīng)該是SCCB,對(duì)內(nèi)是MDY規(guī)范接口。

補(bǔ)充后框圖如下所示:

 

6.根據(jù)實(shí)際情況,增加、補(bǔ)充或者拆分獨(dú)立對(duì)應(yīng)模塊,隨時(shí)調(diào)整

到第6步,根據(jù)數(shù)據(jù)流向,需要對(duì)模塊間的接口進(jìn)行詳細(xì)分析了,補(bǔ)充模塊或者將功能相同的模塊合并化簡(jiǎn)。

a) OV7670圖像采集模塊輸出的圖像數(shù)據(jù)是RGB565格式,需要先將RGB565信號(hào)轉(zhuǎn)成灰度圖像,因此需要一個(gè)RGB轉(zhuǎn)灰度模塊;

b) 輸出的圖像灰度數(shù)據(jù)需要進(jìn)行高斯濾波處理,因此需要一個(gè)高斯濾波模塊;

c) 為了做邊緣檢測(cè),需要將高斯濾波處理后的灰度圖像數(shù)據(jù)轉(zhuǎn)換為單bit數(shù)據(jù),因此需要一個(gè)灰度轉(zhuǎn)單bit模塊;

d) 轉(zhuǎn)換后的單bit數(shù)據(jù),需要經(jīng)過sobel算法處理才能得到圖像邊緣,因此需要一個(gè)sobel算法處理模塊;

e) 經(jīng)過sobel算法處理模塊輸出的圖像數(shù)據(jù)就可以輸出給顯示器了,但是為了圖像連續(xù)完整輸出、不斷幀,就需要做一下緩存,因此需要一個(gè)圖像緩存模塊。

補(bǔ)充后如下圖所示:

 

接下來將功能互斥、數(shù)據(jù)流向相關(guān)且接口一致的模塊做合并化簡(jiǎn)處理,如下圖所示:

 

7.考慮是否涉及多路進(jìn)一路出,要用FIFo

本項(xiàng)目數(shù)據(jù)流方面沒有涉及多路進(jìn)一路出的問題,不需要考慮此處的FIFO問題。

 

8.考慮是否涉及到速率匹配問題,要加上RDY信號(hào)或者FIFO

首先考慮與外圍器件通信的接口上是否需要rdy信號(hào)

OV7670配置接口采用的SCCB協(xié)議,運(yùn)行頻率是100K,遠(yuǎn)小于FPGA內(nèi)部系統(tǒng)運(yùn)行頻率25M,所以外設(shè)配置接口時(shí)序轉(zhuǎn)換模塊與配置模塊間需要設(shè)rdy信號(hào)。

 

再考慮FPGA內(nèi)部模塊間運(yùn)行速率不匹配的情況

sobel算法處理模塊輸出的圖像數(shù)據(jù)發(fā)送給圖像緩存模塊,圖像緩存模塊要緩存一幅完整圖像需要等待,需要設(shè)一個(gè)FIFO。

為了完成乒乓操作,需要設(shè)立兩個(gè)FIFO才能實(shí)現(xiàn)寫FIFO A一幅完整圖像數(shù)據(jù),同時(shí)VGA顯示驅(qū)動(dòng)模塊可以讀緩存好的FIFO B內(nèi)完整圖像數(shù)據(jù)。

因此圖像緩存模塊需要設(shè)兩個(gè)FIFO(實(shí)際項(xiàng)目中用片內(nèi)RAM代替了FIFO,本質(zhì)相同)。

最終得到的模塊圖如下所示:

 

到此,根據(jù)模塊劃分步驟一步步做下來,圖像邊緣檢測(cè)工程的模塊劃分雛形初步已經(jīng)完成。具體實(shí)踐中需要根據(jù)FPGA內(nèi)部信號(hào)的調(diào)整,隨時(shí)拆分或獨(dú)立來增減功能模塊。

以上就是我們做模塊劃分的基本思路,大家有什么問題可以加Q群544453837進(jìn)行交流,更多FPGA相關(guān)資料可以登錄明德?lián)P論壇進(jìn)行學(xué)習(xí)瀏覽:http://www.fpgabbs.cn/

  •   
  •   
  •   
  •  
  • FPGA教育領(lǐng)域第一品牌
  • 咨詢熱線:020-39002701
  • 技術(shù)交流Q群:544453837
主站蜘蛛池模板: 在线精品国内视频秒播 | 日韩精品欧美国产精品亚 | 窝窝免费午夜视频一区二区 | 在线二区人妖系列 | 成人看片黄a免费看视频 | 亚洲黄色免费在线观看 | 国产高清成人吃奶成免费视频 | 日韩在线视频播放 | 免费一级毛片清高播放 | 香蕉在线精品视频在线观看2 | 天天色踪合 | 亚洲国产日韩欧美在线a乱码 | 亚洲欧美日韩在线播放 | 中日韩视频在线看免费观看 | 国产精品欧美亚洲区 | 亚洲绝美精品一区二区 | 欧美中文字幕一二三四区 | 欧美综合中文字幕久久 | 欧美成亚洲 | 怡红院男人天堂 | 久久免费99精品国产自在现线 | 玖玖99视频| 99riav国产精品 | 午夜成年视频 | 久久久久久亚洲精品不卡 | 日本特黄网站 | 极品美女一级毛片免费 | 国产色婷婷精品综合在线 | 九九精品视频在线播放 | 草草视频在线观看 | 国产草草影院ccyycom软件 | 国产不卡的一区二区三区四区 | 成人性色大片 | 欧美日韩国产精品 | 国产成人黄网址在线视频 | 免费人成在线观看视频不卡 | 日本一级特黄特色大片免费视频 | 欧美成亚洲 | 天天狠狠色综合图片区 | 日本一级淫一片免费 | 精品女同一区二区三区免费站 |