机器人的视觉系统模块的设计

物联网

775人已加入

描述

一、概述

  视觉技术是近几十年来发展的一门新兴技术。机器视觉可以代替人类的视觉从事检验、目标跟踪、机器人导向等方面的工作,特别是在那些需要重复、迅速的从图象中获取精确信息的场合。尽管在目前硬件和软件技术条件下,机器视觉功能还处于初级水平,但其潜在的应用价值引起了世界各国的高度重视,发达国家如美国、日本、德国、法国等都投入了大量的人力物力进行研究,近年来已经在机器视觉的某些方面获得了突破性的进展,机器视觉在车辆安全技术、自动化技术等应用中也越来越显示出其重要价值。本文根据最新的CMOS图像采集芯片设计了一种通用的视觉系统模块,经过编制不同的图像处理、模式识别算法程序本模块可以应用到足球机器人,无人车辆等各种场合。

  二、设计原理

这里主要问题在于FPGA内部的双口RAM读写操作共用同一数据总线和地址总线,当同时进行读写操作的时候就会产生时序问题导致写入或读出的数据错误。在这两个过程中为了防止数据和地址总线冲突,在FPGA内部设计了一个中央总线仲裁器。根据公共数据传输的先后顺序,中央仲裁器先接受图像传感器的总线请求,当图像存储到RAM之中后,中央仲裁器才响应单片机系统的读信号请求。

  这里给出双口RAM的构造及读写控制程序:

  Entity dual_port_ram is
  Generic(d_width:integer:=2;
  Mem_depth:integer:=8);
  Port(clk:in STD_LOGIC;
  CS:in STD_LOGIC;
  We: in STD_LOGIC;
  Indata: in STD_LOGIC_VECTOR(7 downto 0);
  Outdata:out STD_LOGIC_VECTOR(7 downto 0);
  Raddr,waddr:in STD_LOGIC_VECTOR(1 downto 0));
  End dual_port_ram ;
  Architecture data of dual_port_ram is
  Type mem_type is array(3 downto 0) of
  STD_LOGIC_VECTOR(7 downto 0);
  Signal mem:mem_type;
  Begin
  Process(clk,we,waddr)
  Begin

  If(rising_edge(clk))then
  If(we='1')then
  Mem(conv_integer(waddr))

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分