页面加载中,请稍候
来源:电子设计工程发布时间:2010-12-08
询问 AI本系统设计利用FPGA间接控制2块MAX4312选通所需要的视频通道,实现各个视频通道间相互切换。根据开关控制信号的设计思想在FPGA中对拨动开关输入信号做去抖动处理,然后对不同的开关操作进行编码,最后将信号送给DSP进行处理。
l 系统总体结构
系统总体结构如图1所示。在1台工业织布机上安装了16个CCD图像传感器对布匹进行图像监控,通过2片MAX4312选择16路图像视频信号中的一路,经可编程视频输入器件SAA7111处理后从VP0输出数字图像信号。同时SAA7111输出相应的行、场同步信号HS,VS以及与HS锁定的时钟信号LLC、LLC2,利用这些信号在EP3C25F324C8中对图像进行预处理。然后将处理后的图像通过PPI口送给BF561中进行算法处理,最后将处理结果送给报警和状态指示装置,实现织布机告警功能。为了使图像监控更方便,该系统设计增添了电平拨动开关和脉冲拨动开关。电平开关使输入图像停止切换,固定于其中一路视频输人图像。脉冲开关可以左右拨动,每次向左或向右拨动都会产生一个很短的上升沿脉冲,同时图像向前或向后进行切换,实现手动选择视频输入通道的功能。
2 软件模块设计
2.1 开关控制信号
实际工程中,BF56l连接在FPGA上的PF引脚比较少。为了节约资源,只通过BF561中的BF9来识别2个拨动开关的动作。因此首先需要将2个拨动开关输入信号在FPGA中进行处理整合,得到合适的信号。
本系统开关控制信号的设计思想:由于设计这个信号的目的是识别开关控制动作。因此,只要任何一个开关发生了动作就需要产生一个脉冲。如果只有脉冲信号就只能知道开关发生了动作,而不知道是哪个开关发生了什么动作。所以,要识别具体是哪个开关发生了什么动作就必须配合双口RAM中的数据进行解码。该系统设计的脉冲持续时间对BF561来说并不重要,只要BF561能识别这个脉冲即可。由于系统中的2个拨动开关,一个是电平拨动开关,另一个是脉冲拨动开关,因此,只要根据电平拨动开关的动作制作相应的脉冲信号,再用这个信号与脉冲拨动开关产生的原始信号逻辑相与,就能得到所需要的目的信号。
由于拨动开关是机械触点,当其断开、闭合时会有相应的前沿、后沿抖动,为了使每次动作都只做一次响应,就必须对原始开关信号做去抖动处理。抖动信号可以分为2种:一种是时间很短的干扰信号,如高频毛刺;另一种是时间较长的干扰信号,如开关抖动。这里的拨动开关都是人为操作,因此每次触发的时间都不会很短,一般小于10 Hz。根据上述分析开关抖动信号属于后一种。因此在每次开关操作后,对其产生的信号进行连续采样,如果每次采样都是低电平或者都是高电平,就认为此信号不是抖动,确实开关状态发生了变化。整个设计过程使用Verilog硬件描述语言编写,然后在QuartusⅡ平台上编译,并采用SignalTapⅡLogic Arlalvzer对信号采样分析,调试通过后连同其他程序一起烧写进FPGA的配置器件EPCSl6中。图2~图4分别是各个开关动作去抖动前和去抖动后的实时信号采样图。去抖动模块中的部分代码如下:
设计过程中,首先将开关动作进行编码。然后将编码后的数据存进空间大小为8的双口RAM中。当BF561检测到PF9上的脉冲后,在PF中断中读取RAM中指定地址的数据,然后根据这个数据进行开关状态解码并按解码后的控制信息对2块MAX4312器件进行操作以控制视频通道。对开关动作进行的编码程序代码如下:
程序中RAM的读信号rden_signal是由DSP发送的地址信号DSP_A、BANK选择信号DSP_AMSl以及DSP读信号DSP_ARE进行控制的。当DSP不从双口读取数据时,必须给DSP的数据线赋值高阻,以免影响SDRAM对DSP数据线的操作。赋值指令如下:assignDSP_D=(rden_signal=l 'b1)?DSP_D_TEMP;8 'hzz;其中DSP_D_TEMP是从双口中读取的数据。
3 结论
首先介绍了整个系统的工业背景和硬件架构,然后着重阐述了怎样在FPGA中处理开关控制信号,以达到可靠响应每个开关动作的目的。整个设计程序是在QuartusⅡ平台上用Verilog硬件描述语言编写,利用QuartusⅡ中的下载工具和SignalTapⅡLogic Analyzer工具进行下载、实时采样,并多次调试验证。本次设计已经成功应用于布机告警系统中,每次拨动开关都能准确、可靠的切换视频通道。虽然此系统中只有两种开关,但是整个程序的设计思想对多种开关控制也是通用的,只需在细节上稍作改变就能识别多种开关动作。
新闻来源:电子设计工程,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-07-01

2026-06-23