TLC7225在电力电量参数测量系统中应用
2017-05-08
TLC7225 Application in Electric Power & Quantity Measurement System
图1 TLC7225 功能框图
图2 TLC7225参考电压实现电路
系统简介
本电力电量参数测量系统包括两个独立的硬件模块:参数测量模块和谐波信号源模块。TLC7225用于产生谐波信号。系统要求产生3路电流信号、3路电压信号,每一路输出信号幅度在0~2V内可调,调节精度为0.1mV。本系统作为单独的谐波信号源工作时,6路信号的幅度、相位等参数通过PC机传到谐波信号源,谐波信号源系统按照用户给出的命令参数输出标准信号。由于系统处理的数据量较大,实时性要求较高,普通的微处理器已不能满足速度、精度等方面的要求,而DSP处理器以其ns级指令系统和哈佛结构的计算能力和实时性,正逐渐应用到电力系统中来。笔者选取TI公司的TMS320F206(以下简称F206)。F206独有的32K片内Flash是一种可电擦除和编程的非易失性存储器,可用于存储数据或程序。本系统中将应用程序和一张正弦波母表烧录在Flash中,以便实时调用,可减少由于实时计算而引起的延时。
TLC7225
TLC7225是TI公司的高性能D/A转换器,片内包含四路8位电压输出数/模转换器(DAC),每个DAC都有分离的片内锁存器(见图1),数据通过一个公共的8位TTL /CMOS兼容(5V)输入口送入这些数据寄存器之一。由A0和A1决定/WR变低时哪个DAC被加载。在/WR的上升沿,数据被锁存在被寻址的输入寄存器,只有保存在DAC寄存器中的数据决定转换器的模拟输出。由图1可见,/LDAC信号是所有四个DAC共有的,控制从输入寄存器到DAC寄存器的信息传输。在/LDAC的上升沿,数据被同时锁存到四个DAC寄存器。/LDAC信号是电平触发的,因此,可将/LDAC连接到低电平而使DAC寄存器透明,本系统即是如此。
TLC7225包含四个相同的8位电压型数/模转换器,每个转换器由一个单独的基准输入,这正好符合本系统中6路信号幅度单独可控的要求。
当TLC7225处于单极性工作时,输入输出有如下关系:
(1)
其中(包括)由TLC7226的输出提供(如图2)。
TLC7226和TLC7225唯一的区别是TLC7226片上的4路DAC共用同一个基准电压(由系统中的LM399提供,为6.95V),在基准电压保持不变的情况下,各路的输入值不同,输出值也就不同。可以通过控制TLC7226的输入值来间接控制TLC7225的输出值,TLC7226和TLC7225单极性工作时的输入输出关系为:
(2)
其中为6.95V。TLC7225数字输入是与TTL或CMOS电平兼容的,为使电源电流最小,一般数字输入电压的驱动应尽可能接近电源满度() 。
TLC7225的软硬件设计
要正确使用TLC7225,必须同时保证硬件逻辑电路的正确连接和软件编程的准确无误。
硬件逻辑电路
TLC7225 参考电压的硬件实现电路如图2,其中的D0—D7直接与F206的低8位数据线相连,TLC7225的输入数据值由F206从固化在Flash中的正弦波母表中提取,参考电压由TLC7226提供。系统中笔者采用3片TLC7226。由于TLC7226的输入为8位,在基准电压值固定的情况下,TLC7226输出信号的变化精度只能是的1/256, 则TLC7225的输出变化精度也是这个基准电压的1/256。作为一个用于测试设备性能的标准信号源,这个变化精度是远远不够的。为了解决这个问题,笔者在信号源系统中采用两路8位输入的TLC7226构成一路16位输入的直流模拟信号,经过运放作为TLC7225中各通路的参考电压(如图2)。
此时当TLC7226的输入每增加1时,TLC7225的输出增加0.106mV,达到系统的0.1mV可调的要求。
TLC7225输入满幅时的TLC7226的输入值可以通过下式得到:
(3)
当TLC7225输出幅度为2v时TLC7226的16位输入值为49F5h。
软件设计
timer:
mar *, ar1
sst #1, *+
sst #0, *+
sar ar0,*+
sar ar5,*+ ;以上为现场保护
lar ar0, #240 ;每一路波形取240个点,共6路
mar *,ar5 ;设置AR5为当前辅助寄存器
lar ar5, nextdata ;AR5存储待发数据首地址
out *0+, 0723h ;输出a相电流
out *0+, 0727h ;输出b相电流
out *0+, 072bh ;输出c相电流
out *0+, 0713h ;输出a相电压
out *0+, 0717h ;输出b相电压
out *+, 071bh ;输出c相电压
;注意:此处不能为*0+
sar ar5, nextdata ;保存ar5的值
lacc nextdata
sub #1200
sacl nextdata
sub endaddr ;以上判断有没有到表尾
bcnd again, eq ;若已到表尾则跳转到again
clrc sxm ;禁止符号扩展
mar *, ar1 ;以下恢复现场
lacc *-
add *-, 16
lar ar5, *-
lar ar0, *-
lst #0, *-
lst #1, *
clrc intmnverted-space>
ret
程序中除了现场保护与恢复之外,最重要的语句是out *0+,0723h,此语句不但将数据输出到TLC7225的一个引脚0723h,而且将当前辅助寄存器中的值增加了240(存储在AR0中),实现了下一路数据的简便输出而无需再移动当前辅助寄存器指针。需要注意的是输出最后一路数据时一定不能用out *0+, 071bh,否则超出数据表范围,得不到所需的正弦波。
结语
综合利用TLC7225和TLC7226实现6路信号的单独可调输出,硬件上可以减少外围电路的复杂性,软件设计简单方便。本系统在硬件上已经实现,具有速度快、精度高等特点。