多业务路由器的时钟电路的设计挑战Word文档格式.docx
《多业务路由器的时钟电路的设计挑战Word文档格式.docx》由会员分享,可在线阅读,更多相关《多业务路由器的时钟电路的设计挑战Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
同时也对温度的影响也采取了相应的措施,以增加测量的精确度。
采用四节干电池串联做电源,功率上达到设计要求,并且是很好的稳定的直流电源,避免的电网电源转化时出现的电流不稳定现象,一定程度上降低了电路的复杂程度。
LED与蜂鸣器的设计发挥了安全的报警作用,有较强的实用性,为系统的人性化设计增添了色彩。
总体设计框图如图2.2
图2.2智能避障小车整体设计
第3章系统硬件电路设计
3.1主控单元设计
3.1.1主控芯片的介绍
引脚功能
本次的设计采用的是AT89S52单片机,它有44个引脚PLCC和TQFP方形封装形式,40个引脚的双列直插式封装形式,最常用的是40个引脚的双列直插式封装形式,各个引脚功能说明如图3.1
图3.1AT89S52单片机的引脚
VCC:
电源,接+5V
GND:
接地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3-1所示。
在flash编程和校验时,P1口接收低8位地址字节。
表3-1AT89S52单片机P1口第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用,如表3-2所示。
在flash编程和校验时,P3口也接收一些控制信号。
表3-289S52单片机P3口第二功能
P3.0
RXD(串行输入线)
P3.1
TXD(串行输出线)
P3.2
(外部中断0输入线)
P3.3
P3.4
T0(定时器0外部计数脉冲输入)
P3.5
T1(定时器1外部计数脉冲输入)
P3.6
(外部数据存储器写选通信号输出)
P3.7
RST:
复位输入。
晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(
)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可以用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据存储器时,
将不被激活。
/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
为了执行内部程序指令,
应该接VCC。
在flash编程期间,
也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
存储器结构
AT89S52器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64KB寻址。
程序存储器:
如果
引脚接地,程序读取只从外部存储器开始。
对于89S52,如果
接VCC,读写程序先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
例如,下面的直接寻址指令访问0A0H(P2口)存储单元
MOV0A0H,#data
使用间接寻址方式访问高128字节RAM。
例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。
MOV@R0,#data
堆栈操作也是间接寻址方式。
因此,高128字节数据RAM也可用于堆栈空间。
定时器
1.MCS-51系列中51子系列有两个16位的可编程定时/计数器:
定时/计数器T0和定时/计数器T1,52子系列有三个,还有一个定时/计数器T2。
2.每个定时/计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。
3.每个定时/计数器都有多种工作方式,其中T0有四种工作方式;
T1有三种工作方式,T2有三种工作方式。
通过编程设置其方式寄存器TMOD可设定定时器工作于某种方式,方式寄存器TMOD格式见表3-3。
表3-3定时/计数器的方式寄存器TMOD
GATE
C/
M1
M2
门控
开/关
计数/定时
方式选择
T1T0
GATE:
门控信号。
GATE=0,TRx=1时即可启动定时器/计数器工作,是一种自启动的方式;
GATE=1,TRx=1,
=1时才可启动定时器/计数器工作。
即是
引脚加高电平启动,是一种外启动方式。
定时或计数方式选择位,当C/
=1时工作于计数方式;
当C/
=0时工作于定时方式。
M1、M0:
为工作方式选择位,定时器/计数器的四种工作方式由M1M0设定,设定情况见表3-4。
表3-4M1M0的设定
M0
工作方式
方式说明
13位定时/计数器
1
16位定时/计数器
2
8位自动重置定时/计数器
3
T0为两个8位定时/计数器
4.每一个定时/计数器定时计数时间到时产生溢出,使控制寄存器TCON中相应的溢出位置位,溢出可通过查询或中断方式处理,控制寄存器格式见表3-5。
表3-5定时/计数器的控制寄存器TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
T1请求有/无
T1工作启/停
T0请求有/无
T0工作启/停
INT1请求有/无
INT1方式下沿/低电平
INT0请求有/无
INT0方式下沿/低电平
其中:
TF1:
定时/计数器T1的溢出标志位,当定时/计数器T1计满时,由硬件使它置位,如中断允许则触发T1中断。
进入中断处理后由内部硬件电路自动清除。
TR1:
定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时启动;
TR1=0时停止。
TF0:
定时/计数器T0的溢出标志位,当定时/计数器T0计满时,由硬件使它置位,如中断允许则触发T0中断。
TR0:
定时/计数器T0的启动位,可由软件置位或清零,当TR0=1时启动;
TR0=0时停止。
中断
AT89S52有6个中断源:
两个外部中断(
和
),三个定时中断(定时器0、1、2)和一个串行中断。
每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。
IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。
如表3-6所示,IE.6位是不可以用的。
它们为AT89系列新产品预留。
定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。
程序进入中断服务后,这些标志位都可以由硬件清0。
实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。
定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。
它们的值一直到下一个周期被电路捕捉下来。
然而,定时器2的标志位TF2在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。
表3-6中断允许控制寄存器(IE)
(MSB)(LSB)
EA
--
ET2
ES
ET1
EX1
ET0
EX0
EA:
中断允许总控位。
EA=0,屏蔽所有的中断请求;
EA=1,开放中断。
ET2:
定时器/计数器T2的溢出中断允许位
ES:
串行口中断允许位。
ET1:
定时器/计数器T1的溢出中断允许位。
EX1:
外部中断INT1的中断允许位。
ET0:
定时器/计数器T0的溢出中断允许位。
EX0:
外部中断INT0的中断允许位。
3.1.2最小系统
复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
一般微机电路正常工作需要供电电源为5V±
5%,即4.75~5.25V。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
图3.2复位电路
震荡电路
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它会组成并联谐振电路。
这个并联谐振电路加到一个负反馈电路中就波振荡电路,由于晶振等效为电感频率范围很窄所以即使其它参数元件很大,这个震荡器的频率也不会有很大变化。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。
图3.3晶振电路
最小系统整体图见附录一
3.1.3电源设计
稳压电源是单片机控制系统的重要组成部分,它不仅为测控系统提供多路电源电压,还直接影响到系统的技术指标和抗干扰性能。
近年来,传统的线性稳压电源正逐步被高有效率的开关电源所取代,特别是单片开关电源的迅速推广应用,为设计新型、高效、节能电源创造了良好的条件[13]。
本机采用的是5v的电源,预计用干电池供电。
3.2测距单元的设计
3.2.1设计要求
本次设计的测距单元主要采用超声波传感器模块GH-311,达到基本的测距功能。
3.2.2超声波测距的基本原理
超声波是高于听觉频率阈值的机械波,其频率在104Hz~1012Hz之间。
超声波具有直线传播特性,频率越高,反射能力越强,而绕射能力越弱,表现出更强的方向性。
利用超声波的这种特性,采用时间差值检测法(常称渡越时间检测法)进行距离的测量。
其工作原理是:
声波发射探头向介质发射超声波,声波遇到目标后有反射回波作用到接收探头,测量发射时刻与接收时刻的时间差t,然后根据以下公式计算距离s:
s=ct/2(3-1)
其中c为超声波在介质中的传播速度(m/s)。
由于超声波在空气中传播速度与温度有关。
如果环境温度变化显著,必须考虑温度补偿的问题。
空气中的声速c与温度T(单位:
°
C)的关系可以表示为:
c≈331.45+0.607T(3-2)
3.2.3硬件系统的电路设计
硬件系统主要有ATMEL公司生产的AT89S52单片机、升压电路、功率放大电路、超声波发射探头、接收探头、接收信号放大电路、比较电路等组成。
AT89S52单片机为整个系统的核心部件,主要用来产生200KHz发射信号,同时也用来接收超声波回波信号并进行计算,AT89S52的外部时钟源采用24MHz晶振,有利于产生200KHz超声波。
200KHz信号经三极管放大后,驱动超声波发射探头;
每次发射10个脉冲,当第一个脉冲发射前,启动定时器开始计时;
回波信号经放大电路、比较电路送入单片机,单片机停止计时,随后通过温度传感器采集温度,利用式(3-1)进行距离计算;
最后通过4位数码管显示。
硬件系统框图如图3.4所示。
图3.4系统原理框图
超声波发射电路
经实验测量当加在200KHz超声波探头的激励电流大于30mA时,测量距离将不在增加,只有通过升压的办法来加大激励能量。
驱动电路采用通用的升压芯mc34063将5V电压升压到40V,然后作为驱动三极管的电源电压。
由AT89S52单片机产生的10个脉冲信号送入三极管Q1基极,经Q1、Q2功率放大,最后驱动发射超声波探头工作。
发射电路如图3.5所示。
图3.5超声波发射电路
超声波接收电路
超声波在空气中传播,遇到目标物体反射的回波信号,加到超声波接收探头上,由于压电效应产生微弱电压信号,输出的这种回波信号是mV级甚至更低的电压信号,必须要经过放大电路的信号放大才能进行进一步处理。
运算放大器选用高速、高带宽的TL082,前级放大80倍,后级放大30倍。
为了降低干扰信号的干扰,放大后的信号送入LM393比较器进行比较,然后将输出的方波信号送入AT89S52单片机INT0引脚触发中断。
对LM393比较电压的选取是至关重要的,它影响着系统的灵敏度以及鲁棒性。
接收电路如图3.6所示。
图3.6超声波接收电路
温度补偿
由前面的式(3-2)可知,温度对超声波的速度有一定的影响,为了减小测量误差,提高系统的测量精度,引入了温度补偿电路。
系统采用了Dallas半导体公司产的数字温度传感器DS18B20来采集温度,DS18B20是单线串行数字温度传感器,数据读取简单,可直接与单片机相连,测量温度范围为-55~125°
C,-10~85°
C时测量精度为0.5°
C。
3.3小车电机驱动模块设计
3.3.1设计要求
本次设计主要采用L298芯片驱动两个直流电机,达到匀速行进,转弯,停止等设定动作,已完成过弯的目标。
3.3.2驱动控制芯片的介绍
主要特性
L298是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片的主要特点是工作电压高,最高工作电压可达46V输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;
内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;
采用标准TTL逻辑电平信号控制;
具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;
有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;
可以外接检测电阻,将变化量反馈给控制电路。
引脚排列及功能
L298采用15脚Multiwatt塑料封装,通过散热片可用螺钉固定在散热器上。
内部包含:
两个H桥的高电压大电流全桥式驱动器A与B(每个全桥由4只PNP型三极管构成);
逻辑电路供电稳压器;
逻辑控制电路等。
引脚排列如图3.7所示。
引脚功能如表1所示。
L298主要特性如表3-7所示。
图3.7L298封装
表3-7L298的引脚功能
引脚
符号
功能
15
SENSINGA
SENSINGB
与地之间连接电流检测电阻,将检测量反馈给控制芯片,实现直流驱动电机
OUT1
OUT2
全桥式驱动器A的输出端,用来接负载
4
VS
电机驱动电源输入端,此脚与地之间连接高·
低频的耦合电容
5
7
IN1
IN2
输入标准TTL逻辑电平信号,控制全桥式驱动器A的开与关
6
11
ENABLEA
ENABLEB
使能控制端,输入标准TTL逻辑电平信号,分别控制全桥式驱动器A与B的工作状态,低电平时驱动器禁止工作
8
GND
接地,芯片本身的散热片与8脚相连
9
VSS
逻辑控制部分的电源输入端
10
12
IN3
IN4
输入标准TTL逻辑电平信号,控制全桥式驱动器B的开与关
13
14
OUT3
OUT4
全桥式驱动器B的输出端,用来接负载
3.3.3驱动电路的设计
小车驱动电路是由L298芯片和74HC04反相器组成,L298的IN1和IN2口分别接反相器的正反相得引脚,然后接到主控芯片的P21口,IN3和IN4接法一致;
ENABLE脚是使能端,用于接收主控芯片输出的PWM信号,控制小车的速度;
OUT口接直流电机,是L298处理过的信号电流,驱动轮子转动;
SENGSING口和GND口是接地,Vs和Vss是电源接口,是小车运动的能量源。
驱动电路图如图3.8
图3.8驱动电路图
第4章系统软件设计
4.1测距单元软件设计
软件设计
主要完成超声波的产生、计时、计算以及结果显示的功能,它包括主程序、计算子程序、温度采集子程序、数码显示子程序、外部中断子程序以及定时中断子程序。
主程序主要完成寄存器、变量等的初始化、超声波的产生以及部分子程序的调用。
中断子程序是用来响应回波信号,当有回波信号时,立即停止计时,然后转入计算程序。
程序流程图如图4.1所示。
图4.1 测距单元软件设计程序流程图
误差软件修正
由于回波信号经过LM393比较器之后,没有经过鉴频检波电路,直接将一系列脉冲信号送入AT89S52单片机INT0引脚,所以抗干扰较差。
为此在中断子程序中设置一个计数器,对中断次数进行计数,在500μs时间内至少中断三次时,才认为有回波信号到达。
经过实验,抗干扰效果较为理想。
在测量障碍物的距离时,实验证明被测对象的大小、表面的粗糙程度以及被测对象的远近不同,回波信号的强弱会发生变化,产生的回波脉冲个数不相同。
对象越小,信号越弱;
距离越远,信号也越弱。
这样造成单片机接收到的第一个脉冲与接收探头接收到的第一个脉冲之间