1、本科毕业设计论文题目蓝牙遥控循迹智能车学院名称XXXXXX学院专业班级电子信息科学与技术113班学生姓名XXXXXXX导师姓名XXXXXXX二零一五年五月二十日蓝牙遥控循迹智能车作者姓名XXX专业电子信息科学与技术指导教师姓名XXX专业技术职务XXI目录摘要1ABSTRACT2第一章绪论311蓝牙通信的研究背景和现状312整车设计思路513本文的主要工作5第二章样开发环境、开发工具介绍621样系统硬件开发平台622系统软件开发平台7第三章硬件电路设计方案1331MC9S12XS128简介1332电源管理模块1433电机驱动模块1534舵机模块1835蓝牙模块1836电路安全措施19第四章车体结
2、构2341舵机安装调整2342前轮定位2543车体重心2544离地高度及底盘刚度调整2645差速机构的调整27第五章软件程序的设计方案2851系统初始化2852控制程序3053问题与结论31结束语28参考文献31附录32致谢35XXX工业大学2015届本科生毕业设计(论文)1摘要本系统使用了FREESCALE的16位单片机MC9S12XS128作为主控芯片,使用飞思卡尔公司开发的CODEWARRIOR作为XS128芯片的开发环境及工具。其工作原理为通过安卓手机APP的上位机利用蓝牙通信与遥控小车下位机端连接,再通过蓝牙转串口将消息发送给XS128单片机,单片机根据接到的指令执行相关动作。遥控小
3、车下位机由车模和电路板组成。车模为购买的飞思卡尔比赛专用车模。通过ALTIUMDESIGNER画出PCB,并由PCB厂打样出电路板。电路板供电电池为72V直流,通过降压稳压芯片AMS1117分别产生5V和33V,其中一个5V单独给电机供电,舵机、单片机则由另外一个5V供电;蓝牙模块则采用33V供电。小车的电机驱动部分采用BTS7960芯片驱动电路,控制电机的正反转;舵机负责小车的左右转向,蓝牙模块则采用市面上较为普遍的HC06蓝牙从机模块。关键字MC9S12XS128CODEWARRIORALTIUMDESIGNER蓝牙通信齐鲁工业大学2015届本科生毕业设计(论文)2ABSTRACTINTH
4、ISSYSTEM,MC9S12XS12816BITMICROCONTROLLERFREESCALEISTAKENASTHEMASTERCHIP,ANDTHEWARRIORCODEDEVELOPEDBYTHECOMPANYISUSEDASTHEDEVELOPMENTENVIRONMENTANDTOOLSOFXS128CHIPITSWORKINGPRINCIPLEISANDROIDMOBILEAPPTHROUGHTHEPCUSINGBLUETOOTHCOMMUNICATIONANDSMARTCARSLAVEENDCONNECTEDVIABLUETOOTHANDTHENTURNTHESERIALPO
5、RTTOSENDAMESSAGETOXS128MICROCONTROLLER,MICROCONTROLLERACCORDINGTOTHERECEIVEDINSTRUCTIONEXECUTIONRELATEDACTIONSTHESMARTCARISCOMPOSEDOFTHEMODELANDTHECIRCUITBOARDCARMODELSFORTHEPURCHASEOFTHECARCARLESPECIALCARMODELDRAWPCBBYDESIGNERALTIUMANDDRAWTHEPCBFROMPCBFACTORYCIRCUITBOARDPOWERSUPPLYBATTERY72VDCTHROU
6、GHTHESTEPDOWNREGULATORAMS1117CHIPRESPECTIVELY5VAND33V,AMONGTHEMA5VSINGLEPOWERTOTHEMOTOR,STEERINGGEAR,SCMISALSOA5VPOWERSUPPLYBLUETOOTHMODULEISUSED33VPOWERSUPPLYTROLLEYMOTORDRIVENINPARTBYBTS7960DRIVERCIRCUIT,CONTROLTHEMOTORPOSITIVEINVERSIONTHESTEERINGENGINEISRESPONSIBLEFORCARTURNINGLEFTORRIGHT,BLUETOO
7、THMODULEISTHEMARKETMORECOMMONHC06BLUETOOTHFROMTHEMODULEKEYWORDSMC9S12XS128CODEWARRIORALTIUMDESIGNERBLUETOOTHCOMMUNICATIONXXX工业大学2015届本科生毕业设计(论文)3第一章绪论11蓝牙通信的研究背景和现状随着数字化和网络化的不断深入及发展,现在我们身边随处可见智能化产品,智能化已成为势不可挡的历史趋势,其中正在兴起的智能家居系统,就是在这种形势下产生的。很多家庭已经从原先豪华大气的装饰风格转变为富含高科技、信息化的家庭装饰风格,这种装饰风格的转变深刻体现了人类享受科技成果
8、带来的更加舒适、便捷的生活环境。而其中的一大热点就是如何建立一个高效率且低成本的智能家居系统。智能家居网络是指在家庭内部通过一定的传输介质将各种电气设备和电气子系统连接起来,采用统一通信协议,对内实现资源共享,对外通过网关与外部网互联进行信息交换的局域网。而手机以其高集成、易携带等特点作为当代人类必不可少的通信及娱乐设备,必然成为智能家居控制系统的控制器或者服务器。而蓝牙因其抗干扰能力强、低成本、使用方便等特点成为现代智能家居通信的首选。蓝牙无线收发器采用扩展频谱跳频技术,在一次传输中信号不会长时间呆在一个频率上,而是从一个频率跳到另一个频率上,因此不会受到该频率段信号的影响。蓝牙还具有自动同
9、步、自动连网功能,支持各种设备之间的短距无线通信。一旦一台支持蓝牙通信的设备发现另一个同样支持蓝牙通信的设备,它便会自动连接,建立一种无线网络,不需要用户进行操作,很方便。此外,蓝牙模块价格便宜、体积小,功耗低。蓝牙模块处于待机模式时,已配对过的手机向蓝牙模块发送文件,未配对的手机需先进行配对,输入正确配对密码即可配对。且无论是处于待机状态还是工作状态,蓝牙模块的能耗几乎很少,正常的3V供电足够蓝牙模块工作很久。蓝牙模块体积小,且价格十分便宜,灵活方面,完全不占用家庭空间,完全适合家庭全面采用。我们可以想象这样一个画面出门远行的你,再也不用担心家里遭窃或因疏忽忘记关火关电的发生了。只要出现异常
10、情况,智能家居系统会通过蓝牙向家居设备发送指令,触发报警、关火、关电等指令;当你下班回家后,按一下手机设置的开关,所有你想要开启的家电设备会立马打开,再也不用一个一个的去找房间角落里的开关了;通过预先设置好的程序,温度检测模块会通过蓝牙发送数据到单片机控制芯片,由芯片自动作出反应是否关闭或开启空调等等。研究蓝牙无线技术可以很好的了解蓝牙通信,掌握智能家居的原理,争取追赶物联网技术的前沿,让我们的生活变得更聪明、更方便、更舒适。目前蓝牙无线技术已经应用的十分广泛了,最新的应用形式是“物联网”。早在很久以前,蓝牙耳机已经火遍大江南北了,如今,蓝牙鼠标,蓝牙键盘,蓝牙扫描仪,蓝牙遥控器,蓝牙网关、蓝
11、牙适配器等等等等,你有你想不到的,没有蓝牙做不到的,蓝牙早已渗透进我们的生活了。但是它还没有停止的意思,现XXX工业大学2015届本科生毕业设计(论文)4在很多智能家居、可穿戴设备,都是用蓝牙连接的;除此之外,还有许多新创新技术领域也用到了蓝牙技术,比如蓝牙生成密码门锁开门、家庭警报等等。毫无疑问,蓝牙技术是现在最流行的的、最方便的无线连接技术。目前蓝牙的最新版本为416,能够以增强的形式将数据传输给主机,为开发人员带来了更多的灵活性。早期的蓝牙都需要直接与主机通信,但现在的设备可以单独存储,然后再将数据反馈给主机。比如目前流行的计步器或是运动手环产品,如果使用了40及以下的蓝牙版本,需要分批
12、将数据发送到手机上,比较耗电;而41版本则能够存储数据,在完成操作后一并发送给手机,这是一个更高效的方式,减少对手机依赖的同时,还能够节省电力。这项功能对物联网设备也将产生巨大的影响,不过由于41版本在去年12月才正式发布,还需要时间来普及。尽管蓝牙技术有这么多强大的优势,但是目前也面临着巨大挑战,比如NFC和WIFI。首先是NFC,它的特点是更加方便,只要支持NFC的两个设备轻轻触碰一下,就可以立即连接,特别适合短距离点对点传输,这样就免去了蓝牙需要配对的麻烦,但也恰恰成了NFC的短板。只有达到4厘米左右的接触才可以实现连接,而蓝牙目前可以达到100米,因此它对于蓝牙几乎没有威胁。真正有威胁
13、就要数WIFI了。相比于NFC,WIFI没有距离限制,很多方面也与蓝牙类似,而且最高250MBPS的传输速率,并且在未来有望实现每秒2GB的数据传输速度,也是蓝牙无法匹及的,这也是目前WIFI大量运用的一大原因。那这样说,WIFI要取代蓝牙了吗目前来说,还没有。因为蓝牙有一项天然的优势,那就是低能耗,这也是WIFI的最大弊端,因此它不适合需要低能耗的设备。在这样看来,蓝牙的前景还是挺乐观的,在短期来看,WIFI仍然作为蓝牙的补充而出现,蓝牙的主体地位无可撼动。12整车设计思路遥控小车的工作模式如下图所示蓝牙模块获取上位机指令信号,信号输入到S12控制核心,进行进一步处理以判定结果;通过单片机串
14、口输出信号控制舵机的转向和电机的控制,通过PWM控制驱动电路调整电机的功率。XXX工业大学2015届本科生毕业设计(论文)5图11遥控小车模块及供电图13本文的主要工作本文主要采用三个章节来阐述此次毕业设计的过程及方法。第一章讲述的是遥控小车的硬件电路设计方案,而硬件电路又主要分为电源和电机两大部分。其中电机的驱动芯片选择是一个极其重要的事情,也是此次设计的重点之一。驱动芯片的选择决定着电路的设计,电路的设计又影响着程序的编写,因此首先决定好芯片是重中之重。而电源的降压及稳压芯片则都采用了AMS1117系列芯片,蓝牙模块直接购买了市场是的HC06从机模块。第二章讲述的是车体机械结构改装方案。车
15、体的改装是为了增加小车的耐用及稳定性,防止在大量的运行中容易损坏的现象的发生。第三章讲述的是软件程序的设计方案。为实现上位机与下位机的通信连接,我与队友进行了蓝牙通信协议的确定。并且力求下位机的程序短小、精悍、实用,不需要过多的花样功能,只求完美的运行遥控小车的基本功能,并且做到反应灵敏,不迟疑。XXX工业大学2015届本科生毕业设计(论文)6第二章开发环境、开发工具介绍前面几章一直是在为系统制定方案以及方案的细化。但整个系统的完善主要还是在系统的调试。在细分的每个模块中,大部分都涉及有众多参数,对这些参数的确定就需要软硬件联合调试。而这过程就需要一整套开发调试环境已工具。包括程序源代码的编辑
16、以编译环境,参数调节与设定工具。我的主要开发环境是METROWERKS公司专门为飞思卡尔S12系列芯片设的CODEWARRIORIDE,可从飞思卡尔半导体公司相关网页上下载到CW_S12_V51_SPECIALEXE。开发工具主要是ALTIUM公司推出的ALTIUMDESIGNER100专业制图软件。21系统硬件开发平台在制作小车的硬件部分时,为了让其更加稳定,我们采用了定做印刷电路板的方法,在画PCB时,我们使用的是ALTIUM公司推出的ALTIUMDESIGNER10专业制图软件,它是业界首例将设计流程、集成化PCB设计、可编程器件(如FPGA)设计和基于处理器设计的嵌入式软件开发功能整合
17、在一起的产品,具有将设计方案从概念转变为最终成品所需的全部功能。相比其早期产品PROTEL,它在性能和功能上都有很大提升,在小车制作过程中,我们使用它完成了大部分的硬件制作。在使用上,其界面美观,功能完善,使用起来十分方便,此外系统元件库集成了目前世界上绝大部分芯片厂商的大多数芯片的原理图和封装,我们所用的元件基本都能在这里找到,节约了不少时间和精力。画图时,首先新建一个工程项目,为该工程添加一个原理图文件,然后从画图框右边的LIBRARY库中找到需要的元件,将其拖到画图框,选择正确的封装。元件添加完毕后,再选择连线工具,将元件对应引脚连接起来即可,当在库中无法找到对应元件时,也可自己新建一个
18、原理图库,在实施起来也很方便。画完了原理图,再为该工程添加一PCB文件,在将原理图导入到PCB之前,设定好对应的布线规则,这样就能为以后的布线带来很多方便,并能自动检查出布线时的错误。做好这一切之后,其强大的布线能力就得以显现了,我们可以根据需要任意调整元件布局、修改走线宽度及焊盘与过孔尺寸等等。在画完图后,我们还可以通过规则检查发现一些图中隐藏的错误,使做出来的PCB板更加完美。211ALTIUMDESIGNER介绍ALTIUMDESIGNER即ALTIUMDESIGNERSUMMER,它提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。ALTIUMDESIGN
19、ER在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处XXX工业大学2015届本科生毕业设计(论文)7理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得ALTIUMDESIGNER成为电子产品开发的完整解决方案一个既满足当前,也满足未来开发需求的解决方案,它让我们能够在更短的“设计到制造”周期内生产更为尖端、更具创新性的电子产品。ALTIUMDESIGNER在开发上有以下主要特点(1)支持不依赖于FPGA厂商即各个厂商通用的数字系统开发;(2)丰富的原理图库,有大量的预综合元件,包括处理器;(3)在工程的设计和调试阶段都支持原理图导向设计方法;
20、(4)丰富的虚拟仪器;(5)方便在FPGA上设计嵌入式系统开发且设计者就可利用JTAG通信技术对任何核进行通信和控制;(6)支持软硬件并行开发,克服以往嵌入式系统软硬件开发的串行开发形式中的缺点,这种方法必将成为以后FPGA开发的主流方法;其界面大致如下所示图21ALTIUMDESIGNER100界面22系统软件开发平台作为小车灵魂的发源地,好的软件开发平台也很重要。我使用的软件开发平台为CODEWARRIOR51。作为由METROWERKS公司提供的专门面向FREESCALE所有MCU与DSP嵌入式应用开发的软件工具,主要包括了集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具
21、、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器等,在CODEWARRIOR软件中可以使用汇编语言或C语言,以及两种语言的混合编程。CODEWARRIORIDE能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执行你的程序。每个应用程序都经过了使用像CODEWARRIOR这样的开发工具进行编码、编译、编辑、链接和调试的过程。具体到比赛所应用MC9S12XS128的一个显著特点就是片上外围设备众多,每个外围设备XXX工业大学2015届本科生毕业设计(论文)8对应的寄存器也较多,有的甚至达到三十多个。
22、METROWERKSCODEWARRIORIDE中的MC9S12XS128H文件对所有寄存器对应的存储映射地址都进行了宏定义,开发者在软件开发时直接调用这些宏就可以了。这些宏的名称都与说明文档上相应寄存器的名称相同或类似,这样,很便于对MC9S12XS128的开发。CODEWARRIORIDE基本使用方法如下(1)运行“开始菜单所有程序METROWERKSCODEWARRIORCW12V31CODEWARRIORIDE”,选择“FILENEW”,出现如下的对话框此后选择MC9S12XS128,按照提示选取期望的选项。直至建立工程文。之所以要进行这个步骤是因为,初始化代码是认为程序中有监控程序的
23、,但是因为我们是使用的BDM调试工具,所以就不需要监控程序了。如果不注释掉这两条语句,一旦将程序烧写到片内的FLASH,会发现程序跑不起来,因为初始化过程在等待监控程序的响应,如果没有监控程序,那么程序就会进入死循环的状态。(2)添加代码将自己的代码加入到工程文件中。(3)如果文件编译通过,通过BDM下载。启动CODEWARRIOR自带的HIWAVEEXE程序,该程序一般位于CODEWARRIOR的安装目录“METROWERKSCWFORHCS12XVPROG”中,是用来往单片机下载程序和调试单片机的程序。221BDM调试介绍MOTOROLA微处理器的调试模块针对不应用同场合分别提供了3种调试
24、支持模式实时跟踪、BDM调试和实时调试。实时跟踪是要求能够跟踪应用程序的动态执行路径,这是实时系统的基本要求;在BDM调试方式下,处理器被停机,大量的命令可以被发送到处理器中访问内存和寄存器,外部仿真系统使用一个三脚、串行的双工通道与处理器通信;实时调试则可以不需要CPU停止运行,调试中断允许实时系统执行一个惟一的服务例程,快速保存主要的寄存器和变量等上下文内容,并使系统立即返回到正常操作,外部的开发系统能访问被保存的数据是因为硬件支持处理器和BDM初始化命令的一致性操作。其中BDM调试模式为设计人员提供了一种低层次的调试手段,让用户能够中断CPU的运行,单步调试程序,读取CPU的各个寄存器的
25、内容,这些仅仅是通过向CPU发送几个简单的命令就可以实现,显然,这样使调试软件的设计很简单,通常自己就可以编写。硬件调试卡的设计也非常简单,关键是要满足好通信时序关系和电平转换要求。222CODEWARRIORIDE的安装与使用从网站上下载到的其实是一个压缩包,双击安装时它会先解压安装文件到CDOCUMENTSANDSETTINGSADMINISTRATORLOCALSETTINGSTEMPCODEWARRIORFORS12XV50文件夹中,再运行其中的SETUPEXE文件。我们的思想全靠C语言代码来实现,CODEWARRIORIDE集成代码编辑工具,XXX工业大学2015届本科生毕业设计(论
26、文)9工程编译工具以及目标芯片下载与调试工具。与开发其它单片机一样,使用CODEWARRIORIDE开发MC9S12DG128先要创建工程,下面是我们使用CODEWARRIORIDE的一个实例。工程的创建打开CODEWARRIORIDE,创建一个新工程,界面如图22所示。图22利用CODEWARRIORIDE创建一个工程选择目标芯片型号以及芯片与电脑的连接方式,这里选择MC9S12XS128以及“TBDML”项,如图23所示。图23选择目标芯片及连接方式选择程序编写所用语言,以及填写创建的工程名和保存路径,如图24所示。XXX工业大学2015届本科生毕业设计(论文)10图24选择工程编写所用语
27、言及保存路径接下来的以默认设置直到完成。完成之后,会出现工程文件管理窗口,如图25所示。图25成功创建一个工程223程序源代码的编辑、编译与链接在MAINC中提示“/PUTYOUROWNCODEHERE/”的地方输入源代码。完成之后,点击(MAKE)按钮,完成编译与链接。编译好后,会出现“ERRORS/中断置位标志UNSIGNEDCHARREV_DATA/接收数据UNSIGNEDINTF_SPEED11200,F_SPEED20/小车前进速度UNSIGNEDINTB_SPEED10,B_SPEED21200/小车倒车速度UNSIGNEDDIRECT3000/舵机回正VOIDSTOPVOID/停
28、车函数VOIDFORWARDVOID/前进函数VOIDBACKWARDVOID/倒车函数VOIDLEFTVOID/左转函数VOIDRIGHTVOID/右转函数VOIDMIDDLEVOID/舵机回正函数VOIDMAINALL_INIT/所有模块初始化PORTB0XFF/IO口置高电平ENABLEINTERRUPTSWHILE1IFG_FLAG1/接收前进函数指令FORWARDELSEIFG_FLAG0/接收停车指令STOPELSEIFG_FLAG2/接收倒车指令BACKWARDFOR_FEED_COP/FEEDSTHEDOG/LOOPFOREVER/PLEASEMAKESURETHATYOUNE
29、VERLEAVEMAIN/VOIDSTOP/停车函数XXX工业大学2015届本科生毕业设计(论文)33PWMDTY010PWMDTY230DIRECT3000VOIDFORWARD/前进函数PWMDTY01F_SPEED1PWMDTY23F_SPEED2VOIDBACKWARD/倒车函数PWMDTY01B_SPEED1PWMDTY23B_SPEED2VOIDLEFT/左转函数DIRECT2700VOIDRIGHT/右转函数DIRECT3300VOIDMIDDLE/舵机回正函数DIRECT3000/接收中断函数/PRAGMACODE_SEGNON_BANKEDVOIDINTERRUPT20SCI
30、0_REVOIDREV_DATASCIREAD/接收串口数据/SCIWRITEREV_DATAPORTB0XF0/IO口置低电平信号灯亮SWITCHREV_DATACASE'A'/前进G_FLAG1BREAKXXX工业大学2015届本科生毕业设计(论文)34CASE'A'/停车G_FLAG0BREAKCASE'B'/倒车G_FLAG2BREAKCASE'C'/左转LEFTBREAKCASE'C'/舵机回正MIDDLEBREAKCASE'D'/右转RIGHTBREAKCASE'D'/舵
31、机回正MIDDLEBREAKXXX工业大学2015届本科生毕业设计(论文)35致谢我历时将近两个月时间终于把这篇论文写完了,在这段充满奋斗的历程中,带给我的学生生涯无限的激情和收获。在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。在校图书馆查找资料的时候,图书馆的老师给我提供了很多方面的支持与帮助,尤其要强烈感谢我的论文指导老师XXXX老师,他和蔼可亲、平易近人让人感到无比的温暖。他严谨的治学态度和扎实的专业知识令我受益匪浅,没有她对我进行了不厌其烦的指导和帮助,无私的为我进行论文的修改和改进,就没有我这篇论文的最终完成。在此,我向指导老师表示最衷心的感谢同时还要感谢齐鲁工业大学所有帮助过我的老师们,感谢他们对我的关爱和支持,使我顺利完成了大学四年的学业。同时,我也要感谢本论文所引用的各位学者的专著,如果没有这些学者的研究成果的启发和帮助,我将无法完成本篇论文的最终写作。至此,我也要感谢我的朋友和同学,他们在我写论文的过程中给予我了很多有用的材,也在论文的排版和撰写过程中提供热情的帮助金无足赤,人无完人。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和同学批评和指正