概述
基于图像传感器的CPLD视觉系统设计
1 系统方案与原理
方案1 图像传感器+微处理器(ARM或DSP)+SRAM
方案2图像传感器+CPLD/FPGA+微处理器+SRAM
方案1系统结构紧凑,功耗低。在图像采集时,图像传感器输出的同步时序信号的识别需要借助ARM的中断,而中断处理时,微处理器需要完成程序跳转、保存上下文等工作,降低了图像采集的速度,适合对采集速度要求不高、功耗低的场合。
2 系统硬件 由图1可见,微处理器的总线接在CPLD上,在对功耗有严格要求的场合中,只需要在CPLD中,将OV6620的同步时序信号所对应的引脚与 LPC2214连接在CPLD上的中断引脚相连,系统就可以转换成方案1的形式。对CPLD而言,引脚相连的仅仅是组合逻辑,降低了功耗。方案1的具体工 作过程可见参考文献。而对于采集速度要求较高的场合,CPLD部分的程序源代码见本刊网站www.mesnet.com.cn——编者注。下面重点介绍这 种情况下的应用。
2.2 工作过程
2.3 硬件方案的特点
LPC2214 负责图像处理,CPLD负责图像数据的采集,很好地实现了功能上的封装。可以看到,CPLD将与硬件时序相关的程序封装,与外界的接口仅为标志状态线以及 数据采集总线,极大地方便了系统的升级而无需改动图像采集部分的硬件和软件。甚至更换为其他型号功能更为强大的微处理器,只要按照上述标志状态线的约定来 操作,系统仍然可以正常工作,增强了系统的兼容性和可移植性。
3 系统软件
3.1 CPLD部分程序设计
在Verilog语言中,对上升沿的检测是通过always语句来实现的。例如检测时钟信号cam_pclk的上升沿:always@(posedge cam_pclk)。但从上面的分析中可以看出,需要检测的信号沿有3个,可以都用always来检测,但在Verilog的语法中always语句是不 可以嵌套的。为了解决这个问题,本系统中采用了如下方式:整个模块只有一个时序逻辑的always块,其他的信号沿检测用与al—ways等价的方式实 现。例如对于cam_vsyn信号,设置2个临时信号vsyn_0和vsyn_1,在每个时钟信号的上升沿,进行如下赋值:
3.2 ARM部分程序设计
4 提高系统的工作速率 比如,count的范围是0~59; count=(count+1)%60; 用下面语句代替: if(++count>=60) count=0;
目 前,系统工作在帧处理模式下的工作速率是25帧/s,作为系统功能的验证,这里采用的算法是颜色跟踪。如果仅做纯粹的图像采集,而不做图像处理,那么系统 可以达到OV6620的最高工作速率,即60帧/s。而在图像处理方面,不同的图像处理程序效率对系统的工作频率有较大的影响。下面给出在通用ARM处理 器下提高程序效率的几个建议:
结 语
本 文介绍了一种基于ARM和CPLD的嵌入式视觉系统,可以实现颜色跟踪。在硬件设计上,图像采集和图像处理分离,更利于系统功能的升级。而视觉处理算法更 注重处理的效率和实时性,同时根据不同的需要有两种模式可供选择。最后给出了提高程序效率的一些建议和方法。与基于PC机的视觉系统相比,该系统功耗低、 体积小,适合应用于移动机器人等领域。
最后
以上就是孤独大门为你收集整理的基于图像传感器的CPLD视觉系统设计基于图像传感器的CPLD视觉系统设计的全部内容,希望文章能够帮你解决基于图像传感器的CPLD视觉系统设计基于图像传感器的CPLD视觉系统设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复