图1.1 控制字、字节存储图示
如果自动增量(auto-increment)模式是使用内部振荡器的应用中所需要的,那么控制字中模拟输出允许标志应置1。这要求内部振荡器持续运行,因此要防止振荡器启动延时的转换错误结果。模拟输出允许标志可以在其他时候复位以减少静态功耗。
选择一个不存在的输入通道将导致分配最高可用的通道号。所以,如果自动增量(auto-increment)被置1,下一个被选择的通道将总是通道0。两个半字节的最高有效位(即bit 7 和bit 3)是留给未来的功能,必须设置为逻辑0。控制寄存器的所有位在上电复位后被复位为逻辑0。D/A 转换器和振荡器在节能时被禁止。模拟输出被切换到高阻态。
PCF8591A/D 转换模块分析A/D 转换器采用逐次逼近转换技术。在A/D 转换周期将临时使用片上D/A 转换器和高增益比较器。
一个 A/D 转换周期总是开始于发送一个有效读模式地址给PCF8591 之后。A/D 转换周期在应答时钟脉冲的后沿被触发,并在传输前一次转换结果时执行(见图1.2)。一旦一个转换周期被触发,所选通道的输入电压采样将保存到芯片并被转换为对应的8 位二进制码。
图1.2 A/D 转换顺序
取自差分输入的采样将被转换为8 位二进制补码。(见图1.3 和图1.4)对D/A 和A/D 转换,稳定的参考电压和电源电压必须提供给电阻分压电路(引脚VREF 和AGND)。AGND 引脚必须连接到系统模拟地,并应该有一个参考VSS 的直流偏置。低频可应用于VREF 和AGND 引脚。这允许D / A 转换器作为一象限乘法器使用。A / D 转换器也可以用作一个或两个象限模拟除法。模拟输入电压除以参考电压。其结果被转换为二进制码。在这种应用中,用户必须保持在转换周期的参考电压稳定。
图1.3 单端输入的A/D 转换特性 图1.4 差分输入的A/D 转换特性
片上振荡器产生A/D 转换周期和刷新自动清零缓冲放大器需要的时钟信号。在使用这个振荡器时EXT 引脚必须连接到VSS。在OSC 引脚振荡频率是可用的。如果EXT引脚被连接到VDD,振荡输出OSC将切换到高阻态以允许用户连接外部时钟信号至OSC。I2C总线是不同的IC 或模块之间的双向两线通信。这两条线是串行数据线(SDA)和串行时钟线(SCL)。这两条线必须通过上拉电路连接至正电源。数据传输只能在总线不忙时启动。
转换结果被保存在ADC 数据寄存器等待传输。如果自动增量标志被置1,将选择下一个通道。在读周期传输的第一个字节包含前一次读周期的转换结果代码。以上电复位之后读取的第一个字节是0x80。I2C总线协议的读周期如图1.5 和图1.6。
图1.5 写模式的总线协议,D/A 转换图1.6 读模式的总线协议,A/D 转换
最高 A/D 转换速率取决于实际的I2C 总线速度。微机前向通道由检测、控制部分和人机接口组成。检测部分用PCF8591芯片采集电位器上变化的电压信号,经过A/D转换将数据送给单片机AT89S52处理。单片机再将数据送液晶显示器 LCD1602显示。pcf8591的控制CS,I/O CLOCK,ADDRESS和数据输出端DATAOUT遵循串行外设接口SPI协议。虽然单片机未内置SPI接口,但仅需通过软件模拟SPI协议即可实现通信。pcf8591和微处理器的串行接口之间可通过一个4线接口高速传输数据。
2.2 数据采集方案
首先启动总线,用于传输数据。先写数据再读取,中间要进行空采样一次,目的是调整采样顺序。1号通道采样结束后停止 。A/D转换值前先将存储单元清零。转换结果用LCD显示。多路模拟输入信号经多路模拟开关控制将其中的一路接入串行A/ D 转换器, A/ D 转换器经光电隔离后串行输出到移位寄存器, 移位寄存器将此结果转为8 位并行数据, AT89S52 系统通过8 位的并行接口传送A/ D 转换器采集的数据[ 2] , 存储在FIFO存储器中; 一旦FIFO 存满, SIE 立刻对数据进行处理, 然后AT89S52系统将数据从FIFO 存储器中读出,由收发器通过数据线( D+ 、D - ) 送至主机。 AT89S52单片机微机前向通道设计+文献综述(4):http://www.youerw.com/yanjiu/lunwen_4107.html