边缘检测工程【汇总贴】

  发布时间:2023-10-22  |    作者:yi jin yun  |  浏览量:250

如果同学们的学习问题我们帖子里面没有的请第一时间联系我微信同步:老师13112063618

 

明德扬做了抖音系列短视频,感兴趣可以关注明德扬抖音号:FPGA技巧分享(87481069842)内容不断更新!点赞+关注,学习不迷路!




【问题1】点拨开发板,下载工程检测工程后,没有反应。
答:注意:下载后,需要按下矩阵键盘的按键0(即左上角第一个按键),才能显示!!!



【问题2】点拨开发板可以显示摄像头拍摄过来的图片吗?
答:由于点拨开发板的资源不足,所以无法显示摄像头的图片,如要显示,建议购买MP801开发板



【问题3】PCLK的时钟频率问题
答:FPGA提供XCLK给摄像头,摄像头利用XCLK产生PCLK。所以PCLK来源于XCLK,所以XCLK是多少,PCLK就是多少。也就是说PCLK和XCLK频率大小一样,只是说可能不同相




【问题4】是否不使用PLL,而是用PCLK来作为采集模块的时钟?
答:PCLK经过插件连到FPGA,这其中可能会不稳定。为解决此问题,将PCLK连到PLL,产生一个同频同相的时钟,使用这个时钟作为采集模块的工作时钟。这样,即使PCLK缺少或者不稳定,但产生的时钟也会保持稳定。

 


【问题5】摄像头寄存器配置模块中,配置的是04对应RGB,但是数据手册中RGB应该是01,这是为什么?
答: 这里的Bayer RAW本质上是RAW RGB格式,也是RGB格式。 RAW RGB:在摄像头里没有经过任何处理的数据。 RGB:在摄像头里经过了ISP等算法处理的数据。 如果想要最原始的数据,就使用RAW格式;如果要摄像头先美化一下,就使用RGB格式。想要哪种格式,取决于您的需求。

 

 

【问题6】边缘检测寄存器是怎么样配置的呢?
答:边缘检测中,ov7670_cfg模块和sccb模块,就是用来配置的,可以参考

 


【问题7】边缘检查课程案例OV接口是用MIMP还是DVP的?
答:OV7670是标准的SCCB接口,兼容IIC接口

 


【问题
8】请问在边缘检测模块中的vga_config模块,如果想显示完整的一帧图像(假设为彩条显示)而ram资源不够,我用的多维数组来做存储器存储16bit 640*480个像素点,(目的:在local_wr_req时将写数据按地址存进去,在local_rd_req时将数据按地址读出来),请问以下代码方案是否可行,若不行,请问该如何实现此目的?(代码如下图示)

image.png
答:
1. 使用二维数组代替RAM方法:二维数据使用的是寄存器资料,通常RAM资源是远远大于寄存器资源的,所以RAM不足时,寄存器一般也不足。
2. 如果只是仿真用途,这个是可以的,可以不考虑资源。既然是仿真,那自然也可以增大RAM了。
3. 注意上面代码中有错误,读写地址是独立,不是共同一个的。读哪些地址数据,无关写地址。上面代码中不正确,具体请仿真。



【问题9】这个关系怎么得到的呢?根据这个图的话 上面的关系不应该反过来吗?在下一拍的时候应该吧taps0_ff0赋值给taps0x呀? 
image.png
答:没有 ff0就是表示 延时一拍的意思,taps0_ff是taps0前一时刻的值,需要得到这种结果,就是通过时序逻辑打一拍,资料提供的有直播课讲解,建议结合仿真波形去看,测试文件有提供



【问题10】请问这一段写在代码的哪里?我找不到,看不出
image.png
答:在SCCB代码里

 


【问题
11】 边缘检测课程这个判断读或写使能的计数器的rw_cnt为什么刚好对应add_wdata[16]和add_wdata[17]?

image.png1697936745151792.png
解答:在工作状态(flag==1)时,此时对ov7670的指令进行读写,那到底是对指令进行读还是写,使用读写操作计数器rw_cnt进行计数,按顺序的进行判断。根据模块ov7670_para.v 里指令的格式:{读操作(1bit),写操作(1bit),操作指令(16bits)}。当rw_cnt=0时,设计上此时先判断指令写操作是否有效,因此对应判断ov7670_para.v 里指令的add_wdata[16],确认对应比特位的写操作是否为高电平,如果是,那么需要对该指令进行写操作,产生一个写使能有效信号(wr_en==1)。其他以此类推。
image.png


 

【问题12】边缘检测里面的sccb模块中,根据sccb手册要求,读时序的传输周期要写成两段写,为什么代码里面省了第二段(设备地址+读数据)?

image.png这上面读时序传输周期只写了一段。
答:理解有误,代码里sccb的读操作是有两段时序的。请联系信号 rd_com、count_duan、out_data、flag_sel,直接仿真查看波形一起理解,这样会更直观。

image.png 

 

 

【问题13】问:边缘检测工程中,配置ov7670的寄存器顺序是固定,修改顺序要重新修改代码后上电,有没有办法可以不上电直接修改?

答:目前代码就需要重新上电。 不重新上电的方式,就参考温度检测工程,需要上位机配合




【问题14】问:边沿检测课程里,VGA_driver里面的行同步场同步信号为什么需要打拍延时产生?
答:在本模块中,使用了行计数器和场计数器来产生了读地址rd_addr。
1. 该地址送给上游模块vga_config,然后将数据返回给本模块会有几个时钟的延时。
2. 为了让返回的数据,与最终的信号vga_vys和vga_hys对齐,所以要延时一下,打了两拍再产生行场同步信号。
3. 具体可以通过整体工程仿真来检查确认。检查返回的第一个数据是否有延时;第一个数据与行场同步信号是否有就是对 。

 

 

【问题15】边IP核配置代码中,下面部分的 3'b110,8'h02,32'h00800020 110,02分别属于什么功能呢?答:
1. 前面3比特的3'b110用于定义读写属性:分别是表示读、写和等待位。当对应位为1,表示使能。
a. 例如,3'b110,表示读使能、写使能、等待不使能。那么在代码中,将会对寄存器先执行写操作,然后再执行读操作。读操作的目的,是为了检查写的对不对。
b.例如,3'b001,表示读不使能,写不使能,等级使能。在代码中,不对寄存器操作,只用于延时。
2. 中间的8位是读写地址。即寄存器的地址,对应着IP核数据手册中的寄存器地址。
3. 后面的32位是写数据或者延时值。当写寄存器时,是写到寄存器的数据。当读寄存器,不关心,可填充为0。当是延时操作时,表示要延时的值,单位为时钟周期。



【问题16】问:请问边缘检测中,对于SDRAM模块的读写,涉及到仲裁内容吗?
答:涉及到,就是读写怎么判断的问题

 

 


温馨提示:明德扬2023推出了全新课程——逻辑设计基本功修炼课,降低学习FPGA门槛的同时,增加了学习的趣味性,并组织了考试赢积分活动

http://www.mdy-edu.com/ffkc/415.html

(点击→了解课程详情☝)感兴趣请联系易老师:13112063618(微信同步)


明德扬除了培训学习还有项目承接业务,擅长的项目主要包括的方向有以下几个方面:

1. MIPI视频拼接
     2. SLVS-EC转MIPI接口(IMX472 IMX492)
     3. PCIE采集系统
     4. 图像项目
     5. 高速多通道ADDA系统
     6. 基于FPGA板卡研发
     7. 多通道高灵敏电荷放大器
     8. 射频前端

需要了解相关信息可以联系:易老师13112063618(微信同号)



本文TAG:

Copyright © 2012-2023 版权所有:深圳明德扬科技教育有限公司