APP下载

基于CAN总线的基站式智能仪表设计

2011-07-05

仪器仪表用户 2011年5期
关键词:寄存器仪表总线

冯 晗

(东华大学信息科学与技术学院,上海206120)

0 引言

随着数字通信技术的进步及电子技术的飞速发展,仪器仪表在技术上向数字化、智能化、网络化、微型化方向发展,逐步实现通用功能的模块化、通信的网络化、人机对话界面的人性化,同时自动化水平不断提高,具备智能数字式控制算法、自补偿、故障诊断及处理等功能[1]。本文结合国内外智能仪器仪表的发展方向,设计了基于现场总线的智能仪表,利用DS18B20实现温度补偿功能,采用分段线性插值实现非线性校正,具备量程整定、参数设置等功能。同时智能仪表以非集成方式实现,具备较强的灵活性与适应性。整个智能仪表功率低,性价比高,具有广阔的应用前景。

1 系统组成

智能仪表系统的硬件电路由单片机、信号调理电路、A/D及D/A转换电路,CAN通信电路,DS18B20数字式温度传感器,键盘显示屏及基准电压源等模块组成。单片机是整个智能系统的核心,负责各种信号运算处理及控制功能。键盘及显示屏模块完成仪表工作初始化,设定仪表的参数,包括量程、非线性补偿算法参数及CAN通信参数等,并实时就地显示被测参数数值。CAN通信模块用于同上位机及其他CAN智能节点进行通信,实时接收上位机发送的命令,并向上位机及其他节点传输工业现场参数。DS18B20数字式温度传感器用于进行温度校正,实现自动补偿等智能功能。模数转换电路及数模转换电路(利用PWM及斩波电路实现)模块用于采集现场模拟量信号并输出模拟量的控制信号。电源模块为整个智能系统提供电源。系统整体结构如图1所示。

图1 系统结构图

2 输入信号的采集与处理

2.1 输入信号采集

智能传感器系统的实现方式有集成实现与非集成实现。为了提高此设计仪表的灵活性,采用非集成的方式设计,即只提供经典传感器4-20mA信号接口,这样可以使仪表适应于更多的场合。仪表使用时只需根据测量要求接入合适的传感器,调整数字仪表的量程及精度。

信号调理电路实现信号的滤波,消除干扰信号,并完成4-20mA信号到1-5V信号的转换。

PIC16F877内置10位精度的A/D转换器。设计中采用单片机的RA0和RA1引脚作为模拟量的输入引脚,即设计2通道的模拟量输入信号。为提高精度,减小量化误差,软件设置参考电压范围由RA2及RA3引脚给定(需要相应设置 PIC内部寄存器ADC0N1的PCFG3:0位为1101)。其中,RA2为参考电压负极,由分压电路及反馈电路给出稳定的1V电压,RA3为参考电压正极,直接接至系统的5V稳压工作电源。经过适当的配置A/D转换速度,设置相应引脚功能后,即可通过软件命令进行A/D转换并获得输入信号的数字值。

2.2 量程设定及补偿算法

为提高仪表的适用范围,设计时并没有指定具体的量程范围以及待测参数单位。在仪表初始化工作时,根据实际情况配置YMIN和YMAX,同时,指定待测物理量的单位。

本设计中采用分段线性插值法进行非线性校正,根据精度要求对反非线性曲线进行分段,用若干段折线逼近曲线,将折点坐标值存入数据表中,测量时首先要明确对应输入被测量x的电压值u是在哪一段;然后根据那一段的斜率进行线性插值,即得输出值[2]。采用分段线性插值进行非线性校正的通式为:

本软件设计中,折点个数最大可为50个,可以根据实际应用进行输入选择。同时,折点坐标也可以根据实际的输入-输出特性曲线,在线性度较差的曲线段上选择较多的折点。所有折点数据在仪表初始化时进行设置。程序流程图如图2所示。

DS18B20是数字式温度传感器[3],安装在仪表内部用于实现温度补偿,以消除传感器的交叉灵敏度,克服温度对传感器输出的影响。DS18B20采用单总线协议,数据线上的所有信号传输,包括复位存在脉冲,位读位写信号均由2种电平模式在精确的时间控制下完成。本设计中,DS18B20与PIC16F877的RC1引脚相连接。由PIC16F877控制DS18B20的时序,主要是实现单总线上的电平时序控制:总线释放时的操作为设置RC1为输入引脚(TRISC1=1),总线电平自动由上拉电阻拉高;主机拉低总线电平需设置RC1为输出口,并同时输出低电平(TRISC1=0;RC1=0)。同时在精确地时间控制下,即可读取DS18B20的温度值。

图2 非线性校正程序流程图

PIC16F877写入温度补偿程序,算法实现采用如下3阶多项式公式:

式中,T为DS18B20获得的进行温度补偿的环境温度,k0-k3系数均可在仪表工作时根据不同的传感器设定并由键盘输入,S0为温度补偿值。经过补偿计算后,获得精确的测量值,作为控制模块的输入及通过CAN接口向上位机发送实时数据。

3 控制模块的设计

由于一般工程上采用PID即可获得较为满意的控制性能,为实现低成本高效能的设计,本仪表采用数字式PID控制算法。控制算法的偏差e由给定信号(可由仪表键盘设定,亦可通过CAN由上位机给定)与经补偿处理的测量信号相减给定。数字式PID控制算法如下:

式中,PID的3个参数均在仪表初始化中由面板键盘设定,具备了适应不同被控对象的灵活性。

此仪表控制信号的输出采用2种可选信道。其中之一为PWM信号,适用调节装置为PWM型信号的设备;另一路信号采用独特的D/A转换方式,即在脉冲宽度调制电路的基础上增加直流斩波电路及滤波电路,通过设定合适的参数,可输出1-5V的标准控制信号。

PIC16F877的CCP模块具备PWM输出功能[4]。脉宽调制中,信号周期和高电平的持续时间(脉宽)是两个非常重要的指标,其计算方法与构成要素如下:

2)PWM输出信号的脉宽

计算PWM高电平(脉宽)的公式如下:

式中,CCPR1L∶CCP1CON为10位的脉宽寄存器,TOSC为系统时间;TMR2为预分频值可取1、4、或16。

在控制算法设计中,CCPR1L的值是根据PID控制算法的输出而实时变化的,即PWM的占空比随不同的偏差e变化。

4 CAN通信模块设计

CAN协议规范的具体实现主要由CAN总线控制器完成。该芯片完整的实现CAN协议,单片机只需要通过接口设置相关CAN协议的参数,发送及接收数据[5]。

本设计中CAN控制器采用Microchip公司的带有SPI接口的独立CAN控制器MCP2515,CAN收发器采用Microchip公司的MCP2551。MCP2515相比于SJA1000 CAN控制器,采用SPI接口传输数据及命令,避免了并行传输数据占用过多I/O引脚,具有较多的接收及发送缓冲器,内部设置了2个屏蔽寄存器及6个滤波寄存器,满足了更多的匹配条件[6]。

本设计中,MCP2515的片选信号与MCU的RC7相连,SPI通信接口对应与PIC连接。MCP2515的3个发送控制引脚与2个接收中断引脚未用。MCP2515所有中断通过INT引脚接至RB0引脚(PIC16F877的RB引脚具有各种触发中断功能)。PIC16F877与MCP2515的硬件连接简图如图3所示。

MCP2515与PIC16F877的数据交换主要通过SPI接口。利用PIC16F877内置的MSSP模块,可以方便的实现SPI通信,无需用I/O专门模拟通信时序,只需将待发送的数据放入特殊功能寄存器SSPBUF,设置相应SPI传输速率等参数即可完成。

通过SPI接口访问MCP2515内部寄存器以及发送接收数据都是通过特定的9条命令组成。将9条命令封装成函数,其中每个函数都调用SPI通信子函数发送相应指令代码,地址,数据等信息。MCP2515所有工作均可在相应的命令下完成。

图3 PIC16F877与MCP2515的硬件连接简图

CAN通信设置中最重要的参数是标称位速率。在同一个CAN系统里,CAN速率是唯一固定的。因此,无论仪表是应用到某个具体的已有CAN网络中,还是与其它智能节点组成新的CAN网络,都需要对相应的位时间参数进行设置。

此仪表设计中采用20MHz的并联晶体振荡器,则tOSC=50ns。根据系统要求的CAN位速率,可求出相应的位时间。在较高位速率的应用场合当中,需要进一步考虑逻辑回路延时、传播延时及振荡器误差等因素后,结合时间段长度设置基本要求,计算出合适的时间参数,在仪表上电工作前进行设置,包括:波特率预分频器值BRP(用以确定时间额度TQ);传播段、相位缓冲段1、相位缓冲段2、同步跳转宽度(均以TQ为单位)的长度,经过逻辑运算后,赋值给CF1、CF2、CF3寄存器,可实现位定时的配置。

仪表的报文发送只需往相应的寄存器写入上位机能接收的ID值以及待发送的数据,然后调用RTS命令即可将数据发送到CAN总线上。仪表的报文接收设计需要设置屏蔽寄存器及滤波寄存器,使仪表能接收上位机及其它节点的报文。同时,设置CANINTE寄存器的RX1IE位和RX0IE位为1,启动中断功能,使接收到报文时MCP2515中断引脚有中断信号输出。相应的,PIC16F877亦应进行相应设置,开启全局中断和INT外部触发中断使能位(INTCON寄存器的GIE位及INTE位置1)。当有报文接收时,触发PIC中断,MCU能及时处理接收到的报文。

5 结束语

PIC16F877内部具有E2PROM,可以实现参数的备份以及重要工业现场参数的存储。当仪表在CAN网络中固定工作时,第一次设定CAN参数、PID参数及其它参数后,可选择将参数存储在E2PROM中,以后仪表运作时可直接从E2PROM中读取仪表工作参数。同时,也可以记录现场参数的重要信息,如越限报警数值等。

最后,设计高精度的稳压电源,为整个系统供电。键盘电路采用普通矩阵键盘,可以节约I/O引脚。液晶显示屏采用工业液晶,可以在高干扰下工作。为保证仪表弱电系统不受干扰,在MCP2551与MCP2515中间加入光电隔离器,防止系统受到外界干扰。

此仪表经现场测试,可以精确地获得现场数据,实现智能补偿,给出合适的控制输出,能同时满足工业就地显示和利用CAN总线向上位机实时发送数据,亦能通过上位机接收命令,具有运行稳定、抗干扰能力强、性价比低等优点,满足设计预期,可以应用在中小型工业生产现场,实时交换数据不多的场合,获得满意的效果。

[1]周浩敏,钱政.智能传感技术与系统[M].北京:北京航空航天大学出版社,2008:5-6.

[2]刘君华,汤晓君,张勇,等.智能传感器系统[M].西安:西安电子科技大学出版社,2010:120-123.

[3] Dallas Semiconductors.DS18B20 data sheet.http://www.maxim-ic.com

[4]李荣正,刘启中,陈学军.PIC单片机原理及应用[M].北京航空航天大学出版社,2006:146-148.

[5]饶运涛,邹继军,王进宏,等.现场总线CAN原理与应用技术[M].北京航空航天大学出版社,2007:93-97.

[6]Microchip Technology Inc.Stand-Alone CAN Controller with SPI Interface.http://www.microchip.com

猜你喜欢

寄存器仪表总线
◆ 仪表
◆ 仪表
仪表
Lite寄存器模型的设计与实现
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
分簇结构向量寄存器分配策略研究*
多通道ARINC429总线检查仪
Microchip推出全新零漂移仪表放大器
基于EtherCAT总线的ROV控制系统设计