基于CAN 总线在压力传感器中的设计
2013-10-19王洋
王 洋
(营口世纪电子仪器有限公司 研究所,辽宁 营口 115003)
0 引言
压力传感器是工业现场最为常用的一种传感器,例如汽车中多路压力测量,目前,市场上大多数的压力传感器以模拟量输出为主,几乎全部采用数字化处理,用户需要先将模拟量转换成数字量。随着自动化程度越来越高,传感器往往与控制器越来越远,特别是模拟信号的传输过程中也会引入干扰和损失。
因此,本文将介绍一种基于CAN 总线压力传感器的设计,采用AduC812 为控制核心,进行CAN 接口设计。
1 硬件设计
基于CAN 总线的高精度数压力传感器的原理框图如图1 所示。该压力传感系统器主要包括压力信号A/D 转换部分、主控单元部分、CAN 总线传输部分。
主控芯片采用AduC812 单片机,引出的地址数据总线与CAN 控制器SJA1000 相连,经过光电隔离,将地址/数据发送到CAN 收发器PCA82C250,通过CAN 收发器PCA82C250 使数据在CAN 总线上传输。电源转换电路将电源和地隔离,起保护和抗干扰的作用。
AduC812 的P0 口作为地址数据总线,与SJA1000 相连。通过P0口访问SJA1000 内部寄存器,并进行寄存器的读写操,经过光电隔离,电源转换电路将电源和地隔离,起保护和抗干扰的作用将地址/数据发送到CAN 收发器PCA82C250,通过CAN 收发器PCA82C250 使数据在CAN 总线上传输,AduC812 和SJA1000 的复位信号是通过复位按钮S3 产生的。
AD 转换电路:
单片机自带有8 路模拟通道ADC 转换为12 位精度。选择AD0为模拟通道将A/D 转换数据通过CAN 总线上传到上位机。
2 程序设计
软件设计的指导思想是系统上电后首先对ADuc812 和SJA1000进行初始化,以确定工作主频、波特率、输出特性等,然后通过模数转换采样值,并把该值通过SJA1000 传送到CAN 总线上由上位PC 机进行显示控制,而对CAN 总线上来的信息则采用中断方式,系统每接收到一帧信息,便产生一次中断以触发微处理器进入中断,在中断服务程序中读取该帧信息并传送到现场。为防止出现死机和干扰,程序中还采用看门狗技术进行定时监控。以下CAN 总线的初始化设计,假设SJA1000 的首址是0x7f00。
初始化程序
对CAN 控制器进行初始化,实际上就是对ACR、AMR、BTR0、BTR1、OCR 这些寄存器进行访问。只有当控制寄存器CR 中的复位请求位为高时,访问才被允许,否则既写不进去,也读不出正确的内容。对CR 进行第一次写操作,要设定将要开放的中断类型,并置位复位请求,允许初始化开始。
3 实际的应用情况
本文设计的基于CAN 总线压力传感器系统具有精度高、可靠性高、智能化、成本低等特点并具有在线标定校准和CAN 通讯功能,可用于不同的工业场合。
[1]邬宽明.CAN 总线原理和应用系统设计[M].北京:北京航空航天大学出版社,2000 .