赞
踩
Zynq UltraScale+ MPSoC是Xilinx的第二代Zynq产品,以其单芯片、多资源及全可编程的理念在5G无线、ADAS和工业物联网领域占有一席之地。也正因为其集成度高,软件编程难度也增加了一个量级,需要工程师们了解系统架构、芯片资源的功能以及如何做好各部分的衔接,否则沟通成本可能占据了大部分的开发时间,相信用过的读者深有体会。例如一个将FPGA输入图像进行VCU视频编解码的功能需要FPGA工程师、驱动工程师、Linux应用工程师配合完成,在完成之前谁也不确定自己写的代码是否正确,往往需要经历痛苦的交流、调试和更改。
《毫无意义的工作》这本书中有讲到五大类狗屁工作之一:拼接修补者,并拿程序员作为例子,当两个模块设计的足够好的时候,在对接的过程中是不需要有人对其缝缝补补的,这部分修补的工作往往会让人产生无意义感,加剧负面情绪。所以,为了大家的健康和我们的发量,了解Zynq UltraScale+ MPSoC这个平台再去设计是非常有必要的。或者,自己干脆承担芯片所有模块的研发工作,而这个事情很有成就感!
所以这就是这个系列博客的初衷,记录及启发。记录如何一步步实现芯片各部分资源的功能,最终完成我们的目标。其中涉及的知识会非常的多,而这些又是利用好这个芯片的关键。包含但不局限如下:Cameralink输入IP,Cameralink输出IP,Stream数据流、HLS编写图像处理算法、VCU视频编解码、Cortex A53和Cortex R5多核通信,Linux视频采集和显示启动,深度学习DPU集成,模型量化编译与部署。最终的设计会集成上述的所有功能,芯片的每一部分资源都物尽其用。
开发板是一个嵌入式工程师的必备工具,作为一个学习Zynq将近10年的老同志,如果让我评选最好用的开发板,那非Alinx莫属,不管从产品的质量、售后态度以及配套资料,Alinx都拉爆其他厂商。尤其是教程,简单详实明了,能够帮助你学习效率事半功倍。不管你是做哪部分的工程师以及目前水平,看看他们家的资料绝对会给你灵感。
作为Xilinx的老粉,证明自己已经精通Zynq UltraScale+ MPSoC的方式就是设计出一个产品拿在手中把玩,于是就有了如下的设计:HZU4EVCL。采用Alinx家的4EV核心板,PS挂载4GB的DDR,PL挂载1GB的DDR,含有256MBit大小的QSPI FLASH和8GB大小的eMMC芯片。底板实现Cameralink输入、Cameralink输出、M.2接口、DP接口、USB3.0接口、千兆以太网接口、UART串口接口、SD卡接口和JTAG接口,尺寸仅为10cm x10cm。
实物图如下,这款硬件专为智能视频而生,图像输入输入接口为Cameralink Base模式。其他接口能够满足大部分传输和存储视频需求,加上4EV芯片的编解码和AI加速功能,这款硬件的能力非常能打,小巧的体积适用于各种场景。
各大厂商都在人工智能上下足了力气,Xilinx FPGA在并行能力上得天独厚的优势,面对层出不穷的算法和日新月异的需求,Xilinx推出了Vitis AI的协议栈,从FPGA到Linux驱动再到上层应用,都给出了成熟的设计。如之前所说,Zynq MPSoC在软件设计复杂度度上不如其他芯片,这是劝退很多客户和设计师的一个重要原因。这个系列博客从零开始在HZU4EVCL上构建底层FPGA软件,调试驱动,搭建上层应用,最终实现Smart Camera的效果,让输入图像在AI加速器的加持下完成诸如车辆识别、行人识别、ADAS、火灾检测和缺陷检测等功能。
HZU4EVCL底板包含一个Cameralink输入接口,可以连接含有Cameralink接口的相机,硬件接口为SDR,7对差分信号连接到ZU4EV的BANK65和BANK66上,其中5路为时钟和数据,两路为和相机通信的SerTC和SerTFG,硬件上做了静电保护。
HZU4EVCL底板包含一路Cameralink输出接口,硬件接口为SDR,连接到Cameralink板卡等接收设备上,可以显示输出图像,最大支持85MHz 24Bit图像数据。5对差分信号连接到ZU4EV的BANK65和BANK66上,分别为1路时钟四路数据,同样,硬件上做了静电保护。
HZU4EVCL底板含有一个PCIEx1标准的M.2接口,用于连接M.2的SSD固态硬盘,通信速度高达6Gbps。M.2接口使用Mkey插槽,只支持PCI-E。PCIE信号直接跟ZU4EV的BANK 505 PSMGT收发器相连接,1路TX信号和RX信号都是以差分信号方式连接到MGT的LANE1。PCIE的时钟有Si52112芯片提供,频率为100Mhz。
1路标准的DisplayPort输出显示接口,用于视频图像的显示。接口支持VESA Display Port V1.2a输出标准,最高支持4Kx2K@30FPS输出,支持Y-only,YCbCr444,YCbCr422,YCbCr420和RGB视频格式,每种颜色支持6,8,10,或者12位。DisplayPort数据传输通道直接用ZU4EV的BANK 505 PSMGT驱动输出,MGT的LANE2和LANE3 TX信号以差分信号方式连接到DP连接器。DisplayPort辅助通道连接到PS的MIO管脚上。
1个USB3.0接口,支持HOST工作模式,数据传输速度高达5.0Gb/s。USB3.0通过PIPE3接口连接,USB2.0通过ULPI接口连接外部的USB3320C芯片,实现高速的USB3.0和USB2.0的数据通信。USB接口为扁型USB接口USB TypeA,方便同时连接不同的USB Slave外设。
1路千兆以太网接口连接到PS端。GPHY芯片采用MARVELL公司的RTL8211以太网PHY芯片,来提供网络通信服务。RTL8211芯片支持10/100/1000Mbps网络传输速率,通过RGMII接口跟ZU4EV系统的MAC层进行数据通信。RTL8211支持MDI/MDX自适应,各种速度自适应,Master/Slave自适应,支持MDIO总线进行PHY的寄存器管理。
1个Uart转USB接口连接到PS端。转换芯片采用Silicon Labs公司的 CP2102GM USB-UART芯片,USB接口采用MINI USB接口,可以用USB线将它连接到上PC的USB口进行串口数据通信。
包含了一个Micro型的SD卡接口,以提供用户访问SD卡存储器,用于存储ZU4EV芯片的BOOT程序,Linux操作系统内核,文件系统以及其它的用户数据文件。SDIO信号与ZU4EV的PS BANK501的IO信号相连,通过TXS02612电平转换器来转换3.3V和1.8V信号。
JTAG接口,用于下载ZYNQ UltraScale+程序或者固化程序到FLASH。为了防止带电插拔对ZYNQ UltraScale+芯片造成损坏,在JTAG信号上添加了保护二极管来保证信号的电压在FPGA接受的范围,避免芯片的损坏。
关注公众号查看更多关于Zynq UltraScale+ MPSoC的知识。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。