天地(常州)自动化股份有限公司 李冠华
当金属丝在外力作用下发生机械变形时,其电阻值将发生变化,这种效应称为电阻应变效应;金属丝受到轴向拉力时,其长度增加而横截面变小,引起电阻增加;反之,当它受到轴向压力时则导致电阻减小[1]。利用金属丝的这种特性可将力、压力、位移、应变、扭矩、加速度等被测量的变化转换成传感器元件电阻值的变化,再经过转换电路变成电信号输出,即通常所说的应变传感器。本文利用应变电阻设计了一种基于CAN总线的应力变送器,可用于张紧绞车等地方的拉力检测。
应力变送器的硬件电路主要由信号采集放大电路,按键电路,显示电路,CAN总线输出、频率输出电路几部分组成。
将需要检测的应力通过应变电阻转化成变化的电阻信号,通过惠斯通电桥将变化的电阻信号装换成电压信号输出(如图1所示)。
图1中由R1、R2、R3、R4组成电桥,其中R4为应变电阻,Vref给电桥供电,AD+、AD-为电桥输出的随应力变化而改变的差分电压信号。因为AD+,AD-的差值只有毫伏级,电桥电源的微小波动都会对输出信号产生影响,导致放大采样后的大误差。基于此考虑电桥电源采用了精密基准源LM4040AIM3-8.192(见图2)供电,精度达到±0.1%,100ppm/°C,保证输出信号的精度。
图1
图2
图3
图4
图5 CAN总线收发电路
图6 频率输出电路
图7 电路设计如图
图8 引脚与单片机连接
图9 主程序框图
图10 程序框图
图11 传感头的安装
电路设计为测试拉力在0~10t变化时AD+,AD-两脚的压差在0~10mV,由于信号非常微弱,因此需要将其放大后再引进单片机AD采样。放大电路采用仪表放大器AD623,它是美国模拟器件公司推出的一种低价格、单电源、输出摆幅能达到电源电压的仪表放大器[2]。AD623直流增益精度为0.1%(G=1),增益漂移25ppm(G=1)。另外它的输入共模范围很宽,应用非常简单,使用一只外接电阻即可设置高达1000的增益,从而给用户带来极大方便。如图3。
图中网络标号ANI脚输出电压UANI=(VAD+ - VAD-)*(1+100k/R10)。由公式可得,只要调节R10即可改变增益,从而可以很方便选取我们所需要的放大倍数。
图1,图2,图3中的电阻均采用低温漂的精密电阻。
应力变送器单片机采用microchip公司的PIC18F2480(图4),总共有28脚,芯片内集成了CAN控制器,简化了开发;另外,芯片内部还集成了EEPROM,调校完成后可将调校参数存储,而不用每次上电都重新调校。
CAN总线收发电路如图5。
接口电路中收发器采用AMIS42675[3],经过实验验证,其驱动的总线电平高于常用的PCA82C250,并且其功耗要小于PCA82C250。CAN总线接口与MCU之间采用双路磁耦ADUM1201隔离。相比于高速光耦,磁耦时延小,并且其功耗也小很多。F13,F15,F16为瞬态抑制二极管,当总线上受到大的尖峰脉冲干扰的时候,能够对总线起到保护作用。
图6中是频率输出电路,由于输出信号需要具备一定的驱动能力,因此在输出侧通过三极管V6增加输出频率信号的驱动能力。频率信号的正、负脉冲宽度不小于0.3ms,高电平不小于3V(拉出电流2mA),低电平不大于0.5V。L2为共模扼圈,F6为TVS管,用于滤除线上瞬变干扰。
应力变送器设有3个按键,用于出厂调校。两个键用于参数的增减,另外一个键用于功能确认。电路设计如图7,按键不按时单片机引脚检测为高电平,按下后变为低电平。
应力变送器需要人机交互的信息很少,主要是指示实际拉力以及调校时用于显示输出值,因此采用常见的2行16个字的液晶模块LCD1602即可。字符型LCD 通常有14条引脚线(8位数据线D1~D2,2根电源线VCC、GND,1根液晶显示偏压线VL,数据/命令选择线RS,读/写选择线RW,使能线E)或16条引脚线两种,多出来的2条线是背光电源线BL+(15脚)和地线BL-(16脚),其控制原理与14脚的LCD完全一样。 引脚与单片机连接见图8。
由于器件的差异性,应力变送器出厂需要调校,而调校的数据存在EEPROM中,上电后初始化液晶显示,读取调校值。进入主循环后对信号采样计算,换算成对应的应力送液晶显示,还有对应的CAN总线信号输出、频率信号输出。若在运行过程中发现有功能键按下,则进入调校程序。主程序框图见图9。
初始化函数主要对端口初始化,AD采样初始化,液晶LCD1602初始化,定时器初始化,并且读取EEPROM中的调校报警数值。
定时器设定一个固定中断时间,主要用于程序的心跳。CAN总线数据定时发送、AD采样间隔、液晶数据传送间隔都以此为基准根据实际需要乘以整数倍。另外频率信号的输出也通过在定时器中翻转I/O实现。
AD采样是通过中断来实现的,在中断中读出采样值,并置标志位,在主循环中检测到标志位后对数据进行处理。
数字滤波法有用于克服大脉冲干扰的数字滤波法,也有适用抑制小幅度高频噪声的平均滤波法。在实际应用中,有时既要消除大幅度的脉冲干扰,又要做数据平滑。因此常把前面介绍的两种以上的方法结合起来使用,形成复合滤波。
应力变送器AD采样软件设计采用去极值平均滤波算法:先用中值滤波算法滤除采样值中的脉冲性干扰,然后把剩余的各采样值进行平均滤波。连续采样N次,剔除其最大值和最小值,再求余下N-2个采样的平均值。显然,这种方法既能抑制随机干扰,又能滤除明显的脉冲干扰[4]。
CAN总线数据输出采用定时发送的方式,数据的发送通过中断完成。在上电时CAN总线初始化时将发送中断使能位、发送中断标志位都置位使其进入发送中断。在中断中将需要输出的CAN总线数据填入发送缓冲区,并置位请求发送位。程序框图见图10。
LCD1602的显示主要要注意读写时序,对其进行每次读写操作前都必须进行读写检测。每次LCD1602进行操作的时候,需要对其判断是否处于忙的状态。如果是处于忙的状态,就需要等其忙完再对它进行读写操作。下面列出了LCD1602的读写函数。
void lcd_wcom(uchar com)//LCD1602写命令函数
{
LATB1=0; //选择指令寄存器
LATB0=0; //选择写
LATC=com; //把命令字送入
delay(5); //延时一小会儿,让1602准备接收数据
LATB4=1; //使能线电平变化,命令送入1602的8位数据口
LATB4=0;
}
void lcd_wdat(uchar dat) //LCD1602写数据函数
{
LATB1=1; //选择数据寄存器
LATB0=0; //选择写
LATC=dat; //把要显示的数据送入
delay(5);//延时一小会儿,让1602准备接收数据
LATB4=1; //使能线电平变化,数据送入1602的8位数据口
LATB4=0;
}
应力变送器设有3个按键,两个键用于参数的增减,另外两个按键一个用于键功能确认,按下后开始出厂标校,标校完成后将标校值存入EEPROM。需注意的是,实际硬件操作中,EEPROM的读、写都需要几毫秒的时间,因此程序中对时间有要求的地方要考虑到。
本文开发的应力变送器目前主要应用在张紧系统中测试张力,产品设计为分立式结构。应变电桥封装在传感头中,信号放大处理部分在另外一个外壳中,现场安装时,信号放大处理显示部分可放易见易触摸的地方。传感头的安装见图11,传感头的两侧有两个圆孔,通过这两个空将应力部件串联在需测拉力钢缆中间,从而可测试出所测拉力。
本文主要介绍了基于CAN总线的应力变送器软硬件设计,该应力变送器硬件设计实用可靠,软件设计考虑了抗干扰措施;并且具有液晶显示,CAN总线、频率信号输出,接口丰富,可配接多类系统,在用户中取得了良好的反响。
[1]刘迎春,叶湘滨.传感器原理[M].国防科技大学出版社,2004,2.
[2]王建新,任勇峰,焦新泉.仪表放大器AD623在数采系统中的应用[J].微计算机信息.2007,23(3-1).
[3]谢兵,杨帆,吴绍辉.增大CAN总线传输距离的设计方案[J].工矿自动化,2010(5).
[4]程德福,林君.智能仪器[M].机械工业出版社,2009.
[5]李满昌,石伟,孙健等.基于以太网的高速数据采集系统设计[J].工程与实验,2010,50(2):47-48.