COM:信号地
VREF:参考电压输入端,最大值为电源电压
CS:片选端,低电平有效,该脚为高电平时,其它数字接口线呈三态
DCLK:外部时钟输入端,在时钟作用下,CPU将控制字写入ADS7844,并将转换结果从中读出
DIN:串行数据输入端,在片选有效时,控制字在DCLK上升沿被逐位锁入ADS7844
DOUT:串行数据输出端,在片选有效时,转换结果在DCLK的下降沿开始被逐位从ADS7844移出
BUSY:“忙”信号输出端,在接收到控制字的第一位数据后变低,只有在转换结束且片选有效时,该脚才输出一个高脉冲
SHDN:电源关闭端,低电平有效。当SHDN为低电平时,ADS7844进入低功耗状态
VCC,GND:分别为电源端和数字地。
1.2 ADS7844的控制字及转换时序
ADS7844的控制字如表1所列。
表1 ADS7844的控制字含义
Bit7(MSB) |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0(LSB) |
S |
A2 |
A1 |
A0 |
- |
SGL/DIF |
PD1 |
PD0 |
ADS7844的控制字共有8位,其中S是起始位控制字的起始位总为“1”。A2~A0是通道选择位,在单端输入时分别对应8个通道,而对于差分输入,000~011分别对应CH0~CH1、CH2~CH3、CH4~CH5、CH6~CH7,而100~111则分别对应CH0~CH1、CH1~CH0、CH3~CH2、CH5~CH4、CH7~CH6。Bit3没有定义。SGL/DIF是模式控制位,该位为“1”时是单端输入模式,为“0”时是差分输入模式。PD1和PD0是电源关闭模式控制位,若为“00”,则表示ADS7844在不进行数据转换时自动进入电源关闭模式,若为“11”,芯片则始终处于电源开启模式。
ADS7844有多种转换时序,其基本转换时序如图2所示。从图中可见,一个转换周期需要24个时钟周期,其中8个用于输入控制字,16个用于读取转换结果。控制字的所有位在时钟上升沿被锁入芯片,转换结果在时钟的下降沿被逐位移出。所有移入和移出的数据都是高位在前、低位在后。需要说明的是,ADS7844是12位A/D转换器,其转换结果只有12位,故在移出12位结果后,还需送入4个时钟来完成整个转换过程,这4个多余的时钟移出的数据为“0”,使用时不应作为转换结果处理。
2 低功耗数据采集系统的硬件电路
要设计一个低功耗数据采集系统,只有A/D转换器是低功耗器件还不够。PIC16C64是美国MI-CROCHIP公司生产的高性能单片机,它有许多优点:宽电压2.7V~5V,其工作电流只有1mA3.3V@32kHz时,进入休眠状态后只有几微安且可以用中断将其从休眠状态唤醒等。低功耗数据采集系统的硬件电路如图3所示,其中CS、DCLK、DIN和DOUT必须与CPU连接,而BUSY则可以不用,在转换时稍加延时等待即可。控制AD7844进入低功耗状态有两种方式:一是直接控制SHDN端;二是将SHDN接在电源上,它们均可在控制字中设置。为了节省口线,可采用第二种方式。采样控制可以使用外部中断,如外部中断INT0、串行口中断和PB口电平变化引起的中断等,也可以使用内部定时中断。
3 软件程序
下面给出该系统的主程序部分流程图和汇编程序。该设计假设用外部中断INT0唤醒CPU来进行数据采集,且A/D转换程序就是中断服务子程序。
ORG 000H
GOTO MAIN
ORG 004H
GOTO INT PRO
ORG 010H
MAIN MOVLW 10H 关闭总中断控制位,
但开放INT0
MOVWF INTCON
BSF STATUSRP0 初始化A口
MOVLW 0F8H
MOVWF TRISA A口D0-D2为输
出,D3为输入
BCF STATUS,RP0
BSF PORTA,1 使片选无效
...
BSF INTCON,GIE 开放总中断控制位
LOOP SLEEP 等待中断
NOP
... 数据采集完成后进行其他处理
GOTO LOOP
INT_PRO BCF PORTA,0 时钟置低电平
BCF PORTA,2 数据输入置低
MOVLW 08H 置送控制字所需时钟数
MOVWF NUM
MOVLW 8CH 控制字,假设转换CH0,
单端输入,自动进入低功耗状态
BCF PORTA,1 片选有效
... 送控制字
LCALL DELAY 调用延时子程序
MOVLW 10H 置读转换结果所需
时钟数
MOVWF NUM
... 读转换结果
BSF PORTA,1 结束转换并返回
RETFIE
4 结束语
由于PIC16C64和ADS7844都是低功耗器件,且都有低功耗状态,因而用其设计的数据采集系统功耗是很低的。经实测,当电源电压为3.3V、时钟为32.76kHz时,该电路的正常工作电流为2mA,而进入低功耗状态后的系统消耗电流最大为4μA,因而完全适合于电池供电。另外,PIC16C64和ADS7844都是宽电压器件,并且PIC16C64还有许多功能可以开发利用。如果在本系统基础上做必要的功能扩展,便可用于其它工业控制系统的现场控制等领域。