基于CAN总线的智能超声液位变送器
摘 要:介绍了基于CAN总线的智能超声液位变送器的设计。选用ARM7TDMI-S内核的LPC2119作运算控制器,利用LPC2119芯片内部的CAN总线控制器设计CAN总线通信接口。超声液位变送器采用收发一体式电路设计,由数字温度传感器DS18B20进行温度补偿,利用ARM芯片强大的处理能力,对回波信号进行数字滤波处理,从而准确检测出超声波的传播时间。
关键词:CAN总线; 超声波; 液位; 数字滤波
中图分类号:TP212 文献标识码:A
文章编号:1004-373X(2010)11-0131-04
Smart Ultrasonic Liquid Level Transmitter Based on CAN Bus
JIAO Bing, YE Song, WANG Xiao-lei
(Institute of Meteorology, PLA University of Science and Technology, Nanjing 211101, China)
Abstract: The design of a smart ultrasonic liquid level transmitter based on CAN bus is introduced. The communication interface of CAN bus was designed by choosing LPC2119 chip with ARM7TDMI-S inner core as the arithmetic control unit, and by utilizing CAN bus controller inside LPC2119 chip. The design of the monolithic transmitting and receiving circuit is emploied for the transmitter. Digital temperature sensor DS18B20 is adopted as temperature compensation device. The echo signal is processed with the digital filtering technology by the aid of the strong processing ability of ARM chip. Therefore, the accuracy of liquid level measurement is improved.
Keywords: CAN bus; ultrasonic; liquid level; digital filtering
0 引 言
现场总线是用于现场仪表与控制系统和控制室之间的一种全分散、全数字化、智能、双向、互连、多变量、多点、多站的通信网络。CAN(Controller Area Network,控制器局域网)是德国Bosch公司在80 年代初为解决现代汽车中大量的控制与测试仪器之间的数据交换而提出的一种串行数据通信协议[1]。CAN总线是国际上应用最广泛的现场总线之一,由于采用了许多新技术以及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的性能,且可靠性、实时性和灵活性强。
近些年来, 随着超声技术研究的不断深入, 再加上其具有的高精度、无损、非接触等优点, 超声的应用变得越来越普及[2]。超声波液位测量有许多优点:检测元件可以不与被测介质接触,可测范围广;可测量低温介质的液位;寿命长[3];能够定点和连续测液位;安装维护方便[4]。超声波测量已成功应用于江河水位、化学和制药工业、食品加工、罐装液位等多种领域。
1 测量方法
超声波脉冲回波法是液位测量中应用较广的一种方法,通过测量超声波传播时间来测量距离。超声波脉冲回波检测法的基本原理是:发射声波换能器由脉冲信号激励发出超声波,通过传声媒介传到被测液面,形成反射波;反射波再通过传声介质返回到接收换能器,传感器把声信号转换成电信号,由仪表计算出超声波从发射到接收所传播的时间,再根据超声波在介质中传播的速度,利用式(1)确定液位高度:
h=H-L=H-vt/2
(1)
式中:H表示探头与容器底部的距离;L表示超声波传输距离的50%;v表示超声波声速;t表示超声波传播时间;h即所测液面实际高度。
系统采用软件滤波方式判断超声波回波信号的起始点,使用AD转换器将回波信号转换为数字信号送到ARM处理器,利用ARM处理器较强的信号处理能力对回波信号进行数字滤波、数值处理,确定超声波传播时间。
系统选用Philips公司的LPC2119芯片作为控制运算处理器。LPC2119是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU,并带有128 KB嵌入的高速FLASH存储器,具有高性能、低功耗的特点。LPC2119芯片内部集成2个CAN控制器,符合CAN规范CAN 2.0B、ISO11898-1,可访问32位寄存器和RAM,单个总线数据波特率可达1 Mb/s,全局验收过滤器可识别几乎所有总线的11和29位Rx标识符,验收过滤器为选择的标准标识符提供了FullCAN-style自动接收。
2 系统硬件设计
2.1 测量电路设计
测量电路的核心是超声波发射及接收电路,设计为收发一体式,如图1所示。使用LPC2119芯片内部定时器0产生40 kHz的激励脉冲,输至NMOS场效应管Q1的栅极。当控制端P0.22 OUT为低电平时,NMOS场效应管Q1截止,PMOS场效应管Q2的Ugs接近零电压,Q2截止而输出低电平;P0.22 OUT为高电平时,Q1导通,Q2的栅极电压由电阻分压而得,使Ugs小于其2 V左右的门限电压而使Q2导通,输出高电平[5]。所以通过控制端,使发射电路产生正向高压脉冲以激励超声波探头。+50 V高电压由AD公司生产的开关型DC-DC变换器ADP1111提供。
图1 测量电路
在接收电路中使用二极管的钳位作用防止高压发射脉冲进入接收电路。电路中的两个肖特基二极管和限流电阻将输入电压限制在0.3 V以内,但对较小的回波信号不起作用,实现了超声波发射、接收电路一体化。电路需要对微弱的回波信号进行放大,使用OP27运算放大器将回波信号放大200倍[6]。电容C20滤掉回波信号中的直流成分。
系统采用数字滤波、数值处理的方法找超声波的回波起点,因此需要将放大后的回波信号进行模数转换。本系统采样频率定为1 MHz,模数转换电路使用德州仪器公司的8位高速A/D转换器ADS930。电路采用交流耦合连接方式。经过A/D转换后的回波信号送入运算控制器进行处理。
超声波在空气中的传播速度会随温度的变化而变化,超声波传播速度c与环境温度T的关系如式(2):
c=331.4+0.61T
(2)
为了减少测量误差,需要进行温度补偿。系统采用DALLAS公司的一线式数字温度传感器DS18B20芯片进行温度补偿。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。使用 DS18B20进行精确的温度转换,I/O线必须在转换期间保证供电,系统采用外接电源方式给DS18B20芯片供电。温度补偿采用查表法,首先建立温度与声速的二维关系表,处理器在读出DS18B20测得的温度值后进行查表,得到当时声速。由于表格中的温度点有限并且是离散分布的,采用小区间插值法以提高精度。软件编程严格遵循一线总线读写时序。
2.2 CAN总线通信接口设计
CAN总线通信接口由CAN总线控制器和CAN总线收发器组成,CAN控制器作为CAN总线的数据链路层,CAN总线收发器作为CAN总线的物理层。LPC2119内部集成的CAN控制器作为CAN总线控制器,它具有完成CAN通信协议的全部必要特性。PHILIPS公司的CAN总线收发器PCA82C250提供CAN总线控制器和物理传输线路之间的接口。电路如图2所示。
系统选用TD1,RD1引脚CAN控制器。CAN总线收发器PCA82C250的RS引脚接一斜率电阻R35,用于选择PCA82C250的工作模式:高速、斜率控制和待机[7]。R35短路接地可选择高速工作方式;若RS引脚接高电平,则电路进入低电平待机方式,发送器关闭,接收器转入低电流,有利于降低系统功耗;在斜率控制下,电阻R35的大小可根据总线的通信速率适当调整,一般在16~140 kΩ之间。
系统使用高速光耦6N137和DC-DC电压隔离模块B0505S组成的隔离电路加强了电路的抗干扰能力,确保CAN总线遭受严重干扰时能够正常运行。PCA82C250的CANH和CANL引脚各自通过一个10 Ω的电阻与CAN总线相连,电阻起限流的作用,保护PCA82C250免受过流的冲击。在CANH和CANL与地之间并联2个30 pF的小电容,可以滤除总线上的高频干扰并且具有一定的防电磁干扰的能力[8]。在两根CAN总线接入端之间并入瞬态电压抑制二极管(TVS管),当CAN总线串入干扰电压时可通过TVS管的短路起到一定的过压保护作用。
图2 CAN总线通信接口电路图
3 系统软件设计
系统软件设计主要包括测量程序和通信程序两部分。其中,测量程序的关键是对超声波回波信号的处理;通信程序的关键是CAN总线控制器的初始化,数据的发送和接收。
3.1 回波信号处理程序的设计
系统采用数字滤波方式对回波信号进行处理,选用IIR带通滤波器进行数字滤波,然后进行数值处理,识别接收波形的起始点。系统设计通带频率范围为[35 kHz,45 kHz],通带波纹最大衰减为0.01 dB,阻带波纹最小衰减为60 dB,采样频率为1 MHz。可用高通及低通各为4阶的带通椭圆型滤波器来实现。系数为:b=(0.001 0,-0.007 6,0.024 8,-0.047 4,0.058 4,-0.047 4,0.024 8,-0.007 6,0.001 0),a=(1.000 0,-7.579 2,25.370 1,-48.974 1,59.623 8,-46.877 5,23.244 5,-6.647 0,0.839 5)。此滤波器极点均在单位圆内,滤波器是稳定的。图3是IIR数字滤波器的幅度与相位特性曲线图。
3.2 通信程序的设计
通信程序的设计主要包括三部分:CAN控制器的初始化,CAN总线数据发送,CAN总线数据接收。通过编写LPC2119芯片内部CAN控制器寄存器来实现软件通信功能。
CAN总线控制器只需要进行少量的配置就可以进行通信,其基本初始化流程如图4所示。其中,硬件使能和配置引脚连接、软件复位、设定通信波特率、配置验收过滤器、退出复位模式是必须的初始化部分。
图3 IIR数字滤波器的幅度与相位特性曲线
图4 CAN控制器初始化流程图
CAN控制器初始化程序如下:
#define BPS_1000K
(0<<23)|(1<<20)|(3<<16)|(0<<14)|3//定义CAN通信波特率
#define CAN1 0
PinSet(CAN1);//CAN控制器的硬件使能及引脚选择,系统选用CAN1
CAN1MOD=CAN1MOD|0x01;//软件复位CAN1控制器
CAN1EWL=0x60;//设置出错警告界限
CAN1BTR=BPS_1000K;//设定通信波特率为1 Mb/s
CAN1IER=0x00;//设置中断使能
CANAFMR=0x03;//设置验收过滤模式为旁路模式
CAN1MOD=CAN1MOD&0xFE;//软件使能CAN1控制器
CAN控制器初始化后,可以进行数据发送或接收。LPC2119内部每个CAN控制器配有3个独立的发送缓冲寄存器,在发送时根据情况选择3个缓冲之一,把数据写入缓冲区,启动发送。若选择第一缓冲,程序如下:
CAN1TFI1=0<<31|0<<30|8<<16|0x00;//帧信息:标准数据帧,8位数据
CAN1TID1=0xAA;//帧ID:0xAA
CAN1TDA1=0x44332211;//前4字节数据
CAN1TDB1=0x88776655;//后4字节数据
CAN1CMR=1<<5|1;//选择第一缓冲启动发送
系统采用中断方式接收数据。程序如下:
VICDefVectAddr=(INT32U)CANIntPrg;//设置CAN1为非向量中断
VICIntEnable|=(1<<19)|(1<<20)|(1<<26);//使能CAN1中断通道
While(1);//等待中断
CAN控制器根据CAN 2.0B规范来对发送和接收错误进行计数、处理。
4 结 语
基于CAN总线智能超声液位变送器选用高性能、低功耗的ARM处理器芯片LPC2119;利用LPC2119芯片内部的CAN控制器和CAN总线收发器PCA82C250构建性能优异的CAN总线通信接口,信号传输可靠、实时、灵活;由一线式数字温度传感器DS18B20芯片完成温度补偿功能。先进的处理器加强了液位计的回波处理能力,采用数字滤波,提高了液位的测量精度。
参考文献
[1]潘佚.基于C8051F040 的CAN总线智能节点的设计[J].现代电子技术,2006,29(4):49-51.
[2]刘松,朱志芹,王渝.CAN 总线智能测控节点的设计与实现[J].现代电子技术,2003,26(2):52-54.
[3]雷建龙.基于单片机的超声波液位测量仪[J].仪表技术与传感器,2004(6):8-9.
[4]李敏哲,赵继印,李建坡.基于超声波传感器的无线液位测量系统[J].仪表技术与传感器,2005(11):35-36.
[5]唐慧强,黄惟一,李萍,等.基于DSP的超声风速测量[J].东南大学学报:英文版,2005(1):20-23.
[6]孙娟.基于DSP的超声波液位计的研制[D].南京:南京信息工程大学,2005.
[7]尹旭全,张建华,高守玮,等.超声在测量中的应用[J].现代电子技术,2003,26(5):100-102.
[8]高红玉,徐建城,曾成奇.基于ARM的CAN总线智能节点的设计[J].电子技术应用,2005(4):24-26.