基于网络的数据采集板卡研制
2019-10-25许永辉杨俊超孙永胜2葛超凡
许永辉, 杨俊超, 孙永胜2, 葛超凡
(1.哈尔滨工业大学 自动化测试与控制研究所,黑龙江 哈尔滨 150001;2.广东省江门市新会机电职业技术学校,广东 江门 529000)
为满足某数据采集系统的需求,研制一款基于Zynq7000的数据采集板卡。传统的数据采集板卡由CPU+控制逻辑+通信接口控制器组成,此类设计占用空间较大,通信速率较低,可靠性较差;Zynq7000本身具有CPU+可编程逻辑的架构和用于内部通信的高速AXI总线。因而,以Zynq7000作为控制器的数据采集板卡具有集成度高、体积小、可靠性高等诸多优点[1-2],且有重要的研究意义和应用价值。
1 总体结构设计
Zynq7000 处理器是Xilinx公司研发的新一代可编程逻辑与Cortex-A9 ARM处理器相结合的处理平台。其可编程逻辑部分被称为PL(Programmable Logic),该部分可进行系统可编程逻辑的开发;ARM部分被称为PS(Processing System),可进行C/C++程序语言开发。PL部分包含充足的可编程逻辑单元和DSP单元;PS部分集成了双核ARM架构的Cortex-A9内核,该内核具有双精度浮点运算引擎,此外,PS部分集成了DDR3控制器、千兆以太网控制器、PCIe总线控制器以及其他常用外设[3-4]。数据采集板卡的总体结构示意图如图1所示,Zynq7000作为主控制器,通过控制AD7606芯片的A/D转换过程实现模拟数据采集;利用DDR3将数据缓存;通过千兆以太网接口接收上位机的指令和缓存数据上传。
16路模拟信号经过前端隔离调理电路、AD7606模数转换电路,在Zynq7000的PL部分处理成为数字信号;通过内部AXI总线传输到PS部分;PS部分利用DDR3实现数据缓存,PS通过千兆网口接收PC上位机命令、上传采集数据[5]。
2 数据采集电路硬件设计
本设计主要功能及性能指标如下。
图1 总体结构示意图
① 16通道;
② 总采样率:1600 kS/s;
③ 单通道采样率:100 kS/s;
④ 分辨率:16-bit;
⑤ 输入范围:±36 V;
⑥ 传输速率:>100 Mbits/s;
⑦ 缓存容量:1 GB;
⑧ 连续采样时间上限:300 s;
⑨ 缓存数据上传时间:<60 s。
2.1 前端调理电路设计
前端调理电路采用ADI公司的AD215芯片满足速度和隔离要求。AD215是一种应用广泛的放大器,以15 V电源供电,具有精度高、功耗低、共模性能好、成本低的特点。其内部集成了变压器耦合、整流、三阶滤波等功能,能起到较好的隔离、稳流和滤波作用。在满足-3 dB带宽的采样要求时, AD215可支持100 kS/s采样率。前端调理电路图如图2所示。
图2 前端调理电路图
in+和in-为输入模拟信号,调整分压(平衡)电阻R1~R3的值可以获得不同的输入范围,Sout是隔离放大后的输出信号[6]。
2.2 ADC电路设计
模数转换芯片均选择ADI公司的AD7606芯片。AD7606的主要特性如下:① 16位精度逐次比较模数转换器;② 5 V模拟单电源供电;③ 可选8/6/4通道同步采样输入;④ 最高能以200 kS/s的速率在全通道采样;⑤ 双极性模拟输入,范围±10 V和±5 V可选;⑥ 支持串行和并行输出;⑦ 低功耗[7]。AD7606模数转换电路如图3所示。
图3 AD7606模数转换电路图
A/D电路采用+5 VSA电源供电;VCC3为数字电源; PAR/SER/BYTE_SEL引脚接高电平,设定为串行输出模式;Vin0~7为8路模拟输入信号,也是8通道前端调理电路输出。片选信号CS、转换开始信号CONVST_A和CNOVST_B、数据读取信号RD/SCLK、复位信号RESET接在PL的输出引脚,用来控制转换过程;首数据可读信号FRSTDATA、转换忙碌信号BUSY接在PL的输入引脚,用来判断转换进度;数据输出端 DOUTA和DOUTB连接主控芯片的PL部分输入端,用来接收输出数据。
2.3 数据采集控制逻辑设计
AD7606转换采集过程由AD7606接口和功能逻辑完成,转换过程的时序图如图4所示。
图4 AD7606转换时序图
AD7606开始转换时CONVST应处于上升沿,即从低电平上升到高电平。BUSY信号跳转为高电平表示模数转换正在进行中,并在转换结束时返回低电平。当片选信号CS和数据读取输入控制信号RD有效时,使能输出,顺序读取通道V1~V4和V5~V8的数据[6]。
具体实现逻辑的转换状态机如图5所示。
图5 AD7606转换状态机
程序空闲态为IDLE STATE,所有状态在RST_n=0条件下进入IDLE STATE;输出端口CONVST上升沿开启转换过程,进入CONV STATE;BUSY信号上升沿表示模数转换正在进行中,程序进入BUSY_HIGH STATE;转换结束时BUSY信号返回低电平,程序在BUSY信号下降沿进入BUSY_LOW STATE;此时将片选信号CS拉低生效,进入CS_LOW STATE,等待第一个数据输出;FRSTDATA信号上升沿表示第一个数据将要在输出端口出现;在READ STATE状态分别在DOUTA和DOUTB串行读出通道V1~V4和V5~V8的数据;DOUTA和DOUTB均接收64位数据后程序进入等待结束态WATE_END STATE,并将各通道数据输出;在WATE_END STATE中等待计数器归零,返回空闲态[6]。
AD7606采集数据后,由PL逻辑控制数据流向, AD7606控制逻辑的实现框图如图6所示。
图6 AD7606控制逻辑框图
数据完成转换后被放入两个双口RAM中,PS从RAM1读取最新值;PL控制逻辑从RAM2读取数据缓存至FIFO,防止PS没有及时读取数据,造成数据丢失;FIFO的缓存时间间隔可以设定;FIFO缓存起止可控,数据个数可读,数据存满后暂停缓存。
2.4 AXI数据传输机制设计
PL 部分解算后的数据经由AXI总线传输至PS部分。AXI协议是基于burst的传输,支持高性能、高频率系统设计,在Zynq7000中AXI总线分为3种。
① AXI4:主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输。
② AXI4-Lite:是一个简单的吞吐量地址映射性通信总线。
③ AXI4-Stream:面向高速流数据传输,去掉了地址项,允许无限制的数据突发传输规模。
AXI总线实现数据由PL传输至PS机制的框图如图7所示。
图7 基于AXI数据传输机制框图
如图7所示,“最新数据”通过AXI-Lite总线传输,“用于DDR3缓存数据”通过AXI4-Stream总线传输。在PL部分调用对应的AXI控制器IP核,在PS部分添加相应的接口控制软件,实现AXI的调用。同时,PS还通过AXI-Lite总线实现对PL逻辑的控制,空闲时间PS通过AXI4-Stream总线将数据搬移至大容量的DDR3 DRAM中缓存。
3 软件设计
3.1 PS软件程序设计
PS 部分首先初始化外设,而后作为网络连接的服务器端,创建网络套接字,开启网络监听;在确认网络连接成功并收到上位机数据后,根据命令号选择执行功能函数。功能函数基本内容是:PS将需要执行的命令通过AXI总线发送到PL部分,PL部分执行完成后向PS返回数据,PS通过网口将解析后的数据发送到上位机显示。各个任务的功能函数如表1所示。
PS软件程序流程图如图8所示。
表1 PS功能函数表
图8 PS软件程序流程图
3.2 上位机软面板设计
上位机主要功能如下。
① 网络连接可选服务器IP功能;
② 读取并显示最新数据功能;
③ 设置FIFO参数功能;
④ 清空DDR3缓存功能;
⑤ 读取DDR3缓存个数功能;
⑥ 读取并显示缓存数据功能。
根据功能要求,设计上位机界面如图9所示。此界面包括网络连接、最新数据读取、缓存控制、缓存读取4个部分,能够较为清晰地实现上述功能。
4 测试结果
利用Agilent53131A信号发生器和SUING SS3325直流稳压源在各个通道输入正弦波或-40~+40 V直流信号,回读板卡数据并与MSO6012A示波器测试结果比对。由于系统采集测试要求16路采样通道、采样速率每通道100 kS/s以及AD7606精度为16位,可以推出满采样率时,全通道采样速率为
图9 上位机软面板图
16×16×100=25600 Kbits/s=25.6 Mbits/s
按照连续采样时间上限为300 s的设计指标,缓存容量应大于:
25.6×300=7680 Mbits=0.94 GB
缓存容量的设计指标为1 GB,大于需求。因此缓存容量设计合理。
设计指标要求缓存上传时间小于60 s。考虑到网络数据传输的安全性和可读性,有效数据传输会加上一定的协议,以帧的形式完成传输。本设计有效数据约为整体数据的4/5(不考虑TCP/IP协议传输本身的报文头等)。所以,当缓存存满时开始上传,网络传输速率应不小于:
8196×1.25÷60=170.75 Mbit/s
结果显示,数据上传的网速需求已经超过了百兆以太网的理论带宽,采用百兆以太网无法满足缓存上传的时间要求。千兆以太网的网速可以满足性能要求,且还有较大的冗余带宽分配给上位机发送控制指令。
对采样板卡的性能指标进行测试,测试结果比对如表2所示。
表2 测试结果与要求指标比对表
测试结果显示,该采集板卡的性能符合预期的设计指标。
5 结束语
充分利用Zynq7000的PL和PS资源,研制了一款基于Zynq7000的模拟数据采集板卡。在PL部分,开发AD7606解析逻辑和缓存逻辑,完成对各路模拟数据的采集和缓存;在PS部分,开发千兆网口和DDR3接口的控制软件,实现接收上位机指令和数据上传。测试结果表明,板卡运行稳定可靠,满足各项功能指标和性能指标要求,为多通道网络数据采集提供了一种切实可行的解决方案,具有重要的研究意义和应用价值。