版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于STM32的电动摩托车温度智能检测系统设计摘 要:介绍了以STM32CPU作为控制核心,基于CAN总线协议的电动摩托车温度采集系统的设计,从硬件与软件两方面介绍了其温度采集节点与中心信息显示的实现过程。其硬件设计部分主要包括节点设计、主控芯片的选型、温度传感器的选型与外围电路设计、CAN外围驱动电路设计、LCD外围电路设计等。其软件设计部分就是对硬件电路的控制,使系统能够达到预期的目标。关键词:STM32 CAN总线协议 温度传感器Abstract: This paper introduces a electric motorcycle temperature acquisition sy
2、stem model based on the CAN and using STM32 as its controller, and describes the process of temperature acquisition in node module and information display in central module from the perspectives of hardware and software. The hardware design part mainly includes node design, the main control chip sel
3、ection, the temperature sensor selection and peripheral circuit design, CAN periphery drive circuit design, LCD peripheral circuit design, etc. The software design part is to the control of the hardware circuit, make the system to achieve the desired objectives. Key words: STM32 CAN bus agreement te
4、mperature sensor1 引言 社会的快速发展使电动摩托车成为了较为普及的交通工具,温度是检测电动摩托车运行状况的一项重要指标,在实际应用中,常在无刷直流电机等处设置温度传感器以检测行驶情况。在电动摩托车通讯系统中,控制器局部网(Controller Area Network,CAN)是BOSCH公司领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于电磁辐射强、工作环境恶劣的工业场所,CAN的直接通信距离最远可达10 km;通信速率最高可达1Mbps。在众多32位微处理器中,STM32系列基于专为嵌入式应用设计的ARM CortexM3内核,性能出众,功能创新,外设丰富,广泛应
5、用于工业及消费类电子产品。使用STM32作为主控芯片,构建高性能的CAN总线网络化温度传感系统,将更有利于电动摩托车的稳定行驶。2 系统设计及关键技术本文设计的温度采集系统可以采集电动摩托车不同位置的温度,并通过CAN总线准确地传回控制中心,同时系统也可以在温度异常时做出报警提示。该系统由主控节点、采集节点和传感器组成。传感器设置在需要监控温度的电动摩托车部件中,将温度转化为数字信号。采集节点用来收集相近的两个传感器信号,然后通过 CAN总线将温度信息发送至主控节点。主控节点接收到总线上的信息后,进行数据处理,并在LCD显示器上显示出各监控部件的温度信息。系统结构模型如下图1所示。主控节点采集
6、节点1采集节点2采集节点3CAN总线传感器传感器传感器传感器传感器传感器图1 系统结构图基于STM32的CAN智能温度检测系统采用的关键技术有以下几个方面:a. CAN总线协议;b.基于ARM7的STM32微处理器;c. DS18B20温度传感器单总线通信;d. TFT LCD显示器控制驱动。3 硬件实现3.1 节点设计JTAG接口#温度传感器(1)#温度传感器(2)*LCDILI9325CPU STM32F103FSMCCANController功能按键LED指示灯蜂鸣器CAN收发器TJA1050CAN总线 温度采集系统中的节点包含主控节点与采集节点两种类型,在硬件上的实现过程较为相似,其系
7、统结构框图如下图2所示。其中*号标注的为主控节点特有外设,#号标注的为采集节点特有外设。图2 基于STM32温度检测节点系统结构框图3.2 STM32核心主控芯片采用STM32F103VET6,STM32系列32位微处理器采用ARM V7的CortexM3内核,接口丰富, 外设完整,主频高达72MHz,使用3.3V电压供电。内置有CAN控制器与FSMC控制器,简化了系统的实现过程1。bxCAN (Baisc Extended CAN)是STM32内置的CAN控制器,支持2. 0A和2. 0B CAN协议,最高速率可达到1Mbit/s。其中包含3个发送邮箱,2组各包含3个接收邮箱的FIFO,14
8、个可变位宽的过滤器组。报文的发送和接收由CAN内核自动实现。FSMC (Flexible Static Memory Controller)是STM32内置的静态存储控制器,FSMC映射管理的1GB空间被分为4个BANK, LCD控制芯片中的Flash可以被映射到BANK1,在之后的显示使用中,只需更改映射后FSMC中BANK1的值即可对LCD的FLASH进行操作2。3. 3 温度传感器本系统采用的温度传感器是DS18B20“单总线”接口的温度传感器,与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。该传感器测量温度范围为-55+125C,
9、精度为0.5C。DS18B20数据端与STM32的GPIO 口连接,因为要求上拉输出模式,所以可以直接使用GPIO 口的IPU (上拉输入)模式,传感器的VDD端接5V DC。3.4 CAN外围收发电路TJA1050是CAN控制器和物理总线之间的接口,是一种标准的高速CAN收发器。输入级可与STM32的3.3V输出电压兼容,可以至少连接110个节点。本系统的CAN外围电路如下图3所示,其中在芯片的S 端口设置切换开关,用来选择正常/静默模式,发送接收端口直接与STM32的CAN控制器映射端口相连。图3 CAN外围驱动电路3.5 LCD显示器本系统采用了分辨率为320240的26万像素TFT显示
10、器,LCD控制器为ILI9325,其数据总线为16位,为了简化程序,使用STM32中的FSMC与数据总线连接。4 软件设计4.1 节点程序操作过程主控节点用来接收采集节点发出的温度信息,处理数据并显示。主控节点的主程序包括:(1) 初始化配置;(2) CAN接收中断服务;(3) 转换温度信息程序;(4) 显示程序;(5) 报警程序。采集节点的主程序分为三部分:(1) 初始化配置;(2) 与传感器通讯,获取温度数据;(3) 处理数据并发送至主控节点。采集节点每隔一秒重复2、3两个步骤,实时发送更新温度数据。主控节点的程序流程,如下图4所示。系统初始化开启接收中断服务有效接收中断关闭接收中断转换温
11、度信息程序显示程序是否超过预设温度报警程序是否按键确认报警是否否是是否图4 主控节点程序流程图4.2 初始化配置硬件通电后,各个节点需要初始化配置以激活各项功能,采集节点需要进行RCC (时钟)、GPIO (通用外围输入输出口)、CAN控制寄存器的初始化配置,主控节点除以上三种配置外,还需进行NVIC (中断)、FSMC和 LCD的初始化。下面简要介绍CAN控制器、LCD以及STM32时钟的初始化配置。CAN控制器的初始化分为工作方式配置和过滤器配置,在本系统的初始化流程中只需要对CAN工作方式进行配置。其中,波特率的设定是通过配置发送过程中各个环节的时间量子数和CAN的时钟关系实现的。发送1
12、个bit 的时间 NormalBitTime = Tq+TBS1+TBS2,这三个时间段的单位由设置CAN的Prescaler参数和系统时钟相联系。本系统设定Tq = 1,TBS1 =3,TBS2 =5, Prescaler = 4,由公式(1)可知: = (1)其中CAN CLOCK为AHB1 =36MHz,可以算得波特率为1Mbit/s,设置程序如下:CANInitStructure. CANSJW = CANSJW1tq; /设置重新同步跳转的时间量子CANInitStructure. CANBS1=CANBS18tq; /设置字段1的时间量子数CANInitStructure. CAN
13、BS2=CANBS27tq; /设置字段2的时间量子数CANInitStructure. CANPrescaler=1; /配置时间量子长度为1周期LCD在使用显示命令之前,需要进行一系列初始化配置,根据需求调节显示器的对比度、Gamma和显示区域等。初始化完毕,在之后的显示程序中,只需调用显示函数,写入显示区域与颜色数据,即可完成目标。 下面函数的主要功能就是初始化STM32的时钟,其中还包括对向量表的配置以及相关外设的复位及配置。代码如下: Void Stm32ClockInit(u8 PLL) unsigned char temp=0; MYRCCDeInit(); /复位并配置向量表
14、RCCCR=0x00010000; /外部高速时钟使能HSEON While(!(RCCCR17); /等待外部时钟就绪 RCCCFGR=0x00000400; /APB1/2=DIV2;AHB=DIV1; PLL=2; /抵消2个单位 RCCCFGR=PLL18; /设置PLL值216 RCCCFGR=116; /PLLSRC ON FLASHACR=0x32; /FLASH 2个延时周期 RCCCR=0x01000000; /PLLON While(!(RCCCR25); /等待PLL锁定 RCCCFGR=0x00000002; /PLL作为系统时钟 While(temp!=0x02);
15、/等待PLL作为系统时钟设置成功 temp=RCCCFGR2; temp&=0x03; 4.3 温度传感器通讯程序DS18B20采用单总线模式,与其相连的GPIO口需要分时作为输入或输出端口。单总线的通信以初始化序列开始,首先GPIO口输出500的低电平,产生复位脉冲,然后释放总线,使总线被拉高1560,并将GPIO口置为上拉输入模式,等待60240的应答低电平。成功接收传感器应答脉冲后,进行温度读取操作。DS18B20输出的温度数据占2个字节,高字节数据中前4位为符号位,当温度为负数时,符号位为1,此时温度的绝对值用补码表示。DS18B20温度读取程序流程如下图5所示。开始初始化序列应答电平
16、跳过读序列号启动温度转化等待转换完成检测DQ端电平读取寄存器数据结束低高否是图5 DS18B20温度读取流程图4.4 CAN发送程序采集节点与传感器通信后,将所获取的温度数据发送至主控节点。因为每个采集节点控制2个温度传感器,所以在CAN的通讯协议中,用标准标识符表示节点号,用扩展标识符表示传感器号,便于主控节点的辨别。然后将温度数据分两个字节发送至CAN总线。发送报文前,需要对发送规则进行一系列配置。以下是采集节点1传感器1温度数据的发送程序:TxMessage. StdId =0x01; /配置报文的标准标识符 TxMessage. ExtId =0x0001; /配置扩屏标识符 TxMe
17、ssage.IDE=CANIDEXT; /使用标准标识符+扩屏标识符方式 TxMessage.RTR= CANRTRDATA; /报文为数据帧 TxMessage.DLC=2; /报文发送数据长度为2字节 TxMessage.Data(0)=k; /发送第一字节 TxMessage.Data(1)=(k8); /发送第二字节 CANTransmit(CAN1,& TxMessage); /CAN1报文发送4.5 显示程序为将转换为十进制的温度数据在指定位置显示,首先制作了含有英文与数字字符的1608简易字库, 编写了在指定位置显示字符的程序。显示过程中,首先显示欢迎界面,让采集节点的温度传感器
18、完成初始化并稳定工作;然后显示传感器号码等固定内容;最后实时更新温度数据的符号位、整数位、小数位即可。LCD 字符显示程序流程图如下图6所示。开 始确定字符位置(X,Y),字符标记根据字符标记判断对应的字库数组行起始位置命令0x50,X行结束位置命令0x51,X+7列起始位置命令0x52,Y列结束位置命令0x53,Y+15写入16个字节的字库数据结束图6 LCD字符显示程序流程图4.6 报警程序程序中分别设定了每个温度传感器采集数据的最大标准值,当某传感器所采集温度超标时,使主控节点的LED灯闪烁并开启蜂鸣器,发出警报。用户需要按键接收警报才能返回正常测温程序。在实际应用中,可以连接报警器或制
19、动系统,以及时排除故障。5 结束语本文使用STM32作为主控芯片配合DS18B20温度传感器、CAN外围电路和LCD显示器,实现基于CAN总线协议的实时温度传感网络,并介绍了其硬件与软件设计与实现过程。由于其硬件电路与软件设计都较为简洁,因而在电动摩托车温度传感网络上具有较好的应用前景。参考文献1李宁.基于MDK的STM32处理器开发应用M.北京:北京航空航天大学出版社,2008.2潘辉.STM32FSMC机制的NOR Flash存储器扩展技术J.单片机与嵌入式系统应用,2009(10):3134.附 录温度传感器通讯程序#include ds18b20.h#include delay.h/复
20、位DS18B20void DS18B20_Rst(void) DS18B20_IO_OUT(); /SET PA0 OUTPUT DS18B20_DQ_OUT=0; /拉低DQ delay_us(750); /拉低750us DS18B20_DQ_OUT=1; /DQ=1 delay_us(15); /15US/等待DS18B20的回应/返回1:未检测到DS18B20的存在/返回0:存在u8 DS18B20_Check(void) u8 retry=0; DS18B20_IO_IN();/SET PA0 INPUT while (DS18B20_DQ_IN&retry=200)return 1
21、; else retry=0; while (!DS18B20_DQ_IN&retry=240)return 1; return 0;/从DS18B20读取一个位/返回值:1/0u8 DS18B20_Read_Bit(void) / read one bit u8 data; DS18B20_IO_OUT();/SET PA0 OUTPUT DS18B20_DQ_OUT=0; delay_us(2); DS18B20_DQ_OUT=1; DS18B20_IO_IN();/SET PA0 INPUT delay_us(12); if(DS18B20_DQ_IN)data=1; else data=0; delay_us(50); return data;/从DS18B20读取一个字节/返回值:读到的数据u8 DS18B20_Read_Byte(void) / read one byte u8 i,j,dat; dat=0; for (i=1;i=8;i+) j=DS18B20_Read_Bit(); dat=(j1); return dat;/写一个字节到DS18B20/dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虚拟仿真技术在沉浸式教学中的应用研究-洞察分析
- 网络攻击溯源技术-第6篇-洞察分析
- 纤维素资源高效转化技术-洞察分析
- 营养监测与管理-洞察分析
- 办公区域空气质量与幽门螺旋杆菌的关系
- 办公自动化对学校管理的提升作用
- 办公设备安全使用指南
- 企业赞助在学校社团发展中的作用研究
- 《加拿大概况》课件
- 办公室应急疏散策略与技巧培训研讨会
- 工业互联网导论黄源课后参考答案
- 汽车维修培训课件教程
- 冰上冬捕安全培训课件
- (带附件)建筑工人劳务合同
- 高途入职培训功底测题
- 全国大学生职业规划大赛就业能力展示
- 文化认同与中华民族共同体建设
- 2024年中考英语专题复习:语法填空(含练习题及答案)
- 山西省运城市2023-2024学年高一上学期期末生物试题
- 2024年江苏徐矿综合利用发电有限公司招聘笔试参考题库含答案解析
- 统编版六年级语文词句段运用练习
评论
0/150
提交评论