毕业论文(设计)-基于STM32 的CAN 智能温度检测系统设计33132.doc
《毕业论文(设计)-基于STM32 的CAN 智能温度检测系统设计33132.doc》由会员分享,可在线阅读,更多相关《毕业论文(设计)-基于STM32 的CAN 智能温度检测系统设计33132.doc(11页珍藏版)》请在三一文库上搜索。
1、专业好文档基于STM32的CAN智能温度检测系统设计石润彬 指导老师 邓 晶摘要:本文介绍了以STM32 CPU作为控制核心,基于CAN总线协议的汽车温度采集系统的设计,从硬件与软件两方面介绍了其温度采集节点与中心信息显示的实现过程。关键词:STM32;CAN总线协议;温度传感器Design of Smart Temperature Acquisition SystemBased on STM32 and CANAbstract:This paper introduces a temperature acquisition system model based on the CAN bus a
2、nd using STM32 as its controller, also describes the process of temperature acquisition in node module and information display in central module from hardware and software.Keywords:STM32;CAN;Temperature acquisition0引言社会的快速发展,使汽车成为了最为普及的交通工具,温度是检测汽车运行状况的一项重要指标。在实际应用中,常在冷却水、润滑油等处设置温度传感器以检测行驶情况。在汽车通讯系统
3、中,控制器局部网(Controller Area Network ,CAN)是BOSCH公司领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于电磁辐射强,工作环境恶劣的工业场所,CAN的直接通信距离最远可达10km;通信速率最高可达1Mbps. 在众多32位微处理器中,STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,性能出众,功能创新,外设丰富,广泛应用于工业及消费类电子产品。使用STM32作为主控芯片,构建高性能的CAN总线网络化温度传感系统将更有利于汽车的稳定行驶。1概述1.1系统设计本文设计的温度采集系统可以采集不同位置的温度,
4、并通过CAN总线准确地传回控制中心,同时系统也可以在温度异常时做出报警提示。该系统由主控节点、采集节点和传感器组成。传感器设置在需要监控温度的汽车部件中,将温度转化为数字信号。采集节点用来收集相近的两个传感器信号,然后通过CAN总线将温度信息发送至主控节点。主控节点接收到总线上的信息后,进行数据处理,并在LCD显示器上显示出各监控部件的温度信息。系统结构模型如图1所示。采集节点1主控节点传感器传感器传感器传感器传感器传感器CAN总线图1系统结构图采集节点2采集节点31.2关键技术基于STM32的CAN智能温度检测系统采用的关键技术有以下几个方面:CAN总线协议基于ARM7的STM32微处理器D
5、S18B20温度传感器单总线通信TFT LCD显示器控制驱动2.硬件实现2.1节点设计温度采集系统中的节点包含主控节点与采集节点两种类型,在硬件上的实现过程较为相似,其系统结构框图如图2所示,其中*号标注的为主控节点特有外设,#号标注的为采集节点特有外设。CPUSTM32F103CAN ControllerFSMCCAN收发器TJA1050*LCDILI9325CAN总线#温度传感器(1)功能按键LED指示灯蜂鸣器JTAG接口图2 基于STM32温度检测节点系统结构框图#温度传感器(2)2.2STM32核心主控芯片采用STM32F103VE,STM32系列32位微处理器采用ARMv7的Cort
6、ex-M3内核,接口丰富,外设完整,主频高达72MHz,使用3.3V电压供电。内置有CAN控制器与FSMC控制器,简化了系统的实现过程。bxCAN(Baisc Extended CAN)是STM32内置的CAN控制器,支持2.0A、2.0B CAN协议,最高速率可达到1Mbit/s。其中包含3个发送邮箱,2组各包含3个接收邮箱的FIFO,14个可变位宽的过滤器组。报文的发送和接收由CAN内核自动实现。FSMC(Flexible Static Memory Controller)是STM32内置的静态存储控制器,FSMC映射管理的1GB空间被分为4个BANK,LCD控制芯片中的Flash可以被映
7、射到BANK1,在之后的显示使用中,只需更改映射后FSMC中BANK1的值即可对LCD的FLASH进行操作。2.3温度传感器本系统采用的温度传感器是DS18B20“单总线”接口的温度传感器,与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。该传感器测量温度范围为-55+125,精度为0.5。DS18B20数据端与STM32的GPIO口连接,因为要求上拉输出模式,所以可以直接使用GPIO口的IPU(上拉输入)模式,传感器的VDD端接5VDC。2.4CAN外围收发电路TJA1050是CAN控制器和物理总线之间的接口,是一种标准的高速CAN收发器
8、。输入级可与STM32的3.3V输出电压兼容,可以至少连接110个节点。本系统的CAN外围电路如图3所示,其中在芯片的S端口设置切换开关,用来选择正常/静默模式,发送接收端口直接与STM32的CAN控制器映射端口相连。图3 CAN外围驱动电路2.5LCD显示器本系统采用了分辨率为320*240的26万像素TFT显示器,LCD控制器为ILI9325,其数据总线为16位,为了简化程序,使用STM32中的FSMC与数据总线连接。ILI9325数据口与STM32的连接方式如图4所示。图4 STM32与LCD接口示意图3 软件设计3.1节点程序操作过程系统初始化有效接收中断开启接收中断服务关闭接收中断转
9、换温度信息程序显示程序是否超过预设温度报警程序是否是否图5主控节点程序流程图是否按键确认报警是否主控节点用来接收采集节点发出的温度信息,处理数据并显示。主控节点的主程序包括:(1)初始化配置;(2)CAN接收中断服务;(3)转换温度信息程序;(4)显示程序;(5)报警程序。采集节点的主程序分为三部分:(1)初始化配置;(2)与传感器通讯,获取温度数据;(3)处理数据并发送至主控节点。采集节点每隔一秒重复2、3两个步骤,实时发送更新温度数据。主控节点的程序流程如图5所示。3.2初始化配置硬件通电后,各个节点需要初始化配置以激活各项功能,采集节点需要进行RCC(时钟)、GPIO(通用外围输入输出口
10、)、CAN控制寄存器的初始化配置,主控节点除以上三种配置外,还需进行NVIC(中断)、FSMC和LCD的初始化。下面简要介绍CAN控制器与LCD的初始化配置。CAN控制器的初始化分为工作方式配置和过滤器配置,在本系统的初始化流程中只需要对CAN工作方式进行配置,其中,波特率的设定是通过配置发送过程中各个环节的时间量子数和CAN的时钟关系实现的。发送1个bit的时间NormalBitTime=Tq+TBS1+TBS2,这三个时间段的单位由设置CAN的Prescaler参数和系统时钟相联系。本系统设定Tq=1,TBS1=3,TBS2=5,Prescaler=4,由公式BaudRate=CAN CL
11、OCKPrescalerNormalBitTime(其中CAN CLOCK为AHB1=36MHz)可以算得波特率为1Mbit/s,设置程序如下:CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;/设置重新同步跳转的时间量子 CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;/设置字段1的时间量子数 CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;/设置字段2的时间量子数CAN_InitStructure.CAN_Prescaler=1;/配置时间量子长度为1周期LCD在使用显示命令之前,需要进行一系列初始化配置,根
12、据需求调节显示器的对比度、Gamma和显示区域等。初始化完毕,在之后的显示程序中,只需调用显示函数,写入显示区域与颜色数据,即可完成目标。LCD初始化程序流程如图6所示。开启内部时钟设置显示方向及显示细节设置电源选项调节Gamma值设置显示区域延时20ms等待初始化完全结束图6 LCD初始化流程图开始3.3温度传感器通讯程序DS18B20采用单总线模式,与其相连的GPIO口需要分时作为输入或输出端口。单总线的通信以初始化序列开始,首先GPIO口输出500us的低电平,产生复位脉冲,然后释放总线,使总线被拉高15-60us,并将GPIO口置为上拉输入模式,等待60-240us的应答低电平。成功接
13、收传感器应答脉冲后,进行温度读取操作。DS18B20输出的温度数据占2个字节,高字节数据中前4位为符号位,当温度为负数时,符号位为1,此时温度的绝对值用补码表示。DS18B20温度读取程序流程如图7所示。开始应答电平初始化序列跳过读序列号启动温度转换等待转换完成检测DQ端电平读取寄存器数据结束是否高低图7DS18B20温度读取流程图3.4CAN发送程序采集节点与传感器通信后,将所获取的温度数据发送至主控节点。因为每个采集节点控制2个温度传感器,所以在CAN的通讯协议中,用标准标识符表示节点号,用扩展标识符表示传感器号,便于主控节点的辨别。然后将温度数据分两个字节发送至CAN总线。发送报文前,需
14、要对发送规则进行一系列配置。以下是采集节点 1传感器1温度数据的发送程序:TxMessage.StdId=0x01;/配置报文的标准标识符TxMessage.ExtId=0x0001; /配置扩屏标识符TxMessage.IDE=CAN_ID_EXT; /使用标准标识符+扩屏标识符方式TxMessage.RTR=CAN_RTR_DATA;/报文为数据帧TxMessage.DLC=2; /报文发送数据长度为2字节TxMessage.Data0=k;/发送第一字节TxMessage.Data1=(k8);/发送第二字节 CAN_Transmit(CAN1, &TxMessage);/CAN1报文发
15、送3.5 显示程序为将转换为十进制的温度数据在指定位置显示,首先制作了含有英文与数字字符的1608简易字库,编写了在指定位置显示字符的程序。显示过程中,首先显示欢迎界面让采集节点的温度传感器完成初始化并稳定工作。然后显示传感器号码等固定内容,最后实时更新温度数据的符号位、整数位、小数位即可。LCD字符显示程序的流程如图8所示。开始确定字符位置(X,Y),字符标记根据字符标记判断对应的字库数组行起始位置命令0x50,X行结束位置命令0x51,X+7列起始位置命令0x52,Y列结束位置命令0x53,Y+15写入16个字节的字库数据结束图8LCD字符显示程序流程图3.6报警程序程序中分别设定了每个温
16、度传感器采集数据的最大标准值,当某传感器所采集温度超标时,使主控节点的LED灯闪烁并开启蜂鸣器,发出警报。用户需要按键接收警报才能返回正常测温程序。在实际应用中,可以连接报警器或制动系统以及时排除故障。4.结束语本文使用STM32作为主控芯片配合DS18B20温度传感器、CAN外围电路和LCD显示器,实现基于CAN总线协议的实时温度传感网络,并介绍了其硬件与软件设计与实现。经过测试,该系统温度测量精度高,工作稳定。同时其硬件电路也较为简洁,因而在汽车温度传感网络上具有很好的应用前景。参考文献:1李宁基于MDK的STM32处理器开发应用 M北京:北京航空航天大学出版社,20082潘辉STM32-
17、FSMC机制的NOR Flash存储器扩展技术 J 单片机与嵌入式系统应用,2009,10:31-34后记时光匆匆,又是一年春暖花开的日子,去年的此时,我正站在本部红楼的会议室,参加莙政学者的面试。我个性较为内敛,但是,我对莙政面试却有着从未有过的自信,回想起来,那是因为兴趣。从大学二年级开始,我便对单片机产生了浓厚的兴趣。课余时间,我常研究硬件电路和程序,经过几个月的积累,我已渐渐入门。我与莙政是有缘分的,在看到研修课题目录的时候,我就迷上了邓老师的课题,经过了解,我觉得通过研修这个课题,我在单片机的学习上可以更上一层楼。课题开始后,因为对STM32单片机缺乏了解,课题进度有些慢,非常有幸的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文设计-基于STM32 的CAN 智能温度检测系统设计33132 毕业论文 设计 基于 STM32 CAN 智能 温度 检测 系统 33132
链接地址:https://www.31doc.com/p-3943351.html