Zynq UltraScale+ MPSoC智能视频平台0:HZU4EVCL介绍

本文介绍了Zynq UltraScale+ MPSoC开发板HZU4EVCL,详细描述了其Cameralink输入/输出接口、M.2接口、DP显示接口、USB3.0接口等硬件特性,旨在帮助工程师理解和利用该平台进行智能视频处理和AI加速应用。通过实例展示了如何在该平台上构建Smart Camera功能,实现车辆识别、行人检测等任务。

       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、火灾检测和缺陷检测等功能。

     Cameralink输入接口

      HZU4EVCL底板包含一个Cameralink输入接口,可以连接含有Cameralink接口的相机,硬件接口为SDR,7对差分信号连接到ZU4EV的BANK65和BANK66上,其中5路为时钟和数据,两路为和相机通信的SerTC和SerTFG,硬件上做了静电保护。

     Cameralink输出接口

      HZU4EVCL底板包含一路Cameralink输出接口,硬件接口为SDR,连接到Cameralink板卡等接收设备上,可以显示输出图像,最大支持85MHz 24Bit图像数据。5对差分信号连接到ZU4EV的BANK65和BANK66上,分别为1路时钟四路数据,同样,硬件上做了静电保护。

     M.2接口

      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。

     DP显示接口

      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管脚上。

     USB3.0接口

      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的寄存器管理。

     USB串口

      1个Uart转USB接口连接到PS端。转换芯片采用Silicon Labs公司的 CP2102GM USB-UART芯片,USB接口采用MINI USB接口,可以用USB线将它连接到上PC的USB口进行串口数据通信。

     SD卡槽

      包含了一个Micro型的SD卡接口,以提供用户访问SD卡存储器,用于存储ZU4EV芯片的BOOT程序,Linux操作系统内核,文件系统以及其它的用户数据文件。SDIO信号与ZU4EV的PS BANK501的IO信号相连,通过TXS02612电平转换器来转换3.3V和1.8V信号。

     JTAG接口

      JTAG接口,用于下载ZYNQ UltraScale+程序或者固化程序到FLASH。为了防止带电插拔对ZYNQ UltraScale+芯片造成损坏,在JTAG信号上添加了保护二极管来保证信号的电压在FPGA接受的范围,避免芯片的损坏。

       关注公众号查看更多关于Zynq UltraScale+ MPSoC的知识。

EVCL即见即所得的嵌入式菜单设计 EVCL开发教程 深圳市洲泰科技有限公司是一家专注于嵌入式系统产品研发的高科技企业 以下对我司的即见即所得的嵌入式菜单系统(EVCL)作简单介绍. 一,EVCL介绍 俗话说“工欲善其事,必先利其器”,对于嵌入式程序员来说,开发维护UI系统, 是一件繁琐,工作量极大的事情。深圳市洲泰科技在嵌入UI开发中,总结了大量的 经验,现在倾情奉献我们设计的先进UI工具. 大名鼎鼎的C++builder VCL,大家有听说过吧, 拿着mouse拖拉几下,就可以实现一个标准的Window 界面的程序,我们经过大量的工作, 现在也研发了像c++builder VCL 一样好用的EVCL,事实上,EVCL开发环境也是基于 C++BUILDER2010的,我们只要在C++builder IDE 拖拉几下控件,最点下UI产生按钮, 马上就可以生成基于window风格的嵌入式UI,修改菜单排列,组合构成,中间甚致无需修改一行代码. 二,开发介绍 1. 使用C++builder2010 打开Osd tool CB2010\Project1.cbproj 2. 新建建窗口 大小对应你项目中LCD屏的分辨率. 3. 在窗口中添加控件,EDIT,LABEL,BUTTON,等, 在C++BUILDER2010 IDE中设置 这些控件的属性,颜色,文字,大小等. 4. 使用C++BUILDER2010 编译程序,按下主窗口左上角的三角图标,马上把你刚新添 加的窗口编译成c代码. 5. 把EXE 所在文件侠下的 *.h *.c 文件copy到菜单目录tosdemo\menu\下,编译,下 载,即可看到你在C++builder IDE 开发的窗口界面. 6. 各个控件会自动生成关联,并都有自己的消息传输机制,都实现了PC Tab 键移动焦点 的功能. 7.菜单是以窗口为单位的,要把窗口激活,参考MenuInit函数 FormAdd(SUPER_PTR(FormTest_new(), FormBase),MENU_TEST_PAGE); //添加窗口 三.移植 1.一说到移植,就满头大汗,当初我刚想设计UI时,就看了ucGUI的移植,看了很久, 都入不了门,所以才决心自己写ui系统. 2.EVCL 移植很简单, tosdemo\lcd\lcd.c 修改四个函数 LcdInit()-----LCD 初始化 LcdDisplayEn() ----LCD 显示使能 LcdDisplayDisen----LCD 显示禁能 LcdDrawPixel(_s16 x,_s16 y,TColor Color); -------最关键,画点函数,所有图形都基于 这个函数实现 四.已实现组件说明 1. TLabel --文字标签 在c++builder中设置属性. 1.1 Caption 显示的文字 1.2 Font->Color 1.3 位置大小,直接使用mouse调整 1.4 Hint 填写TLabel 选中,或被按OK键时执行的用户函数. 1.5 ShowHint 属性使用时,本控件在显示能够被选中,有焦点功能 1.6 Helpkeyword 实现包含头文件,比如你的菜单代码要包含 lcd.h 这个文件 直接填 #include”lcd.h” 多个文件,使用空格分开即可 2.TEdit 单行文本框 与1属性相仿 3.TButton 按钮与1属性相仿 4.TChoeckBox 确认框 5.TList 列表框 6.TProgerssbar 进度条 7. _BoolType FormShowMsg(FormBase *FatherForm,char *Msg); 对框 以上7个控件都正常使用,已经满足大部分的人机界面。 新控件不断更新, 我是工科出身,很怕写字,需要帮忙,直接联系我就好。 联系人:梁祚扬 名称:深圳市洲泰科技有限公司 地址:深圳市宝安西乡107国道339号(西成工业区公交站)吉美禾大厦1018 网址:www.zoti.cc 邮件:alex_liang@zot
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值