版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEI/NUMPAGES32嵌入式系统硬件设计课程设计报告书指导老师姓名学号院系机械设计制造及其自动化班级机械电子完成时间嵌入式硬件系统设计课程设计报告摘要嵌入式系统已经广泛应用于生产生活的方方面面,从电磁炉到机器人控制,从电子玩具到智能手机,都离不开嵌入式系统的应用。本报告主要记录了在《嵌入式硬件系统》课程中的所学所感。关键词:嵌入式系统,PCB焊接,AltiumDesigner,51单片机目录1概述 41.1本课程主要教学内容 41.2嵌入式硬件系统简介 41.3本报告结构安排 42PCB焊接练习 52.1元器件符号的认识 52.1.1了解元器件的尺寸 52.1.2常见电路图元件符号 52.1.3常见元器件实物 52.1.4认识元器件参数 62.2元器件封装的认识 72.2.1实物封装 72.2.2封装尺寸介绍 72.3焊接方法 82.3.1焊接工具介绍 82.3.2焊接要求 82.3.3焊接过程中遇到的问题及解决方法 83电路原理图设计 93.1电路功能分析 93.1.151单片机 93.1.2LED 93.1.3外部晶振 93.1.4复位电路 93.1.5报警器 93.1.6CH340G 93.1.7USB 93.1.824C02CT-E 93.1.9数码管 93.2原理图设计 103.2.1原理图设计软件 103.2.2原理图设计要求 103.3PCB设计 103.3.1原理图导入 103.3.2设置PCB尺寸大小 113.3.3布局 113.3.4布线 113.3.5覆铜 113.3.6检查 113.4设计过程中遇到的问题及解决方法 114PCB焊接及调试 134.1焊接过程中遇到的问题 134.2调试过程 134.2.2调试过程遇到的问题 135项目任务书 145.1任务书 145.2项目可行性分析 146项目装置设计制作及调试 156.1装置结构设计 156.2硬件设计 156.2.1电机选择 156.2.2开关选择 156.2.3单片机类型选择 166.2.4WIFI模块选择 166.3算法流程 176.4运行代码 176.5装置制作及调试 176.5.1盒子的制作 176.5.2ESP8266调试 187结语 19参考文献 20谢辞 21附录(程序) 221概述1.1本课程主要教学内容本课程由浅入深,主要讲授怎样设计运用一套完整的嵌入式系统。首先掌握基本工具及元件使用方法,如认识元器件、焊接技巧学习、AD软件使用等;其次学习嵌入式系统的基本知识,学习如何设计一个基本的嵌入式系统;最后自主设计一套完整的实用的嵌入式系统。1.2嵌入式硬件系统简介嵌入式系统(Embeddedsystem),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会(U.K.InstitutionofElectricalEngineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。 嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。1.3本报告结构安排第二章为PCB焊接练习,介绍元器件的认识,及PCB焊接过程中遇到的困难。第三章为电路原理图设计,介绍了原理图各部分的功能第四章为PCB设计及制作,介绍PCB电路的绘制过程,及遇到的问题和解决方法。第五章为项目要求,描述了项目任务书及项目可行性。第六章为项目制作及调试,介绍了项目的制作过程。2PCB焊接练习2.1元器件符号的认识2.1.1了解元器件的尺寸元器件及线的粗细尺寸单位通常是mil。1mil=0.0254mm.2.1.2常见电路图元件符号图2.1常见电路图元件2.1.3常见元器件实物图2.2常见元器件实物2.1.4认识元器件参数A.参数表示方法a.直接表示直接表示法是指将电阻标称值用数字和文字符号直接写在电阻体上,其允许偏差则用百分数表示。直接表示法通常仅用于体积尺寸较大的对象上,目前很少使用。b.色环标识使用4至5个彩色环表示阻值。普通色环电阻器用4环表示,精密电阻用5环表示,电阻体一端头色环为第一环,另一端头为末环,末环通常表示偏差率。色环表示一般用在直插电阻体上。图2.3色环标识c.数码表示使用3位数表示阻值。从左至右第1、2位表示有效数字,第3位表示10的幂次。通常用于贴片电阻及电容。2.2元器件封装的认识2.2.1实物封装通常用封装类型来表示元器件的形状及尺寸。图2.4实物封装2.2.2封装尺寸介绍表2.1封装尺寸介绍英制公制长宽高02010603040210051.000.50.30060316081.600.80.40080520122.001.250.50120632163.201.600.55121032253.202.500.55181248324.503.200.55201050255.002.500.55251264326.403.200.552.3焊接方法2.3.1焊接工具介绍220V,60W焊笔、0.4mm焊锡、松香、镊子、放大镜、吸锡线等。2.3.2焊接要求A.焊接时焊缝要求平滑,不得有虚焊等焊接缺陷,发现缺陷及时修补。B.选取合理的焊接顺序可以提高焊接效率。C.在焊接某些元件时应注意焊接时间不能过长,例如LED灯,否则容易损坏元器件。2.3.3焊接过程中遇到的问题及解决方法A.焊接过程中注意二极管的正负极不要接反。B.如果芯片的两个引脚不小心焊接到一起,可以用吸锡线吸取多于的焊锡。C.焊接完成后,上电LED不亮,有可能LED方向接反,有可能焊锡不够导致接触不良,也有可能焊接时间太长致使LED损坏。D.焊接引脚比较多的元器件的时候,可以先把对角的两个引脚焊好进行固定。图2.5焊接练习板3电路原理图设计3.1电路功能分析 3.1.151单片机单片机又称单片微型计算机,内部集成了微处理器、存储器等各种芯片,起控制作用,是电路中最重要的部分。3.1.2LEDD1-D8接单片机P0口,通过控制P0口输出电平的高低控制LED的亮灭,D9负极接地,可以显示单片机是否已经上电工作;每个发光二极管都串联了限流电阻,防止电流过大被烧坏。3.1.3外部晶振单片机的XTAL1和XTAL2引脚连接外部晶振,用来为电路提供振荡和准确的时钟信号。3.1.4复位电路单片机RST引脚接复位电路,按下按键可使单片机复位。3.1.5报警器报警器通过J1与单片机相连,J1引脚1与三极管基极相连,引脚2与单片机P3.6相连。通过跳线帽连接引脚1与引脚2,当单片机P3.6输出高电平时即可启动报警器。3.1.6CH340GCH340G是一个USB总线的转接芯片,实现USB转串口的功能。RXD、TXD用于接收、发射信号。3.1.7USBUSB用于与计算机连接向单片机传输数据,同时可以为电路供电。D-、D+为数据传输线。3.1.824C02CT-E24C02CT-E是EEPROM(带电可擦除可编程)存储芯片,掉电后数据不丢失。SDA为数据线,SCL为时钟信号线,用于与单片机之间数据的发送和接收。3.1.9数码管电路中加入了四位共阳极数码管,公共端单片机P10-P14连接,由于单片机输出电流很小,不足以驱动数码管,所以需要加三极管对对电流进行放大,三极管基极串联电阻进行限流;数码管负极接地,串联电阻进行限流。3.2原理图设计3.2.1原理图设计软件AltiumDesigner是原Prote软件开发商ALitum公司推出的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整新分析和设计输出技术完美融合。本次使用AD软件进行原理图的设计绘制。图3.1原理图3.2.2原理图设计要求A.图幅。常用图幅为A4、A3、A2,并有标准格式的图框。B.规范网络标号命名。标号命名要对其功能有一定启示作用。命名统一使用英文大写格式。C.不使用的管脚使用“×”。D.在画原理图时,电源的符号上下要一致,便于理解。E.版面布局需要注意电路结构的易读性,可以将电路按照功能划分为几个部分,合理、均衡的布局。F.一个项目比较复杂时,元件比较多,可以分成几张图纸画,每张图纸里包含一个或者几个功能电路。3.3PCB设计3.3.1原理图导入原理图画好后,新建PCB工程,将各元件导入PCB工程。3.3.2设置PCB尺寸大小DesignBoardShapeRedefineBoardShape.尺寸不大于10cmx10cm3.3.3布局将各元件拖动到PCB范围内,按照功能模块布置,方便布线。3.3.4布线采用手动布线,分TopLayer和BottomLayer两层。布线过程中对元件的摆放位置及方向进行适当调整,防止线有过多交叉。3.3.5覆铜覆铜由一系列的导线组成,可以完成电路内不规则区域的填充。在绘制PCB图时,覆铜主要是指把空余没有走线的部分用导线全部布满。用铜箔铺满部分区域和电路的一个网络相连,多数情况是和GND网络相连。单面电路板覆铜可以提高电路的刚干扰能力,且PCB板会比较美观;同时,通过大电流的导电通路也可以采用覆铜的方法加大过电流的能力。单机工具栏中的不规则多边形图标,在弹出窗口中选择连接GND网络,层面设置为BottomLayer,点击确定。选中要覆铜的区域,完成覆铜。同样的步骤给TopLayer覆铜。3.3.6检查PCB绘制结束后,可以切换到3D模式,观察是否有元件摆放位置过近,适当进行调整。图3.2PCB设计3.4设计过程中遇到的问题及解决方法3.4.1原理图设计过程中,引脚标号用net格式标注才能实现相同标号的引脚电器连接。开始用的txt格式,后经同学指出后改正。3.4.2PCB元件布置过程中发现有若干元件没有封装(例:LEDD1-D9)。回到原理图,双击D1,在弹出窗口中,ModelsEditBrowse选择合适的封装R0805OK。然后将更改后的信息更新到PCB中,DesignUpdatePCBDocumentExecuteChanges.3.4.3PCB布线过程中发现不得不交叉,于是采用过孔via连接上下层的线。一开始将pad和via弄混淆,pad是焊盘,也叫插件孔,用于放置插接件;via是过孔,用于上下两层的电器连接。4PCB焊接及调试4.1焊接过程中遇到的问题A.单片机芯片的引脚太密集,焊接过程不小心将两个引脚焊在一起,用吸锡线浸松香后可将多余的焊锡吸去。B.若干电容有正负极之分,焊接时没有注意焊反了,用热风枪吹下后重新焊接。C.焊完调试时,发现程序不能烧录,原因是USB接口虚焊,补焊后成功烧录。4.2调试过程4.2.1程序烧录烧录程序采用的是STC的官方烧录软件STC-isp,选择对应的芯片型号。开始下载程序时要对单片机重新上电。4.2.2调试过程遇到的问题A.初次下载程序时一直下载失败,检查后发现是USB接口有引脚虚焊,补锡后可成功下载程序。B.调试时要注意插好对应的跳线帽。C.调试数码管时,有一个数码管不亮,查找原因是有一个引脚虚焊,补一些焊锡之后可以正常亮。图4.1PCB焊接板5项目任务书5.1任务书本项目拟制作一个玩具盒子,主要功能如下:(1)外界触发开关后,盒盖可以自动开闭;(2)开关被触发后,盒子内部要伸出一只“小手”将开关拨回原位;(3)开关被触发后,盒子每次的反应都要略有不同;(4)可以通过手机触发开关。5.2项目可行性分析本项目比较简单,灵感来自于微博上的“无聊盒子”及“偷钱猫存钱罐”。采用单片机驱动舵机就可以实现大部分功能。6项目装置设计制作及调试6.1装置结构设计 采用一个舵机控制盒盖的开闭,一个舵机控制手臂。图6.1装置结构设计6.2硬件设计6.2.1电机选择控制盒盖开关的采用辉盛99的塑料尺舵机,控制手臂的采用辉盛996的金属齿舵机。图6.2舵机6.2.2开关选择按照网络例程选用摇头开关。图6.3摇头开关6.2.3单片机类型选择选用STC15W4K56S4单片机。 6.2.4WIFI模块选择 选用ESP8266模块。图6.4ESP8266模块6.3算法流程图6.5算法流程6.4运行代码 见附件。6.5装置制作及调试 6.5.1盒子的制作盒子材料采用3mm厚的木板,轻巧且易于加工。盒子尺寸为15×15×10cm,盒体用热熔胶粘接,盒盖与盒体之间用金属合叶连接。 手臂部分采用solidworks建模后,有3D打印成型。图6.6.实物装置 6.5.2ESP8266调试A.在单片机中烧录进WIFItoUSB程序后与电脑相连,发现串口无法接受到数据,经多次实验查找,问题出在单片机与电脑相连的数据线上,换用新线或者ESP直接通过USB转串口模块与电脑相连可以正常收发数据。B.让单片机自动设置ESP模块的模式时,程序语句都是正确的,但是上电之后发现手机无法与WIFI模块连接,多次调试之后发现是发送AT指令的延时太短,ESP模块反映不过来,延长延时间隔后,手机可以正常与ESP连接并收发数据。C.使用PWM波控制舵机角度,舵机的正负电源线以及信号控制线都连接在单片机上,但是舵机不按程序写定的角度转动,经同学帮忙查看后发现是供电电压不足,采用外接电源后舵机可正常工作。D.手机连接ESP的WIFI信号后,通过网络调试助手与端口连接时,出现一连接好马上就又断开的问题,多次调试后发现是因为其他的WIFI信号干扰太强。7结语本学期通过《嵌入式系统硬件设计》这门课程确实学到了不少东西,比如学会AltiumDesigner的使用,学会原理图和PCB的设计绘制,了解了STC系列单片机的基本编程知识等等。同时也认识到一个装置从设计完成到做出实物之间有很多工作要做,制作过程往往会遇到许多预料不到的困难,所以我们不能眼高手低,有想法就要实际动手做一做,在制作时中通过发现问题解决问题的过程可以学到很多平时注意不到的东西。除了学到很多专业知识外,还磨砺了自己的性格。从一开始的程序调不通就烦躁的想砸电脑,到后面的出现问题可以相对冷静的分析解决,这个过程中通过不断的自我反省一直在进步,我相信这种进步在生活中也是十分有帮助的。参考文献郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009李瑞,耿立明.AltiumDesigner14电路设计与仿真从入门到精通[M].北京:人民邮电出版社,2014.百度百科[DB/OL].Y野—狼L.Use-Less-box,木制无聊盒子制作.[DB/OL].(2014.2.22)[2016.6.10]./p/2881467224?pn=2huqin.机器人教程2:舵机及转向控制原理.[DB/OL].(2013.12.31)[2016.6.13]./mcu/2672.html记忆之墙.STC15W4K3S4系列定时器T0定时器输出时钟.[DB/OL].(2016.3.9)[2016.6.13]./wtarticle/details/50832755214409622.ESP8266.模块和电脑通信.[DB/OL].(2015.3.10)[2016.6.10]./article/c45ad29c346837051753e2e6.html[8]heicc.Uart-WiFi模块ESP8266把玩记(附51单片机程序).[DB/OL].(2015.1.5)[2016.6.10]./bbs/dpj-30277-1.html.谢辞这次课程设计是我第一次独自完成从硬件到编程的所有主要工作。在这个过程中,感谢老师的指导及精神上的激励,同时也要感谢杨、董、卡等同学在硬件制作和软件编程过程中给予的大力帮助。附录(程序)#include"STC15F2K60S2.h"#defineucharunsignedchar#defineuintunsignedint#defineMCU_FREQ11059200L//延时#defineUART_BUAD115200#defineS2RI0X01#defineS2TI0x02sbitled=P2^1;bitbusy1,busy2;bitr1flag,r2flag;unsignedcharr1char,r2char;//串口调试程序sbitkey=P2^4;sbitpwmpin1=P3^6;//定义PWM1输出端口sbitpwmpin2=P3^7;//定义PWM2输出端口sbitmp3=P2^3;ucharpwm1,pwm2;ucharf=0;ucharcount=0;//pwm程序//voidon();//voidoff();voidsetwifi();//设置ESP模式voiduartInit(void);//串口初始化voiduart1SendData(unsignedcharucData);//串口1发送字符函数voiduart2SendData(unsignedcharucData);//串口2发送字符函数voiduart1SendString(char*pS);//串口1发送字符串函数voiduart2SendString(char*pS);//串口2发送字符串函数voiddelay(intxms); //延时函数//串口调试函数voidmov1();voidmov2();voidmov3();voidmov4();voidmov5();voidkeyscan();//检测摇头开关voidTime0_Init();//定时器0初始化//舵机控制函数voidmain(){P0M0=0x00;P0M1=0x00;P1M0=0x00;P1M1=0x00;P2M0=0x00;P2M1=0x00;P3M0=0xff;P3M1=0x00;P4M0=0x00;P4M1=0x00;P5M0=0x00;P5M1=0x00; P1|=0x3C;//0b00111100//SetESP8266pins3,4,5,6tohigh. uartInit();//串口初始化 Time0_Init();//定时器0初始化 delay(5000); setwifi();//设置WIFI模式参数,连接网络 delay(5000); while(1) { if(r1flag==1){//如果串口1接受到数据,则发送给串口2 uart2SendData(r1char); r1flag=0; } if(r2flag==1){//如果串口2接受到数据,则发送给串口1 uart1SendData(r2char); r2flag=0; } keyscan(); switch(r2char)//判断串口2接受到的数据 { case'1':mov1();break; case'2':mov2();break; case'3':mov3();break; case'4':mov4();break; case'5':mov5();break; } //r2char='0'; } }/************************************************/voidTime0_Init()//定时器0初始化{ TMOD|=0x01; IE|=0x82; TH0=(65536-459)/256; TL0=(65536-459)%256;//定时5ms TR0=1;}voidkeyscan()//检测摇头开关{ if(key==0) { delay(10); if(key==0) { if(f==5) { f=0; } f=f+1; switch(f) { case1:mov1();break; case2:mov2();break; case3:mov3();break; case4:mov4();break; case5:mov5();break; //default; } while(!key); } }}voidTime0_Int()interrupt1 //定时器0中断程序{ TH0=(65536-459)/256; TL0=(65536-459)%256;// if(count<pwm1) // pwmpin1=1; // else pwmpin1=0; if(count<pwm2) // pwmpin2=1; // else pwmpin2=0; // count=(count+1); // count=count%40; //}voidmov1(){ delay(800); led=0; mp3=0; delay(500); mp3=1; delay(1000); pwm1=2; delay(1000); pwm2=1; delay(1200); pwm2=4; delay(1000); pwm1=1; r2char='0';}voidmov2(){ delay(800); led=1; pwm1=2; mp3=0; delay(500); mp3=1; delay(1000); pwm1=1; delay(1000); pwm2=1; delay(1200); pwm2=4; r2char='0';}voidmov3(){ delay(800); led=0; delay(1000); pwm1=2; delay(1000); mp3=0; delay(500); mp3=1; pwm2=1; delay(1200); pwm2=4; delay(1000); pwm1=1; r2char='0';}voidmov4(){ delay(800); led=1; pwm1=2; mp3=0; delay(500); mp3=1; pwm1=1; delay(1000); pwm1=2; delay(1000); pwm1=1; delay(1000); pwm2=1; delay(1200); pwm2=4; r2char='0';}voidmov5(){ delay(800); led=0; pwm1=2; delay(1000); pwm1=1; delay(2000); pwm1=2; mp3=0; delay(500); mp3=1; pwm1=1; delay(1000); pwm2=1; delay(1200); pwm2=4; delay(1200); pwm2=1; delay(1200); pwm2=4; delay(800); r2char='0';}/************************************************/voidsetwifi(){uart2SendString("AT+CWMODE=3\r\n");//AP模式,串口2delay(1000);//uart2SendString("AT+CWSAP=\"ZHULL\",\"19941126\",1,3\r\n");//连接无线网,串口2//delay();uart2SendString("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论