发布成功
小店提供基于Xilinx ZYNQ处理平台的一站式全套解决方案。
一、ZYNQ系列可编程SoC简介
Xilinx ZYNQ SoC主要针对中高端应用场景,与其同等的有Altera Cyclone V和Arria 10系列SoC。该系列器件由2012年正式商用,2016年,在原来双核A9的基础上又增加了单核版本以面向不同场景的应用,器件主要包括:①基于Artix-7 FPGA的Z-7007S(23K)、Z-7012S(55K)、Z-7014S(65K)、Z-7010(28K)、Z-7015(74K)和Z-7020(85K)(其中带S的是单核型号),除Z-7012S和Z-7015带4通道6.6Gbps GTP外,其他型号均不含高速收发器;②基于Kintex-7 FPGA的Z-7030(125K)、Z-7035(275K)、Z-7045(350K)和Z-7100(444K),均带6.6~12.5Gbps高速收发器。
从逻辑规模和I/O资源、收发器来看,基于Artix-7的系列器件主要面向控制、接口和简单计算处理等应用领域,如:高铁和地铁信号控制、机器人控制、工业或3D打印机、无人机无人车控制、车载雷达前端、图像接口与ISP处理、轻量级软件无线电和GNSS系统等,性价比较高。基于Kintex-7的器件主要面向通信和高速网络互联、高性能存储、大规模并发计算等应用领域:如:高性能软件无线电系统、4G/5G通信、高性能光交换中心、大规模存储控制器、云级大规模并发计算、机器学习和AI应用、高性能雷达系统、ADAS系统等,起点较高。
ZYNQ系列器件推出7年以来,已经形成了良好的生态系统,在各行各业得到广泛的应用。
二、实用案例
楼主挑选了四个案例对ZYNQ系列FPGA应用做简要说明。
案例一:全景相机
在图像和接口应用中挑全景相机做简单说明。全景相机一般包括3~5个Sensor接入,做ISP处理、拼接然后输出。这里主要难点是存在较大的带宽压力,一般会采用Z-7020及以上性能的处理器,考虑到成本压力,还会外挂一个海思或其他的处理器来进行图像压缩,实际上,ZYNQ-7000器件上不带视频Codec也是其一个短板,限制了不少应用。全景相机的实现框图见下图1所示。
图1 全景相机实现框图
如图1所示,分成几个模块:
(1)Cam_IF:图像接口,一般采用Sony、OV或安森美的CMOS Sensor,有可能是多通道LVDS、HiSpi或MIPI DPHY/CPHY接口,采用FPGA逻辑+少量外围电路(或ASSP)实现。
(2)ISP处理:这里是图像处理的核心部分,直接影响图像质量,包括必须的Demosaic、3A、降噪、增强等必要处理。
(3)拼接模块:这里是全景相机应用的核心部分,直接影响感官效果,这块儿根据业务的不同基本上就是见仁见智,全靠算法和标定了。
(4)显示模块:主要是用于本地投屏显示,一般会根据需要选择HDMI或SDI接口。
(5)Dual Cortex-A9:ARM处理器(PS)主要是做一些协同处理和控制工作,比如说自动曝光和白平衡的协处理、系统控制和管理等。
(4)一般的,因ZYNQ-7000系列器件不带视频CODEC,使用逻辑实现H.264/264压缩代价较大,从成本、开发难度等方面考虑,还会增加一个处理器专门来做压缩,一般会选择华为海思或全智之类的器件。
在图像领域,ZYNQ-7000系列器件还广泛用于有特殊功能需求的IP Camera、制冷和非制冷型红外热成像仪、工业相机、焊接和筛选机器人、物流机器人、CCD前端采集系统等各方面。
案例二:无人机飞控系统
ZYNQ在无人机上用得相对也比较多,比如早期的DJI,在他的精灵上就用了Z-7020这颗片子;比如Aerotenna,用ZYNQ飞控实现了360°微波防撞和雷达高度计。许多做行业无人机的,飞控也用到ZYNQ-7000系列器件。
无人机飞控是一个相对比较复杂的系统,包括伺服控制系统、感知系统、数据链、GNSS和其他特定的载荷接入等。涉及的门类也很多,按形态分有多旋翼(含系留多旋翼)、复合翼、倾转旋翼等,按动力分有锂电型、油动型、氢燃料电池型等等。说到载荷更是五花八门,有光电吊舱、云台相机、倾斜摄影相机、通信中继站、MiniSAR、高光谱相机、抛投装置、喊话装置甚至于武器弹部等等,还有一些出于自身保护的避障、降落伞、气垫等等设备。基于这种特点,ZYNQ-7000系留器件以其高度的灵活性,在这里很有用武之地。下图2是最简飞控系统框架图。
图2 无人机飞控系统框图
如图2所示,ZYNQ-7000 SoC是核心,负责运行操作系统(如Nuttx、rt-Linux)和飞控软件(如APM),驱动和采集各个外设数据,调度任务等。
(1)RTK(GNSS),差分GPS,可能支持GPS、BD和GLONASS等多模,一般采用模块,对外接口为串口;
(2)无线数、图传:也可能是一体化设备,数传主要是与地面控制站交互控制和状态数据,比如说开源的mavLink协议,图传主要是将图像数据下载到地面,这二者也可能一体,采用宽带数据传输设备;单数传可能是串口,宽带一体化设备可能是网口或者USB等;单图传可能是HDMI或SDI等接口;
(3)SD Card:主要记录飞控运行数据,当然也可能保存本地载荷数据如图片、气体传感器值等;
(4)UAV CAN:一种多节点总线,可用作与电调、IMU和其他挂载通信,主要是高可靠性控制用;
(5)PWM & IOs:可扩展的多通道PWM和可编程I/O,用作控制电调、舵机、云台、起落架等设备;
(6)MIPI CSI-2:图像传感器接口,可能是外部相机载荷接入,也可能是本低的避障相机或前视相机接入;
(7)IMU:是无人机姿态稳定控制的核心部件,以便包括角速度计、加速度计或磁罗盘等,飞控就是根据采集到的这些传感器数据进行滤波和解算处理,通过PID执行机构给电机,维持飞行姿态的动态稳定;
(8)高度计:高度计可能采用气压传感器、超声波传感器、微波雷达等,主要是和GPS高度融合维持较高精度的定高飞行或悬停,在系留无人机、植保机等特殊应用机型中尤其用得多;
(9)避障传感器:有超声波、视觉、微波雷达、激光雷达等,在低速、低空旋翼机上应用较多。
ZYNQ-7000系列器件以其可配置性强的灵活性,可以实现大多数的应用场景功能适配,其PL强大的并行处理能力,也可以实现较复杂的应用算法处理,比如FoC电调控制、图像处理等,很多都集成到了PL实现。
案例三、红外热成像系统
早些年间,红外热成像仪及其派生设备绝对是一个高大上的存在,一般场合用不起,但随着核心焦平面芯片的国产化,现在已经脱下高贵的外衣拥抱平民市场。特别是基于非制冷探测器的红外测量系统可在各领域广泛应用。如海关、机场等公共场所民众体温监测,芯片、焊点、激光光纤等微米级目标检查,高压输电塔巡线,隧道、大坝、桥梁渗水检测,反应塔、高炉等大型工业设备维护,建筑缺陷检测、地质勘探、火山研究,生命科学和化学研究等等。制冷型红外热成像系统仍然还是主要集中在军事、搜救、科研、高端检测等领域。
本案例以检测型的非制冷红外、可见双光热成像仪来说明。下图3是系统的软硬件总体方案框图。
图3 红外热成像系统软硬件框图
从图3来看,影响设计的关键因素是:
①高分辨率红外、可见光图像处理和融合;
②图像压缩、传输;
③精准测温、精准自动对焦;
④重量、体积和电池续航时间;
在传统的设计里,红外图像和可见光图像通常经过不同的模组进行预处理,然后再进行融合。这种传统方式的显著缺点是电路复杂,电路板(模组)多,功耗大。既导致了电池续航能力短,又增加了整机的重量和体积,同时可靠性也大打折扣。
那么,有没有一种解决方案可以在单片内有能力完成所有的处理(大量数据处理和高带宽要求),可以显著降低面积和功耗呢?不用怀疑,当前两大FPGA厂商Altera和Xilinx提供的的Cyclone V和ZYNQ-7000系列SoC都可以做到。
两大巨头的SoC都集成了双核Cortex-A9 ARM处理器、可编程逻辑和丰富的外设。软硬件协同处理、完美结合,正符合多光融合的非制冷红外测量系统的应用特点。
从软件架构上看,可编程逻辑资源的主要耗用如下:
① 红外图像处理:包括非均匀性校正、盲元校正、测温模块、降噪与增强、直方图均衡、(IDE)、微扫描图像合成、(宽动态强化高温区和低温区细节)、伪彩色映射、Zoom等;
② 可见光图像处理:ISP、降噪与增强、(宽动态技术)等;
③ 图像融合:红外图像和可见光图像融合;
④ 图像压缩:红外灰度图像特点,一般采用MJPEG压缩保留较多细节和较低延时。
⑤ 显示和接口:OSD图层、Scaler、HDMI接口、LVDS或MIPI CMOS输入接口、ONFI NAND接口、DDR Mig、和PS及DDR交互的AXI DMA等;
⑥自动对焦:梯度或锐度、模糊度计算。
按照一般的思路,没有过于复杂的如神经网络之类的算法,在架构清晰、代码风格比较好的情况下,XC7Z020(85K逻辑)可满足设计要求。如果需要添加更加复杂的检测、识别、跟踪类算法,可考虑选用XC7Z030(125K逻辑),当然器件成本会成倍上升。
另外,一幅红外图像的像素个数是1024×768,一幅可见光图像的像素个数为3840×2160。根据不同情况,一个像素可能占一个或两个字节,标准帧率为30fps,在精确位移打开或宽动态打开的情况下最终输出的帧率会降低,带宽不会成四倍增加。
缓存主要产生于数据处理过程中的DDR缓存,红外、可见光、压缩处理一帧和DDR的数据交互约在30次以上,因此,为了解决带宽紧张的问题,在PL端扩展了DDR。
PS端的双核ARM其中一个核运行操作系统(OS),另外一个核运行裸机程序(Bare)。运行操作系统的核主要负责外设驱动管理、系统控制、应用管理、GUI等功能。运行裸机代码的核和NEON一起主要偏重算法辅助处理。
案例四、雷达系统
在ZYNQ-7000这个级别上,还难以做到单独处理海量的雷达流水数据,一般会使用高性能DSP来做浮点运算。一般情况下是采用“一颗或多颗FPGA+一颗或多颗DSP”的架构实现。当前,通常应用场景下FPGA一般会选择7系列FPGA或ZYNQ-7000 SoC,DSP主要还是TI的8核TMS320C6678,FPGA做雷达前端接口和与FPGA通信的SRIO接口,在RAW数据上做一些滤波或变换处理后将数据通过SRIO接口送给DSP,DSP做FFT、IFFT、进行滤波、互联、平滑、目标跟踪和预测处理后,将稳定的目标航迹输出。这里的核心算法还是在DSP运行,不在赘述。
三、技术服务
服务内容:
小店可提供系统级的完整解决方案,包括方案设计、硬件设计和调试、FPGA逻辑设计、嵌入式软件设计和生产代工等一站式服务。并且,有若干个成熟的解决方案可供选择,时效性高、质量可靠。
行业分类 : 工业电子
开发平台 : Linux
交付形式 : PCBA,整机,软件
性能参数 : 工业级(-40°C~+60°C);支持定制开发
应用场景 : 1. 行业相机; 2. 机器视觉; 3. 汽车ADAS系统; 4. 3G/6G广播电视系统和视频矩阵; 5. PCIe数据采集卡; 6.高性能运动和测量系统; 7.软件无线电; 8.SATA接口存储设备; 9.无人机和机器人系统。