电子设计.docx
《电子设计.docx》由会员分享,可在线阅读,更多相关《电子设计.docx(20页珍藏版)》请在冰豆网上搜索。
电子设计
小车跟踪与导航系统
摘要:
该智能小车以AT89S52单片机为控制核心L298芯片作为双电机驱动H桥电路控制小车的往返运动;由单片机输出PWM信号控制电机转速,设置规定速度;根据WSN系统在小车和行走区域布置传感器节点,基于TOA的定位算法确定小车坐标从而达到小车定位的目的。
本文介绍了该小车的的主控、电机驱动模块等硬件模块和小车的运动控制速度测量与远程控制的软件设计。
本系统是以AT89S52单片机为控制核心通过L298芯片控制电机转速以控制小车速度,用远程控制系统显示小车的速度以及运动轨迹,设计原理简单易懂,软件调试易于实现,硬件电路安装方便。
这种方案能实现对电动车的运动状态进行实时控制控制灵活、可靠精度高可满足对系统的各项要求。
关键词AT89S521602LCDH桥电路WSN
一、主控系统
根据设计要求我认为此设计属于多输入量的复杂程序控制问题。
据此拟定了以下两种方案并进行了综合的比较论证具体如下:
方案一:
选用一片CPLD如EPM7128LC84-15作为系统的核心部件,实现控制与处理的功能。
CPLD具有速度快、编程容易、资源丰富、开发周期短等优点可利用VHDL语言进行编写开发。
但CPLD在控制上较单片机有较大的劣势。
同时CPLD的处理速度非常快而小车的行进速度不可能太高那么对系统处理信息的要求也就不会太高,在这一点上MCU就已经可以胜任了。
若采用该方案必将在控制上遇到许许多多不必要增加的难题。
为此我们不采用该种方案进而提出了第二种设想。
方案二:
采用单片机作为整个系统的核心用其控制行进中的小车以实现其既定的性能指标。
充分分析我们的系统其关键在于实现小车的运动控制而在这一点上单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机在综合考虑了传感器、两部电机的驱动等诸多因素后我们决定采用AT89S52单片机充分利用单片机的资源。
二、电机驱动模块
方案一:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整,此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
方案二
采用由集成了双极性管组成的H桥电路芯片L298N。
用单片机控制晶体管使之工作在占空比可调的开关状态精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下效率非常高;H桥电路保证了可以简单地实现转速和方向的控制电子开关的速度很快稳定性也很高,是一种广泛采用的调速技术。
综合两种方案的优缺点决定选择方案二。
小车的驱动模块的核心是H桥驱动电机组成的L298芯片。
相关元器件如附件:
2.1H桥驱动电路的内部原理解析如下:
图1中所示为一个典型的直流电机控制电路。
电路得名于“H桥驱动电路”是因为它的形状酷似字母H。
4个三极管组成H的4条垂直腿,而电机就是H中的横杠。
如图所示,H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
要使电机运转,必须使对角线上的一对三极管导通。
例如,如图2所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
图3所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。
如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。
此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。
基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。
图4所示就是在基本H桥电路的基础上增加了4个与门和2个非门。
4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。
而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。
采用以上方法,电机的运转就只需要用三个信号控制:
两个方向信号和一个使能信号如图5。
如果DIR-L信号为0,DIR-R信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机;如果DIR-L信号变为1,而DIR-R信号变为0,那么Q2和Q3将导通,电流则反向流过电机。
2.2恒压恒流桥式2A驱动芯片驱动芯片驱动芯片驱动芯片L298N
比较常见的是15脚Multiwatt封装的L298N,,内部同样包含4通道逻辑驱动电路。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。
4脚VS接电源电压,VS电压范围VIH为+2.5~46V。
输出电流可达2.5A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
EnA,EnB连接控制使能端,控制电机的停转。
表1是L298N功能逻辑图。
In3,In4的逻辑图与表1相同。
由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停。
三、PWM调速系统设计
PWM即脉冲宽度调制(PulseWidthModulation),它是通过调节开关固定频率的直流电源电压的脉宽(占空比)来改变负载两端电压的平均值从而达到控制的一种调整电压的方法[1]。
也就是说要按固定的频率来接通和断开电源,并且根据实际需要改变固定周期内“接通”和“断开”时间的长短。
要想控制电机的转速,就必须改变直流电机的平均电压,而其平均值可通过改变电枢上电压的占空比来实现。
如图8所示,在脉冲的作用下,电机通电时,速度增加,断电时,速度减小。
因此,有规律地改变接通和断开的时间,电机的速度便可得到控制。
我们假设电机始终接通电源时,转速最大,其两端电压为Vmax,占空比为D=t/T。
电机的平均速度V=Vmax﹡D=Vmax﹡(t/T)[2]。
(1)其中V为电机的平均速度,Vmax为电机两端最大电压,D为占空比。
从式
(1)可以看出,在T不变的前提下,改变t就能得到不同的电压,从而控制电机转速。
准确来说,电机电压与占空比并不是严格的线性关系,但在实际应用中,我们可将其近似地看为线性关系。
图8PWM脉冲宽度调制
占空比与平均电压关系图本文利用单片机的C语言编程产生PWM信号,从而控制电机速度。
采用调宽定频的方法,通过改变电机电压接通与断开的时间比值得到平均电压来控制小车速度。
具体方法为:
在小车行驶期间,电源经过PWM控制后会给小车提供一个平均电压。
当电源输出的电压为最大值Vmax时,平均电压V=Vmax*D=Vmax*(t/T)。
其中,t为高电平持续的时间,T为PWM的周期。
在T不变的前提下,改变t,小车得到的电压V也改变,因此,小车的速度也随之改变。
四、无线传感器网络节点定位模块
4.1WSN定位系统结构
小车定位采用WSN系统,WSN系统是由不同功能的节点相互连通构成的。
如图9所示,整个网络主要包括协调器节点,终端节点。
在这个网络中除3个带Zigbee模块作为系统信标节点的节点外,其他节点硬件构成大致相同。
对节点写入不同的程序,从而实现功能的区分。
在WSN系统中,各个节点通过自组织方式构成一个Mesh结构的无线网络,各个终端节点通过路由器转发和协调器的中继转发功能从而实现相互通信。
节点采集的区域信息通过Mesh网络中的链路传输给协调器节点(汇聚节点),协调器节点将数据传输给上位机,在上位机上实现数据集中处理。
在本设计中终端节点又分为已知位置信息的信标节点,不知道位置信息的普通节点。
信标节点主要是在硬件上添加了Zigbee模块,通过其获知信标节点的位置信息。
利用信标节点的位置信息,在网络中通过相应的算法计算取得其他未知节点的位置信息。
4.2硬件结构设计
协调器节点设计根据Mesh无线网络结构,系统硬件电路设计主要包括:
协调器、信标节点、普通节点的硬件设计。
如图10所示,整个节点主要由传感器模块、中央处理器、无线通信模块和能量供应管理模块构成。
传感器模块负责监测区域采集和数据转换;中央处理器模块负责控制整个传感器节点的操作,存储和处理本身采集的数据及其他节点发来的数据;无线通信模块负责与其他传感器节点进行无线通信,交换控制消息和收发采集数据;能量供应管理模块为传感器节点提供运行所需的能量以及相应的能耗管理。
4.3协调器节点设计
Mesh无线网络系统,图11为系统的示意图,这是一个带路由节点的ZigBee无线网络,由一个网络协调器,多个参考节点,一个或多个定位节点组成。
网络协调器与控制计算机相连,负责建立网络和管理网络,把收到的数据发送到计算机中并显示当前整个网络的状况。
而参考节点分布在定位网络覆盖的路段两旁,以信号的接收强度和路段的实际走向、遮挡物的分布情况来决定参考节点的分布位置。
参考节点接收到定位节点发出的位置信息,定期发送给网络协调器。
网络协调器接收参考节点发出的定位节点的位置信息,通过相关定位算法,得出定位节点位置坐标并在前端显示。
网络协调器,参考节点的电路原理框图如图5.8所示。
包括CC2430,串口部分,按键和液晶。
定位节点的原理框图类似,采用的芯片是CC2430。
4.4定位算法的设计
该定位的算法原理和TOA算法相似。
TOA算法通过节点的时钟同步来计算节点之间的信号传输时间,传输时间乘以信号的传输速度从而求得节点之间的距离。
由于这样对节点的硬件和能耗要求很大,不利于在WSN网络中广泛使用。
本设计通过计算信息到达节点的往返时间,从而求出节点距离。
4.4.1算法数学模型
TOA方法采用的节点距离计算方法一般是三边测距法,这里我们介绍三边测距的基本原理。
如图13所示,
A,B,C三点为已知位置信息的信标节点,D为待测节点,R1,R2,R3分别为AD,BD,CD的长度。
已知A,B,C坐标分别为(
,
);(
,
);(
,
)。
假设D的坐标为(
,
)。
由几何关系可得:
=R1
(1)
=R2
(2)
=R3(3)由式
(1),式
(2),式(3)可求得D点的位置坐标。
算法的关键是如何求出R1,R2,R3。
在知道无线电传输速率V=3
m/s的情况下,算法关键问题就变为怎样求出信号的传播时间。
以A,D节点距离计算为例,下面进行介绍。
如图14所示,节点A与节点D在网络稳定的情况下位置相对不变。
待测节点D向信标节点A发出获取A点坐标的信息请求,同时D节点内的定时器开始计时;A节点在接收到D的请求后延时t1,然后将位置信息发给D节点;当D节点接收到A节点的信息后停止计时并记下计时时间t2。
由此得到以下式子:
(4)
(5)由式(5)可以得到无线电信号从D节点传输到A节点所需要的时间
。
同理R2,R3也可求出。
该方法不需要实现节点之间的时间同步,节省硬件开支。
4.4.2节点程序设计
根据节点不同功能,在这里主要是协调器节点,信标节点以及未知节点,其程序设计的侧重不同,下面分别介绍。
(1)协调器节点与信标节点程序设计。
协调器节点主要负责数据在上位机与WSN系统之间的上传下达。
主要程序设计包括无线数据收发,以及与上位机串口的通讯子程序。
信标节点本身带有Zigbee模块,在系统运行时要取得自身的位置信息并存储;在未知节点发出信息请求时,延时一段时间再发送自身位置信息。
主要程序包括数据收发程序和位置信息要求判定及延时程序设计。
(2)未知节点程序设计。
如图15所示,未知节点需要获取信标节点的位置信息,并根据自身发出位置信息请求后的定时器取得信息传输的时间,由相应计算求得与对应信标节点的距离,然后根据三边测距定位法计算自身的位置信息,获取自身位置信息后,向系统广播自身位置信息。
五、远程控制系统模块
5.1组成原理
无线远程控制自动小车由电机驱动两个车轮,在行驶过程中,要实现前进、左转、右转、后退、停止以及自动寻迹等功能。
为完成相应功能、小车的控制部分由计算机、上片单片机、无线发送和接受模块、下片单片机和电机驱动控制器等组成,如图16所示。
与传统的“走黑线”完全不同,小车行驶路线有设计的计算机绘图软件绘制,图像与实际路况成一定比例,图像上每一个点坐标都对应实际路线上一个点,计算机软件首先绘制和分析路线、得到小车需要转过的角度与行驶距离,从而算出需要运动的时间等信息,将相应数据通过RS232串口传给上位单片机,再通过无线发送和接受模块传给下片单片机,下片单片机根据相应信息驱动控制电机完成相应的运动,使小车按照绘制的路线行驶。
这种方式可以实现灵活多变的道路行驶、交叉行驶,省去了画黑线的麻烦。
5.2控制系统硬件设计
该小车以AT89S52单片机为核心,以NRF24L01无线模块作为无线数据传输单元,解决了计算机与单片机的通信和单片机与单片机的通信问题,两个单片机之间通过NRF24L01无线模块进行通信,图17和图18分别是上下位单片机系统电路原理图。
在上下位单片机系统中,主控芯片是整个系统的核心。
在无线模块中,采用价格比较高的NRF24101模块进行上下位机的无线通讯。
NRF24101是一款工作在2.4GHZ-2.5GHZ1SM频段的单片无线收发器芯片,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,拥有自动应答和重发功能,具有工作稳定可靠,外围电路简单,功耗低,传输速度快,传输距离远等优点。
在上位单片机与计算机的通讯中,采用MAX232电平转换芯片来实现RS-232标准借口通信。
在电机驱动模块中,采用自带减速器的直流电机作为驱动电机,专用的L298直流电机驱动芯片构成驱动电路用单片机控制晶体管使之工作在占空比可调的开关状态,便可精确调整电机的转速。
在电源模块中,上片单片机与计算机进行串口通信,采用USB供电,下位单片机系统采用双电源供电,将电机驱动电源与单片机以及周边电路电源完全隔离,消除两者之间的影响。
需要注意的是,由于电机驱动输出电流较大,容易拉低单片机IO口的电压,当电压过低时可能造成单片机工作不稳定,或者使单片机复位为了避免这种情况,单片机使用一个稳压电源。
六、控制系统软件设计
6.1上位单片机软件设计
上位单片机主要的功能包括接收计算机发来的数据并通过无线模块把数据发送给下位单片机。
计算机发给上位单片机的指令格式是5个16进制数,前四位分别代表两个电机的占空比,中间四位分别控制两个电机的旋转方向,后面两位是标志位。
上位单片机软件流程如图4所示。
6.2下位单片机程序
下位单片机的主要功能是脉冲宽度调制直流电机控制、无线模块接收数据。
其主要流程图如图19所示。
6.3无线通讯流程图
发射数据时,首先将NRF24L01配置为发射模式,接着把地址TX_ADDR和数据TX_PLD按照时序由SPI口写入NRF24L01缓冲区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持10us,延迟130us后发射数据;若自动应答开启,那么NRF24L01在发射数据后立即进入接收模式,接收应答信号。
如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从发射堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC_CNT)达到上限,MAX_RT置高,TX_PLD不会被清除;MAX_RT或TX_DS置高时,使IRQ变低,以便通知MCU。
最后发射成功时,若CE为低则NRF24L01进入空闲模式1;若发送堆栈有数据且CE为高,则进入下一次发射;若发送堆栈中午数据且CE为高,则进入空闲模式2.
接收数据时,首先将NRF24L01配置为接收模式,接着延时130us进入接收状态等待数据的到来。
当接收方检测到有效的地址和CRC时,就将数据包存储在接收堆栈中,同时中断标志位RX_DR置高,IRQ变低,以便通知MCU去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
接收成功时,若CE变低,则NRF24L01进入空闲模式1。
图21是无线通讯的流程图。
6.4计算机软件设计
本文用VB编写了计算机软件程序,主要功能包括路线规划、串口通信、小车实时控制。
其流程图如图22所示。
图21无线通讯流程图
图22小车控制流程图
七、结论
该小车以计算机绘制和分析路线,把相关行驶信息通过无线发送和接受模块传给单片机,再通过单片机对电机进行控制,驱动小车行驶,从而实现小车灵活多变的道路行驶,省去了画黑线的麻烦,具有结构简单、远程控制方便、使用方便、成本低廉等优点。
附件:
元器件清单
元器件
数量
AT89S52单片机
2
NRF24101无线模块
2
协调器
1
光电传感器
1
Zigbee
1
L298芯片
1
直流电机
2
散热片
1
杜邦线
若干
单排插针
若干
IN4007型号二极管
8
9V电池
2
导线
若干