串行A/D转换器ADS1110及其在AT89C51单片机中的应用
扫描二维码
随时随地手机看文章
1 引言
AT89C51单片机系统经常使用A/D转换器。虽然并行A/D转换器速度高、转换通道多,但其价格高,占用单片机接口资源比串行A/D转换器多。工业检测控制及智能化仪器仪表中经常采用串行A/D转换器。ADS1110是一种精密、可连续自校准的串行A/D转换器,带有差分输入和高达16位的分辨率,其串行接口为I2C总线。AT89C51单片机通过软件模拟I2C总线实现与ADS1110的连接。
2 ADS1110的特点与内部结构
2.1 ADS1110的特点
完整的数据采集系统和小型SOT23-6封装;片内基准电压:精度2.048 V+0.05%;片内可编程增益放大器PGA;片内振荡器;16位分辨率;可编程的转换速率15次/秒~240次/秒;I2C总线接口(8个有效地址);电源电压2.7 V~5.5 V;低电流消耗240 μA。
2.2 ADS1110的引脚功能
ADS1110串行A/D转换器采用6引脚贴片封装,其引脚排列如图1所示。VDD:电源端,通常接+5V;GND:模拟地和数字地;VIN+、VIN-:采样模拟信号输入端,其范围为2.048 V~2.048 V;SCL:I2C总线时钟线;SDA:I2C总线数据线。
2.3 ADS1110的内部结构
ADS1110是由带有可调增益的△-∑型转换器内核、2.048 V的电压基准、时钟振荡器和I2C总线接口组成。其内部结构如图2所示。
ADS1110的A/D转换器内核是由差分开关电容△-∑调节器和数字滤波器组成。调节器测量正模拟输入和负模拟输入的压差,并将其与基准电压相比较。数字滤波器接收高速数据流并输出代码,该代码是一个与输入电压成比例的数字,即A/D转换后的数据。
ADS1110片内电压基准是2.048 V。ADS1110只能采用内部电压基准该基准,不能测量,也不用于外部电路。ADS1110片内集成时钟振荡器用于驱动△-∑调节器和数字滤波器。ADS1110的信号输入端设有可编程增益放大器PGA,其输入阻抗在差分输入时的典型值为2.8 MΩ。
3 ADS1110的使用
3.1 I2C总线接口
ADS1110通过I2C总线(内部集成电路)接口通信,AT89C51单片机的2个I/O接口最多可挂接8个ADS1110,单片机对ADS1110的识别通过I2C地址实现。ADS1110只能作为从机。
ADS1110的I2C地址是1001aaa,其中aaa是出厂时默认设置。ADS1110有8种不同类型,每种类型都有不同的I2C地址。封装上,ADS1110的每种类型都以EDx为标识,其中x表示地址变量。
3.2寄存器
ADS1110含有输出寄存器和配置寄存器,可通过I2C端口进行访问。输出寄存器存储A/D转换结果,而配置寄存器用于设置ADS1110的工作方式,数据速率和可编程增益放大器,也可用于查询器件状态。
3.3 ADS1110的读写
3.3.1读操作
若从ADS1110中读取输出寄存器和配置寄存器的内容,需对ADS1110寻址。从ADS1110中读取3个字节,前2个字节是输出寄存器的内容,第3个字节是配置寄存器的内容。读操作时,只读前2个字节而不读第3个字节。ADS1110的读操作时序如图3所示。
3.3.2写操作
为了对配置寄存器写操作,要对ADS1110寻址,并向配置寄存器写入1个字节,但不能向输出寄存器写人字节。其写操作时序如图4所示。
4 ADS1110在AT89C51系统应用
4.1硬件设计
由于AT89C51单片机没有I2C总线接口,可通过软件模拟实现与I2C总线器件的连接。具体方法是将单片机的I/O接口连接至I2C的数据线SDA和时钟线SCL。通过软件控制时钟和数据传输,系统灵活性强。
图5所示是数据采集显示系统,采集工业现场的4路模拟信号并轮询显示。采用4个ADS1110作为A/D转换器,地址为ED0~ED3。具有I2C总线接口的EEPROM AT24C16作为存储器。本系统有4位LED数码显示管和4个参数设定按键。采集数据经数字滤波、16进制→工程值转换后,送至数码管轮询显示。ADS1110和AT24C16的I2C接口连ADSl110数据线SDA至单片机的P1.0,时钟线SCL连接单片机的P1.1,上拉电阻阻值选10 kΩ。
4.2软件设计
按照硬件电路,编写A/D转换子程序为ADS0,其中嵌套调用了START,为起始命令子程序,FSDZ1为向ADS1110发送单个字节命令的子程序,ADREAD是读取输出寄存器和配置寄存器的子程序,STOP是停止命令子程序。ADS0只对地址为ED0的ADS1110读数,如果要读取其他ADS1110,只需更改地址即可。系统中ADS1110的工作方式选用默认设置,即配置寄存器内容为#8CH,所以程序未向配置寄存器写入数据。程序代码如下:
5 结束语
ADS1110是一款高性价比具有I2C总线接口的串行A/D转换器。ADS1110已在单片机系统中应用,并用于现场。实践证明,ADS1110和单片机组成的数据采集系统,占用I/O端口少、功耗低,适用无电源场合。但需注意的是,因I2C总线为串行扩展总线,数据采集时不能用于实时速度要求较高的场合。