你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Zynq片内XADC应用笔记

发布者:jackzhang 时间:2015-08-09 21:01:47

1 XADC概述

XADC是位于Zynq系列器件Pakage正中心位置的12bit 1MSPS,内置温度传感器,可实时监测片内结温,各路电压数据并可输出告警信号。图1是XADC原语结构。


图1 XADC原语结构

由图1可以看出,XADC模拟输入包括专用模拟输入VP/VN和16组复用模拟信号输入VAUX(15:0);XADC转换结果可以通过动态重配接口(DRP)或者JTAG接口输出;告警信号可通过ALM(7:0)输出,并有专用的温度告警信号OT。

因此,控制XADC和获得结果数据最终方式必然是通过DRP或JTAG接口,无论它外面作了何种接口的封装,但最终都要转换为DRP或JTAG实现和XADC直接相连。

应用笔记仅讨论对XADC的控制和读取结果编程的内容,其他内容请参照:

①   用户手册:UG480;

②   前端模拟驱动电路设计:xapp795;

③   PCB Layout设计:xapp554。

2  XADC访问

XADC访问路径结构如图2所示,用户可以通过PL-JTAG、PS-XADC和AXI-GP Master接口访问XADC,前面两个在PL逻辑中无需调用XADC原语即可直接访问,后者需要调用XADC IP核。


图2 XADC互联路径图

如图2,PS-XADC将DRP命令串行化后发送给XADC模块,它和PL-JTAG二选其一,通过寄存器位devcfg.XADCIF_CFG[31]来选择,DRP接口总是有效。

2.1  通过PL-JTAG访问

这种方式为系统默认方式,可以直接在Vivado的Hardware Manager中获得温度电压曲线等,如图3所示。


图3 工具读取XADC绘制曲线界面

2.2  通过PS-XADC访问

通过PS-XADC访问先要将devcfg.XADCIF_CFG[31]置1来选择PS-XADC路径,让后将按照指定的命令格式组织 “Command Register”的DRP地址和数据写到“devcfg.XADCIF_CMD_FIFO”中;读数据通过读取 “devcfg.XADCIF_RDFIFO”即可,低16bit即为DRP寄存器的值。详细参见gu585第“30.3 PS-XADC InterfaceDescription”的描述。

针对这种访问方式,Xilinx提供了完整的SDK包,Linux驱动和基于Webserver的GUI图形界面。

①   SDK包资源(2015.2):在../SDK/2015.2\data\embeddedsw

\XilinxProcessorIPLib\drivers\xadcps_v2_2路径下;

②    Linux驱动和Webserver GUI参见应用文档XAPP1172。

2.3 通过AXI-GP Master访问

这种访问方式其实是将AXI接口装换为DRP接口访问XADC,需要调用逻辑IP XADC_WIZ,Vivado 2015.2的版本是V1.0,用户手册和DataSheet分别参见Xilinx官方文档:

①   pg091:xadc-wiz.pdf;

②   pg019:axi_xadc.pdf。

 

  通过AXI接口访问Xilinx官方提供了两种模型,一种是数据和命令都通过同一个AXI_GP接口读出;一个是控制命令通过AXI接口下发,数据通过AXI Stream接口直接DMA到DDR中。

2.3.1   数据和命令通过同一AXI接口

这种实现方式Xilinx提供了官方参考应用XAPP1182,实现的系统架构如图4所示。


图4 同一AXI接口实现架构

该架构通过AXI GP接口下发指令和获取AD转换结果,并通过千兆网将Webserver GUI结果在PC机上显示。

针对这种访问方式,Xilinx提供了完整的SDK包,Linux驱动和基于Webserver的GUI图形界面。

①   SDK包资源(2015.2):在../SDK/2015.2\data\embeddedsw

\XilinxProcessorIPLib\drivers\ sysmon_v7_1路径下;

②   Linux驱动和Webserver GUI参见应用文档XAPP1182。

2.3.2  数据和命令通过不同AXI接口

这种实现方式Xilinx提供了官方参考应用XAPP1183,实现的系统架构如图5所示。


图5不同AXI接口实现架构

该架构通过AXI GP0 Master控制XADC IP核,AXI DMA IP核等,AD转换结果通过一系列算法运算后数据通过DMA写到DDR中。最后计算的结果通过串口发送到“AMS101 evaluator GUI”显示。这种连接方式的好处是可以对AD转换数据进行一些列的处理后再写入到DDR。

针对这种访问方式,Xilinx提供了完整Linux驱动和基于built-in LabView的GUI图形界面。

Linux驱动和GUI应用参见文档XAPP1183。

2.4  片上传感器应用简要

本节描述片上传感器与AD装换结果码之间的关系及关键寄存器设置的注意事项。

2.4.1  片上传感器转换关系

片上温度传感器和电压传感器的转换对应关系如表1所示。

                       表1 片上传感器结果对应关系

传感器

AD转换结果换算

备注

温度传感器

T  = (ADC Code * 503.975)/4096 – 273.15

 

电压传感器

V  = (ADC Code / 4096)*3

 

2.4.2   自动关机保护

XADC具有自动关机保护功能,使用这项功能必须:

①   寄存器使能:OT upperalarm register(53H)的低四位必须是0011b;

②   设置门限:OT upperalarm register(53H)和OT lower alarm register(57H);

③   使能信号:设置ConfigurationRegister 1(41H)的OT位为0,或使用约束:

set_property  BITSTREAM.CONFIG.OVERTEMPPOWERDOWN Enable  [current_design]

 自动关机保护的原理是:当温度超过高温门限时,等待10ms后进入关机序列,并将GHIGH(参见UG470)信号置高,当温度低于OT lower时,GHIGH置低,同时进入启动重配状态,系统重新加载重启。

 当进入高温保护状态后,XADC自动使用内部晶振产生时钟,但其他的状态不变。为提升INL和SNR性能,可以使用约束语句来实现:

set_property  BITSTREAM.GENERAL.XADCENHANCEDLINEARITY  On  [current_design]

3  总结

总结XADC的三种访问方式,通过PL-JTAG接口访问可以在开发工具上直接得到装换结果曲线,调试用着很方便;通过PS-XADC接口访问,无 需任何额外的逻辑资源即可直接得到结果,但速度相对较慢,适合系统检测获取温度电压等低速数据;通过AXI接口访问可以获得更高的访问效率,并且可以在 AXI接口输出数据端添加一些列的数字信号处理算法后再将最终结果输出,可以得到最优的实现方案。

使用XADC还具有高温自动关机保护功能,能有效的保护器件高温烧毁。


来源:http://blog.csdn.net/haoxingheng/article/details/47150669

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了