CS5534型A/D转换器及其在高精度模拟量采集卡中的应用 | |
|
摘要: CS5534是美国CIRRUS LOGIC公司推出的低噪声24位 型A/D转换器。本文介绍该芯片的组成结构,功能及工作方式等特性,并将其应用于高精度模拟量采集卡的设计中;同时,文中给出采集卡的硬件电路设计和相应的C51软件设计。
关键词: A/D转换器, 信号采集卡, 硬件电路, 软件设计
1 CS5534芯片介绍
单片机构成的智能仪表和和检测设备中,输入信号的变化反应非常灵敏,A/D转换器的选择将对这些设备的性能影响很大。传统12位并行接口A/D转换器(如AD574)通常无法满足上述仪器测量精度要求,为此,本文选择新型高精度A/D转换芯片CS5534[1],设计一种可广泛应用于工业控制领域的高精度模拟量卡。CS5534芯片采用电荷平衡技术和极低噪声的可编程增益斩波稳定测量放大器,输出分辨率可达24位,该芯片采用串行接口与中央处理器进行通信工作,接口电路比较简单。此外,CS5534内部有一个完整的自校正系统,可以进行自校准和系统校准,消除A/D本身的零点误差和漂移误差。
1.1 CS5534的内部逻辑结构图
CS5534的内部逻辑结构图如下所示,CS5534具有四通道的模拟输入,由内置多路开关来选择转换哪一通道的物理信号。信号经过一个可编程增益放大器后,进入四阶 调节器,最后经程控数字滤波器件进行滤波,得到A/D转换结果。另外,CS5534具有一个串行接口,可方便与51单片机进行通信,通信方式为SPI总线方式。
图1 CS5534的内部逻辑结构图
1.2 CS5534内部寄存器资源
CS5534内嵌一个在线控制器,该控制器含有许多用户可以访问的寄存器。这些寄存器用来保存增益校正和偏移校正的结果,配置芯片的操作模式,保存转换指令和转换结果等。
具体说来,包含1个命令寄存器,1个配置寄存器,1个转换数据保存寄存器(只读),4个通道设置寄存器及各物理通道的增益寄存器,偏移寄存器。除了命令寄存器是8位之外,其余寄存器都是32位寄存器。下面对各寄存器分别介绍:
1.2.1 命令寄存器
命令寄存器用来存放51单片机对A/D转换芯片发出的各种指令。这些指令主要分为两类,通过其最高位(D7)为0和1来区分。D7=0时,单片机对CS5534内部各寄存器进行读写操作;D7=1时,表示启动A/D转换或校正。
1.2.2 配置寄存器
配置寄存器共有32位,但只用到其中的11位来设定CS5534的一些工作参数,如工作电源,系统复位,输入短路,选择参考电压和滤波速率。CS5534有四种工作方式,分别为正常方式﹑低电量方式﹑备份方式和睡眠方式。这些工作方式通过D21(LMP)﹑D31﹑D30位来控制。系统复位时,将D29(RS)位置1。复位完成后,D28(RV)会自动置1表示复位有效。此外,D25(VRS)的值需由参考电压的大小来决定,D19(FRS)位的值会影响到滤波速率。
1.2.3 通道设置寄存器
CS5534有四个通道设置寄存器,每个寄存器由两个可编程的16位设置设置寄存器组成。通道设置寄存器可以用来指定对哪一物理通道进行转换,以何种增益﹑速率和何种极性来进行转换。在晶振频率为4.9152MHZ时,增益范围为1X , 2X,4X,8X,16,X,32X,64X,转换速率可为7.5HZ,15HZ,30HZ,60HZ,120HZ,480HZ,960HZ,1.92HZ,3.84HZ。
1.2.4 转换数据寄存器
A/D转换器将转换后的结果存放在该寄存器中。该寄存器为只读寄存器,高24位为数据位。D3位溢出标志位,D1和D0位通道标志位。
1.2.5 增益和偏移寄存器
每个物理通道含有一个32为增益寄存器和偏移寄存器,用来存放校正所得的结果。增益寄存器的范围为0~64-2-24。在复位后,这些寄存器的每个位均为0。
1.3 CS5534的A/D转换方式
CS5534提供单步转换和连续转换两种转换模式。对于前一种转换模式,用户执行一次单步转换命令后,得到这次转换的结果后,本次转换就结束。对于后一种转换模式,用户执行一次连续转换的命令后,转换器会不断的转换数据,除非CPU发出指令停止转换。
2 基于CS5534的高精度模拟量采集卡硬件设计
在工业控制现场中,经常需要实时高精度地采集各种模拟量信号,为此,利用CS5534芯片作为A/D转换器,与51单片机一起构成模拟量信号采集卡。信号采集卡电路主要由两部分组成:模拟量输入部分采集工业现场的模拟量输入信号;通信接口部分用来和上位机进行通信。通信接口选用MAX483[2]作为通讯的收发器,并选用PC410作为输入输出光电隔离器。下面主要介绍采集卡的模拟量输入部分的电路,其电路图如下:
图2 CS5534与CPU的接口电路
图中,CS5534 具有一个串行的接口,可方便与CPU进行通信。该接口具有四根控制线,CS, SDI, SDO, SCLK。CS为芯片使能端,低电平有效。SDI为串行数据输入,将数据送入转换器。SDO为串行数据输出,将数据输出转换器。SCLK为串行时钟控制,控制A/D串口数据的移位。采用SPI总线方式与CPU通信,接口电路简单,同时节省了CPU的I/O口资源。
3 采集卡的C51软件设计
3.1 系统初始化
系统在上电之后,需要对A/D转换器的串行口进行初始化,使串行口处于接受命令指令状态。初始化的过程是CPU发送至少大于15个SYNC1(0FFH),再发送1个SYNC0(0FEH)结束初始化状态。
3.2 系统复位
由于CS5534没有提供系统上电复位功能,因此需要在软件中加以处理。在系统初始化后,CPU发送复位指令,先使得配置寄存器的D30(RS)位置1,然后使得该位为0,以结束复位过程。复位结束后,复位有效标志位D29(RV)位会被系统自动置1,通过读取该寄存器的值,会清除D29位。
3.3 A/D转换
转换的参数设定好后,就可以启动A/D转换了。CPU通过发出转换命令,等待SDO从1跳变为0后,需要40个时钟用来读出转换的数据。前8个时钟用来清除SDO标志,在前8个时钟时,需要将SDI位置1;接着的32个时钟便用来从SDO读出转换的数据。若采用连续转换,在停止转换时,需另外作处理。A/D转换C51程序源程序如下:
Void convert(uchar command)
{ uchar i;
for(i=0;i<8;i++){
delay(); /*延时子程序*/
D_IN=(bit)(command&0x80);
CLOCK=1;
delay();
CLOCK=0;
command<<=1;
while(SDO==1); /*连续送8个低电平到S_DI口*/
D_IN=0;
for(i=0;i<8;i++)
{delay();
CLOCK=1;
delay();
CLOCK=0; }
read(0x00); } /*调用读子程序*/
4. 结论
由于CS5534具有宽动态特性、可编程输出速率、灵活的供电方式及简单的三线串行输出模式,因此,其与单片机接口简单,可广泛应用于一些高分辨率测量场合。利用CS5534作为A/D转换器的信号采集卡,可以高精度地采集工业现场的各种模拟量信号,并将数据实时地发送到上位机。本采集卡可用于一些精度要求较高的控制系统中(DCS、数控机床等),具有良好的通用性,有很好的应用推广价值。
参考文献
[1] 16-BIT and 24-BIT ADCS with Ultra Low Noise PGIA , Cirrus Logic , inc. 2004
[2] 李广弟.单片机基础【M】.北京航空航天出版社.2001
[3] 何立民.MCS-51系列单片机应用系统设计.系统配置与接口技术【M】北京航空航天大学出版社.1990.
(全文结束) |