PROFIBUS从站智能协议芯片DPC31与AD7705接口设计
Interface Design of PROFIBUS Intelligent Slave ASIC DPC31 and AD7705
作者:徐秀杰 张永德
(北京化工大学信息学院 北京 100029)
摘要:PROFIBUS现场总线技术已广泛应用于各个领域。为开发PROFIBUS-PA智能仪表,讲述了DPC31的SSC接口和基于Σ-Δ技术的16位A/D转换芯片AD7705的原理,给出了一种用AD7705、DPC31实现的符合PA行规“模拟量输入”功能块的三线串行接口模型。 关键字:低功耗 模数转换 Σ-Δ技术 中图分类号:TP2
Abstract: PROFIBUS fieldbus systems have been applied in many areas. For developing intelligent PROFIBUS-PA instruments. This paper introduces the principle of SSC interface in DPC31 and the 16 bits ADC AD7705 based on the technology of Σ-Δ and provides a three lines serial interface model with AD7705 and DPC31 complying with PA profile on “analogue input” function block.
Key words: low-power analog-to-digital conversion technology of sigma-delta 0. 引言
如何将现实的模拟世界和电子的数字世界相连接起来是智能化仪器仪表的关键所在。AD转换器的任务是将连续变化的模拟信号转换为离散的数字信号,以便于数字系统进行处理、存储、控制和显示。在PROFIBUS-PA总线系统中,由于其应用环境的特殊性,对现场仪表所需器件也更为严格的要求。 1. PA仪表
PROFIBUS-PA总线系统将过程控制系统与现场设备(如压力、温度和液位变送器等)连接起来,代替了4-20Ma模拟信号传输技术。它通过数据导线向现场仪表供电,可在防爆区域中应用。应用于流程控制的PA仪表是FCS中的关键设备,有着很大的市场需求。
PA行规支持不同制造商生产的PA现场设备的可互换性和可互操作性,采用国际公认的功能块模型来描述设备功能和参数。这些功能块表示不同的用户功能。例如符合PA行规的压力变送器,它就是用“模拟量输入”功能块来描述的,如图1所示。
图1.在PROFIBUS-PA行规中的参数图例(压力变送器)
Fig. 1: Example diagram of PROFIBUS-PA profile parameter(pressure transmitter)
PA仪表多用于防爆场合,采用总线供电方式,整个仪表的功耗不得超过250mW,因此要求所选器件功耗尽可能降低。在对PROFIBUS协议的实现部分,可以采用西门子提供的PROFIBUS协议专用ASICs芯片。DPC31是一种用于DP或PA从站的智能通信协议芯片,其中
集成了C31内核,由于该芯片具有低功耗管理系统,因此特别适合用于本质安全场合。另外,DPC31还集成了一个通用的同步串行(SSC)接口模块,并有对应控制寄存器,可直接与具有SPI接口的A/D转换器或E²PROM相连。
由于对低功耗的要求,传统的A/D转换器无法满足要求。美国AD公司推出的AD7705适用于低频测量仪器的AD转换器,它能直接将从传感器接收到的很弱的输入信号直接转换成串行数字信号输出,而无需外部仪表放大器。它具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压、低功耗等特点,可以消除零点误差、满量程误差及温度漂移的影响,该器件适用于便携式工业仪表,便携式重量计和压力传感器。具有三线串行SPI接口,是PA产品的理想选择。
[1]
2. DPC31的SSC接口模块 2.1专用寄存器
在DPC31的SSC接口模块中,包括六个专用寄存器单元,用户可对其直接寻址。通过对这些寄存器的读写,实现与AD7705通讯及控制。
(1)四个既可读又可写的寄存器: 地址 0020h:SPI接口的接收缓冲区。
地址 0021h:SPI接口的状态寄存器。包括接收缓冲区满标志、发送缓冲区空标志及错误信息等。
地址 0022h:SPI接口的控制寄存器1。接收发送的数据控制、数据锁存控制及奇偶校验控制。
地址地址 0023h:SPI接口的控制寄存器2。控制每次传送数据的位数。 (2)两个只写寄存器:
地址 0024h:SPI接口的中断使能寄存器。包括接收和发送中断、奇偶校验错误中断使及其它接收错误中断的使能。
地址 0025h:SPI接口的波特率寄存器。 2.2 工作原理
SSC模块包括一个接收通道和一个发送通道,每个通道包括一个9位的移位寄存器和一个8位缓冲区。
在发送数据时,如果数据已经送出即发送缓冲区为空,状态寄存器中的位“Transmit Buffer Empty”被激活置1,如果中断使能寄存器中相应的中断使能被允许,就会激发DPC31的中断寄存器中SSC接口中断。当用户向发送缓冲区写入数据时,状态寄存器中的位“Transmit Buffer Empty”为0,等到发送移位寄存器空时,发送缓冲区的数据送入,时钟信号SSCLK只有在移位过程中才会产生。
在接收数据时,收到的位数据流进入接收移位寄存器,当收到一个字节的数据位时,送入接收缓冲区,状态寄存器中的位“Receive Buffer Full”被激活置1。如果中断使能寄存器中相应的中断使能被允许,就会激发DPC31的中断寄存器中SSC接口中断。
当出现奇偶校验错误、接收缓冲区溢出或总线忙时,也会激活状态寄存器中的相应位,如果中断使能位允许,产生SSC接口中断。
如果所有的中断使能都不允许,也可通过循环查询状态寄存器中相应位分别处理数据的发送和接收。
[2] [3]
3. AD7705结构及工作原理 3.1 内部结构
AD7705内部包括多路模拟开关、模拟输入缓冲器(PGA)、可编程模拟放大器、Σ-ΔADC调制器、数字滤波器、基准电压输入、时钟发生器以及串行接口电路等。其中串行接口包括一个寄存器组,它由通讯寄存器、设置寄存器、时钟寄存器、数据寄存器、零标度校准寄存
器和满标度校准寄存器等组成。另外还包括两通道差分输入。其总体结构如图2所示。
图2. AD7705内部结构图
Figure 2: the Internal Structure of AD7705
3.2 工作原理
3.2.1模拟信号输入
各类传感器输出一般是毫伏级的微弱信号,传统的测量方法是在A/D转换之前增加一级高精度的测量放大器,因而系统较为复杂。而AD7705具有内部可编程模拟放大器(PGA),可通过指令设定,对不同幅度的输入信号实现1、2、4、8、16、32、和128倍的放大,因此既可接受从传感器送来的低电平输入信号,亦可接受高电平(10V)信号,它利用Σ-Δ技术实现16位无误码性能。 3.2.2与微处理器的数据传送
在AD7705的串行接口部分,包括6个用户可通过串行口访问的片内寄存器。
(1)第一个是通讯寄存器,它管理通道选择,决定下一个操作是读操作还是写操作,以及下一次读或写哪一个寄存器。所有与器件的通讯必须从写通讯寄存器开始。上电或复位后,器件等待在通讯寄存器上进行一次写操作。
(2)第二个寄存器是设置寄存器,决定校准模式、增益设置、单/双极性输入以及缓冲模式。
(3)第三个寄存器是时钟寄存器,包括滤波器选择位和时钟控制位。 (4)第四个寄存器是数据寄存器,器件输出的数据从这个寄存器读出。
(5)第五个寄存器是零标度校准寄存器,AD7705包含几组的零标度寄存器,每个零标度寄存器负责一个输入通道。它们都是24位读/写寄存器。
(6)第六个寄存器是满标度校准寄存器,AD7705包含几组的满标度寄存器,每个满标度寄存器负责一个输入通道。它们都是24位读/写寄存器。 4. 硬件设计
AD7705采用三线串行口与DPC31的SSC接口连接,如图3所示。对于SSC通道,DI/DO用于串行输入输出,CLK时钟信号上升沿锁存输入数据。为了连接多个具有SPI接口的外围器件(如E²PROM, AD转换器),每个SPI器件需占用一个输出端口线,连接/CS片选作为SPI功能使能端。
图3:DPC31的SPI接口 Figure 3: SPI Interface of DPC31
AD7705除了晶振和微调电容以外,几乎无需其他元件。基准电压由参考源REF192提供,可以获得稳定的3V基准电压,消除因激励电压变化引起的测量误差。
AD7705工作电源有模拟电源(AVDD)和数字电源(DVDD)之分,不需要特定的加电顺序,可以先加AVDD或DVDD电源。需要注意,在REFIN、AIN和其他逻辑输入引脚加入信号之前、应给AD7705电源接通,以免发生闭锁(Latch-up)。
印制电路板必须按规格设计,要确保模拟区和数字区分开并各自限定在电路板上的一定区域。利用接地平面可以很容易地将它们分开。因为这样能使屏蔽性能最好。AGND和DGND应当一点连接,为星形接地点,尽量靠近AD7705的位置,以避免出现接地环路。另外,应将模拟地布置在器件的下面,而不要将数字地布置在下面,因为这样会造成片内噪声成倍增加。地线和电源线尽可能粗些,以便降低线路阻抗,同时减少电源供电的尖峰信号的影响。 时钟信号不能在模拟输入信号附近通过,模拟信号和数字信号之间应避免相互交叉。所有的模拟电源都应去耦,可用10μF并联一个0.1μF的陶瓷电容接GND。 4.编程要点:
软件设计主要考虑三个方面:
(1) DPC31的SSC接口初始化:包括对DPC31中断系统中SSC接口中断屏蔽位的清除和对SSC模块中控制寄存器、中断使能寄存器和波特率寄存器的初始化。
(2)SSC接口中断的处理:从SSC接口的接收缓冲区中取出接收到的数据送到PROFIBUS输入缓冲区。
(3) AD7705寄存器进行操作的时序:与AD7705通讯必须严格按照AD7705所规定的读写周期的时序进行操作。
(4) AD7705的初始化和配置:AD7705的配置与设计的硬件紧密相关,只有在正确配置的情况下硬件才能正常工作。同时,对AD7705内每一个寄存器的配置都必须从写通信寄存器开始,用户通过DPC31的SSC模块中的发送缓冲区写入通信寄存器,完成通道的选择和设置下一次操作寄存器的选择。设计中,AD7705的相应参数取:输出数据更新速率:50Hz;系统增益:;有效分辨率:15位。
AD7705的编程功能是用片内寄存器的设置来控制。对这些寄存器的读/写操作通过器件的串行接口来完成。其串行接口包含5个信号:CS、SCKL、DIN、DOUT和DRDY。DIN线用来向片内寄存器传送数据,而DOUT线用来访问寄存器里的数据。SCLK是串行时钟输入,所有的数据传输都和SCLK信号有关。DRDY线作为状态信号,以提示数据什么时候已准备好从寄存器读数据。输出寄存器中有新的数据时,DRDY变为低电平。CS是片选信号,接低电平时器件被选中,能以三线接口模式运行。
通过对AD7705通过对片内寄存器的编程,可以实现通道选择、增益选择、滤波频率选
择、转换周期选择、自动校准和AD转换等功能。对AD7705的任何一种操作,必须首先对通信寄存器写入相应代码,然后才能对其他寄存器读写。 5.结束语
AD7705以其本身优良特性且不需附加另外的器件而使得其在数据检测领域具有很大的应用前景。在有防爆要求的PA仪表中,它成为理想的选择。利用其设计的PA压力变送器的原理型样机,性能指标达到了预期效果。 6.参考文献:
[1] DPC31-Hardware Description. Siemens AG,1999.6
[2] Analog Devices. Preliminary technical Information,AD7705/06 [3] 胡志高. AD7705/06及其应用. 电子产品世界,2000.10
[4] 王平. PROFIBUS现场总线智能从站通信接口设计. 工业仪表与自动化装置,2002 No.1
第一作者简介:徐秀杰,女,1976,硕士研究生,北京化工大学信息学院计算机应用技术专业,研究方向为现场总线及网络。