当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要:基于FPGA开发的机器人VGA视频监视系统。该系统可将经模拟摄像头得到的数据通过处理后直接送到显示器,节省了计算机的处理过程;系统预留出外部接口和程序空间,有很好的再开发性。根据输入视频信号和输出视频信号的不同格式,讨论了用Verilog硬件描述语言设计从YcrCb到RGB格式的转换器的方法。
关键词:可编程器件 硬件描述语言 实时图像 VGA显示器

工业机器人往往在无人现场监视的情况下工作,这就要求工作人员能在控制室中实时监视机器人的运动状态,了解机器人周围的工作环境,及时发现机器人运动时出现的故障。最好的监视手段就是实时视频监视。随着计算机、多媒体和集成电路等技术的发展,各种大规模集成电路的出现为视频信号数字化处理提供了有效手段。利用可编程器件FPGA实现的VGA彩色显示控制器已有很多的实际应用。本设计采用先进的FPGA芯片,通过硬件描述语言Verilog设计模块控制器实现各个系统模块间的通信及控制,通过Modelsim软件对系统功能模块进行仿真综合,在VGA显示器上得到十分清晰的图像。系统预留出一定的程序空间,可根据不同现场需要对图像进行诸如小波变换、图像增强等处理。
1 系统整体结构
系统整体结构框图如图1所示。


目前数字监视系统已在某些领域取代了模拟监视系统,但与数字摄像头相比,模拟摄像头在高分辨率和变焦方面仍占有优势。根据机器人实际工作情况,本设计选用高性能的模拟摄像头来采集视频信号。
模拟摄像头输出的视频信号中除了图像信号外,还有场同步、行同步、开槽脉冲等信号,它们和图像信号混合在一起,所以不能直接对其进行A/D转换。要得到图像数据,就要对视频信号进行必要的同步分离。本系统采用Philips公司的增强型可编程视频解码器SAA7113,通过FPGA配置其寄存器,使其输出标准ITU 656 YUV4:2:2格式(8位)VPO数据;通过Verilog语言设计的I2C总线控制器,控制两个多功能实时输出端口,并可以用来校验是否写入操作正确;通过I2C总线对地址02H进行配置可以得到想要的片内信号源[1][2]。
系统选用EP1C20为FPGA主芯片,作为Cyclone系列芯片中功能最强大的芯片,其运算速度快,具有20 060个逻辑单元,FPGA内部有PLL,可以用50MHz的时钟产生SRAM及VGA控制器所需要的时钟。FPGA内部结构非常适合数字视频处理,同时技术成熟,完全可以用来实现对机器人运动的视频监视。
帧存是图像处理器与显示设备之间的数据通道,因此要显示的图像数据首先存放在帧存中,然后再输出显示。帧存的设计是图形显示系统设计的关键。采集的一帧图像是800×600像素,每像素用2字节表示,每帧图像800×600×16bit=7500kbit,分成奇数场和偶数场分别存储在两片SRAM中,则每片SRAM存储3750kbit的图像数据,因此选用两片256K×16bit=4Mbit的静态存储器(SRAM)ISSI IS61LV25616-10T芯片作为图像帧存,并用FPGA设计帧存控制器,从而大大减小电路板的尺寸,增加系统的可靠性和设计灵活性。FPGA作为逻辑控制芯片, 负责识别源信号, 将图像数据按照一定的格式写入帧缓存, 同时以固定的速率从帧缓存中读出数据并产生相应的同步信号,一同送往DAC。
视频输出模块采用ADI公司的VGA DAC ADV7125KST50,其与FPGA间的接口为标准的数字VGA信号,同时可配置为8位输入。ADV7125KST50包括三路8位D/A转换器并与RS-343A/RS-170接口输出兼容。
ADV7125KST50在本系统中的硬件设计如图2。


2 系统功能模块
2.1 各功能模块设计
系统通过Verilog硬件描述语言设计的I2C总线控制器与SAA7113芯片完成原始图像的处理与传输。I2C控制核的设计采用自顶而下的方法,分为三个模块:I2C_top模块是顶层管理模块,用来生成当前I2C控制核的工作状态,把命令字信号送到I2C_cmd模块;I2C_cmd模块的核心部分是命令状态机,该模块的主要功能有两个:一是把I2C_top模块发送的start、write、read、stop四个命令信号转化命令码发送到I2C_controller模块,二是实现接收数据的串并转换;I2C_controller模块负责I2C接口,最终实现I2C总线信号SCL和SDA的启动、停止、读、写、确认等具体操作的时序关系[5]
SRAM控制器完成对帧存的数据存储和读取,SRAM控制器的结构包括系统控制接口模块、CMD命令解析模块、命令响应模块、数据通路模块共四个模块。系统控制接口模块用于接收系统的控制信号,进而产生不同的CMD命令组合;CMD命令解析模块用于接收CMD命令并解码生成操作指令;命令响应模块用于接收操作指令并产生SRAM的操作动作;数据通路模块则用于控制数据的有效输入输出。
当FPGA向SRAM存储数字视频信号时,用SAA7113的LLC2作为FPGA内部同步时钟信号;当FPGA传输数字视频信号时,读选通信号Clk作为内部同步时钟信号。当有VS上升沿时,如果RTS0为低电平,则表明奇数场即将到来,产生Pin高电平信号,对Pin取反作为SRAM(ODD)的写信号WE1;如果RTS0为高电平,则表明偶数场即将到来,产生PinEven高电平信号,对PinEven取反后作为SRAM(Even)的写信号WE2,WE1和WE2经过与门后产生两个SRAM的写选通信号WE。此外,由Pin和PinEven产生PinAll信号作为选择内部同步时钟的控制信号。由FPGA芯片产生的Ramodd(OE1)和RamEven(OE2)信号,分别用作SRAM(ODD)和SRAM(EVEN)的读信号,OE1和OE2经过与门后产生两个SRAM读选通信号OE。当PinAll为高电平时,表示FPGA正在向SRAM存储数据,此时用WE1作为SRAM(ODD)的片选信号CE1,用WE2作为SRAM(EVEN)的片选信号CE2;当Pin为低电平时,表示正在从SRAM读取数据,此时用OE1作为SRAM(ODD)的片选信号CE1,用OE2作为SRAM(EVEN)的片选信号CE2。
VGA控制器实现视频信号的处理,并将图像显示在VGA显示器上。在VGA中,水平同步脉冲在光栅扫描线需要回到水平开始位置,即在屏幕左边时插入,垂直同步脉冲在光栅扫描线需要回到垂直开始位置,即在屏幕上方时插入。复合同步脉冲是水平同步脉冲和垂直同步脉冲的组合。RGB为像素数据,当消隐有效时,RGB信号无效。VGA主要参数的工业标准为:像素输出频率为25.175MHz;行频(线频率)为31.469kHz;场频(刷新率)为59.941Hz[4]。图3是VGA行扫描、场扫描的时序图。


2.2 YCrCb到RGB格式的转换器设计
在SAA7113 所提供的多种数据输出格式中,ITU656 格式在8位输出管脚上直接输出与像素时钟相对应的像素灰度值。由于SAA7113是YUV输出,而目前所有的显示器都采用RGB 值驱动,这就要求在显示每个像素之前,必须把彩色分量值转换成RGB 值。根据SAA7113数据手册的输入标准以及系统的时钟,需要对输入的数据做一个延时,调整Y、Cb、Cr的顺序,有效视频信号延迟一个周期,而对准信号要延迟两个周期。本系统通过Verilog语言设计了一个从YCrCb到RGB格式的转换器。
YCrCb转换到RGB(注意到0.299+0.587+0.114=1.0,三原色的系数之所以不同是因为人的眼睛对不同波长的颜色有不同的敏感度):
Y=0.299R+0.587G+0.114B
CB=-0.1687R-0.3313G+0.5B
CR=0.5R-0.4187-0.0813
RGB转换回YCRCB:
R=Y+1.402CR
G=Y-0.34414CB-0.71414CR
B=Y+1.772CB
2.2.1 YcbCr到RGB 变换器接口说明
module yuvrgb(
clk,//时钟输入
rst,//复位输入
y_in,//变换前Y分量输入
cb_in,//变换前Cb分量输入
cr_in,//变换前Cr分量输入
ena_in,//待变换数据使能,当它为高时,输入数据有效
R_out,//变换后R分量输出
G_out,//变换后G分量输出
B_out,//变换后B分量输出
ena_out//变换后数据使能输出
);
2.2.2 YcbCr到RGB变换器测试方法
在Quartus Ⅱ下通过调用Modelsim软件对该变换器进行仿真,将YCbCr 输入转换成RGB 输出,时序图如图4所示。


在Quartus Ⅱ下调用Modelsim的方法简单、直观,并且易于修改。根据得到的仿真结果,可以看到变换器满足时序要求。
本文设计开发了一套基于FPGA的机器人图像监视系统,该系统成功地应用于对机器人的视频图像传输,并可通过Verilog硬件描述语言设计各种控制模块并实现模块间的通信。这个平台可以对视频信号进行高质量的传输,还可以根据现场需要在今后的设计中对视频信号进行一系列的图像处理,具有很好的再开发性。
参考文献
[1] 张晓健.视频解码芯片SAA7113的初始化与控制[J].电子设计应用,2003,(8).
[2] PHILIPS Corporation.SAA7113 DATA SHEET[Z].1999-7-1.
[3] 陈海燕.I2C串行通讯的软件实现[I].国防科技大学学报,1996,(4).
[4] ROBIN M,POULIN M.视频和音频系统的设计与安装.人民邮电出版社,2003.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bumblebee X是最新的GigE驱动立体成像解决方案,为机器人引导和拾取应用带来高精度和低延迟

关键字: 机器人 立体成像 仓库自动化

2024年4月28日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 宣布与Analog Devices, Inc. (ADI) 合作推出一本新电子书,重点介...

关键字: 柔性制造 机器人 机器视觉

TDK 株式会社(东京证券交易所代码:6762)隆重宣布其具有片上处理能力的 InvenSense SmartSonic™ICU-10201 超声波飞行时间 (ToF) 传感器全面上市。该传感器可助力实现高性能和低功耗的...

关键字: 飞行传感器 物联网 机器人

ST4E1240 是意法半导体新系列收发器芯片的首款产品,为现代高性能工业应用提供强大而可靠的 RS-485信号传输解决方案。新收发器支持的数据速率远高于原有的RS-485 标准,可以延长电缆长度实现多点连接,总线上的收...

关键字: 工业自动化 智能建筑 机器人

机器人技术将与移动互联网、物联网、大数据、云计算、人工智能等新一代数字技术进一步融合,特别是5G技术将使工业机器人成为工业智能制造体系的一部分,通过实时传输数据提高效率。

关键字: 机器人 医疗机器人 互联网

这项民意调查使业界有助于了解工业5.0是否准备就绪

关键字: 工业5.0 工业4.0 机器人

在科技迅猛发展的今天,履带机器人在诸多领域展现出了广泛的应用前景,从现代农业的采摘、喷药,到消防领域的救援,再到现代化防疫中的喷雾消毒,甚至是复杂地形的运输任务,它们都能出色地完成任务。而驱动这些履带机器人的核心部件,便...

关键字: 履带机器人 机器人 电机

今天,小编将在这篇文章中为大家带来机器人的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 机器人 机器人学

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式
关闭
关闭