TLC1543美国TI司生产的多通道、低价格的模数转换器。采用串行通信接口,具有输入通道多、性价比高、易于和单片机接口的特点,可广泛应用于各种数据采集系统。TLC1543为20脚DIP装的CMOS10位开关电容逐次A/D逼近模数转换器,引脚排列如图1所示。其中A0~A10(1~9、11、12脚)为11个模拟输入端,REF+(14脚,通常为VCC)和REF-(13脚,通常为地)为基准电压正负端,CS(15脚)为片选端,在CS端的一个下降沿变化将复位内部计数器并控制和使能ADDRESS、I/OCLOCK(18脚)和DATAOUT(16脚)。ADDRESS(17脚)为串行数据输入端,是一个1的串行地址用来选择下一个即将被转换的模拟输入或测试电压。DATAOUT为A/D换结束3态串行输出端,它与微处理器或外围的串行口通信,可对数据长度和格式灵活编程。I/OCLOCK数据输入/输出提供同步时钟,系统时钟由片内产生。芯片内部有一个14通道多路选择器,可选择11个模拟输入通道或3个内部自测电压中的任意一个进行测试。片内设有采样-保持电路,在转换结束时,EOC(19脚)输出端变高表明转换完成。内部转换器具有高速(10µS转换时间),高精度(10分辨率,最大±1LSB不可调整误差)和低噪声的特点。图1引脚排列1.TLC1543工作时序TLC1543工作时序如图2示,其工作过程分为两个周期:访问周期和采样周期。工作状态由CS使能或禁止,工作时CS必须置低电平。CS为高电平时,I/OCLOCK、ADDRESS被禁止,同时DATAOUT为高阻状态。当CPU使CS变低时,TLC1543开始数据转换,I/OCLOCK、ADDRESS使能,DATAOUT脱离高阻状态。随后,CPU向ADDRESS提供4位通道地址,控制14个模拟通道选择器从11个外部模拟输入和3个内部自测电压中选通1路送到采样保持电路。同时,I/OCLOCK输入时钟时序,CPU从DATAOUT端接收前一次A/D转换结果。I/OCLOCK从CPU接收10时钟长度的时钟序列。前4个时钟用4位地址从ADDRESS端装载地址寄存器,选择所需的模拟通道,后6个时钟对模拟输入的采样提供控制时序。模拟输入的采样起始于第4个I/OCLOCK下降沿,而采样一直持续6个I/OCLOCK周期,并一直保持到第10个I/OCLOCK下降沿。转换过程中,CS的下降沿使DATAOUT引脚脱离高阻状态并起动一次I/OCLOCK工作过程。CS上升沿终止这个过程并在规定的延迟时间内使DATAOUT引脚返回到高阻状态,经过两个系统时钟周期后禁止I/OCLOCK和ADDRESS端。图2工作时序2软硬件设计要点TLC1543三个控制输入端CS、I/OCLOCK、ADDRESS和一个数据输出端DATAOUT遵循串行外设接口SPI协议,要求微处理器具有SPI口。但大多数单片机均未内置SPI口(如目前国内广泛采用的MCS51和PIC列单片机),需通过软件模拟SPI协议以便和TLC1543接口。TLC1543芯片的三个输入端和一个输出端与51系列单片机的I/O口可直接连接,具体连接方式可参见图3。软件设计中,应注意区分TLC1543的11个模拟输入通道和3个内部测试电压地址(后3个地址只用来测试你写的地址是不是正确的,真正使用时不用后三个地址)。附表为模拟通道和内部电压测试地址。程序软件编写应注意TLC1543通道地址必须为写入字节的高四位,而CPU读入的数据是芯片上次A/D转换完成的数据。在本文后附的程序中对此有详细的说明。附表3TLC1543的应用图3为TLC1543在一个通信电源数据采集系统中的实际应用。此例中的TLC1543主要用于完成8组-48V直流电源、2组220V交流电源和1组温度参数的采样。采样数据由89C51单片机通过RS232标准串口送给后台PC机进行处理。各单元的功能介绍如下:看门狗和E2PROM存储器图3中的X25045(IC4)是一种新型的看门狗和E2PROM存储芯片,它将电压监控、看门狗定时器和E2PROM三种功能组合在单个芯片之内。X25045为89C51提供上电复位,当程序紊乱或电压失常时启动内部的看门狗电路以强制单片机复位,使程序从头开始执行。X25045还内置512字节E2PROM存储单元,可随时保存各种重要数据,如A/D采样结果等,这使系统掉电后重要数据仍然不会丢失。串行显示驱动器PS7219PS7219(IC2)是多功能8位LED显示驱动芯片。接口采用三线SPI方式,用户只需简单修改内部相关的控制字,便可以实现多位LED显示。图3中的PS7219主要用来显示设置参数,如显示通信速率参数等。PC机通信接口电路MAX232(IC3)为标准RS232接口转换芯片,主要完成TTL至RS232电平的转换,为单片机和PC机通信提供通道。在整个数据采集系统中,PC机除了处理各种采样数据外,还负责对前台单片机系统进行管理,如故障诊断,参数设置等等。参数设置的其中一项为系统通信速率设置,管理人员可通过PC机任意设置单片机和PC机的通信速率,其设置参数保存在X25045的E2PROM存储单元中,在下次设置之前,该参数不会被更改。本例为单个采集系统的应用实例,实际应用中往往存在多系统并存的情况,这时可将MAX232更换为MAX485接口芯片,采用485总线标准,通过一台PC机可在几千米范围内管理数十台前端机。极性转换电路鉴于目前国内采用的通信电源均为负电压,而TLC1543模拟通道输入只能为正电压,因此-48V直流电压在送到A/D转换器前除了要分压外,还需将负电压转换为正电压。图4为一个简单的极性转换电路,仅增加两个电阻便可完成负电压到正电压的转换,省去了复杂的极性转换芯片。图4中当输入电压为0V时,TLC1543A0端电压为2.5V;当输入电压为-5V时,A0端电压为0V。通过电阻R1、R2的简单分压便完成了输入通道的负电压到正电压的极性转换。TLC1543与89C51接口程序TLC1543与89C51接口程序应完全依照TLC1543的工作时序编写,主要由CONVETER子程序组成。由于转换完成的数据为10位,软件编写时将数据的高位字节存放在2EH单元中,低位字节存放在2FH单元中。其中R4、R3寄存器分别存放TLC1543的通道地址和数量;R1、R2寄存器存放A/D转换结果。本例程序中89C51晶振为11.0592MHz。其程序清单如下: