基于CAN总线的大棚温湿度检测节点设计

更新时间:2024-04-29 13:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

工业控制网络 课程设计(论文)

题目: 基于CAN总线的大棚温湿度检测节点设计

院(系): 专业班级: 学 号: 学生姓名:

指导教师: (签字) 起止时间:

本科生课程设计(论文)

课程设计(论文)任务及评语

院(系): 教研室:

学 号 课程设计题目 学生姓名 专业班级 基于CAN总线的大棚温湿度检测节点设计 课题完成的功能、设计任务及要求、技术参数 实现功能 检测大棚内某点的温湿度信号,传递给单片机,完成单片机最小系统设计,并把此系统作为CAN的节点,节点的硬件包括主单片机、总线驱动器、控制器、接口电路,以一路信号为例的模拟量信号连接在CAN总线上,可实现远程通信。 设计任务及要求 1、选择单片机、总线控制器型号,确定设计方案; 2、设计单片机最小系统(晶振、电源、复位等); 3、设计实现系统功能的单片机外围电路,包括驱动电路、键盘、显示; 4、设计CAN总线电路(包括控制器、驱动器、接口电路); 5、软件设计(编写主程序、接收、发送程序及相应的流程图) 6、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。 7、撰写、打印设计说明书一份;设计说明书应在4000字以上。 技术参数 1、符合CAN2.0B规范; 2、总线范围在3000米内,速率最高可达20bit/s; 3、温湿度信号变化范围0~5 V; 4、单滤波接收数据。 1、布置任务,熟悉课设题目,查找及收集相关书籍、资料。(1天) 2、确定控制方案、选型。(2天) 3、CAN节点框图、硬件电路设计。(3天) 4、编写程序流程图、主程序、发送、接收程序。(2天) 5、撰写设计说明书。(1天) 6、验收及答辩。(1天) 课程设计(论文)任务 进度计划指导教师评语及成绩 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日 注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算

III

本科生课程设计(论文)

摘 要

针对以往温室内变量检测劳动强度大、精度低、范围小的现象,本文应用温度和湿度传感器,提出了基于CAN总线的温湿度检测节点设计方案。本设计详细分析了基于CAN总线的温湿度检测和节点通信原理,设计了单片机最小系统、CAN通信接口电路、温度传感器电路、湿度传感器电路、键盘电路和显示电路等模块。基于CAN总线的温湿度检测节点实现了温湿度的检测和实时显示,并可以与其它节点通信以便于温室内大范围的温湿度监测和控制,节点结构简单,便于拓展,降低了劳动强度,提高系统的实时性和可靠性。

关键词:CAN总线;单片机;温湿度检测;通信接口

IV

本科生课程设计(论文)

目 录

第1章 绪论 ........................................................ 1 第2章 课程设计的方案 ............................................ 3

2.1 概述 ......................................................... 3 2.2 方案选择 ..................................................... 3

2.2.1 单片机选型 ............................................................................................ 3 2.2.2 温湿度传感器选型 ................................................................................ 3 2.2.3 总线控制器选型 .................................................................................... 4 2.3 系统组成总体结构 ............................................. 4

第3章 硬件设计 ................................................... 6

3.1 单片机最小系统 ............................................... 6 3.2 温度检测电路 ................................................. 6 3.3 A/D转换电路 .................................................. 7 3.4 湿度传感器电路 ............................................... 8 3.5 键盘电路 ..................................................... 8 3.6 显示电路 ..................................................... 9 3.7 CAN接口电路 .................................................. 9

3.7.1 总线控制器 .......................................................................................... 10 3.7.2 光电耦合器 .......................................................................................... 11 3.7.3 CAN收发器 .......................................................................................... 11 3.8 电源电路 .................................................... 12

第4章 软件设计 .................................................. 13

4.1 主程序流程图 ................................................ 13 4.2 SJA1000初始化程序流程图 ..................................... 14 4.3 发送程序流程图 .............................................. 14 4.4 接收程序流程图 .............................................. 15

第5章 课程设计总结 .............................................. 16 参考文献 ........................................................... 17

V

本科生课程设计(论文)

附录 ............................................................... 18

VI

本科生课程设计(论文)

第3章 硬件设计

3.1 单片机最小系统

单片机最小系统由单片机AT89S52、时钟电路和复位电路构成。单片机的P0口与A/D转换器、LCD1602显示器和SJA1000控制器的地址/数据口相连,P2口作为转换器和CAN控制器的片选控制端口,P1口作为键盘输入和显示控制端口,计数器T0口记录来自湿度传感器的脉冲信号,外部中断INT0接收CAN控制器的中断信号。单片机最小系统电路如图3.1所示。

图3.1 单片机最小系统电路

3.2 温度检测电路

本设计选用LM35为温度传感器,LM35温度传感器输出电压与摄氏温标的线性度好,而且输出模拟量信号适合远距离传输,LM35输出与温度值对应的电压信号经放大10倍后变为标准信号送往A/D转换电路,温度检测电路如图3.2

6

本科生课程设计(论文)

所示。

图3.2 温度检测电路

VinL7805Vout33.3 A/D转换电路

VCC21C13C14Vin+V43GNDB0505SOVR220.1uF2200uFVCC1GNDLM35输出的电压信号要转换为对应的数字信号才可被单片机接收,本设计24035uF4R2TRIGC152选取ADC0809作为A/D转换器即可满足要求,由于ADC0809的时钟信号为500KHZ,故将单片机的ALE端接四分频器后给转换器作为时钟。A/D转换电路如图3.3所示。

LCD16025CVoltALE5678910111213141516

66R6U2AAD0AD1AD2AD3AD4AD5AD6AD7P27P20P21P22P23212019188151417725242322961026272812345LM35VCCIN909K5DCLKEND0D1D2D3D4D5D6D7+BLBL-3ENAD0AD1AD2AD3AD4AD5AD6AD7SR4VCCmsb2-12-22-32-42-52-62-7lsb2-8EOCADD-AADD-BADD-CALEENABLESTARTCLOCKADC0809IN-0IN-1IN-2IN-3IN-4IN-5IN-6IN-7Q1532QU3ADCLKSR4P27P23ref(-)ref(+)1612VCCVCC1Vout212CLKGNDR8QQ图3.3 A/D转换电路

AD7AD6ALEP26RDWR123456791017AD6AD7ALECSRDSJA1000WRCLOCKOUTXTAL1XTAL2RSTAD5AD4AD3AD2AD1AD0TX0TX1RX0RX128272625242313141920AD5AD4AD3AD2AD1AD0R8VCCVCC17

R73906N13732INVDDVCCENOUTGND8765R12390C5100nF3903

本科生课程设计(论文)

3.4 湿度传感器电路

本设计的湿度检测电路由555多谐振荡器来实现,HS1101作为电容变量接在555芯片的2、5脚之间,引脚7用作电阻R2的短路,等量电容HS1101通过R3、R4充电到门限电压(约0.67V),通过R5放电到触发电平,然后R4通过7短路到地,传感器由不同的电阻R3、R4充放电,进行工作循环,形成方波。其周期计算如下:

T充电=C*(R3+R4)*ln2; T放电=C*R4*In2;

由此可知输出方波频率为f =1/(T充电+ T放电)=1/[C*(R3+2R4)*ln2]; HS1101传感器的电容值与温室湿度成线性关系,可见空气湿度通过555测量振荡电路后,就转变为与之呈反比例的频率信号,后将频率信号送单片机的计数器即可计算出湿度值。湿度检测电路如图3.4所示。

RVCC8+5R449.9K3R3576K6R51K7T0

IN-0IN-1IN-2IN-3ADC0809IN-4IN-5IN-6IN-7262728123454Q5552TRIGGNDDIS5CVoltTHR1R6IN909KHS1101sb2-1-2-3-4-5-6-7b2-8

图3.4 湿度检测电路

VCCOCDD-ADD-BDD-CLM35VCC4LEref(-)ref(+)1613.5 键盘电路

+12VNABLETARTLOCK本设计的键盘功能较少,可以选用3R18×2矩阵键盘,键盘用来设定温湿度的上23VoutGNDU1A500K下限值和控制通信,键盘电路如下图3.5所示。 12VCC12LM32411IN

3R171K

R1610K8

本科生课程设计(论文)

图3.5 键盘电路

3.6 显示电路

由于智能节点的需要实时显示室内的温湿度值和报警信息,数据较为复杂,故选择LCD1602液晶显示器,可以显示16×2 个字符,具有显示质量高、数字式接口 、体积小、重量轻 、功耗低等优点,可以满足设计的要求。显示电路如下图3.6所示。

图3.6 显示电路

3.7 CAN接口电路

CAN接口电路主要由CAN控制器SJA1000、光电耦合器6N137和CAN驱动器PCA82C250构成。CAN总线控制器的地址/数据复用总线与单片机的P0口相连,并将中断输出到单片机中端口,总线控制器串行数据输出线(TX)和串行数

9

本科生课程设计(论文)

据输入线(RX)分别经光电耦合电路连接至总线驱动器82C250,总线驱动器通过有差分发送和接收功能的两个总线端CANH和CANL连接至CAN总线电缆。

CAN总线链路层的规定主要由CAN总线控制器实现,物理层的规范主要由CAN总线驱动起来实现,光电耦合电路主要实现网络和信息采集电路的电气隔离,保障总线网络的正常运行。节点通过单片机编程控制CAN总线控制器来实现CAN总线节点间的通信CAN控制器。

3.7.1 总线控制器

CAN总线控制器提供了与单片机控制器的数据线路接口,单片机通过对控制器编程设置其工作模式,控制其工作状态,启动CAN报文的发送并对反馈报文

U?A接收予以相应,即CAN总线控制器实现了CAN协议中最复杂的数据链路功能。

8本设计的总线控制器选用SJA1000,SJA1000的引脚图如下图3.7所示。

3212U?A381CA082T

312CA082T4

CA082TU?A1234567910171682115AD6AD5AD7AD4ALEAD3CSAD2SJA1000RDAD1WRAD0CLOCKOUTTX0XTAL1TX1XTAL2RX0RSTRX1INTVDD1VSS1VDD2VSS2MODEVSS3VDD32827262524231314192022181112848U?A31图3.7 SJA1000的引脚图

2CA082T4SJAl000是适用于汽车和一般工业环境的独立CAN控制器。它是PCA82C200CAN控制器的替代品,而且增加了新的工作模式(PeliCAN),这种模式支持具有新特点的CAN2.0B协议。SJA1000CAN总线控制器的性能如下:

●标准结构和扩展结构信息的接收和发送; ●有标准的接收缓冲器64字节,先进先出(FIFO); ●支持CAN2.0A和CAN2.0B协议; ●通信位速率可达1Mbps; ●支持11位和29位标识码;

●在PeliCAN模式下,SJAl000具有以下新增特性: 接收和发送标准和扩展格式报文; 达64字节的接收FIFO;

对于标准和扩展帧都有单/双接收过滤器,接收过滤器包括屏蔽码和接收码

10

4

本科生课程设计(论文)

寄存器;

可读/访问的错误计数器; 可编程的错误报警限; 最近一次错误代码寄存器;

对于每~种CAN总线错误都能产生不同的出错中断; 仲裁丢失中断;并带有详细丢失仲裁时不重发; 只听模式(监视CAN总线,无应答,无出错标志); 支持热拔插(对总线无干扰的传输速率检测); 自身发送报文接收(自接收请求); 硬件禁止CLKOUT输出。

3.7.2 光电耦合器

88由于总线传输距离远,现场环境干扰大,为了增强抗干扰能力,在SJA1000U?A3与PCA82C250间采用高速光耦6N137实现总线电气隔离。为了有效隔离,6N137122CA082T延迟时间,传输延迟时间短。6N137引脚图如下图3.8所示。

U?A1两端的电源使用B0505S-1W隔离,而且可以减少CAN总线有效回路信号的传输CA082T44

326N137INVDDVCCENOUTGND8765图3.8 6N137引脚图

U?A88813.7.3 CAN收发器 U?A32U?A3U?A183122 CAN总线收发器实现了物理层的功能,一方面将控制器发送信号转化为符

2合CAN物理层标准的信号,进行放大、传输;另一方面将总线上收到的信号转

41CA082TCA082T变为控制器所能接收的电平信号。其本质是提供了CAN控制器与物理总线之间CA082T本设计的CAN收发器选择PCA82C250, PCA82C250引脚图如下图3.9所示。

844CA082T4的接口:即为总线提供差分信号的发送功能,为控制器提供差分信号的接收功能。

82C2501453TXDRXDVREFVCCCANHCANLRSGND7682U?A3128图3.9 PCA82C250引脚图

3U?A111

CA082T42CA082T4P13DCLKU3AP22P2323229610ADD-BADD-CALEENABLESTARTCLOCKVCC4IN-75LM35R18500KR171K111IN-66SQRQ4P27P23U1A312LM324INref(-)ref(+)1612VCCVoutGND23

P00P01P02P03P04P05P06P07AT89C52P20P21P22P23P24P25P26P2739383736353433322122232425262728AD0AD1AD2AD3AD4AD5AD6AD7P20P21P22P2312CLK10K本科生课程设计(论文)

R16CAN接口电路如图3.10所示。

AD7AD6ALEP26RDWR1234567910171682115AD6AD5AD7AD4ALEAD3CSAD2RDAD1SJA1000WRAD0CLOCKOUTTX0XTAL1TX1XTAL2RX0RSTRX1INTVDD1VSS1VDD2VSS2MODEVSS3VDD32827262524231314192022181112AD5AD4AD3AD2AD1AD0R8VCC10 6N13732INVDDVCCENOUTGND8765VCC1P26P27R7390 R12390C5SETRXDTXDALE/PPSEN101130ALE29390R96.2K8765 100nF

1453R8TXDRXDVREFVCCCANHCANLRSGND7682INT0R13R145R1547k5CANBUSR104.7KC4100pFVCCENOUTGND6N137INVDD32R11390C730pFD1C830pFD2C682C50100nF图3.10 CAN接口电路

3.8 电源电路

由于单片机最小系统、温湿度传感器、A/D转换器和CAN驱动发送模块都需要供电,而且电压不同,故将220V交流电经变压、滤波后,经稳压器LM7812输出12V电压给放大器供电,后经LM7805输出VCC电压给单片机、温湿度传感器和总线控制器供电,而光电耦合电路要实现与CAN总线电气隔离,故将LM7805后接B0505S-1W进行电源隔离VCC1给耦合器和收发器供电。电源电路如图3.11所示。

T1220V~11D3C9GNDGND

VinL7812Vout3+12V1VinL7805Vout3VCC21VinGNDB0505S+VOV43R22VCC1C11C12212V~42C102200uF0.1uF0.1uFC132C14C1524035uF2200uF0.1uF2200uFTRANS13BRIDGE1J2LCD1602ALE1112131415161234567891053图3.11 电源电路

VLR\\W\\RSGNDVDDU2AAD0AD1AD2AD3AD4AD5AD6AD7P27P20P21P22P23RQ6RSRWEAND0AD1AD2AD3AD4AD5AD6AD7Q+5VR1910KR2010KR2110KSW-PBS1SW-PBS2SW-PBS3S6S5S4SW-PBP15SW-PBP14SW-PBR22kQP17P16SR42120191881514177252423229610END0D1D2D3D4D5D6DL7+BDCLKBL-VCCmsb2-12-22-32-42-52-62-7lsb2-8EOCADD-AADD-BADD-CALEENABLESTARTCLOCKADC0809IN-0IN-1IN-2IN-3IN-4IN-5IN-6IN-715P13DCLK32U3A6SQ4P27P23ref(-)ref(+)12

12CLKU1RS139AD0

本科生课程设计(论文)

第4章 软件设计

节点程序主要包括主程序、CAN控制器初始化程序、湿度检测中断程序、接收程序和发送程序。其中主程序主要完成中断初始化、键盘扫描、温度检测和温湿度显示及报警等功能;CAN控制器初始化程序主要完成SJA1000的初始化设置;湿度检测中断程序完成湿度传感器的脉冲计数及对应适度的计算;接收程序由单片机的外部中断完成,主要实现节点接收报文的处理;发送程序主要实现节点报文的发送。

4.1 主程序流程图

主程序要完成中断初始化,并调用SJA1000初始化程序,对矩阵键盘的扫描并存储设定的温湿度上下限及相应的控制信息,对温度信号进行采样,同时将节点采集的温湿度数据帧发送到总线上,并将温湿度值和报警信息送往LCD1602液晶显示器。主程序流程图如下图4.1所示。

图4.1 主程序流程图

13

本科生课程设计(论文)

4.2 SJA1000初始化程序流程图

SJA1000控制器初始化主要完成工作方式设置、接收滤波方式设置、接收屏蔽寄存器和接收代码寄存器的设置、波特率参数设置和中断允许寄存器设置等。SJA1000初始化程序流程图如下图4.2所示。

图4.2 SJA1000初始化程序流程图

4.3 发送程序流程图

发送温湿度数据时,将待发送的数据按特定格式组合为一帧报文,送入SJA1000发送缓冲区,然后启动SJA1000发送。发送程序流程图如下图4.3所示。

图4.3 发送程序流程图

14

本科生课程设计(论文)

4.4 接收程序流程图

数据帧的接收在外部中断服务程序里面完成,其中当SJA1000将总线驱动器收到的数据转换存入接收缓冲区后即给单片机产生中断,提示单片机对通信数据进行接收。接收程序流程图如下图4.4所示。

图4.4 接收程序流程图

15

本科生课程设计(论文)

第5章 课程设计总结

基于CAN总线的温湿度节点设计主要由单片机最小系统、湿度检测电路、温度检测电路、A/D转换电路、键盘电路、显示电路、CAN控制器、光电耦合电路、CAN收发器和电源电路构成。本节点以单片机AT89S52为主控制器,键盘设定温湿度的上下限,由温度传感器检测温室内的温度并经A/D转换后送往单片机,湿度传感器检测湿度值转换为脉冲信号送往单片机,LCD实时显示室内的温湿度值及报警信息,单片机通过CAN总线控制器、光电耦合电路和CAN驱动器连接至CAN总线,与总线的其他节点通信,实现温湿度值的检测、处理及监控。 基于CAN总线的温湿度检测系统可以有较大的检测范围,且传输速率较高,便于远程监控和信息汇总及控制,提高了温室变量检测的精度,降低了人工劳动强度,具有较高的效率。

16

本科生课程设计(论文)

参考文献

[1] 张凤登.现场总线技术与应用[J].北京:科学出版社,2008.4

[2] 李金刚,永鸿.基于AT89C51型单片机的CAN总线智能节点设计[J].闰外

电子元器件,2006(8 ):26-29

[3] 邹琳军,运涛.基于SJAl000的CAN总线系统智能符点设计[J].单片机与嵌

入式系统应用,2001(7):147-151

[4] 邬宽明等.CAN总线原理和应用系统设计.北京航空航天人学出版社,1998.8 [5] 李德良.基于寄生传输的检测报警系统.大连理工大学硕士学位论文,2000.3 [6] 刘军 张侃谕.CAN总线技术在温室计算机控制系统中的应用[J].自动化仪

表,2002,23(11):53-56

[7] 宋纪恩.CAN总线在白动化系统中的应用[J].农村电气化,2006年第l期,

36-37

[8] 夏继强,邢春香.现场总线工业控制网络技术[M].北京:北京航空航天大学

出版社,2005.5

[9] 何黎明,饶家明,田作华.基于现场总线的温室分布式控制系统[M].计算机

工程,2002,28(4):222-223

[10] 部宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版

社,1996

[11] 李真花,崔健.CAN总线轻松入门与实践.北京:北京航空航天大学出版社,

2011.1

17

本科生课程设计(论文)

附录

主程序:

SJA_RST = 1; SJA_CS = 0; EX1 = 1; IT1 = 0; IT0 = 1; EX0 = 1; EA = 1; SJA_CS = 1; _nop_(); _nop_(); while(1) { key(); ad(); _nop_(); _nop_();

Rxd_deal(); Txd_deal(); lcd(0,Txd_data); }

SJA1000初始化子程序:BCANADR=BTR0; *BCANADR=0X00; BCANADR=BTR1; *BCANADR=0X1C; *BCANADR=0X48; BCANADR=ACR; *BCANADR=0XAA;

18

BCANADR=AMR; *BCANADR=0XFF; BCANADR=OCR; *BCANADR=0X1A;

CAN收发程序: BCANADR=CMR; *BCANADR=0X04; BCANADR=TXB0; *BCANADR=0X40; BCANADR=TXB1; *BCANADR=0X48; BCANADR=TXB2; *BCANADR=0X11; BCANADR=TXB3; *BCANADR=0X22; BCANADR=TXB4; *BCANADR=0X33; BCANADR=TXB5; *BCANADR=0X44; BCANADR=TXB6; *BCANADR=0X66; BCANADR=TXB7; *BCANADR=0X77; BCANADR=CMR; *BCANADR=0X01; …

本科生课程设计(论文)

19

本文来源:https://www.bwwdw.com/article/y2sg.html

Top