当前位置:首页 > 基于can总线的温度测控系统的设计本科本科毕业论文
烟台南山学院毕业设计(论文) 第 32 页
结论
本文在自动控制理论的基础上,分析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成熟,故这一块的应用还不是很广。
烟台南山学院毕业设计(论文) 第 33 页
致谢
非常感谢鞠晓君老师在我大学的最后学习阶段——毕业设计阶段给自己的指导,从最初的定题,到资料收集,到写作、修改,到论文定稿,她给了我耐心的指导和无私的帮助。为了指导我们的毕业论文,她们放弃了自己的休息时间,她们的这种无私奉献的敬业精神令人钦佩,在此我向她们表示我诚挚的谢意。同时,感谢所有任课老师和所有同学在这四年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下!
通过这一阶段的努力,我的毕业论文《基于CAN总线的温度测控系统的设计》终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。
在本论文的写作过程中,我的导师鞠晓君老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。
写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。我将铭记我曾是一名南山学子,在今后的工作中把南山的优良传统发扬光大。
感谢各位专家的批评指导。
烟台南山学院毕业设计(论文) 第 34 页
参考文献
[1]王再英,刘淮霞,陈毅静.过程控制与仪表.机械工业出版社,2006.1. [2]程亚国.现场总线技术与控制系统.江汉石油科技,2006,16(2):41-42. [3]黄友锐,曲立国.PID控制器参数整定与实现.科学出版社,2010.1.
[4]陶永华,尹怡欣,葛芦生.新型PID控制及其应用.机械工业出版社,1998.1. [5]沈洪垚,傅建中,陈子辰.基于ARM和DS18B20的数字测温系统.机电工程出版社,2005.22(11):51.
[6]老虎工作室,张瑾,张伟.电路设计与制版:Protel 99SE入门与提高.人民邮电出版社,2007.7.
[7]赵德安.单片机原理与应用.北京机械工业出版社,2004.9.
[8]李朝青,刘艳玲,沈怡麟.单片机与PC机网络通信技术.北京航空航天大学出版社,2007.2.
[9] 杜春雷.ARM体系结构与编程.清华大学出版社,2003.2. [10] 徐宝文,李志.C程序设计语言.机械工业出版社,2004.1.
[11] 龚建伟,熊光明.Visual C++/Turbo C串口通信编程实践.电子工业出版社,2004.10.
[12] Jeff Prosise,北京博彦科技发展有限公司.MFC Windows程序设计.清华大学出版社.
[13] Microsoft Corporation.全面掌握Microsoft Visual C++6.0 MFC应用程序开发.清华大学出版社,2002.1..
[14] 孙鑫,余安萍.VC++深入详解.电子工业出版社,2006.6.
烟台南山学院毕业设计(论文) 第 35 页
附录
附录A:PID算法的计算部分:
Unsigned int PIDCalc (struct PID *pp,unsigned int NextPoint) {
Unsigned int dError,Error;
Error=pp->SetPoint-NextPoint; // 偏差 pp->SumError+=Error; // 积分
dError=pp->LastError-pp->PrevError; // 当前微分 pp->PrevError=pp->LastError; pp->LastError=Error;
return (pp->Proportion * Error// 比例项 +pp->Integral*pp->SumEror // 积分项 +PP->Derivative*dError); // 微分项 }
附录B:CAN接口的软件设计 1、CAN初始化:
(1)CAN外围寄存器初始化:
CAN_Definit(); //设置CAN外围的寄存器为系统默认设置 (2)CAN内核的配置:
CAN_InitStructure.CAN_TTCM=DISABLE; //禁止时间触发通信模式
CAN_InitStructure.CAN_ABOM=DISABLE; //对CAN_MCR寄存器的INRQ位进行置1随后清0,如果检测到128次11位连续的隐性位,就退出离线状态
CAN_InitStructure.CAN_AWUM=DISABLE; //清除CAN_MCR寄存器的SLEEP位来自动唤醒睡眠模式
CAN_InitStructure.CAN_NART=ENABLE; //CAN报文发送1次,不管发送的结果如何(成功、出错或仲裁丢失)
CAN_InitStructure.CAN_RFLM=DISABLE; //在接收溢出时FIFO未被锁定,当接收FIFO的报文未被读出,下一个收到的报文会覆盖原有的报文
CAN_InitStructure.CAN_TXFP=DISABLE; //FIFO优先级由报文的标识符来决定 (3)CAN工作模式的设置:
共分享92篇相关文档