#基于can总线的温度检测信息传输

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:集散控制系统和现场总线
报告名称:基于SJA1000实现温度检测信息的CAN总线传输
专业名称:自动化
班级学号:
学生姓名:
2011年12 月30 日
摘要
本文设计了一个基于数字式温度传感器DS18B20和独立CAN控制芯片SJA1000的用于温度检测和can总线传输的模块,该模块可以精确地测量出环境温度,并将采集的数据通过can总线传输,通信可靠,可实现安防及报警的功能。

本文详细介绍其硬件设计电路及相关软件设计。

关键词:SJA1000 DS18B20 温度检测 CAN总线传输
目录
1 温度检测及SJA1000的硬件电路设计 (2)
1.1 单片机的选取 (2)
1. 2 传感器的选取 (2)
1. 3 独立CAN控制芯片SJA1000 (3)
1. 4 CAN总线收发器PCA82C250 (3)
1. 5 工作框图及硬件连接原理图 (3)
2 软件部分的设计 (4)
3 心得体会 (5)
参考文献............................... 错误!未定义书签。

1 温度检测及SJA1000的硬件电路设计
本模块可作为典型的传感器有线网络节点,可广泛使用于工业级现场,所以模块的电路设计必须考虑到阻容分布参数及噪声的影响,以确保通信准确可靠。

1.1 单片机的选取
本模块选用宏晶公司的高速低功耗单片机STC89C51作为微控制器,其工作电压为2.5~5.5V。

该单片机的耗电电流在2.7~7mA之间,因不同的工作模式而不同,用外部中断请求将CPU唤醒只需要10us,因此该单片机能在低功耗模式下具有快速实时响应的特点。

此外,STC89C51是增强型8051单片机,比传统51内核单片机速度快8到12倍,并集成了8通道10位精度的A/D模块,串口/SPI接口,片内看门狗定时器等。

由于和SJA1000通信需要通过AD7~AD0地址/数据总线来传输数据,STC89C51端口正好满足该接口的要求。

1. 2 传感器的选取
本模块是用于采集环境温度并进行CAN总线传输,实际使用中可根据工程需要接入其它的传感器(如人体红外传感器、烟雾报警传感器等)进行对应的参数检测。

温度传感器选用Dallas公司的可编程单线数字式温度传感器DS18B20实现
环境温度采集。

该传感器体积小,外形如普通三极管,其内部集成有测温传感器及逻辑控制电路。

DS18B20的外围电路简单,成本低,测温精度较高,可以设定9~12位的分辨率,精度为±0.5℃,可以满足一般使用的要求。

它还有很多优点,例如:直接输出数字信号,无需后续的信号处理及A/D 转换部分;单总线是指一根信号线上可以挂连多个DS18B20,可用于多点测量。

1. 3 独立CAN 控制芯片SJA1000
SJA1000是PHILIPS 公司早期CAN 控制器PCA82C200的替代品,功能更强,具有如下特点:①和PCA82C200引脚兼容、电气兼容,并完全支持BasicCAN 工作模式;②扩展的接受缓冲器,64字节,先进先出的FIFO 结构;③和CAN2.0B 兼容,同时支持11位和29位识别码;④位速率可达1Mbit/s ;⑤支持 PeliCAN 模式及其扩展功能;⑥通过对输出控制寄存器OCR (output control register )进行编程配置可设置不同的输出驱动类型;⑦增强的温度适应(-40℃~+125℃)。

1. 4 CAN 总线收发器PCA82C250
PCA82C250是CAN 协议控制器和物理总线和物理总线之间的接口,该器件对CAN 物理总线提供差动发送能力并对CAN 控制器提供差动接收能力,可实现将CAN 节点和CAN 物理总线电气隔离的功能。

PCA82C250是使用最广泛的CAN 收发器。

PCA82C250的特点是:①高速度,波特率可达1Mbps ;②支持低电流待机模式,未供电的节点不会干扰总线;③内部斜率控制电路以降低射频干扰;④差动接收器具有宽共模范围,有很强的抗电磁干扰(EMI )能力。

1. 5 工作框图及硬件连接原理图
上述各器件组成的单个模块结构图及信号走向图如图1所示.
假定一个使用环境为某车队车库,各个车库温度检测信息通过CAN 总线网络传输到调度室中。

整体工作框图如图2所示。

图1 单个模块结构图 温度传感器 MCU PCA82C250
SJA1000 CAN_H
CAN_L
图2 整体工作框图
具体的单个模块电路原理图如图3所示。

各个芯片的VCC 、GND 分别接电源、接地;单片机和SJA1000的AD7 ~AD0、WR 、RD 、ALE 对应连接即可;现在介绍几个关键连接点:①STC89C51的P1.0口是温度传感器DS18B20的数据采集口,必须用5V 电源接一个4.7K 的上拉电阻;②SJA1000的接受信息中断口INT 为开漏输出,连入STC89C51的INT0口时也需接一个上拉电阻,大小为10K ;③STC89C51为高电平复位,SJA1000为低电平复位,二者必须有独立的复位电路;④物理总线的主节点和尾节点的CAN_H 和CAN_L 之间各需匹配上120欧姆的终端电阻。

AD0AD1AD2AD3AD4AD5AD6AD7RD WR ALE CS INT VDD MODE TX0RX0RST XTAL1XTAL2GND SJA10001K R1C1VCC Y1VCC GND AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
RD
WR
ALE
INT0
P2.0
P1.0EA XTAL1XTAL2RST STC89C51C2C3VCC
VCC DQ Y2C5C6C4R2VCC TXD 1RXD 4VREF 5RS 8GND 2VCC 3CANL 6CANH 7PCA82C250CAN_H CAN_L R3VCC
图3 单个模块电路原理图
2 软件部分的设计
程序设计主要包括测温程序和CAN 总线通信程序。

测温程序的设计流程是DS18B20复位、ROM 操作、存储器操作、启动温度转换并读取数据。

所测得的温度数据是以16位带符号位扩展的二进制补码形式给出。

程序设计关键是读取温度数据时的延时数值一定要准确,在规定的时序范围内才能准确读出每一位的值。

主节点 从节点n
从节点2 从节点1 调度室 车库1 车库n 车库2 CAN_H
CAN_L
CAN 总线通信程序的总体设计流程是:头文件中先定义好SJA1000的寄存器所在的物理地址,然后使SJA1000进入复位模式初始化各个寄存器,将温度数据形成报文装入发送缓冲区,调用发送子程序,等待接收中断并读取接收缓冲区数据,如果是主节点回复的确认帧则该节点.单片机进入低功耗模式,直到由主节点再发来命令报文唤醒。

程序流程图如下:
图4 主程序的流程图
3 心得体会
本模块的功能是采集温度信息,并通过基于SJA1000的CAN 总线网络将信息传输至其它节点。

当各个从节点的温度数据异常时,主节点会实时准确地显示出该信息,进而进行管理或报警。

本模块还可以进行传感器扩展和CAN 网络扩展,根据实际需要只要在单片机端口接入其它传感器就可以用来采集相应的参数,同时如将终端节点的SJA1000通信程序改配置为CAN 网关转发程序即可扩大CAN 网络容量。

CAN 总线是非常有前途的工业级现场总线,本模块可以广泛使用于工业数据采集、车库安防等领域。

参考文献 STC 单片机初始化
启动温度检测 SJA1000初始化 发送温度数据 进入低功耗模式 Yes
接受确认信息
No











[1] 饶运涛,邹继军,郑勇芸.现场总线使用技术丛书.北京:北京航空航天大学出版社,2003.
[2] 陈书旺,张秀清,董建彬.传感器使用及电路设计.北京:化学工业出版社,2008.
[3] Dallas Semiconductor.DS18B20 Programmable Resolution 1-Wire Digital
thermometer.
[4] 张庆双.实用电子电路200例. 北京:机械工业出版社,2003.
[5] 朱自勤. 传感器和检测技术. 北京:机械工业出版社,2005.
[6] 杜尚丰,曹晓钟,徐津.CAN总线测控技术及其使用.电子工业出版社.
[7] 刘爱华,满宝元.传感器原理和使用技术.北京:人民邮电出版社.2006。

相关文档
最新文档