除锈爬壁机器人控制系统的设计Word格式.docx
《除锈爬壁机器人控制系统的设计Word格式.docx》由会员分享,可在线阅读,更多相关《除锈爬壁机器人控制系统的设计Word格式.docx(24页珍藏版)》请在冰点文库上搜索。
整个下位机控制硬件主要由两个伺服电机驱动器和下位单片机控制电路板构成。
下位单片机控制电路板主要输出模拟量电压信号来控制左右两个伺服驱动器,进而控制左右两个伺服电机的运转,从而达到控制除锈爬壁机器人行走与转向的目的,同时它又担负着和上位机控制器之间的通讯任务,将上位机传送过来的控制指令处理后,再将相应的电压信号传递给伺服驱动器,从而实现遥控操作的功能。
整个下位机电路板由AT89C51单
片机、8155FO口扩展电路、D/A转换与运算放大单元、数字量输入输出接口电路、电源转换电路以及与上位机进行通讯的RS—485标准接口电路构成。
3.1.1交流伺服电机驱动器
根据前面对伺服电机的选型可知,本课题选用的是调速范围宽、响应快、抗干扰性强的安川SGAMH一04AAA21型交流伺服电机,与之相匹配的伺服驱动器型号为SGDM一04AD。
该伺服驱动器有三种控制模式:
速度控制模式、转矩控制模式和位置控制模式。
本系统采用速度控制模式,可通过伺服驱动器的用户参数Pn300将速度指令电压设定为
士10V,其电机转速与指令电压成线性关系,速度指令电压与电机转速对应关系如表1
所示⑴。
速度描令电压
旋转方向
转連
SGMAH型电机
+IOV
正转
额宦转速
3000r/min
V
庄转
和10醤定转速
300r/min
0V
静止
-IV
反转
1/10St!
定转越
200r/mim
-IOV
表1速度指令压电与电极转速对应关系
正常工作时,伺服驱动器接受来自单片机控制系统的伺服准备信号,使伺服电机通电,处于运行状态,然后根据加在V~R卫F端口上的由单片机控制系统D/A转换电路产生的模拟指令电压信号来控制电机的转速,并且通过模拟指令电压的正负来确定电机的正反转,从而确定爬壁机器人在船体表面上的行走速度和运动方向,同时单片机控制系统通过电平转换电路检测伺服驱动器的伺服状态输出信号,并根据接收到的信号对伺服驱动器进行相应的控制。
此外通过伺服电机的编码器反馈,可以获得伺服电机实际工作
时转子的位置和电机的转速。
如图2所示为爬壁机器人单侧交流伺服驱动系统控制接线
示意图。
图2交流伺服驱动系统控制接线示意图
3.1.2AT89C51单片机及系统时钟与复位电路
AT89C51是美国ATMEL公司生产的低电压、高性能COMOSS位单片机,片内含4KB的可反复擦写的程序存储器和128个字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术制造。
兼容标准MCS—51指令系统,片内配
置通用8位中央处理器(CPU)和Flash存储单元。
芯片上的FP]三ROM允许在线编程或采用通用的非易失存储编程器对程序存储器重复编程。
AT89C51将具有多种功能的8位cPu和FPEROM结合在一个芯片上,为很多嵌入式控制应用提供了非常灵活而又价格适宜方案,具有较高的性能价格比⑵。
AT89csl单片机的主要性能如下:
1.与MCS—51产品指令系统完全兼容。
2.片内有4KB可在线重复编程的Flash闪速擦写存储
3.存储器可循环写入/擦除1000。
4.存储数据保存时间为10年。
5.宽工作电压范围:
VCC可为2.7V一6V。
6.时钟频率范围:
OHz一24MHz。
7.程序存储器具有3级加密保护。
8.128x8B内部RAM。
9.32个可编程1/0接口线。
10.2个16位定时/计数器。
11.中断结构具有5个中断源和2个优先级。
12.可编程全双工串行UART通道。
13.
空闲状态维持低功耗和掉电状态保存存储内容
图3时钟电路图4复位电路
AT89C51的复位输入引脚RST为其提供了初始化手段,通过该引脚可以使程序从指定处开始执行,即从程序存储器中的OOOOH地址单元开始执行程序。
当AT89C51的时钟电路工作后,只要在RST引脚上出现1Oms以上的高电平时,单片机内部则开始复位。
只要RST保持高电平,则AT89C51循环复位。
只有当RST由高电平变低电平以后,AT89C51才一从0000H地址开始执行程序。
因此,AT89C51单片机在控制系统中正常工作必须要有合适的时钟电路和复位电路。
图3和图4分别为AT89C51的时钟电路和复位电路。
时钟电路由一个12M的晶振和两个30pF的小电容组成,它们决定了单片机的工作时间精度为1微秒。
复位电路由22协F的电容、IK的电阻、按键以及IN4148二极管组成,可实现上电复位和按键复位。
通常的复位采用10协F电容和IOK电阻组成复位电路,在本系统中我们根据实际经验选用22协F的电容和IK的电阻,其好处是在满足单片机可靠复位的前提下降低了复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。
其中IN4148二极管的作用是起到快速泄放电容电量的功能,实现短时间内多次复位。
3.1.338155扩展1/0接口电路
在爬壁机器人下位机控制系统中,两个伺服驱动器正常工作所需单片机的输入输出信号较多,需占用AT89C51单片机大量的输入输出口线,而Al,89C51单片机本身提供的输入输出口线并不多,只有Pl准双向口的8位FO口线和P3口的某些位线可作为输入输出线使用,输入输出线不足16条,因此,为满足系统需求,AT89C51单片机需要外扩输入输出(FO)接口芯片。
AT89C51单片机的外部I/O口是和外部数据存储器RAM统一编址的,用户可以把外部64K字节的数据存储器RAM空间的一部分作为扩展FO
接口的地址空间,每一个接口芯片中的一个功能寄存器口地址就相当于一个RAM存储
单元,CPU可以像访问外部数据存储器RAM那样访问外部接口芯片,对其功能寄存器进行读、写操作。
在本系统中,我们采用Iniel的815SH芯片扩展F0口,该芯片内包含有256个字节的静态RAM存储器、两个可编程的8位并行口PA和PB、一个可编程的6位并行口PC以及一个14位减法定时器/计数器。
可以为单片机提供22个输入输出口线和一个256字节的RAM。
由于8155H内部集成了地址锁存器和地址译码器,其可以直接和AT89C51单片机接口,不需要增加任何硬件逻辑。
因而其灵活方便,可作为单片机与多种外围设备相连时的接口芯片。
8155H共有40个引脚,采用双列直插式封装。
在本控制系统中,通过AT89C51单片机的1/0口扩展81弘H芯片,其接口电路原理图如图5.5所示。
图中8155H的片选信号瓦由AT89C51的P2.7口提供,即只有当P2.7为低电平时才选中8155H芯片工作。
8155H的RAM存储器和1/0口选择信号10/丽由PZ.O提供,当10/丽=0时,ADO—AD7的地址为8155HRAM单元的地址,选择8155H的RAM工作;
当10/丽=1时,ADO一AD7的地址为8155HJ/O口的地址,选择8155H的FO口工作。
在本系统中使用8155H芯片的目的是扩展1/0口,因此系统工作时应使AT89C51单片机的P2.0口为高电平,选择8155H芯片的FO口工作。
8155H的读选通信号而和写选通信号丽都为低电平有效,其分别由AT89C51单片机的而和丽口提
供。
当瓦=0,10/丽=1,而端为低电平时,8155H将FO口内容传送到ADO一AD7供单片机读入;
当瓦=0,IO/丽=1,丽端为低电平时,8155H将单片机输出到ADO~AD7的数据写入到8155H的UO口。
8155H地址锁存允许端ALE与AT89C51单片机的ALE端相连,其为高电平有效,当ALE=1时,8155H允许ADO一AD7上地址锁存到“地址锁存器”;
否则,地址锁存器处于封锁状态。
8155H的复位端与AT89C51单片机的复位端相连,都接到AT89C51的复位电路上,两者共用一个复位电路。
图5AT89C引单片机与8155H的接口电路原理
在爬壁机器人的下位单片机控制系统中,伺服驱动器的伺服准备输入信号和伺服状态输出信号主要是AT89C51单片机通过8155H芯片的PA、PB和PC口输出和读入的。
而AT89C51单片机对8155H芯片的PA、PB和PC口的操作是通过地址来实现的。
8155H的1/0口编址见表5.2所示[3]。
瞬劇ID口
AM
AD5
ACH
ADJ
AD2
ADI
AEM)
X
命令炖t惑口
1
A口(PAO-PAT)
]
a口<
PB0-PB7>
11
c口fFO)-PC册
Q
定时Silt8
[
表28155H的1\0口编址
根据图5中AT89C51单片机与8155H芯片的连接方式以.及表2中所列8155H的F0口编址,可知在该系统中,8155H芯片的A口、B口、C口地址分别为7F0IH、7F02H、7FO3H。
命令寄存器和状态寄存器共用一个端口地址,在本系统中地址可为7F00H,但
命令寄存器只能写入不能读出,状态寄存器只能读出不能写入。
A口、B口和C口的工
作方式是通过8155H的8位命令寄存器的低4位来定义的,具体命令控制字的格式如图6所示1621。
当系统确定了8155H的A、B、c口工作方式后,可通过单片机编程将相应的命令控制字写入到8155H的命令寄存器,从而使各1/0在预定的方式下工作。
在本控制系统中,A口定义为基本输入方式,B口定义为基本输出方式,C定义为输出方式,允许A口中断,定时计数器无操作,贝U相应的命令控制字为16H。
TM;
TMi
|汕
IEA
K:
FC:
PR
PA
斜ADAlftA方氏”I,岀方逞
・-mft口定义対fix方氏,i.un^JCAIt出方氏
■00
01
1&
若定时能正左讣Rt良度NE为1时皆止计粧
I]
着朮在if(t.St岀方式种世廉计>t
图68155命令控制字格式
3.1.4D/A转换与运算放大电路
由于在本控制系统中,爬壁除锈机器人的伺服电机驱动系统采用的是模拟电压控制,伺服电机的转速与电压成正比关系。
而单片机只能输出数字量,因此要获得模拟量电压必须对单片机输出的数字量进行D/A转换,进而通过模拟量电压来控制伺服电机的转速和转向。
本控制系统中要对两个伺服电机实现转速和转向的同步控制,因此需要两路同步工作的D/A转换与运算放大电路。
由于两个伺服电机完全相同,所以进行D/A转换和
运算放大的两路电路也相同。
下面就单路D/A转换与运算放人电路作详细介绍。
在本控制电路中,单路D/A转换与运算放大电路是由一个DAC0832、两个0P07运算放大器以及一些反馈电阻和滤波电容构成,其电路原理图如图7所示。
该电路可输出
双极性模拟量电压,既可以实现对伺服电机的转速控制,也可以实现对伺服电机的转向
控制
图7D\A转换与运算放大电路
DACO832是美国国家半导体公司研制的一种8位DAC芯片,其采用20引脚双列直插式封装,由8位输入寄存器、8位DAC寄存器和8位D/A转换电路所构成。
其主要特性有⑷:
8位分辨率;
电流输出,稳定时间为1娜;
可单缓冲、双缓冲或直接数字输入;
只需在满量程下调整其线性度;
单一电源供电(+SV—+15V);
DAC0832是总线兼容型芯片,使用时可直接将芯片的数据输入线和AT89C51单片
机的数据总线相连,作为一个扩展的FO口。
由于DAC0832的输出是电流信号,而控制伺服电机所需要的是电压信号,因此我们通过运算放大器OP(〕7将DACO832输出
的电流信号转换成模拟量电压信号。
采用两级运放电路的目的是为了获得双极性输出电压。
图7中,Rl、R2和R3为反馈电阻,变阻器R4为运算放大器的调零电阻,Cl和CZ分别为一级和二级输出电压的滤波电容。
下面对DAC0832的双极性电压输出电路作
进一步介绍。
图8DACO832的双极性电压输出电路
如图5.8所示为下位机控制电路板中DAC0832的双极性电压输出电路图。
图中,
^OUT\-丿
rRf=~JOUT\+Rfi二%F
式中:
B=br27+b4-26+A+br21+b0-2°
根据基尔霍夫电流定律,任一瞬时,G点上电流的代数和恒等于零,则有
且有:
由上式可得:
也_[28砂
由式(5.6)可知,当00H少<
80H时,VouT模拟输出电压的极性与vREF相反电压;
当80H<
B三FFH时,VouT模拟输出电压的极性与VRE:
相同,为正电压;
当B二80H时,VouT二0。
VouT模拟输出电压的大小与输入数字量B成正比。
综上,VouT模拟量输出电压为双极性输出电压。
若将VouT与伺服电机驱动器CNI口的V—REF端相连,通过单片机向DAC0832送入数字量,经过D/A转换和运算放大后产生相应的模拟量电压,从而使伺服电机在相应的转速和转向下运行。
*1
wetm.
vna
iPii
H.i
PSJ
ATOOI畑
rut
M.7
那
Ftl
ri.s
KJ
图9两片DAC0832与AT89C51单片机的双缓冲万式接口电路
除锈爬壁机器人左右两个伺服电机的运动控制都是通过上述D/A转换和运算放大
电路来实现的,且它们的同步运动是由两路经D/A转换和运算放大产生的模拟量电压的
同步输出来实现的。
当DAC0832工作于双缓冲器方式时可保证这两路模拟量电压同步输出,此时DACO832输入寄存器的锁存信号和DAC寄存器的锁存信号需分开控制。
女口图9所示为两片DAC0832与AT89C51单片机的双缓冲方式接口电路图,该电路可得
到两路同步输出的模拟量电压。
由图9可知,l#DAC0832的瓦与AT89C51单片机的PZ.I相连,2#DAC0832的
砚和AT89C51单片机的P2.2相连,I#和2#DACO832的万百瓦都与AT89C51单片机的P2.3相连,故1#DACO832的输入寄存器的地址为FDFFH,2#DAC0832的输入寄存器的地址为FBFFH,1#和2#DAC0832的DAC寄存器的地址皆为F7FFH。
正常工作时,AT89C51单片机可以分别通过选口地址FDFFH和FBFFH把数字量送入I#和2#
DAC0832相应的8位输入寄存器中,然后再通过选口地址F7FFH把输入寄存器中的数据同时送入相应的8位DAC寄存器中,以实现同步D/A转换,经过各自的运算放大电路,便可以得到两路同步输出的模拟量电压。
3.1.5数字量输入输出接口电路
伺服驱动器除了需要模拟量电压输入来控制伺服电机运行外,其正常工作还需要有相应的数字量输入作为伺服控制信号,而且伺服驱动器的运行状态信号也是通过数字量输出的,因此,采用AT89C51单片机对伺服驱动器进行控制时,还需要设计相应的数字量输入输出接口电路。
由于AT89C51单片机本身提供的1/0口有限,在本系统中采用了8155H芯片扩展了三个FO口,其中B口和C口用来作为数字量输出口,为伺服驱动器提供数字量输入信号,A口和AT89C51单片机PI口的部分口线作为数字量输入口,用来采集伺服驱动器的运行状态信号。
伺服驱动器的输出(附录A的25一32线)是十、一差分信号输出,而8155H是单端数字量输入,因此要通过8155H采集该类信号,就需要在它们之间外加转换电路。
图10所示为单路伺服驱动器数字量输出接口转换电路,转换后得到的电平信号IN可直
接输入到8155H的PA口。
[NOO
图10伺服驱动器输出转换电路
伺服驱动器的数字量输入由24V电压驱动,而8155H芯片输出的高电平为SV,它
们之间不能直接相连,需在它们之间加入光电藕合器TLP521进行信号隔离和电平转换,
这样既可以实现8155H输出数字量与伺服驱动器的匹配,又防止了伺服驱动器对控制电
路板的干扰。
如图11所示为单路伺服驱动器的数字量输入转换电路图,输入到伺服驱
动器的数字量信号由AT89C51单片机通过8155H的PB口和PC口输出。
图11伺服驱动器的数字量输入转换电路
整个控制电路板的数字量输入输出接口电路如图12所示
3.1.6一485通讯接口电路
由于除锈爬壁机器人在工作过程中要求其下位机控制系统与上位机控制系统之间
的通讯距离需大于30米,而采用单片机本身的TTL电平直接传输数据时,其传输距离一般不超过1.5m,且抗干扰性差。
为增大数据传输的通讯距离和提高数据传输的抗干扰能力,在本系统中我们采用RS一485标准串行通信方式进行数据传输。
RS一485是美国电气工业联合会(EIA)制定的利用平衡双绞线作为传输线的多点通讯标准。
它采用一对平衡差分信号线进行传输,最大传输距离可达1.2km;
Rs—485标准允
许最多并联32个驱动器和犯个收发器。
接收器最小灵敏度可达士20OmV;
最大传输速
率可达IOMbit/s。
RS一485协议是针对远距离、高灵敏度、多点通讯制定的标准。
由于RS一485采用的是差分信号,与单片机的TTL电平不兼容,因此两者接口时需
进行电平转换,在本系统中,我们采用MAX485作为电平转换芯片,该芯片既可作为
RS一485的驱动器又可作为接收器。
MAX485接口芯片是Maxim公司的一种RS一485芯片,采用单一电源+SV工作,额定电流为300林A,采用半双工通讯方式,它完成将TTL电平转换为RS一485电平的功能,其引脚结构图如图13所示。
图13MAx485芯片引脚结构图
从图13中可以看出,MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。
RO和DI端分别为接收器的输出端和驱动器的输入端,丽和DE端分别
为接收和发送的使能端,当丽为逻辑0时,芯片处于接收状态;
当DE为逻辑1时,芯片处于发送状态。
由于MAX485工作于半双工状态,所以只需用单片机的一个管脚控制丽和DE这两个引脚即可。
A端和B端为接收和发送共用的差分信号端。
若DE=1,当发送的数据为逻辑1时,A引脚输出高电平,B引脚输出低电平;
当发送的数据为逻辑0时,A引肚p输出低电平,B引脚输出高电平;
若丽二O,当A一B全0.2V时,接收端R输出高电平;
当A一B三一0.2V时,接收端R输出低电平。
MAX485芯片与单片机连接时接线非常简单,其RO端和Dl端分别与单片机的RXD和TXD相连,丽端和DE端与单片机的一个FO口线相连即能实现MAX485芯片的接收与发送。
如图14所示为本控制系统中MAX485的通讯接口电路图。
为了消除反射和吸收噪音,在MAX485的A端和B端之间连接了一个阻值为1200的电阻。
图14MAx485的通讯接口电路
3.1.7系统电源解决方案
在本控制系统的设计中用到了多种电压信号。
除锈爬壁机器人的交流伺服电机、伺
服驱动器以及开关电源的供电都为交流220V,开关电源可为下位机控制系统提供+24V、月SV和+SV等几种直流电源。
另外DACO832在进行D/A转换时还需要+IOV的参考基准电压,其对电源的精度要求较高,需要选取适宜的电源模块,设计相应的DC/DC转
换电路。
在+1OV的DC/DC转换电路中,选取Maxim的MX581作为转换芯片,该芯片可为8到14位DA转换器提供高精度的+IOV参考基准电源。
MX581具有三个引脚,分别为电源输入端+VS、电压输出端VouT和接地端GND。
通常情况下,在其电源输入端+VS输入+12.5V—+30V范围内的任意电压且接地端GND接地时,在其电压输出端VouT就能得到一个精度较高的+iov电压,但这需要元器件具有较高的质量等级。
而实际上,元器件本身不可避免地会存在着一些偏差。
为了确保其输出的+1OV电压具有更高的精
度,需要在MX581的外围设计相关电路,其具体转换电路如图15所示。
图中的+I