1.工业相机的驱动p驱丢帧的问题是由什么原因引起的?
2.GigE Vision概述
3.ZYNQ+linuxç½å£è°è¯ç¬è®°ï¼3ï¼PL-ETH
4.机器视觉—常见的2D工业相机数据接口介绍
工业相机的丢帧的问题是由什么原因引起的?
一般而言,工业相机丢帧与工业相机所采用的源码传输接口是没有关系的,无论是动原USB,还是理介、GigE、驱动p驱或者是源码有约源码CameraLink。设计不良的动原驱动程序或工业相机硬件才是造成丢帧的真正原因: 设计不良的工业相机之所以会发生丢帧的现象,其实就是理介资料通道的堵塞,无法及时处理,驱动p驱所以新的源码图像进来时,前一张可能被迫 丢弃,动原或是理介新的图像被迫丢弃。
要解决这问题,驱动p驱需要设计者针对驱动程序与工业相机硬件资料传输的源码每个环节进行精密的设计。
Regem Marr 研祥金码旗下的动原新房 源码R-系列读码器,能够快速、全方位的条码捕捉读取。内置丰富的IO接口,支持复杂现场需求。集成多组可控光源,实现光源分路独立控制,响应你的柔性化生产需求。多核并行处理,提高整体读取速度。即插即用快速安装,一步到位轻松设定。不仅仅是智能读码器,更是业务好帮手,生产统计,clover源码计件统计功能强大超乎想象。
通过官方网站(www.evocjm.com),可在线获取相关技术文件、工具、驱动及常见问答库,即时享受专业官方服务。您还可以通过在线沟通工具,直接发起对话申请,或提交留言,我们的客服人员将第一时间与您取得联系。
Regem Marr 研祥金码分支机构遍布全国,各分机构配备多名现场专家快速响应,提供优质的专业服务;全国联保,小时内回应客户需求。psi 源码
GigE Vision概述
在图像传输领域,GigE Vision作为一种基于千兆以太网的标准,由自动化影响协会AIA发起制定。该标准具有传输距离长(无中继时可达米)、传输效率高(可升级至万兆网)、通信控制方便、软硬件互换性强、可靠性高等显著优势。因此,GigE Vision正成为数字图像领域的主要接口标准,受到越来越多商家的青睐。标准委员会的主要成员包括国际知名图像系统软硬件提供商。 GigE Vision与标准千兆以太网相机在硬件架构上基本一致,仅在底层驱动软件上有所不同。his 源码主要解决了标准千兆网的两个关键问题:数据包传输效率低和CPU占用率过高的问题。标准千兆网的数据包大小为字节,而GigE Vision通过采用“Jumbo packet”技术,最大数据包可达字节。此外,GigE Vision驱动采用UPD/IP协议,并通过完全的DMA控制,显著降低了CPU的占用率。在同等配置下,当传输速度达到MB/s时,CPU占用率仅为2%,显著提高了系统性能和效率。 总之,GigE Vision标准通过优化数据包传输和降低CPU负载,有效地解决了标准千兆以太网在图像传输中的瓶颈问题。其高速、高效和高可靠性使得其成为现代图像系统不可或缺的接口标准之一,受到广泛采用与推崇。扩展资料
GigE VisionZYNQ+linuxç½å£è°è¯ç¬è®°ï¼3ï¼PL-ETH
å¨ZYNQä¸ä½¿ç¨gigE Visionåè®®çç½ç»æ¥å£ç¸æºã
第ä¸æ¥ï¼è°éPS侧ç½å£GEM0ï¼Xilinx BSPé»è®¤é 好ï¼ã
第äºæ¥ï¼è°éPS侧ç½å£GEM1ï¼è§åä¸ç¯ææ¡£ï¼å¼åç¬è®°(1)ï¼ã
第ä¸æ¥ï¼è°éPL侧ç½å£ï¼æ¬æéè¿°ï¼ã
第åæ¥ï¼å¨PL侧ç½å£ä¸éªè¯Jumbo Frameç¹æ§ï¼å¹¶å¨åºç¨å±éé gigE Visionåè®®ã
æ ¹æ®ãxappãå¯ç¥ï¼PL侧çPHYæ¯æBase-XåSGMII两ç§é ç½®ï¼è¿ä¸¤ç§é 置对åºä¸¤ç§ä¸åçPHYå¼èæ¥å£ï¼è¿æ¥å°MACï¼ãèæ们çhdfæ件使ç¨çæ¯Base-Xçé ç½®ã
å ³äºç½å£çLinux驱å¨ï¼æ们å¨å®ç½æ¾å°ä¸ä»½èµæï¼ Xilinx Wiki - Zynq PL Ethernet ãèµæå¾é¿ï¼æ们åªçä¸æ们ç¸å ³ç2.4.1 PL Ethernet BSP installation for Base-Xâè¿ä¸ç« èå°±å¯ä»¥äºã
é¦å å¯¼å ¥FPGA设计åäºæä¾çhdfæ件ï¼
å¨å¼¹åºçå¾å½¢çé¢éï¼è¿å ¥Subsystem AUTO Hardware SettingsââEthernet SettingsââPrimary Ethernetï¼ç¡®è®¤å¯ä»¥çå°PL侧ç½ç»è®¾å¤axi_ethernet_0ï¼è¯´æhdfæ件éå·²å å«äºå¿ è¦çç½å£ç¡¬ä»¶ä¿¡æ¯ï¼
ä¸å¾ä¸è¢«éä¸çç½å£å°æ为Linuxä¸ç设å¤eth0ãè¿éæ们é»è®¤éæ©ps7_ethernet_0ï¼å³ä½¿ç¨GEM0ä½ä¸ºé¦éç½å£ã
å¯ç¨Xilinx AXI Ethernet驱å¨
è¿å ¥Device Drivers -- Network device support â éä¸Xilinx AXI Ethernetï¼ä»¥åXilinx Ethernet GEMï¼è¿æ¯PS侧ç½å£ç驱å¨ï¼
è¿å ¥Networking support â éä¸ Random ethaddr if unset
è¿å ¥Device Drivers -- Network device support -- PHY Device support and infrastructure â å¯ç¨Drivers for xilinx PHYs
è¿å ¥~~~~Device Drivers -- DMA Engine Support -â ç¦ç¨~~~~Xilinx AXI DMAS Engine~~~ ï¼å¯¹åºçé 置项å为 ~~ CONFIG_XILINX_DMA ~~~ï¼
注æï¼ Xilinx Wikié对设å¤æ èç¹çå¼ç¨æ误ï¼&axi_ethernetï¼ï¼å¯¼è´ç¼è¯æ¥éï¼åºæ¹ä¸º&axi_ethernet_0ã
注ï¼PL-ETH驱å¨æå¨è·¯å¾ï¼<project>/build/tmp/work-shared/plnx_arm/kernel-source/drivers/net/ethernet/xilinx/xilinx_axienet_main.cåxilinx_axienet_mdio.cã对åºçå æ ¸é 置项为CONFIG_NET_VENDOR_XILINXåCONFIG_XILINX_AXI_EMACã
å¯ç¨ethtoolåtcpdumpï¼è°è¯ç¨ï¼éå¿ é¡»ï¼ï¼
ç¶åå°çæçBOOT.BINåimage.ubæ·è´å°SDå¡æ ¹ç®å½ä¸ï¼å°SDå¡æå ¥æ¿åä¸ï¼ä¸çµè¿è¡ã
ä¸çµåï¼ä½¿ç¨ifconfig eth1æ¥çç½å£ä¿¡æ¯ï¼è§å¯MACå°åä¸è®¾ç½®çä¸è´ï¼ä¸ifconfig eth1 ..1. up没ææ¥éã
æµè¯ç½ç»éè·¯ï¼ping PCæ¯éçã说æç½å£å·¥ä½æ£å¸¸ã
Linuxä¸eth1ï¼å³PL-ETHï¼çMACå°åæ误
é®é¢æè¿°ï¼
å¼æºæå°ï¼
注æï¼
MACå°åæ¯éçï¼é©±å¨é解æåºçæ¯GEM0çMACå°åã
è¯éªåç°ï¼å³ä½¿å¨system-user.dtsiéä¸ålocal-mac-addressï¼ä¹ç §æ ·è§£æåºçæ¯GEM0çMACã
èå°system-user.dtsiéçlocal-mac-addressæ¹å为pl-mac-addressï¼å¹¶å°é©±å¨é解æçå符串ä¹å¯¹åºæ´æ¹ä¸ºpl-mac-addressï¼åå¯ä»¥æ£ç¡®è§£æåºæ¥ï¼
Passing MAC address to kernel via Device Tree Blob and U-Bootï¼
/support/answers/.html
U-Bootéçç¯å¢åéethaddrä¼è¦çæ设å¤æ épl-ethçlocal-mac-addrå段ï¼ä»èå½±åLinuxå¯å¨åçç½å¡MACå°åï¼
ä½U-Bootéçç¯å¢åéipaddrä¸ä¼å¯¹Linuxå¯å¨åçé 置产çä»»ä½å½±åãå 为设å¤æ éæ ¹æ¬å°±æ²¡æå ³äºIPå°åçé ç½®ã
phy-modeæä¹ä¼æ¯sgmiiï¼æ¥äºä¸å®æ¹çæä¾çBSPéï¼ä¹æ¯âsgmiiâã说æè¿ä¸ªæ²¡é®é¢ãå ·ä½åå ä¸æ¸ æ¥ã
@TODO: 设å¤æ éçä¸æå·ç顺åºå¦ä½å½±ååè½ï¼
为ä½è¯»åºæ¥çIRQå·ä¸å¯¹å¢ï¼è¿æ¯å 为è¿é读å°çä¸æ¯ç¡¬ä»¶çä¸æå·ï¼èæ¯ç»è¿ç³»ç»æ å°ä¹åç软件IRQ numberã两è ä¸å ·æ线æ§å ³ç³»ã
å ³äºä¸æå·ççé®ï¼
Linuxä¸çç½å£eth0ãeth1ç顺åºï¼ä¼¼ä¹æ¯æç §phyå°åä»å°å°å¤§æ¥æå¸çã
Xilinx xapp-zynq-eth.pdf (v5.0) July ,
/support/documentation/application_notes/xapp-zynq-eth.pdf
Xilinx Wiki - Zynq PL Ethernet:
/wiki/spaces/A/pages//Zynq+PL+Ethernet
Xilinx Wiki - Linux Drivers:
/wiki/spaces/A/pages//Linux+Drivers
Xilinx Wiki - Linux Drivers - Macb Driver:
/wiki/spaces/A/pages//Macb+Driver
Xilinx Wiki - Zynq Ethernet Performance:
/wiki/spaces/A/pages//Zynq+Ethernet+Performance
æ¥å°å ³äºJumbo frame MTUçå®ä¹ï¼å½åå¼ä¸ºï¼å¯å¦æ¹å¤§ä¸äºï¼
驱å¨æºç éå ³äºjumbo frameç说æï¼
设置MTU为ï¼åç°pingå æ大é¿åº¦åªè½è®¾ä¸ºping ..1. -s
https://lore.kernel.org/patchwork/patch//
ãå®ã
机器视觉—常见的2D工业相机数据接口介绍
工业相机在工业自动化、检测、监控等应用场景中起着关键作用,其数据接口的选择直接影响着相机的性能和应用范围。常见的工业相机数据接口包括GIGE、USB2.0/3.0、CameraLink、CoaXPress等。
GIGE(千兆以太网)接口是工业相机中使用最广泛的一种,它不仅传输距离远,集成方便,而且在大规模集成场景下,可以使用千兆路由器与网口采集卡实现高效的数据传输。网口相机还可能具备POE供电功能,通过网线即可提供电力,无需额外连接相机电源线。
USB2.0/3.0接口具有即插即用的便利性与较快的传输速度,其中USB3.0的最大传输速度可达5.0GB/s。但这类接口的传输线路较短,不适用于长距离、大批量工业相机的应用场景。工业应用中通常不需要单独配置采集卡,因为USB接口本身不带供电功能,因此相机需要额外连接电源线。
CameraLink接口是一种专门用于工业级视觉产品的标准,其传输速度可达5.Gbit/s,适用于一些高速相机。然而,使用CameraLink的相机需要额外的图像采集卡,并且价格昂贵(一条线缆成本可能高达元)。此外,该接口需要自己编写相机驱动,不支持热插拔操作,可能会损坏相机。由于物理拆分的特性,用户需要对CameraLink采集卡进行编程,处理相机驱动、软件等问题。
CoaXPress接口则在速度、传输距离以及独立供电方面表现出色,旨在取代CameraLink接口。这类相机需要额外的接口卡,接口卡仅作为相机采集到数据的中转站,不会对数据进行任何处理。CoaXPress相机传输速度较快,若将数据拷贝工作交给CPU处理,CPU将消耗大量资源。因此,接口卡在设计上应避免这一情况,确保数据传输的高效性。
不同数据接口的选择取决于具体应用需求、成本考虑、性能需求以及可扩展性等因素。在选择时,应综合考虑接口的传输速度、距离、供电方式、成本以及易于集成与维护等多方面因素,以确保工业相机在特定应用环境中的最佳性能。