基于千兆网接口摄像机设计_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于千兆网接口摄像机设计随着监控系统在商用民用的日渐普及,监控摄像机被广泛应用在各个领域,为社会治安保驾护航。摄像机广泛应用于居民住所、楼盘别墅、商场店铺、财务室。每个不同的应用领域,需要有不同类型的监控摄像机。传统的监控摄像机图像辨别率低,难以满足一些有特别要求的应用场合。利用网络来实现对高辨别率高帧率视频图像传输是视频监控系统的一种重要思想。但百兆网传输带宽不足、数据传输速度太慢严峻制约了其在监控领域的应用。针对这一问题,本文提出了基于千兆以太网传输视频图像并充分利用了并行处理和sdram高速缓存的优势,提高了视频图像的传输速度。2 硬件总体设计硬件总体框架如上图,主控制器fpga选用al

2、tera公司高性价比芯片ep2c20f256c6n。系统工作频率为100m。图像的数据首先在fifo里缓冲后暂存于sdram,在网络空闲时将暂存的图像数据经fifo2缓冲后送mac芯片,再发送到网络上。芯片选用micron technology的mt9p031,在500万像素的满辨别率下最高可输出14帧的图像数据。 sdram选用w982516bh-75,容量为32mbytes,g与fpga内部fifo结合可设计为32mbytes的大容量循环缓存,在图像辨别率为300万像素时可缓存10帧以上图像数据。千兆网接口mac芯片选用ax88180,物理层芯片选用88e1111,再通过网络及rj45用六

3、类网线与计算机千兆网卡相连。3 千兆网接口设计ax88180是亚信公司推出的一款高性能低成本的non-pci千兆以太网控制器,适用于多种需要高速接入网络的系统,如消费和家庭网络等。ax88180内置10/100/1000 mb/s以太网媒体存取控制器(mac),符合ieee 802.3/ieee 802.3u/ieee 802.3ab协议,可与普通16/32位微控制器衔接,其操作与sram相同。ax88180内置10/100/1000 mb/s以太网媒体存取控制器(mac),与phy之间采纳rgmii接口;内置主机接口控制器,可以与16/32位主机便利衔接寻址方式与sram相同;内置40 kb

4、 sram网络封包缓存器,其中32 kb用于从phy接收数据包,kb用于主机发送数据包到phy,可以用高效方式举行封包的存储、检索与修改;内置256字节的配置寄存器,用于主机控制和参数设置;内置eep-rom接口;内置ip/tcp/udp 校验和大大减小微控制器的运算负载,充实传输反应时光。图2为ax88180及phy芯片88e1111的衔接图。3.1 千兆网接口初始化对千兆网接口的初始十分重要,假如初始化不正确,系统将无法正常工作。对接口的初始化主要包括对ax88180和88e1111的初始化。代码用verilog语言完成。详细代码可参考亚信公司的驱动程序代码,应注重初始化时需要加入一些固定

5、的延时以确定芯片正常工作。3.2 图像数据的封包当图像的辨别率为2048×1536时,一个udp数据包包含1024字节的图像数据和两个bytes图像行编号。当计算机收到数据包时,按照图像行编号信息放入对应的内存中,可以很便利的组合成一副完整的图像。并且,采纳行编号的形式,还可防止某一两个数据包走失后导致整副图像都无法显示的问题。以下这fpga写入ax88180的udp包头代码。case(param_num)d0: w_dd d3: w_dd d6: w_dd d7: w_dd d8: w_dd d9: w_dd d10:w_dd d11:w_dd d12:w_dd d13:w_dd

6、d14:w_dd d15:w_dd d16:w_dd d17:w_dd d18:w_dd d19:w_dd d20:w_dd d21:w_dd default:w_dd endcase3.3 应用程序设计因为大量数据在网络上传输,用socket的方式来获图像数据包已经比较困难,丢包率会比较高。采纳winpcap来捕捉网络上的数据包,可有效的削减丢包率。用winpcap编写程序需要安装开发包及驱动程序。第一步,指定要通信的网卡设备并打开。bool initwpcap()pcap_if_t alldevs;pcap_if_t d;char errbufpcap_errbuf_size;if(pca

7、p_findalldevs(&alldevs, errbuf) = -1)afxmessagebox(“error in pcap_findalldevs”);return false; / 枚举网卡然后添加到用户挑选的combobox中,代码省略char filter = "port 6000"/只接收端口6000的数据bpf_u_int32 netmask = 0xffffff;struct bpf_program fcode;if(pcap_compile(m_pcap, &fcode, filter, 1, netmask) afxmessagebo

8、x("nerror compiling filter: wrong syntax");pcap_close(m_pcap); return false; if(pcap_setfilter(m_pcap, &fcode)afxmessagebox("nerror setting the filtern");pcap_close(m_pcap); return false; pcap_freealldevs(alldevs); / 释放alldev资源return true;其次步:开启一个线程接收数据。uint recvproc(lpvoid lpparammeter) pcap_loop(m_pcap, 0, packet_handler, null); return 0;packet_handler是处理收到数据包的回调函数, 当从port6000收到数据后它会被调用,直到线程终止。第三步:处理收到的数据void packet_handler(u_char param, const struct pcap_pkthdr header, const u_char pkt_data)const u_char real_data = pkt_data+42;int row=real_data0+(real

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论