haoxingheng 的blog

Zynq-7000器件在测量类红外图像系统中的应用

备注:主图是从Fluke TiX1000宣传册中截取
作者:Hello,Panda
基于非制冷探测器的红外测量系统可在各领域广泛应用。如海关、机场等公共场所民众体温监测,芯片、焊点、激光光纤等微米级目标检查,高压输电塔巡线,隧道、大坝、桥梁渗水检测,反应塔、高炉等大型工业设备维护,建筑缺陷检测、地质勘探、火山研究,生命科学和化学研究等等。

1 引子
在进一步展开说明之前,我们先看一组业内标杆Fluke生产的便携式红外热像仪TiX1000的相关指标,如下表1所示。

表1 Fluke TiX1000红外热像仪系统指标

浅谈Xilinx Microblaze Bootloader实现

作者:Hello,Panda
一般而言,Xilinx Microblaze会被用来在系统中做一些控制类和简单接口的辅助性工作,比如运行IIC、SPI、UART之类的低速接口驱动,对FPGA逻辑功能模块初始化配置及做些辅助计算等等。类程序的代码量普遍不大,常常在十几KB到几时KB之间,因此对存储的需求通常也不是太高,使用FPGA内部RAM资源便已经够用。那么,当Microblaze需要运行文件系统、USB HCD、网络协议栈甚至是操作系统时,代码量可能会高达几MB甚至是几十MB的规模,此时程序就必须在外部存储器运行了。本文以将外部QSPI Flash中存储的镜像加载到外部DDR为例,讲一讲Microblaze Bootloader的实现方法。

1. Microblaze Bootloader

Zynq高速串行CMOS接口的设计与实现

作者:hello,panda

现在CMOS传感器的分辨率越来越大,对应的,对数据传输接口的要求也越来越高。根据熊猫君有限的实现和调试经验,基本上遇到了:

①多通道HiSPi接口:主要是Aptina(现已经被安森美收购),常用的有1080P60的AR0331(3.1M),3664×2748P15的MT9J003,3984×2712P80(开窗输出最高可达1200fps)的AR1011等;

②多通道LVDS接口:主要有索尼系列和德国viimagic系列等,至少熊猫君用过的IMX172/IMX122/IMX185/IMX236和VII9222等都是LVDS输出;

③MIPI接口:多用于手机,一些监控用的CMOS如Sony IMX185、OV14810等也带;

④CCIR656:一般低分辨率的会带CCIR656接口,也有一些厂家的高分摄像头也带,比如OV14810;

⑤并行接口:较早设计的CMOS许多都是直接并口输出,比如Aptina的MT9M031、MT9J003都带有并口输出;

闲话Zynq UltraScale+ MPSoC(连载5)——IO资源

作者:Hello,Panda
Part3 I/O资源
和Zynq-7000相比较,Zynq UltraScale+ 增强了PS端的IO性能;PL端每个产品系都有HR和HP两种类型的IO。
1.PS部分IO资源概述
在新的Zynq UltraScale+系列器件中,PS端的IO得到了增强:
a) MIO由Zynq-7000的54个增加到78个;
b)除GTR信号外,所有其他的PS外设均可通过EMIO布线到PL;
c)新增了四通道的高速GTR收发器;
d)DDR控制更新到可支持DDR4L-2400速率。
(1)MIO资源
Zynq UltraScale+具有78个可配置复用的MIO,这些MIO可用作将PS内的相关外设控制器引出,同时这些控制器均可通过EMIO引出。MIO支持的外设具体介绍见下表3。
表3 MIO资源列表

闲话Zynq UltraScale+ MPSoC(连载4)——启动设备

作者:Hello,Panda
Part 2 : Zynq UltraScale+ MPSoC启动
熊猫君在这里讨论启动(Boot),主要是想聊它的启动设备和启动方式。看看启动设备是否广泛支持,启动方式是否简洁高效。至于加密等安全性处理暂时不谈,先跑起来再说。
(1) 启动方式
和Zynq-7000类似,Zynq UltraScale+ MPSoC也是三级启动方式,只是Xilinx又给它们起了一个新名字,启动分为以下三级:
a) Pre-configuration:复位后执行PMU ROM代码,讲外部FSBL代码搬到内部的OCM。相当于Zynq 的Boot ROM执行。
b) Configuration:在内部的OCM代码,系统根据BOOT Header的内容选择在CPU(Cortex-A53)还是RPU(Cortex-R5)上执行。负责初始化必要的时钟、内存和外设,加载Bit文件和用户代码等。
c) Post-configuration:执行用户代码。
(2) 启动设备
表1是Zynq UltraScale+支持启动设备的列表.
表1 支持启动设备的列表

闲话Zynq UltraScale+ MPSoC(连载3)——电源系统

图 4 电源系统比较
Part1:电源系统
相比于Zynq-7000,这个电源系统要复杂一些,咱抛开低功耗版本(-L)的不谈,就谈正常情况,PS端也把电源域分成了普通电源域和低功耗电源域,然后PS端的GTR也是单独供电的,还有还有,这个GTR的电压竟然和PL端的GTH完全不同。图4是Zynq-7000和Zynq UltraScale MPSoC电源系统的比较。
典型的是,内核电压由1.0V降至0.85V,PS端多了专门的GTR电压。更低的核电压,更多的核消耗和更高的时钟频率意味着更大的电流,预估PL和PS的内核光静态电流就在3A左右。同时新的Zynq UltraScale+ MPSoC PS端有两个电源域,分别是全功耗电源域和低功耗电源域。二者的PL和PS间都是独立的。
关于上电顺序,Zynq-7000的要求是:
a) PS : 先同时上VCCPINT、VCCPAUX和VCCPLL,再上VCCO(MIO、DDR),但VCCO上电延时相对于VCCPAUX有一个必须遵守的最大延迟时间。
b) PL : 先后依次是VCCINT、 VCCBRAM、 VCCAUX和 VCCO,VCCO上电延时相对于VCCAUX有一个必须遵守的最大延迟时间。

闲话Zynq UltraScale+ MPSoC(连载2)——概览

作者:Hello,Panda
Zynq UltraScale+ MPSoC架构
Xilinx新一代Zynq针对控制、图像和网络应用推出了差异化的产品系,这在Xilinx早期的宣传和现在已经发布的文档里已经说得很清楚了。她的产品系如图2所示。

图2 产品表
从图2看到,这个系列的Zynq算是8核(或9核)异构产品:四核的ARM-CortexA53 CPU、双核的Cortex-R5 RPU、Mali-400 GPU(一个Geometry核,两个像素核)、PL逻辑以及视频编解码器Codec核。

闲话Zynq UltraScale+ MPSoC
作者: Hello,Panda
时隔三年,Xilinx推出了其全新的异构SoC,大名叫Zynq UltraScale+。相比它的前辈Zynq-7000,这款SoC功能显得更加强劲:最显著的变化是新加入了GPU和视频编解码器,PS端的高速接口更加丰富。按照Xilinx官方的说法,Zynq UltraScale+主要针对控制、图像和网络这三大块,比如说汽车辅助驾驶、8K图像、100G网、物联网等等领域(兵马未动,粮草先行啦,Xilinx早早的就针对这些差异化应用推出了SDx集成开发环境)。别的熊猫君不知道,但图像这一块也算是熟悉,使用Zynq-7000别的都好说,美中不足的是只能做处理,还得另外挂一个DSP专门做压缩和存储,熊猫君曾经为此愁得黑眼圈重了许多。看到Xilinx迈出的这一大步,熊猫君高兴得晚上多啃了几根竹笋才睡着,总算是遂了三年来的一个大愿望,终于可以单片搞定我所有的活儿啦。为此,熊猫君代表熊猫君给个高度的评价,在通用的异构SoC圈子里,Xilinx算是奠基了。好了好了,熊猫趁着啃竹子的间隙,仔细认真的掰一掰这神秘的新生事物。当然了,熊猫的水平实在有限,有操心下雪竹子不好采,这说出来的话肯定有很多不那么靠谱的地方,还请大家多多指正,不要喷熊猫啦。熊猫是做图像的,这闲话的重点必然还是三句话不离本行啦,见谅见谅。

同步内容