嵌入式系统硬件设计.docx

上传人:b****8 文档编号:10620302 上传时间:2023-02-21 格式:DOCX 页数:29 大小:1.44MB
下载 相关 举报
嵌入式系统硬件设计.docx_第1页
第1页 / 共29页
嵌入式系统硬件设计.docx_第2页
第2页 / 共29页
嵌入式系统硬件设计.docx_第3页
第3页 / 共29页
嵌入式系统硬件设计.docx_第4页
第4页 / 共29页
嵌入式系统硬件设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

嵌入式系统硬件设计.docx

《嵌入式系统硬件设计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统硬件设计.docx(29页珍藏版)》请在冰豆网上搜索。

嵌入式系统硬件设计.docx

嵌入式系统硬件设计

 

嵌入式系统硬件设计

课程设计报告书

 

指导老师

学号

院系机械设计制造及其自动化

班级机械电子

完成时间

 

嵌入式硬件系统设计课程设计报告

摘要

嵌入式系统已经广泛应用于生产生活的方方面面,从电磁炉到机器人控制,从电子玩具到智能手机,都离不开嵌入式系统的应用。

本报告主要记录了在《嵌入式硬件系统》课程中的所学所感。

关键词:

嵌入式系统,PCB焊接,AltiumDesigner,51单片机

 

1概述

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封装尺寸介绍

英制

公制

0201

0603

0.6

0.3

0.23

0402

1005

1.00

0.5

0.30

0603

1608

1.60

0.8

0.40

0805

2012

2.00

1.25

0.50

1206

3216

3.20

1.60

0.55

1210

3225

3.20

2.50

0.55

1812

4832

4.50

3.20

0.55

2010

5025

5.00

2.50

0.55

2512

6432

6.40

3.20

0.55

2.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.2LED

D1-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.6CH340G

CH340G是一个USB总线的转接芯片,实现USB转串口的功能。

RXD、TXD用于接收、发射信号。

3.1.7USB

USB用于与计算机连接向单片机传输数据,同时可以为电路供电。

D-、D+为数据传输线。

3.1.824C02CT-E

24C02CT-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尺寸大小

Design---BoardShape---RedefineBoardShape.尺寸不大于10cmx10cm

3.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,在弹出窗口中,ModelsEdit---Browse----选择合适的封装R0805---OK。

然后将更改后的信息更新到PCB中,Design---UpdatePCBDocument---ExecuteChanges.

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系列单片机的基本编程知识等等。

同时也认识到一个装置从设计完成到做出实物之间有很多工作要做,制作过程往往会遇到许多预料不到的困难,所以我们不能眼高手低,有想法就要实际动手做一做,在制作时过发现问题解决问题的过程可以学到很多平时注意不到的东西。

除了学到很多专业知识外,还磨砺了自己的性格。

从一开始的程序调不通就烦躁的想砸电脑,到后面的出现问题可以相对冷静的分析解决,这个过程过不断的自我反省一直在进步,我相信这种进步在生活中也是十分有帮助的。

 

参考文献

[1]郭天祥.新概念51单片机C语言教程[M].:

电子工业,2009

[2]瑞,耿立明.AltiumDesigner14电路设计与仿真从入门到精通[M].:

人民邮电,2014.

[3]XX百科[DB/OL].

[4]Y野—狼L.Use-Less-box,木制无聊盒子制作.[DB/OL].(2014.2.22)[2016.6.10].tieba.baidu./p/2881467224?

pn=2

[5]huqin.机器人教程2:

舵机及转向控制原理.[DB/OL].(2013.12.31)[2016.6.13]..51hei./mcu/2672.html

[6]记忆之墙.STC15W4K3S4系列定时器T0定时器输出时钟.[DB/OL].(2016.3.9)[2016.6.13]

[7]214409622.ESP8266.模块和电脑通信.[DB/OL].(2015.3.10)[2016.6.10].

jingyan.baidu./article/c45ad29c3e2e6.html

[8]heicc.Uart-WiFi模块ESP8266把玩记(附51单片机程序).[DB/OL].(2015.1.5)[2016.6.10]..51hei./bbs/dpj-30277-1.html.

这次课程设计是我第一次独自完成从硬件到编程的所有主要工作。

在这个过程中,感老师的指导及精神上的激励,同时也要感、董、卡等同学在硬件制作和软件编程过程中给予的大力帮助。

 

附录(程序)

#include"STC15F2K60S2.h"

#defineucharunsignedchar

#defineuintunsignedint

#defineMCU_FREQ11059200L//延时

#defineUART_BUAD115200

#defineS2RI0X01

#defineS2TI0x02

sbitled=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

pwmpin1=1;//

else

pwmpin1=0;

if(count

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);

mp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1