|
題目
實(shí)現攝像頭OV7670的配置及完成圖像的采集。請讀者考慮實(shí)現該功能需要哪些模塊?進(jìn)行模塊劃分并給出端口定義,不需要寫(xiě)出代碼。
模塊劃分
根據需配置外設交互架構,模塊劃分如圖6-16所示:
fpga培訓
圖6-16 初步模塊劃分
進(jìn)一步分析配置模塊及接口模塊。
1. 配置模塊
從OV7670的datasheet可知,完成某些必要寄存器的配置,OV7670才能正常工作,而配置不同的寄存器,又能夠實(shí)現不同的功能。配置模塊根據配置要求產(chǎn)生讀寫(xiě)命令、數據與地址給接口模塊。配置表里包含操作碼,所有寄存器的地址以及寄存器的配置值。
下面詳細介紹配置表,以下是OV7670的部分配置表:
明德?lián)P科教
(1)REG_NUM表示此外設寄存器總數。
(2)配置表存放的格式為:“操作碼”+“地址”+“配置值”,比如:add_wdata = {2'b11,16'h1204},其操作碼是2’b11,地址是8’h12,配置值是8’h04。
(3)操作碼為2比特,00表示空操作;01表示只讀;10表示只寫(xiě);11表示先寫(xiě)后讀。
(4)配置模塊讀取配置表,根據操作碼來(lái)發(fā)送命令給接口模塊。如果操作碼為00,則跳過(guò)此命令;如果操作碼為01,則產(chǎn)生一個(gè)讀命令給接口模塊,讀地址是配置表給出的地址;如果操作碼為10,則產(chǎn)生一個(gè)寫(xiě)命令給接口模塊,寫(xiě)地址和寫(xiě)數據由配置表給出;如果操作碼為11,則先給寫(xiě)命令,寫(xiě)地址和寫(xiě)數據由配置表給出,執行完后,再給讀命令,讀地址與本次操作的寫(xiě)地址相同。
采用需配置外設交互架構,在配置具有多功能的外設的寄存器時(shí),能夠很方便地進(jìn)行調試,僅需通過(guò)修改配置表就可以實(shí)現,所以明德?lián)P強烈推薦此類(lèi)外設使用該構架。調試過(guò)程一般是確認讀操作,看能否讀1個(gè)寄存器數據,從而確保讀操作沒(méi)問(wèn)題;然后寫(xiě)1個(gè)寄存器再讀出來(lái),確認讀出來(lái)的數據是不是寫(xiě)進(jìn)去的數據,從而確保讀寫(xiě)操作沒(méi)問(wèn)題;之后連續依次讀寫(xiě)一組寄存器,確保每次讀寫(xiě)都正確;最后把讀功能取消,只保留寫(xiě)功能,作為最后的代碼。
2. 接口模塊
接口模塊需要完成兩個(gè)功能:一是完成OV7670的配置,即根據配置模塊的讀寫(xiě)命令及數據產(chǎn)生SCCB操作時(shí)序(查閱OV7670的datasheet,OV7670的配置接口是SCCB);二是完成OV7670的圖像采集。所以模塊劃分原則一,一個(gè)功能一個(gè)模塊,接口模塊可以劃分為SCCB接口模塊與采集模塊。
綜上,模塊劃分結果如圖6-18。
fpga設計
圖6-18 模塊劃分框圖
模塊的端口及模塊之間數據流向
模塊劃分好后,需要進(jìn)一步確認模塊的端口及模塊之間的數據流向?蓞⒖5.1.2 模塊劃分端口規范。模塊劃分最終結果如圖6-19所示:
至簡(jiǎn)設計法
圖6-19 模塊劃分最終框圖
技術(shù)交流QQ群:544453837
更多FPGA技術(shù)資訊:明德?lián)P科教
了解>>至簡(jiǎn)設計法 |
|