0 引言
ADS1158是美国TI公司生产的多通道(16单端或8差分)、高精度(16位)、高速(扫描速度为1.8~23.7 KSPS)的高性能模/数转换芯片。ADS1258与ADS1158具有同样的功能,更高的精度(24位),同样的封装和引脚定义,使得硬件系统能够以最简单的方式从16位升级到24位系统。Microchip公司的数字信号控制器dsPIC30F4011为16位DSP,具有DSP的高速运算能力,保证了微处理器能够对ADS1158的数据读取进行快速的响应,同时完成数据处理与通信功能。
本方案较为详细的介绍了以这两种芯片为基础构建的模拟量数据采集系统,包括硬件组成原理和部分关键电路的设计,并对软件设计上的难点进行了阐述。
1 硬件设计
硬件设计方案如图1所示,主要由信号输入、电源、AD外围电路、MCU外围电路以及各部分电路之间的接口几部分组成。本文将对硬件设计中的几个关键电路设计进行介绍。在设计的过程中除了考虑到模拟量采集功能的实现以外,还充分考虑了采集模块的可靠性设计、保护电路等设计,增强其实际应用能力。
1.1 信号输入设计
为了提高数据的采集精度,本系统采用高精度和低温漂的4.096 V电压基准芯片REF5040。同时为了扩大输入信号的范围,在信号输入端设计了电阻分压。为了保证不同通道输入信号的一致性,分压电阻均采用0.1%以上精度的精密电阻。本方案采用2.7kΩ,1kΩ的精密电阻来组成分压电路,实际电压输入范围为0~15V,其电路如图2所示。此外,在ADC输入端加滤波电容,组成RC低通滤波器,可以有效的减小由过采样和通道切换引入的开关噪声。为了保护输入通道,应在外围电路设计上下钳位的保护电路,钳位二极管采用肖特基二极管BAT54SWT1。
1.2 隔离设计
从提高模块的可靠性角度来设计,应该充分考虑到电气信号隔离功能。包括模拟信号输入隔离、电源隔离、通信接口隔离三部分,确保该模块产生故障时,不会影响到通信总线、电源线路上其他电路的正常工作。
ADS1158与DSP的通信采用的是SPI串行通信,加上控制端口,共有五根输入输出线。本方案采用ADI公司的隔离芯片ADUM-1200,组成SPI的高速隔离输入,如图3所示。模拟信号的参考地与数字信号的参考地必须是隔离的,实际应用中对模拟地和数字地分开布局,然后通过最短的连线(低阻抗)连在一起,再接到外部某一个低阻抗的系统接地平面上,构成星形接地。
在本方案中,总线电源电压为24 V,在模块的电源设计上采用了24~5 V的隔离电源模块。此外,本方案采用CAN总线通信,所以在CAN接口设计中采用了ZLG公司的隔离CAN通信模块CTM8250T。
通过上述三处隔离设计,大大提高了A/D模块的独立性,增强了系统的可靠性。
1.3 ADS1158外围电路设计
图4中,详细画出了ADS1158的外围接口电路,主要包括电源、参考电压、晶振、通信接口、信号输入、信号处理等部分。该芯片与DSP的接口均采用隔离电路,晶振部分也选择了外部晶振,外加锁相环电路。这里主要介绍两个部分,分别是ADS1158的各种电源组成和信号处理电路部分。
ADS1158的电源由三组引脚组成,分别是模拟部分工作电源AVDD、AVSS;参考电压VrefN,VrefP;数字信号部分电源DVDD、DGND。其中AVDD电压是由数字电源DVDD经过隔离而来。DVDD的主要作用是匹配数字信号接口的电压信号,因为SPI以及部分控制线端口均已隔离,所以该端口仍旧与AVDD相接。VrefP,VrefN为参考电压,对模拟信号的采样精度有至为重要的影响,所以该部分必须谨慎、认真设计。
本方案电压参考端采用的是0~4.096 V,搭建了如图5所示的参考电压电路。将5 V的电源转化为4.096 V的参考电源,并经过一系列的滤波电路设计,来构造一个高精度、低噪声的参考电源。也可以将AVDD,AVSS通过电源模块转化为±2.5 V电压,输入至VrefP,VretN引脚,来构造双极性输入的应用。
MUXOUTN,MUXOUTP与ADCINP,ADCINN之间为信号处理电路。在此处可以采用运放对信号进行放大、滤波处理。如果不需要对信号进行处理,此处可以不接任何电路,将信号直连即可。
1.4 硬件设计中需要注意的地方
在硬件设计的过程中,要充分考虑到电容的应用,应该按照数据手册的推荐要求在各位置放置大小合适的胆电容或者瓷片电容,包括电源、晶振等部分。
ADS1158如果有没有使用到的引脚,应该让其处于一个确定的状态,或拉高,或拉低,不能让其悬空。本方案中悬空的引脚均通过电阻拉低。
背部裸露的散热焊盘应该与AVSS相连,并且焊接在电路板上。
1.5 24位A/D采样设计
采用ADS1158来构建模拟量采样电路的一个最大的优点就是可以从16位数据采集系统快速升级到24位数据采集系统,只需要将ADS1158更换为ADS1258,即可实现系统硬件升级。这两款新品具有同样的封装,同样的引脚定义,同样的外围电路设计,对于设计者来说,可以节约很多的精力和时间。
2 软件设计
本方案采用的是Microchip公司的数字信号控制器dsPIC30F4011,主要利用其强大的计算能力和高速的指令周期,保证控制器能够快速地响应ADS1158的数据请求。软件分为DSP初始化、ADS1158初始化、数据读取、数据发送四部分。
2.1 软件初始化
定义SystemInitialize()初始化函数,主要工作完成对DSP的定时器、I/O口输入输出、SPI、CAN、外部中断等功能的初始化。定义了ADS1158 Initialize()初始化函数,通过SPI传输数据,完成对ADS1158的初始化。其寄存器地址与值的设置见表1。
2.2 数据读取与处理
完成上述设置后,ADS1158即会进入自动采集模式,以约100 Hz(16个通道)的频率进行扫描,并且每个通道得到采样值后会发送中断信号至dsPIC30F4011的外部中断,dsPIC30F4011对外部中断信号进行响应,读取当前通道采样值。
根据ADS1158的数据组成定义,一个结果值由三个字节组成,第一个字节为通道号信息,第二、三个字节由16位的数据组成(如果是ADS12 58的话,数据由三个字节组成)。
对三个数据进行解析,可以得到当前通道的采样值。其程序流程如图6所示。
以上数据读取都是通过SPI实现的。在程序结构的设计中,建议数据读取和数据解析以及数据换算不要放在外部中断函数里面,在中断函数里置标志位,返回主程序处理。dsPIC30F4011的指令周期以及强大的计算能力,足以支持所有通道的数据读取以及数据处理功能。
2.3 通信功能
本方案采用CAN总线通信。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。系统自动以100 Hz的频率向外发送数据,为了能够获得高精度的100 Hz,同时不干扰其他程序韵正常运行,下位机采用了设定系统时基的机制。下位机软件在系统内部定义了一个1 ms的时基(选择定时器1为1ms溢出产生中断),还有一个发送时基累加寄存器。
在时基(定时器1)中断函数中,对发送时基累加寄存器加1,并对该寄存器进行判断,如果大于9,则清零寄存器,置标志位,回主程序执行发送数据函数。此外,可以定义很多其他功能的时基累加寄存器,通过判断累加器的值,来实现程序的步进运转。
3 结论
本方案构建的数据采集系统具有很强的实际应用价值,文中介绍到的硬件组成以及关键电路的设计和软件设计思路等,对开发者都具有很强的参考意义。