来源:网络转载更新时间:2020-09-28 11:01:52点击次数:2643次
0引言
称重计量技术在冶金、交通、电力、建材和化工等领域有着非常广泛的应用。在生产过程或工艺流程中,对各种配料称重、定量称重及动态称重技术的要求越来越高。衡器已成为工艺技术、预包装技术、收发货业务及商贸行业中必不可少的组成部分,称重传感器及智能称重仪表作为衡器的心脏部件,在工业过程控制和贸易结算等方面倍受重视⑴。
目前,称重传感器主要分为压电式、压磁式和电阻应变式,其中电阻应变式称重传感器是现阶段应用广泛、性能稳定、准确度高且技术成熟的称重传感器⑴。它利用金属弹性体的应变效应进行转换,在力的作用下,弹性体发生形变,带动应变片发生形变,产生电阻的变化,电阻的变化反映力的大小。
为了解决传统称重仪表设计方法上的不足,本文对国产基手CSU60和ATmegal6L设计的智能称重仪表结构原理介绍如下。
1简化结构设计
在给定激励电压10-12V的条件下,电阻应变式称重传感器的输出电压在0~30mV,如此微弱的信号只有在智能称重仪表的配合下,将传感器的信号转化成重量,并通过各种通信接口输出给上位机[2~4]o称重仪表的组成结构如图1所示⑸。信号调理电路主要由滤波电路、抗混叠电路等组成;放大电路主要由运算放大器构成,用来将毫伏级信号
放大到伏级,以便A/D电路将其转化成数字量。
图1称重仪表组成结构
上述电路中,半导体集成度不高、器件多、温度补偿不好控制并且可靠性低。而由深圳生产的CS1160是16位高精度、低功耗Sigma-Delta模数转换芯片,可以在2.7-5.5V电源电压条件下工作⑸。CS1160的1~128倍可编程增益放大器,当工作在128倍时,CS1160有效分辨力可达16bitso备有一个二阶Sigma-Delta调制器,芯片的FIR滤波器提供50Hz和60Hz陷波滤波,有效提高了芯片的抗干扰性能。
该芯片不仅集成了信号调理电路、放大电路和数模转换电路,还提供了非常适合仪表产品的校正功能。因此,可将图1简化为图2所示的设计简图。
图2称重仪表设计简图
2改进硬件设计
随着信息技术的高速发展,微控制器(MCU)的性能大幅度提高,为高度智能化仪表的设计制造提供了平台。本文智能称重仪表设计采用Atmel公司的ATmegal6L高性能、低功耗8位AVR微处理器。它采用先进的RISC结构,工作于16MHz时性能高达16MIPS;内置16kB的系统内可编程Flash、512B的EEPROM、lkB的片内SRAMJTAG接口支持扩展的片内调试功能;2个8位定时器/计数器、1个16位定时器/计数器、4通道PWM、8路10位ADC.TWI两线接口、SPI串行接口、串行USART接口等。
基于CS1160和ATmegal6L设计的智能称重仪表具备以下特点:自动调零、自动平衡、自动补偿和自选量程等信息处理功能;数据自动采集、预处理、相关滤波,且由传感器本身消除异常值和例外值,提供比传统传感器更全面、更真实的信息;能够随机标定;具有一定程度的记忆与处理功能,内含特定算法并可根据需要进行改变;能输出数字信号,具有远程通信能力和良好的人机界面。依照上述要求设计的智能称重仪表外围电路如图3所示。集成芯片CS1160有16个管脚,模拟电源(+12V,AGND)、数字电源(卩cc,DGND)、参考电压(匕Q都是单独分开的,数模转换的时钟由一个4.9152MHz外部晶振实现,参考电压5V由TI431提供,所以R,。和R”选择了IO®精度的等值27kfl电阻。电阻应变传感器的激励电压选择+12V直流,差分信号经阻容滤波电路后接到CS1160的AIN0和AIN]两端。CS1160芯片的DRDY、SCLK、SDO、SDI、CS引脚分别是数据准备就绪、串行时钟、串行数据输出、串行数据输入、片选,它们与MCU的SPI接口连接,用来读写控制CS1160,完成数模转换。
主控MUC釆用ATmegal6L高性能AVR芯片,外部晶振采用7.3728MHz,方便在线调试和程序烧录;LCM选择了OCMJ4X8C,其内置一二级汉字库、128x64的显示点阵,可以显示图形和中英文字符,而无需自建字模。该液晶还可以通过PSB控制引脚,切换到串行方式,节省MCU的I/O引脚。
3优化程序设计
CS1160使用了一系列指令来完成对芯片的工作模式、工作速度和误差校正等的控制。接收数据时总是高位在前,发送数据的格式则由ACR寄存器的BITORDER位来决定。CS1160指令描述如表1所示。
1)数据读取函数的编写如下:
voidspi_init(void)
i
SPCR=0x00; //diablespi
SPSR=0x00; 〃2X
SPCR=0x52; //setupSPI
2)将SPI接口初始化完毕后,就可以通过对SPI数据寄存器SPDR的操作,完成CS1160指令。下面是读取CS1160数模转换结果的函数,使用的是RDATA指令:
UnsignedintReadData(void)
I
cs=o;〃片选
unsignedchari=0;
unsignedintdata=0;〃返回值变量
unsignedchartmp=0;〃临时变量存放中间值while(DRDY);〃当DRDY为高时,不读取数据SPDR=0x01;〃将命令写入SPI寄存器,同时开始写到CS1160
while(!(SPSR&0x80));〃等待发送完毕tmp=SPSR;〃清除发送标志
tmp=SPDR;〃丢弃该数据
SPDR=0x00;
while(!(SPSR&0x80));〃继续输入读数脉冲tmp=SPSR;
tmp=SPDR;〃丢弃该数据
SPDR=0x00;
while(!(SPSR&0x80));〃继续输入读数脉冲tmp二SPSR;
data=SPDR;
data=data<<8;〃读取高8位数据
SPDR=0x00;〃高8位置于高位
while(!(SPSR&0x80));〃继续输入读数脉冲tmp=SPSR;
dataI=SPDR;〃低8位置于低位
CS=1;〃取消片选
returndata;〃返回结果
I
3)指令RREG和WREG与指令RDATA操作方式类似:
VoidWriteCommand(unsignedcharComm)
I
SPDR=Comm;〃写入命令while(!(SPSR&0x80));tmp=SPSR;
I
4结束语
通过使用CS1160集成芯片,配以ATmegal6L高性能单片机,不仅简化了称重仪表的设计、降低了产品成本、提高了可靠性,而且在实际生产应用中效果良好。另外,在应用过程中,有些功能不能够很好地满足现场的需求,比如,由于现场条件限制,对传感器的标定方法还不够灵活、系统电源的抗干扰能力较差等,需要进一步开发研究。
文章来源于网络转载,侵删
×