1.3.3 MSP430F147部分 电路中应用到MSP430F147的JTAG口,方便程序的调试:端口P6.0做A/D采样口,采样经放大后的霍尔电压。端口P4.0-P4.7做字符显示数据口,接LCD数据口。端口P5.5-P5.7接LCD控制口。P3.3与串行D/A MAX5302的SCLK相连。P3.1与MAX5302的DIN相连。P3.0与MAX5302的CS端连接。未用到管脚悬空,这样可以降低MSP430F147的功耗。MSP430F147未接外部晶振,采用片内数控DCO的DCOCLK经分频后作为主时钟MCLK。 1.3.4 MAX5302及输出部分 MAX5302是超低功耗12位串行电压输出型D/A,电流消耗为270uA。通过SPI方式与430的USART0通讯。基准电压采用MSP43OF147的VREF+电压。 MSP430的USART0送过来的数据经过DIN口送入内部16位的移位寄存器,实现串并转换。转换后数据送入输入寄存器存储。当DAC寄存器为空时从输入寄存器存储中装入数据。当一次D/A转换完成后DAC从DAC寄存器中取出数据重新开始转换,转化后的电压送入运放同相输入端。此时需要将电压输出改为电流输出,达到补偿调整输出4-20mA电流的目的,在D/A输出端加三极管Q2,通过控制发射极电流以达到控制输出电流输出的目的。 输出电流I=(VREF×N)/(4096×R)A (R为100Ω,N为DAC的数字值) 2 软件部分 2.1 主程序设计 采用IAR公司的集成开发环境Embedded Workbench进行项目开发。主程序为仪器的监测程序,在程序开始运行时,首先对系统进行自检并初始化, 具体包括时钟模块。数字I/O端口,WDT、USART及ADC各功能模块的工作方式设置。系统初始化完成后便等待中断友生。 2.2 中断服务程序设计 系统设计了复位中断、A/D转换中断及键盘中断及WDT中断服务程序,Embedded Workbench中, 中端程序的格式是:interrupt[中断向量偏移量]void 中断程序名(void){ }。 复位中断设计成和主程序同一入口,完成系统初始化,并等待中断发生。 片内ADC12当转换完成后发生中断,在中断服务程序中将ADM12MEME0中取出,并调用线性化修正子程序。为了减短关中断的时间,子程序的执行是在开中断下执行的。 系统定义了3个功能键盘。在其对应的中断服务程序中完成调零,调满及确认功能。 在MSP430F147单片机中的WDT设为看门狗模式,防止程序跑飞。定时时间为1S,选择ACLK信号作为WDT的时钟源。当发生WDT中断,系统复位。 2.3 线性化修正子程序 采用分段线性的线性化方法。线性插值是插值点用折线段逼近非线性曲线, 以达到线性化的目的。查表法是一种分段线性插值法,它是根据精度要求对非线性曲线进行分段,分段越多,线性化精度越高,分段后用若干段折线逼近曲线,将折点坐标值存入数据表中,测量时,根据一段直线的斜率进行线性插值,从而实现线性化修正。 下面以四段(5个折点)为例。说明本系统线性插值法实现线性化的过程。五个点的折点坐标值为:
横坐标:0、I1、I2,I3、I4;
纵坐标: 0、F1、F2、F3、F4; 在第一段,即点(0,0)与点(I1,F1)之间,折线方程为:F1=0+(F1+0)(I-0)/(I1-0) 在第二段,即点(I1,F1)与点(I2,F2)之间,折线方程为:F=F1+(F2-F1)(I-I1)/(I2-I1) 在第三段,即点(I2,F2)与点(I3,F3)之间,折线方程为:F=F2+(F3-F2)(I-I2)/(I3-I2) 在第四段,即点(I3,F3)与点(I4,F4)之间,折线方程为:F=F3+(F4-F3)(I-I2)/(I4-I3) 所以温度T的表达式的通式为: F=Fk+(Fk+1-Fk)(I-Ik)/(Ik+1-Ik) 上式中,k为折点的序号,如对应第三个折点,k=3,对应第四段折线方程。 3 结语 采用上述设计的智能化金属浮子流量计,具有超低功耗、低成本、结构简单等特点,完成了对流量计非线性修正,拓宽了金属浮子流量汁的应用范围。
|