集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 732|回复: 0

基于FPGA的工控领域监控系统设计

[复制链接]
羽蒙 发表于 2014-5-19 11:01:37 | 显示全部楼层 |阅读模式
整机在工作时,大概有4%的能量被各种电力电子器件所消耗,这些被消耗的能量以热量的形式分别在单个模块中通过散热器散发出去。  针对以上的现象,可用PTl00铂电阻温度传感器在散热器表面感应温度,以保护电力电子器件不因为在高温下运行而损坏。金属铂(Pt)的电阻值随温度变化而变化,并且具有很好的重现性和稳定性,利用铂的此种物理特性制成的传感器称为铂电阻温度传感器,通常使用的铂电阻温度传感器的零度电阻值为100Ω,电阻变化率为0.3851Ω/℃。铂电阻温度传感器具有精度高,稳定性好,应用范围广等优点,是最常用的一种温度传感器。
  串行外设接口SPI (Serial Peripheral Interface)是一种高速同步串行输入输出端口。近年来SPI接口广泛应用于外部移位寄存器、DA转换器、AD转换器、串行EEPROM、LED显示驱动器等外部设备的扩展。SPI接口可以共享.因而便于组成带多个SPI接口器件的系统。其传送速率可编程,连接线少,并具有良好的扩展性。
  AD7705是典型的具有SPI接口的AD转换器,可以方便地与带有SPI模块的控制器进行通信。本文采用FPGA为主控制器,利用其通用I/O口来模拟SPI时序,以采集AD7705的两路输入信号(温度信号和电压信号),并将采集到的16位温度数字信号和16位电压数字信号送给DSP进行处理,然后对数字信号进行算法还原,最终在1602液晶显示器上分别显示两路实际信号,从而实现对温度和电压两路信号的实时监控。
1 硬件设计方案
  该系统的功能主要是实现对工控领域后台装置的温度信号和电压信号的实时双监控。其中温度信号可根据PT电阻值随温度变化的线性关系将温度信号转换为0~2.5 V变化的电压信号。然后送给AD7705的l通道。电压信号则可用变压器转换为O~2.5 V的电压信号,送给AD7705的2通道,从而实现对温度和电压两路信号的采集。
1.1 P11电阻的特点
  PT电阻值可随温度的变化而变化,在0℃时,电阻值为100Ω。小于0℃时,阻值随温度的降低而减小;大于0℃时,阻值随温度的增加而增大。阻值随温度的变化关系可用公式1和公式2表达。

 其中,R1为PT电阻在温度为t时的电阻值,R0为PT电阻在0℃时的电阻值,式(1)和式(2)为温度系数TCR=0.003851时,PT电阻值随温度变化的数学表达式,其中,A、B、C三个系数分别为:


由于t2和t3项的系数都很小,故可近似的认为,铂电阻的阻值随温度呈线性的变化关系,又因为它的温度系数为TCR=0.003851,所以在计算时,可以直接按照温度系数来计算。如果把PTl00铂电阻放在散热器表面的功率器件周围,那么,就可以根据测试点的电阻值估算出温度。
1.2 温度信号转换电路
  图1所示是本系统中的温度信号检测电路。

 图1电路中,R14是放在散热器表面的铂电阻,用于感应散热器的温度,该电路可将PT电阻随温度信号变化的阻值信号转变成电压信号,这样,根据PTl00-V点的电压值,即可换算出PT电阻R14的电压信号,ref-V为基准电压信号,ref-V经过图2所示的差分放大电路后,再根据图中元器件的参数即可计算出,最后传输的电压信号Va为与基准电压差值的12倍。

图3所示为光耦隔离传输电路,由图2所示的差分放大电路输出的电压信号Va经过光耦隔离电路后,即可以l:1的形式传送,即Vb点的电压信号和差分放大后的信号Va是一样的,将Vb送到AD7705进行模数转换。然后将其转换成串行序列输出给FPGA处理,同时也上传到DSP控制器。

2 软件设计方案
  本系统的软件设计主要是根据AD7705的特点和操作时序,用FPGA的通用GPIO模拟SPI时序。图4给出了该系统中AD7705的主状态流程图。此后,根据流程图再编写各子模块,即可完成对AD7705两路信号的实时采集。

2.1 AD7705的特点及操作时序
  AD7705是采用∑-△转换技术来实现16位代码无丢失性能的AD转换器件。该器件可以直接接收来自传感器的低电平输入信号,然后产生串行的数字输出。AD7705只需2.7~5.25 V的单电源,采用双通道全差分模拟输入,并有一个差分基准输入。当电源电压为5 V、基准电压为2.5 V时,这种器件可对输入信号范围在0~20 mA和0~2.5 V的信号进行处理,还可以处理±20 mV~±2.5 V的双极性输入信号,其串行接口也可配置为三线接口。其增益值、信号极性以及更新速率的选择均可用串行输入口由软件来配置。此外,该器件还包括自校准和系统校准选项,以消除器件本身或系统的增益和偏移误差。
  AD7705包括6个用户可通过串口访问的片内寄存器。其中第一个是通讯寄存器,用于管理通道选择,决定下一个操作是读操作还是写操作,以及下一次读或写哪一个寄存器。所有与器件的通讯必须从写通讯寄存器开始。上电或复位后,器件将等待在通讯寄存器上进行一次写操作;
  第二个是设置寄存器,用于决定校准模式、增益设置、单/双极性输入以及缓冲模式;
  第三个是时钟寄存器,其中包括滤波器选择位和时钟控制位;
  第四个是数据寄存器,器件输出的数据从这个寄存器读出;
  第五个是零标度校准寄存器,AD7705包含两组独立的零标度寄存器,每个零标度寄存器负责一个输入通道。它们都是24位读,写寄存器;
  第六个是满标度校准寄存器,AD7705包含两组独立的满标度寄存器,每个满标度寄存器负责一个输入通道。它们都是24位读/写寄存器。
  AD7705的写操作时序图如图5所示。在将片选端CS拉低后,即可在串行时钟的上升沿发送数据,发送数据时,高位在前。

 AD7705的读操作时序图如图6所示。当在AD7705的DRDY信号脚检测到逻辑低电平时,表示可以从AD7705的数据寄存器获取新的输出字,当完成对一个完全的输出字的读操作后,DRDY引脚立即回到高电平。如果在两次输出更新之间,不发生数据输出,DRDY将在下一次输出更新前500个输入时钟时间返回高电平。DRDY处于高电平时,不能进行读操作。当数据更新后,DRDY又返回低电平。

2.2 FPGA接口的软件设计
  FPGA与AD7705共有5个接口引脚,分别为片选端CS、串行时钟端SCLK、串行数据输入端DIN、串行数据输出端DOUT和串行数据请求端DRDY。
  读AD7705的数据寄存器前,需先设置其时钟寄存器和设置寄存器,下面以1通道为例来简要说明,首先向AD7705发送串行数据0x20,表示下一操作选择时钟寄存器,接着发送串行数据0x0C,设置时钟为2分频,然后发送Oxl0,表示下一操作选择设置寄存器,接着发送串行数据0x44,表示设置寄存器模式为自校准,增益l,单极性,无缓冲,然后再向AD7705发送0x38,表示可以读通道1的数据寄存器,并等待AD7705的DRDY变低,然后发送16个时钟,以读取通道1的16位转换数据。通道2的数据读取与通道1的数据读取相似,发送的数据分别为0x21,0x0C,0x11,0x44,0x39。
3 结束语
  本文用有限状态机在FPGA上实现了对有SPI接口的AD转换器AD7705的接口应用,并对AD7705的两路输入信号进行了实时采集。事实上,选用通用I/O口模拟SPI时序,相比标准SPI接口IP核更为简洁,可以节约FPGA的片上资源。由于AD7705提供有双通道、低成本、高分辨率的模数转换功能,因此,采用∑-△结构实现模数转换,可使得该器件在噪音环境下免受干扰,因而很适合于工业控制应用。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 01:07 , Processed in 0.055563 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表