基于ZYNQ7010的逻辑分析仪#1——总体介绍

基于ZYNQ7010的逻辑分析仪#1——总体介绍

背景

前段时间玩了下ZYNQ,想着找个基于ZYNQ的项目来练练手,结合平时工作或玩耍需要,准备搞一个逻辑分析仪来玩玩。确定了设计方向后,我查了下淘宝卖的比较多的几款逻辑分析仪和一些开源逻辑分析仪,包括梦源和正点原子家的,对比了他们几款型号,总结了下逻辑分析仪比较关注的几个点:

  1. 采样率:每个采集通道的最大采样频率,一般为了比较好地还原被测信号,要求采样率需要是采集信号频率的4倍以上。

  2. 采样深度:逻辑分析仪一次采集的最大点数,逻辑分析仪按照配置的采样率产生采样数据,在直接采集模式下数据全部存到逻辑分析仪内部缓存中,逻辑分析仪内部缓存大小限制了最大采样深度。

  3. 采样通道:逻辑分析仪一次可以采集的通道数,有时为了采集一些并行接口的数据,采集通道也需要比较多才行。但采集通道数据增多又会增大数据速率和数据量,从而影响最大采样率和最大采样深度;

  4. 采集模式:逻辑分析仪一般具有2种采集模式,一种是直接采集模式,数据采集到逻辑分析仪内部缓存,采集到一定数量的数据后发送给上位机处理和显示,优点是数据到逻辑分析仪内部缓存的速率可以做到比较高,方便实现高采样率,缺点是缓存大小比较小,一般就几十到几百MB;第二种是流采集模式,采集数据边采集边发送到上位机。流采集模式的优点是采集数据量不依赖缓存大小,主要由上位机内存大小限制,但缺点是逻辑分析仪采集端的最大采样率受到分析仪和上位机间的传输速率的限制。

    一般逻辑分析仪到上位机是采用USB模式,如果使用USB2.0,数据传输速率最大只有480Mbps,再分配到每个通道上的带宽就更小了。流采集模式的带宽限制可以采样压缩数据的方式缓解,像正点原子家的介绍里面就提到他们对数据进行了压缩,可以在流采集模式下做到更高的采样率。根据我的理解,数据压缩只能对一些信号变化比较慢的通道进行有效压缩,对像高频时钟这种数据压缩效果就没那么好了。

  5. 触发模式:逻辑分析仪一般具备立即触发、上升沿、下降沿、高电平、低电平、脉宽触发等简单触发模式,高级点的可以支持码型触发等,当探头波形符合配置的触发模式时才开始记录数据,多个通道可以使用不同的触发模式组合;

  6. 波形解码:作为一个逻辑分析仪,当采集完数据后自然就需要对采集的数据进行解码,比如采集的是串口通信波形,那么就需要逻辑分析仪能够解码出对于的串口收发数据,并识别其中的异常波形等。逻辑分析仪需要具备各种接口协议的解码,才方便使用者在不同的场景下都能方便的识别处理被测信号。

  7. 上位机:逻辑分析仪一般都是搭配电脑上的上位机使用,逻辑分析仪本身一般是USB供电,采集数据通过USB传输到电脑上位机上,再由上位机对采集数据进行处理和显示。上位机目前我了解到的有开源的sigrok做得比较好,他们实现了一个上位机软件Pulseview用于与逻辑分析仪本体进行控制和通信。上位机里面已经支持了很多家的逻辑分析仪驱动,受支持的逻辑分析仪可以直接在Pulseview中使用。

  8. 输入特性:通道的输入电压范围、阈值电压设置、输入阻抗等参数。

设计目标

根据前面了解到的逻辑分析仪的几个关注点,结合ZYNQ本身的功能和性能,以及我觉得目前了解到的几款逻辑分析仪的待改进之处,确定本次设计的逻辑分析仪性能特点如下:

  1. 每个通道最大采样率400Mbps,可配置为10kbps~400Mbps

  2. 具备32个采样通道,可配置为4、8、16、32通道模式;

  3. 总采样深度900MB,可根据配置的不同通道数调整每个通道的最大采样深度,在4通道模式400Mbps的采样率下可连续采集4.5s,32通道模式400M采样率模式下可连续采集0.56s;

  4. 使用USB3.0供电和传输数据,支持直接采集模式和流采集模式,流采集模式下数据传输速率大于50MB/s;

  5. 具备直接触发、电平触发、上升沿触发、下降沿触发、双沿触发、脉宽触发功能,各个通道可组合触发。可配置预触发长度,预触发长度大于8192点;

  6. 使用Pulseview作为逻辑分析仪上位机,适配对应驱动,支持Windows和Linux;

  7. 每个通道输入范围为±30V,阈值电压可独立配置,分为256级,输入阻抗大于100kΩ;

系统设计

硬件设计

逻辑分析仪基于ZYNQ架构,主要由前端预处理电路、ZYNQ小系统电路和上位机三部分组成。通道前端预处理电路将待测信号转换为ZYNQ PL端IO电平,主要实现瞬态保护和电平转换功能,其中用于电平转换的阈值电压可通过ZYNQ设置,方便处理不同电平的输入信号。ZYNQ小系统电路主要由ZYNQ和外围的FLASH、DDR和USB接口电路组成,由PL采集预处理后的输入信号,将采集数据通过PL与PS之间的AXI总线传输到PS的DDR中,PS再将DDR中的数据通过USB传输到上位机中。上位机采用开源的Pulseview加适配自定义驱动实现,可以支持对逻辑分析仪的采样率、采样深度和触发模式等参数的配置,并接收逻辑分析仪采集的数据后显示解码波形。

image-20241208021716367

逻辑设计

ZYNQ中需要设计一套数据采集系统,能够将PL前端采集到的大速率数据及时传输到PS的内存中,避免由于带宽原因导致中间漏数,同时PL前端需要具备触发设置和预触发等功能,这些功能可以分开调试验证,后续将分模块调试,并将过程记录下来。

ZYNQ中主要数据处理流程如图所示。输入数据首先经过位宽转换和时钟转换模块,从最高32bit位宽的400Mbps的数据流转换为128bit位宽的100M的数据流,这部分的目的是将数据速率降下来,方便时序收敛。转换后的低速数据进入预触发模块,预触发模块将所有数据缓存一段到FIFO中后再输出出来,实现数据的延迟。同时预触发前的数据进入触发检测电路,根据各个通道配置的触发模式产生一个触发信号,触发信号控制预触发FIFO输出的数据存入下一级的缓存FIFO。同时PS端控制DMA从缓存FIFO中将数据读取到DDR中,实现数据采集功能。

整个数据传输过程中主要需要保证各个模块之前数据传输的带宽要足够,PS处理接收数据要快速,避免FIFO溢出造成数据丢失。

image-20241208020825404

软件设计

本项目主要设计ZYNQ PS部分的软件和上位机的驱动开发,ZYNQ部分为了保证高速处理PL端的数据,PS使用裸机开发,后续看情况看是否能跑个实时操作系统甚至Linux。上位机采用开源Pulseview,在源码中能看到许多已经适配的逻辑分析仪驱动,后续将参考这些驱动编写我自定义的驱动。

结构设计

本项目结构主要考虑低成本和方便性,逻辑分析仪采用单PCB设计,尺寸尽量小方便携带。PCB尺寸做到10*10以内,外壳使用铝合金外壳兼具电磁屏蔽、耐用和美观性。

小结

本节总结了常见普通逻辑分析仪的性能指标和指标间的相互影响关系,根据ZYNQ的功能性能特点发起了一个基于ZYNQ平台的逻辑分析仪设计项目。设计章节简单介绍了本项目的硬件、逻辑、软件和结构设计,为后续设计开发理清了设计思路,后续将按照原理验证-->适配项目需求的步骤设计前面提到的各个功能模块。

posted @ 2024-12-08 02:53  LM358  阅读(656)  评论(1)    收藏  举报