免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于CAN总线的温度测控系统的设计-毕业论文 毕 业 论 文题目 基于CAN总线的温度测控系统的设计 姓 名 所在学院计算机与电气自动化学院所学专业 电气工程及其自动化 班 级 09电气工程 学 号 指导教师 完成时间 72013年5月 基于CAN总线的温度测控系统的设计摘要温度控制系统是通过各种仪器设备保证所控制的环境温度保持在规定的范围内以满足所需要求的调控设备传统的多点温控系统虽然相较于单点温控系统误差小速度快精度高工作强度低效率高节省了人力物力但由于集散式控制系统大多采用RS485总线来连接多个节点虽然能够一对多通信但挂载的节点少且节点越多通信效率越低另外随着计算机和微处理器的飞速发展人们对温度控制要求更高所需要的单片机也在不停的更新换代中传统控制系统中所用的8位或16位单片机的容量效率速度已经不能满足高质量控制温度的要求利用CAN总线我们可以实现多节点高精度高效率的温度控制本论文利用所学单片机自动控制原理以及现代检测技术及其相关知识并结合CAN总线通讯相关资料设计了基于CAN总线的温度控制系统论文的主要工作如下第一以ARM处理器作为控制的主体实现了温度测量数据采集和传输调节温度的下位机第二利用CAN总线的通信模块实现了PC机与下位机的传输第三利用PC机的各种软件实现了温度的动态曲线显示功能第四通过PID控制即比例微分控制实现温度的控制与调整通过CAN总线的温度控制实现温控的智能化关键词温度控制系统CAN总线ARM处理器PID控制ABSTRACTThe temperature control system is through a variety of instruments and equipment to ensure that the control of the environment temperature is kept within specified limits to meet the needs of control equipment requirements Multi-point temperature control system of traditional although compared with a single point temperature control system the error is small fast speed high precision low work intensity high efficiency save manpower and material resources but because of the distributed control system mostly adopts RS485 bus to connect to multiple nodes although the one-to-many communication but the node less and more nodes communication efficiency is low In addition along with the rapid development of computer and microprocessor the higher the temperature control requirements the SCM are constantly updated capacity efficiency speed of 8 or 16 bits MCU used in traditional control system has been unable to meet the high quality control temperature requirements Using CAN bus we can realize multiple nodes high precision high temperature controlIn this paper using the single-chip microcomputer automatic control theory and modern testing technology and the related knowledge and the combination of CAN bus communication related information design a temperature control system based on CAN bus The main work is as follows first using ARM processor as the control subjects the lower temperature measurement data acquisition and transmission temperature regulation second the transmission of PC machine and the lower position machine by communication module based on CAN bus third to achieve the dynamic curve of temperature display function using a variety of software PC machine fourth through the PID control that proportional differential control and MATLAB simulation control and adjustment of temperature The temperature is controlled via the CAN bus realize the intelligent temperature controlKeywordstemperature control systemCAN busARM processorPID control目录1 绪论111 课题背景及意义1com 课题背景1com 课题意义112 温度控制系统的发展趋势113 课题研究内容22 总体方案321 温度控制系统的结构322 现场总线控制系统423 智能节点设计424 温度控制算法525 小结53 相关技术简介631 CAN总线简介6com CAN总线的工作原理6com CAN总线的特点和优点6com CAN总线协议732 ARM处理器简介8com ARM处理器的特点8com STM32F103处理器9com STM32F103的主要构成933 PID控制简介10com 模拟PID控制10com 比例P积分 I 微分 D 控制11com 数字PID控制12com 积分分离的PID控制算法1334 温度传感器DS18B20简介15com DS18B20的连接设计16com DS18B20的测温原理1635 小结184 系统硬件设计1941 下位机的硬件设计19com CAN接口的连接设计19com LCD显示接口20com 协议转换器设计2042 上位机的硬件设计22com 串口通信2243 小结235 系统软件设计2451 下位机的软件设计24com CAN接口的软件设计24com 转换器的软件设计2552 上位机的软件设计27com 串口通信27com 界面通信软件实现29com PC界面30com 实验的调试方法3153 小结31结论32致谢33参考文献34附录351 绪论11 课题背景及意义com 课题背景温度控制器属于信息技术的前沿尖端产品在各个领域都有积极的意义在日常生活中工业生产中起到了重要的作用温度控制系统根据用户所需温度与测量温度只差值来控制加热器运作从而达到改变用户所需温度的目的很多行业有大量的温控加热设备用于合成各种所需物品化工厂需要控制温度防止化学物质在一定温度下反应爆炸现代智能楼宇为了迎合人们的需求需要保持在适宜的温度以内等等随着经济的高速发展和现代化管理水平的提高传统的温度控制不仅效率低误差高而且安全性能小占用人力资源多因此需要一种安全可靠高效率高精度的温度控制系统com 课题意义计算机控制系统广泛应用于工业农业甚至家庭领域当中其地位越来越高而计算机的发展离不开微处理的不断改进和创造通过提高微处理器的性能使得计算机在处理数据时的速度精度有了很大的改进实现了类似非线性时变的参数分布的最优控制等的各种复杂系统的处理CAN Controller Area Network 总线是国际上应用最广泛的现场总线之一它是一种有效支持分布式控制或实时控制的串行通信网络其高性能和高可靠性已被认同并被广泛的应用于工业自动化船舶医疗设备工业设备等方面ARMAdvanced RISC MachinesPID比例-积分-微分控制器作为最早实用化的控制器已有70多年历史现在仍然是应用最广泛的工业控制器简单易懂使用中不需精确的等先决条件因而成为应用最为广泛的控制器网络各节点之间的数据通信实时性强2 总体方案21 温度控制系统的结构温度控制系统一般由PC界面显示控制端PC与CAN网络连接的转换器下位机智能节点构成其系统框图如图21所示图21 系统结构框图各级的说明如下PC机可以反映系统中各个节点的温度曲线并发送控制命令具有监控的功能协议转换器通过协议转换器达到了转换协议连接上位机和下位机的目的智能节点智能节点有显示LCD显示温度采集温度传感器控制驱动电路CAN通信的作用执行机构通过和所需温度比较进而修正环境温度22 现场总线控制系统控制系统自诞生开始经历了由简单到复杂由机械到智能的发展第一代控制系统是气动信号控制系统PCS第二代控制系统是电动系统模拟信号控制第三代是数字化计算机集中控制系统第四代是集散控制系统DCS而今我们广泛应用的是第五代现场总线控制系统FCS2现场总线是连接智能现场设备和控制室系统全数字化双向传输多分枝结构的通信网络它的出现标志着工控领域的一个新的发展被公认为自动化的计算机局域网它实现了与现场设备和控制室设备双向多信息交换不仅是一个基层网络而且是开放的新的全分布式控制系统是一个集智能传感控制计算机数字通信技术为一体的技术将现场总线应用于控制系统会带来性能和结构的改善而在现场总线中应用最广泛的就是CAN总线本课题中设计的温控系统正是在CAN总线的连接下实现功能工作的23 智能节点设计本系统可控制多个节点显示不同节点的温度曲线下位机作为控制系统的核心来实现控制它是基于ARM处理器的智能节点下面以单个节点为例介绍它的组成及设计通过它来采集现场温度数据并控制执行机构完成温度的只能控制主要由ARM处理器CAN通信模块温度传感器执行机构LCD显示和下载接口构成其中温度传感器采集外界环境的温度数据并将模拟量转化为数字量CAN驱动芯片用来增强处理器内嵌的CAN控制器的差分接收发送能力使之正常工作通过温度传感器采集来的温度数据经过算法与标准值比对产生差值来通过执行机构调节温度最后的LCD显示可以把当前的温度数值显示出来一个下位机智能节点的结构框图如图22所示图22 下位机智能节点结构框图24 温度控制算法自动控制主要是基于反馈概念提出的反馈理论主要包括测量比较和执行在温度控制中测量主要是针对变动的温度将测量的温度与所需温度值相比较通过这个差值来纠正控制系统的输出3PID比例-积分-微分控制器作为最早实用化的控制器已有70多年历史现在仍然是应用最广泛的工业控制器PID控制器简单易懂使用中不需精确的系统模型等先决条件因而成为应用最为广泛的控制器3 相关技术简介31 CAN总线简介CAN是由研发和生产汽车电子产品著称的德BOSCH公司开发的并最终成为国际标准ISO1188和ISO11519是国际上应用最广泛的现场总线之一在北美和西欧CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议近年来其所具有的高可靠性和良好的错误检测能力受到重视被广泛应用于汽车计算机控制系统和环境温度恶劣电磁辐射强和振动大的工业环境CAN总线BOSCH CAN基本上没有对物理层进行定义但基于CAN的ISO标准对物理层进行了定义设计一个CAN系统时物理层具有很大的选择余地但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求即出现总线竞争时具有较高优先权的报文获取总线竞争的原则所以要求物理层必须支持CAN总线中隐性位和显性位的状态特征在没有发送显性位时总线处于隐性状态空闲时总线处于隐性状态当有一个或多个节点发送显性位显性位覆盖隐性位使总线处于显性状态在此基础上物理层主要取决于传输速度的要求在CAN中物理层从结构上可分为三层分别是物理信号层 Physical Layer SignalingPLS 物理介质附件 Physical Media AttachmentPMA 层和介质从属接口 Media DependentInter-faceMDI 层其中PLS连同数据链路层功能由CAN控制器完成PMA层功能由CAN收发器完成MDI层定义了电缆和连接器的特性目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路如MC68HC908GZl6PMA和MDI两层有很多不同的国际或国家或行业标准也可自行定义比较流行的是ISOll898定义的高速CAN发送接收器标准理论上CAN总线上的节点数几乎不受限制可达到2000个实际上受电气特性的限制最多只能接100多个节点CAN的数据链路层是其核心内容其中逻辑链路控制 Logical Link controlLLC 完成过滤过载通知和管理恢复等功能媒体访问控制 Medium Access controlMAC 子层完成数据打包解包帧编码媒体访问管理错误检测错误信令应答串并转换等功能这些功能都是围绕信息帧传送过程展开的SC体系结构的微处理器ARM CPU的关键优点是能兼顾到高性能低功耗和低价格首先在低功耗 MIPSW百万条指令每秒瓦 方面具有业界领先的性能ARM的高性能表现为其体系结构是基于RISC流水线架构它的指令系统和相关译码机制比那些采用微程序的复杂指令系统的计算机 CISC 简单得多这个简化带来三个优点指令的高吞吐率极其有效的实时中断响应体积小性价比高的处理器宏单元com STM32F103处理器本论文中选用ARM微处理器STM32F103STM32F103系列的处理器集成了高性能的ARM Cortex-M332比特RISC内核工作频率为72MHz高速率的嵌入式内存 FLASH Memory达到512KSRAM达64KIO接口丰富外围有两个APB总线所有的设备提供3个12比特的数模转化器4个常规模的16比特的延时器乘两个PWM延时器具有标准先进的通信接口两个I2C总线三个SPI接口两个I2S总线一个SDIO接口五个USART并且内部集成了USB和CAN控制器它的工作温度范围在-40-105工作com可以工作在省电模式下的低电压STM32F103系列的处理器的封装形式多样从64引脚到144引脚可阻根据不同的设备选择不同的外围需要com STM32F103的主要构成1嵌入Flash和SDRAM的ARM Cortex-M332比特RISC内核ARM Cortex-M332比特RISC处理器是最新代的嵌入式处理器它已经发展成为以减少管脚数量和低功耗的低成本平台来满足MCU实现而却有着出色的计算功能和先进的中断响应机制可以兼容所有的ARM工具和软件2嵌入式的Flash存储器32字节的存储器可以有效地存储程序和数据3CRC循环冗余检查单元CRC检查器用于从一个32比特数据字里得到一个CRC码和一个外围的发生器CRC技术在其他的应用中用于不同的数据传送和完整存储在软件运行过程中产生一个信号来跟连接时产生的参考信号比较并存储在内存区域4内嵌的SARM10字节的空间可以保证不需要等待CPU时钟而读写数据5内部和外部中断控制器内部中断控制器可以解决43路中断拥有16级的优先权外部中断控制器通过19路触发器产生外部中断请求每一路独立的配置选择触发事件6电源提供策略正常模式SLOW模式空闲模式和掉电模式7DMA灵活的7路DMA可以处理存储器之间和存储器与外围之间的转换每一路通过软件触发来用于硬件的DMA请求8具有日历功能的RTC时钟RTC提供时钟日志功能报警中断和周期性的中断9I2C总线I2C可以工作在多主模式和被动模式下提供标准和快速模式10CAN控制器满足CAN20AB协议可以接收发送11比特标识符的标准数据帧和29比特的扩展帧有三个传送盒两个用于接收FIFO11ADC两个12比特的数模转化器自动转化输入的模拟信号可以用于DMA控制器和触摸屏接口12串行线和JATG调试接口 SWJ-DP ARM的SWJ-DP接口可以实现串行线和JATG的调试13GPIO通用输入输出口每一个GPIO可以通过软件实现作为输出输入和外围的转换功能大多的管脚都具有数模转换功能14看门狗定时器33 PID控制简介com 模拟PID控制PID控制器由比例单元P积分单元I和微分单元D组成其输入e t与输出u t的关系为u t KPe t 1 Tie t dtTdde t dt 式中积分的上下限分别是0和t因此它的传递函数为G s U s E s 11 Tis Tds其中为比例系数为积分时间常数为微分时间常数pTiTd三者都是可调的传统的PID控制具有适应性强鲁棒性强等优点但是它不能控制复杂的过程典型的PID控制结构如图32所示图32 PID控制结构com 比例P积分 I 微分 D 控制1比例控制比例控制是一种最简单的控制方式其控制器的输出与输入误差信号成比例关系当仅有比例控制时系统输出存在稳态误差在积分控制中控制器的输出与输入误差信号的积分成正比关系在微分控制中控制器的输出与输入误差信号的微分即误差的变化率成正比关系温度传感器是指能感受温度并转换成可用输出信号的传感器温度传感器有四种主要类型热电偶热敏电阻电阻温度检测器RTD和IC温度传感器IC温度传感器又包括模拟输出和数字输出两种类型DS18B20数字温度传感器接线方便封装成后可应用于多种场合主要根据应用场合的不同而改变其外观封装后的DS18B20可用于电缆沟测温高炉水循环测温锅炉测温机房测温农业大棚测温洁净室测温弹药库测温等各种非极限温度场合耐磨耐碰使用方便封装形式多样适用于各种狭小空间设备数字测温和控制领域在外部电源供电方式下DS18B20工作电源由V引脚接入此时IO线不需要强上拉不存在电源电流不足的问题可以保证转换精度同时在总线上理论可以挂接任意多个DS18B20传感器组成多点测温系统注意在外部供电的方式下DS18B20的GND引脚不能悬空 否则不能转换温度读取的温度总是85V每一块芯片上都有它的序列号这个是唯一的5由于可以编程改变温度的位数因此可以人为根据需要调节它的温度分辨率每一个DS18B20在出厂前就设置好了只读存储器中的序列号64位以此作为其地址序列码此64位ROM的设置顺序为最前面的8位28H是产品类型标号接下来48位是温度传感器唯一的序列号最后8位是前面56位的循环冗余校验码CRC X8X5X4I设置ROM的作用是使每一个DS18B20都各不相同因此就可以在一根总线上挂载不止一个DS18B20DS18B20内部结构主要由四部分组成64位光刻ROM温度传感器非挥发的温度报警触发器TH和TL配置寄存器暂存RAM主要用来存放初始化数据和工作过程中所产生的数据包括8个字节从而确保了单总线数据传送过程中的完整性温度报警主要通过E2RAM实现的系统掉电后数据依然存在该装置信号线高的时候内部电容器储存能量经由内部VDD线路给片子供电而且在低电平期间为片子供电直至下一个高电平的到来重新充电温度传感器DS18B20内部结构框图如图38所示图38 温度传感器内部结构框图由于DS18B20是通过一条IO总线读写数据的因此务必要遵循其工作时序通信协议可以保证DS18B20数据传输的正确性和完整性协议定义了信号的时序初始化时序读时序写时序所有时序都规定了把主机设置为主要单元单总线器件设置为次要单元温度采集时的所需要的指令和温度值的传输都是从主机自动启动并开始写时序作为起点如果要求温度采集的次要单元反馈数据那么在写完指令后主机就要启动读时序来接收数据温度值和指令的传输都是低位在先DS18B20中的温度传感器可完成对温度的测量以12位转化为例用16位符号扩展的二进制补码读数形式提供以00625LSB形式表达其中S为符号位其温度格式表如表31所示表31 DS18B20的温度值格式表bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0LS Byte232221202-12-22-32-4bit 15bit 14bit 13bit 12bit 11bit 10bit 9bit 8MS ByteSSSSS262524该温度传感器的两个8位的RAM会存储转化而来的12位数据开始的五位是符号位将测到的数值与00625相乘就可以得到温度值如果温度为零下则这五位为1也就是说当温度为100时输出值应为0640H-50时输出值应为FFEOH本系统中温度传感器工作流程如图39所示图39 DS18B20工作流程图它作为温度采集部件完成外界温度的读取并将数字量传送给微处理器实现算法的计算本文采用积分分离的PID控制算法下载进ARM处理器中积分分离的PID需要PID和PD控制PID控制的计算部分如下PD控制则需要取消积分项35 小结本章对课题涉及的相关技术CAN总线ARMPID控制和温度传感器等技术做了简单介绍为下文的连接设计做了铺垫4 系统硬件设计41 下位机的硬件设计下位机是直接控制设备获取设备状况的的计算机由于STM32F103微处理器罩集成了CAN控制器所以不需要外围扩展这给设计带来了很大方便但是CAN总线驱动能力有限传输数据时需要有驱动芯片收发器为了保证在控制器与外围CAN总线之间实现可靠而有效的双向数据传输需要在ARM芯片上外接CAN的收发器SN65HVD23X该器件支持传输速率高达1Mbits的差分信号同时还兼容现有的信号体系本系统的设计CAN接线图6如图41所示图41 智能节点CAN连接电路图CANRXDCANTXD分别接微处理器的44号管脚PA11CTS1CANRX和45号管脚PA12RTS1CANTXCAN报文收发时CPU将数据存入缓冲区然后设置寄存器将其发送命令数据要打包成报文形式通过45脚发送到CAN收发器在接收报文时通过44脚接收数据再经过一系列处理后通知CPUCANH和CANL分别为输出高电位和地电位S脚可以设置收发器的模式此系统不接就是默认为高速模式com LCD显示接口为了方便下位机可以很好的人机交互连接LCD模块通过LCD屏可以看到当前的温度值具体电路图如图42所示其中D0D1D2D3分别连接微处理器的41403938管脚DISPOFF与37管脚连接FLMFRMR分别连接3635管脚CL1CL2分别与3433连接图42 LCD显示模块com 协议转换器设计在本系统中PC的作用主要是监控下位机智能节点的工作状况发送温度控制命令温度采集显示设置参数和数据分析等给以直观的数据然而目前个人电脑上面主要有RS232PCIUSB接口很少会提供CAN通信模块因此如果要实现两者的通信就要在两者之间架起一座桥梁也就是把RS232接口转换成CAN接口它的作用就是将下位机采集来的CAN报文形式转化为PC串口可以识别的位数据形式并实现CAN报文和串口数据的发送接收其硬件构成主要包括C51单片机CAN控制器SJA1000CAN收发器82C250和串口转换器件232等单片机通过数据总线对CAN控制器实行读写操作实现CAN协议和串口协议的转换7由于CAN控制器SJA1000的总线驱动能力有限在CAN控制器与物理总线之间需要接入收发器82C250作为收发芯片提供对CAN总线的差动发送和对CAN控制器的差动接收该芯片具有传输速度快抗瞬间干扰和保护总线的能力并可通过管脚的接地电阻控制脉冲斜率降低射频干扰82C250作为CAN协议控制器和物理连接线路之间的接口可用高达1Mbits的位速率在两条有差动电压的总线电缆上传输数据很方便地连接并实现信号的差动发送和接收有较强的总线驱动能力经过它系统可向CAN总线上发送数据也可以接收来自CAN总线上的数据信息232是电压转换芯片由于标准RS232电平很高达到正负15V而常用的TTL电平最高为5V所以它的作用就是将TTL电平转换成可以和PC串口匹配的电压这样CAN控制器跟串口之间才可以安全的通信在信号输出端加限流电阻滤波电容和反向过冲保护二极管降低电磁辐射增强转换器的抗干扰能力和稳定性原理框图如图43所示图43 协议转换器原理框图SJA1000是一款普遍用于工业环境和自动化领域的CAN控制器具有CAN通信协议所要求的全部特性经过简单的总线连接就可完成CAN协议物理层和数据链路层的所有功能SJA1000作为CAN的控制部分在与单片机连接时它的数据线AD0-AD7与单片机的输入输出管脚P00-P07连接片选信号CS接地低电压允许访问RSTINTWRWDALE管脚分别跟单片机的相应管脚连接控制器的收发端RX0TX0分别接收发器的RXDTXD引脚由于SJA1000的模式可以有INTEL和Motorloa两种本设计中采用的是INTEL模式即把控制器的Vdd1Vdd2Vdd3连同MODE引脚接5V电压控制器的Vss1Vss2Vss3与收发器的Rs引脚接地42 上位机的硬件设计上位机是指可以直接发出操控命令的计算机屏幕上显示各种信号变化液压水位温度等是PC在工控领域很多情况下会存在PC机和单片机系统通信由于PC机和单片机都有串口因此可以通过串口实现两者之间的通信串口的作用就是处理器跟串行设备之间进行编码转换的微处理器发送字节数据到串口后变成串行的位数据在接收过程中正好相反把位数据转换成字节数据计算机的串口一般为RS232口有9针和25针两种通常都是九针的COM1那么在进行通信时就需要在PC端设计相应的串口程序而PC上一般是应用Windows系统因此就需要在Windows环境下编写串口通信程序8串口图九针如图44所示图44 串口图其中23脚分别为发送TXD和接收 RXD 管脚5脚为信号地一般这三个脚就可以完成收发功能了表41为具体管脚定义表41 串行口管脚定义表序号引脚定义信号名称功能1DCD载波检测表示DCE收到远程载波2TXD发送数据发送串行数据3RXD接收数据接收串行数据4DTR数据终端就绪请求DCE将线路切换到发送方式5GND信号地公共信号地6DSR数据设备就绪通知DTE线路进接通可以发送数据7RTS请求发送DCE准备好8CTS允许发送DTE准备好9RI接通指示表示DCE与线路接通Windows里串口是系统资源的一部分应用程序要使用串口进行通信首先要打开串口申请资源通信完毕后要关闭串口释放资源在系统函数中均包含支持通信中断的功能而且系统还为串口通信提供了输入和输出的缓冲区应用程序只能对输入输出缓冲区进行操作数据进出串口都是由系统后台操作的43 小结在本章中主要给出了上位机和下位机的连接设置即硬件的连接设计为系统的软件设计打下了基础5 系统软件设计51 下位机的软件设计com CAN接口的软件设计由于本系统用到ARM处理器9所以用Keil uVision4编译器进行软件的编译设计它里面集成C编译器宏汇编连接器库管理和一个功能强大的仿真调试器通过一个集成开发环境 uVision 将这些部分组合在一起软件语言应用C语言10与其他语言相比它有着语言简洁运算符丰富可以直接对硬件操作可移植性好的特点在Keil中生成hex文件也就是程序通过编译后生成的16进制代码文件再用J-link下载线通过STC-ISP V391软件下载到ARM里运行软件设计主要包括CAN初始化报文的发送报文的接收CAN初始化最重要的是设置CAN的波特率要根据具体的实际情况而定通常情况下1Mbps可以最远传送40米的距离一般波特率的设置会用到PCK1时钟它可以通过测CANTX引脚上面的波形得出图51 CAN初始化流程图1CAN初始化初始化程序包括对系统时钟RCC配置中断向量控制器 NVIC 配置输入输出 GPIO 设置同步异步收发端 USART 配置和CAN配置其中最重要的是对CAN的设置CAN_Configuration 函数主要就是用来对CAN寄存器内核工作模式滤波器进行设置具体流程图如图51所示2CAN发送函数CAN发送函数主要包括选择一个空的邮箱设置IDDLC所要传送的消息帧长度设置请求发送部分代码如下其流程图如图52所示图52 CAN发送函数流程图 图53 CAN接收函数流程图3CAN接收函数CAN的接收函数跟发送函数正好相反主要是在参数检查完后进行获取ID得到DLC和FMI解析数据帧最后释放FIFO其流程图如图53所示com 转换器的软件设计由于CAN总线和RS232工作在两个不同的网络且CAN总线是基于数据块编址的以报文为单位来发送数据的报文都有唯一的标识符ID每一帧最多容纳8个字节RS232是以位数据的形式进行传输的是一种串行物理接口标准因此要实现两者的通信必须进行协议的转换转换程序主要包括协议转换CAN函数RS232函数其中协议转换可以使RS232到CANCAN到RS232的数据转化CAN函数主要实现的是SJA1000的初始化发送和接收数据其中韧始化主要包括设置工作方式接收滤波方式接收屏蔽寄存器接收代码寄存器波特率设置和中断允许寄存器发送函数将数据存储区的数据取出后封装成报文格式送入缓冲区内接收函数在缓冲区里读数据并将其存入数据存储区里RS232函数实现了串口初始化接收发送函数及中断函数串口工作在查询模式CAN总线有数据时微处理器将其发送串口当串口有数据时将其发送到CAN总线主程序流程图如图54所示图54 协议转换器主程序流程图要使转接卡可以正常工作就要对CAN控制器SJA1000初始化主要的CAN控制器寄存器的控制字见附录在波特率的设置上在不进行传输数据压缩的前提下它的值就是每秒所传送的数据位数所以要保证本转换器的设置跟下位机所有节点的设置是一样的如果偏差很大则不能进行通信SJA1000初始化流程图如图55所示图55 CAN控制器SJA1000初始化流程图 图56 串口部分程序流程图在进入复位模式后选择CAN的BasicCAN模式设置代码寄存器和屏蔽寄存器波特率输出模式和时钟分频最后退出复位在接收串口数据时把由上位机PC发来的数据进行处理数据是ASCII码形式的需将其转化为字节的形式gethex 1 是将2个ASCII码转为一个字节S位是进行CAN节点ID和速度设置的其流程图如图56所示52 上位机的软件设计com 串口通信Windows提供串口通信有三种方法1使用串口通信控件针对串口通信Microsoft公司提供了MSComm控件使用控件串口通信是非常方便的设计人员不需要了解繁琐的API函数到底是怎么运作的通过简单的修改控件的属性就可以实现串口的配置完成串口接收和发送功能2应用Windows的API应用程序接口Windows中串口是以文件的形式被打开和访问的串口和串口通信驱动需要用到设备控制块Device Control BlockDCB进行配置应用程序使用API函数打开CreateFile打开串口ReadFile读取串口CreateEvent建立事件对象和CloseHandle关闭串口3使用动态链接库DLL动态链接库是一些函数的集合开发人员编制端口驱动程序或使用第三方提供的DLL例程在函数工作是会链接到应用程序而不是在编译期间静态的连接可执行文件Windows应用程序大量使用DLL其中包括系统应用程序的大量过程在本论文中考虑到温度传输的数据量小串口通信不是很复杂且开发方便节省时间故而采用第一种方法MSComm控件MSComm控件作用就是用ActiveX控件简化Windows下串口编程可以提供标准通信接口方便用户通过串口接口到其他设备中MSComm控件串口编程的基本流程如图57所示图57 MSComm控件开发串口流程图MSComm提供两种处理通信问题的方法111事件驱动法MSComm中的OnComm事件可以处理缓冲区里有字符的情况还可以检查处理错误程序编写时可以在事件处理函数中添加自己的程序好处就是响应迅速稳定性好2查询方式它实际上也属于事件驱动根据CommEvent属性值来查询事件错误这在某种时候会比较简捷本文在温控系统的PC机上研究串口通信并应用MFC开发可视化界面用于温度的实时控制及其结果的呈现在串口通信方面采用Microsoft公司提供的ActiveX控件MSComm来实现编程在整个软件设计过程中作为MSComm控件所嵌入的对话框动态温度曲线是采用窗口的View类实现的在这里创建MFC应用程序12来实现温度曲线的显示对话框上的图标不可以加载到视图 View 中但是MSComm控件能够加载到单文档的ABOUT中在本文的界面里没有显示这样就可以完成实现具体步骤如图58所示图58 本系统MSComm控件加载图 59 MFC开发流程图 com 界面通信软件实现该软件主要包括串口的初始化读取串口数据并显示绘制曲线并保存温度实时监控和坐标轴的移动几部分具体流程图如图59所示初始化串口利用ClassWizard为CTemCurve类添加消息处理函数WM_CREATE利用该函数来实现串口的初始化在串口初始化中选择PC上面的端口COM1设置波特率为9600无校验8个数据位1个停止位另外通过实际的需要来设定输入输出缓冲区大小本文中都采用1024最后调用SetTimer时会生成一个定时器来完成对温度数据的实时监控2读取保存串口发送过来的数据并进行数据形式转化本论文采用的是事件驱动法实现串口通信的就是有事件产生时执行OnComm里定义的函数如接收事件发送事件等特点是对程序的响应及时可靠性高代码见附录主要用于接收保存串口的数据由于PC机从单片机中接收到的是16进制的数据而在VC中没有直接将16进制转变10进制的函数所以自定义并调用TransDec 函数来完成数据的转换3在OnPaint 函数中实现坐标轴的绘制及温度动态曲线图的保存为了便于操作人员观察温度跟时间的关系在坐标区域内绘制了平行于坐标轴的等距线它主要由Draw 函数实现的该函数包括的几个子函数具有基本框架设计坐标轴绘制曲线绘制等功能其具体函数由于实现代码很多顾不在此详述4实现温度的实时监控和坐标轴的移动为了更好的显示温度曲线要不间断的对它进行数据采集在程序中通常是定义一个定时器来完成此操作定时器代码见附录最后运行后的程序曲线会随时间一秒一秒的向左移动com PC界面PC的界面设计上应用MFC库它作为c类的一个集合和应用程序框架主要用于创建Microsoft Windows应用程序这个类的集合将c语言扩展为包括创建基于Windows的应用程序所需的大部分基本结构单元一些重要的MFC类包括应用程序体系结构类用户界面类数据库类Internet类13等它的优势在于可以减少开发周期使代码更加简结在保证了编程的随意性和方便性的情况下在用户界面的设计上提供了大量的技术主要优点是1应用程序的开发平台在上面建立自己需要的应用程序2兼容了以前版本的MFC和新的c类3兼容性很好的c源代码库4与Visual c集成本论文就是基于VC的MFC编制可视化界面来进行通信显示的14其中系统总界面的功能设置为三个大部分系统设置选择智能节点控制方法右边的View框里主要显示温度的动态曲线详细设计如下1系统设置一栏包括开始显示停止显示和报警设置三部分其中的报警设置可以根据实际需要设定报警的上限和下限温度值2选择智能节点一栏包括所需要显示的温度节点的具体曲线3控制方法一栏里设置积分分离的PID控制法点击会出现初始参数输入对话框用来设定比例系数微分系数积分系数的值输入参数后即可显示最终曲线com 实验的调试方法PID控制算法所采用的积分分离PID其中最重要的就是进行参数的整定本系统中应用的是可靠性高的经验法即根据实际情况来进行尝试参数直到达到理想的控制效果这个步骤虽然繁琐但是不缺有效性因为实验出真知这比模糊控制里需要设置复杂的控制规律要显得简单易行具体的步骤为1首先设定设定比例作用保证其稳定性即使积分时间无穷微分作用为零这时调整比例系数Kp调高Kp的值来防止曲线波动过频降低Kp值来减少超调量2调节Ti逐渐增大Ti的值来调节曲线的形状如果曲线在理想值两边变化过大则应该增大Ti的值如果偏离理想值一直回归不了则要减小Ti值3调节Td值将它的值设定为025倍的Ti值逐渐调大Td值如果偏离理想温度多大且缓慢回位则要增大Td如果偏离理想值过大则要减小Td通过理论和实际的调试经验发现总的规律就是如果系统响应在控制作用后很缓慢的变化且大幅度震荡的话那么就是积分作用大如果系统反应过于灵敏波动性很大的话那么就可能是微分作用过大这时调节Td的值如果存在中频的震荡可能是比例设置的问题这样经过反复调整直至达到理想标准53 小结本章给出了温控系统各个部分的软件设计实现了PC界面显示并最终利用经验法调试系统得到比较好的实验效果结论本文在自动控制理论的基础上分析CAN总线的原理和通信机制设计了以CAN总线为通信媒体微处理器ARMSTM32F103为控制主体基于PC可视化界面的温控系统CAN总线的多主形式使得本系统的多节点控制成为现实下位机所用的ARM既解决了16位单片机的指令和功能简单的缺陷又解决了32位高端处理器又价格昂贵性价比低的问题STM32是一款介于两者之间的在性能成本功耗上面的最优另外MFC的界面设计具有开发周期短代码简结编程自由度高的优点使得人机交互界面很好的实现本文的主要工作是1基于ARM的下位机现场温度智能节点设计与实现2作为PC与CAN总线之间的桥梁RS232跟CAN的转换器模块的设计与实现3上位机的串口通信函数MFC可视化界面显示的软件设计与实现4经过软硬件调试后得到了预期的显示效果虽然本文中最终达到了一定的控制效果但是系统仍有些需要改进的方面1温度控制算法的研究一般的工控领域普通PID算法就可以满足要求但是在一些精度要求特别高的场合就需要研究一些智能的控制算法2随着嵌入式的发展可以将最终的PC显示控制转换为嵌入式的开发但是现在Linux QT资源不如MFC成熟故这一块的应用还不是很广致谢非常感谢鞠晓君老师在我大学的最后学习阶段毕业设计阶段给自己的指导从最初的定题到资料收集到写作修改到论文定稿她给了我耐心的指导和无私的帮助为了指导我们的毕业论文她们放弃了自己的休息时间她们的这种无私奉献的敬业精神令人钦佩在此我向她们表示我诚挚的谢意同时感谢所有任课老师和所有同学在这四年来给自己的指导和帮助是他们教会了我专业知识教会了我如何学习教会了我如何做人正是由于他们我才能在各方面取得显著的进步在此向他们表示我由衷的谢意并祝所有的老师培养出越来越多的优秀人才桃李满天下 通过这一阶段的努力我的毕业论文基于CAN总线的温度测控系统的设计终于完成了这意味着大学生活即将结束在大学阶段我在学习上和思想上都受益非浅这除了自身的努力外与各位老师同学和朋友的关心支持和鼓励是分不开的 在本论文的写作过程中我的导师鞠晓君老师倾注了大量的心血从选题到开题报告从写作提纲到一遍又一遍地指出每稿中的具体问题严格把关循循善诱在此我表示衷心感谢同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友写作毕业论文是一次再系统学习的过程毕业论文的完成同样也意味着新的学习生活的开始我将铭记我曾是一名南山学子在今后的工作中把南山的优良传统发扬光大 感谢各位专家的批评指导参考文献1王再英刘淮霞陈毅静过程控制与仪表机械工业出版社200612程亚国现场总线技术与控制系统江汉石油科技200616 2 41-423黄友锐曲立国PID控制器参数整定与实现科学出版社201014陶永华尹怡欣葛芦生新型PID控制及其应用机械工业出版社199815沈洪垚傅建中陈子辰基于ARM和DS18B20的数字测温系统机电工程出版社200522 11 516老虎工作室张瑾张伟电路设计与制版Protel 99SE入门与提高人民邮电出版社200777赵德安单片机原理与应用北京机械工业出版社200498李朝青刘艳玲沈怡麟单片机与PC机网络通信技术北京航空航天大学出版社200729 杜春雷ARM体系结构与编程清华大学出版社2003210 徐宝文李志C程序设计语言机械工业出版社2004111 龚建伟熊光明Visual CTurbo C串口通信编程实践电子工业出版社20041012 Jef
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蝴蝶知识启蒙
- 高密中医院核心特色解析
- 黑蚁对讲机介绍
- 2025血液科急性淋巴细胞白血病化疗后感染预防培训规范
- 院感空气培养的采样方法
- 消防安全知识课程
- 科技前沿发展概览
- 硫酸镁使用方法
- 喉癌手术麻醉管理要点
- 英诺提拉素注射方法
- 生产安全事故十大典型案例
- 《参与家乡文化建设》优秀导学案(统编版高一必修上)共3篇
- GA 1805-2022危险化学品经营企业反恐怖防范要求
- 工学院班团建设经费相关说明(含申报及报销所需材料模板).20211025194841
- 四级劳动关系协调员操作技能试题库
- GB/T 9446-1988焊接用插销冷裂纹试验方法
- GB/T 7701.1-2008煤质颗粒活性炭气相用煤质颗粒活性炭
- GB/T 475-2008商品煤样人工采取方法
- GB/T 3390.3-2013手动套筒扳手传动附件
- FZ/T 73019.2-2020针织塑身内衣调整型
- 《劳动合同法讲解》课件
评论
0/150
提交评论