霍尔片NHE211管脚2与4间流入激励电流。管脚1与3之间输出霍尔电压。输出的霍尔电压在毫伏级,霍尔电压须经过放大才能被A/D采样。霍尔电压的正负极经电阻R7、R8接入TLC2252的运放B的同相、反向端。电阻R10、R7阻值决定了霍尔电压的放大倍数。霍尔电压被放大的倍数为R10/R7,为20倍,从而让霍尔电压达到伏级。放大后的霍尔电压送至MSP430F147的P6.0口,供片内A/D采样。 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;
|