单轴双轮自平筏代步车的研究s设计J.C.Zhang2009678ABVDD同相发送器输出/接收器输入反相发送器输出/接收器输入供电电压本系统控制器与两无刷电机驱动器之间的通信采用的RS485硬件电路接口芯片是Sipex公司的SP485R,SP485R芯片是一款高性能的RS485收发器,而且包含更槲收发器接到同一条传输线上又不会引起信号的衰减。本设计中传输距离不超过1米,这能够很好满足数据传输的需求。SP485R的芯片引脚功能如表3.4所示,其硬件电路如图3.13所示。.高的ESD保护和接受器输入阻抗高达150K。理论上,接收器的高输入阻抗可以使Vn£图3.13SP485硬件电路3.5.3复位电路单片机系统有时会出现一些不可预料的现象,如在调试过程中就曾遇到无规律可循的死机、程序跑飞等,而用仿真器调试时却无此现象发生或极少发生此现象。有时在关闭电源后的短时间内再次开启电源,单片机可能会工作不正常。这些现象,都可认为是由于单片机复位电路的设计不当引起的㈣。本文中针对单片机系统采用了一种改进的积分型复位电路,可保证系统稳定工作。32单轴双轮自平筏代步车韵研究s设计J.C.Zhang2009V匹占j篁土aD511k4148一I殴舌C=译’三T溢。=F图3.14单片机复位电路设计3.5.4模数转换电路本系统中采用模数转换芯片TI_L-'2543来采集陀螺仪、加速度计、转把电位器等传感器的模拟电压信号送给控制器处理分析。T/_L-'2543是可选择11个输入通道、12位、开关电容、逐次逼近的模数转换器ADC每一器件具有三个控制输入口(芯片选择,输入输出时钟以及地址输入)和一个串行三态输出口,能与主处理器或外围设备的串行接口通信。器件允许来自主机的高速数据传送。除了高速转换器和多用途的控制能力外,器件还具有片内14通道多路转换器,它可选择11个输入通道或3个内部自测试电压中的任一个采样保持功能。在转换结束时,转换结束(EOC)输出变为高电平以指示转换完成。组合在器件中的转换器的特点包括易于实现比率转换的差分高阻抗基准输入端,定标以及模拟电路与逻辑和电源噪声的隔离。开关电容设计允许在整个工作温度范围内实现低误差的转换,TI.L-'2543转换时间为10us,具有内部采样与保持、片内系统时钟、单极性或双极性输出运用、可编程MSB或LSB在前以及可编程的掉电(低功率)方式等特点。TLC2543可通过对输入寄存器中数据长度编程,选择8、12或16时钟长度的输入序列。从而实现串行8、12或16位长度的数据输出。因为转换器具有12位的分辨率,建议选12位的数据长度。本系统中应用的也是12位数据长度方式。T/_,C)_.543的引脚功能如下:1)剐啪~√必10:模拟量输入端,11路输入信号由内部多路器选通;2)CS-片选端。在CS端由高变低时,内部计数器复位。由低变高时,在设定单轴双轮自平钠代步车的研究与设计&CZlmn92009的时间内禁止DATA矾P1,T和IO3)DATACLOCK;INPUT:AD转换结果的三态串行输出端。CS为高时处于高阻状态,CS为低时处于激活状态;4)DATAOUTPUT:AD转换结果的三态串行输出。CS为高时处于高阻状态,CS为低时处于激活状态;5)GND:地,GND是内部电路的地回路端。除另有说明外,所有电压测量都相对GND而言;6)IOCLOCK:输入输出时钟端。IOCLOCK接收串行输入信号并且完成以下的四个功能:第一是在IOCLOCK的前8个上升沿,8位输入数据存入输入数据存储CLOCK第四个下降沿,被选通的模拟输入电压开始向电容器充电,直到IOCLOCK的最后一个下降沿为止;第三是将前一次的转换数据输出到DATAOUT,在IoCLOCK的下降沿时数据开始发生变化;第四是IOCLOCK最后一个下器:第二是在Io降沿,将转换的控制信号送到内部状态控制位;7)REF+:正基准电压端。基准电压的正端被加到砌强+,最大输入电压范围由加于本端与REF.端的电压差决定;8)REF.:负基准电压端。基准电压的低端被加到REF.;9)VCC:电源。可以使Ⅱ.C2543工作在与SPI协议兼容的模式下,直接与微控制器的SPI接口连接,这样可大大简化软件编程,方便了系统设计。'rtL-'2543的硬件电路设计如图3.15所示。-=F图3.15模数转换器TLC2543应用电路单轴双轮自平巍代步车钓研究s设计J.C.Zhang20094系统软件设计与实际测试硬件控制电路为系统的功能及实时性提供基本保证,系统控制策略的实现主要体现软件设计上。系统的编程采用C语言,避免了用汇编语言编程周期长,易出错,难以维护的弱点,整个程序可读性好,模块化的结构设计,层次清晰。4.1系统软件功能模块划分程序的执行过程包括以下几个部分:系统的上电初始化与自校准、进行必要的寄存器、变量初值及中断向量的安装,然后进入主循环程序,响应处理系统各中断请求,系统数据处理程序等。程序大致可分为下列功能模块:1)初始化及主循环程序;2)AD采样及计算程序:3)实时转速计算程序;4)PWM占空比调节程序;5)故障处理程序。4.2软件功能模块设计4.2.1初始化和主循环模块系统硬件的初始化包括:(1)ATmegal6L单片机的IO引脚配置,用到的寄存器有IO端口方向寄存器DDRx、端121数据寄存器PORTx、端口输入引脚地址P矾x(x是指A、B、C、D四组IO端口),闲置悬空的IO引脚设置为上拉输入;(2)定时器/计数器寄存器配置,包括控制寄存器TCCRn、数据寄存器TCNTn、输出比较寄存器OCRB、输入捕捉寄存器ICRn等:(3)串行通信接口USART寄存器配置,包括数据寄存器UDR、控制和状态寄存器UCSRA、波特率寄存器UBRRL和UBRRI-I。系统变量初始化包括:陀螺仪和加速度计信号值AD转换获得的角度、滤波后系统的估计角度、转把信号角度、系统给无刷电机的PWM信号等等。上电初始化完成后,控制程序进入主循环,开中断。主循环程序中,系统不断检测更新车体的姿态信息,根据车体当前状态计算出适合电机驱动信号在中断程序中送给无刷电机,维持车体动态平衡。如图4.1所示。单轴双轮自平衡代步车的研究s设计d.C.Zhang2009图4.1主循环程序流程4.2.2AD采样及采样数据滤波处理模块系统设计一个函数GetVolt()完成TI.L--'2543的AD转换功能,陀螺仪、加速度计、转把分别调用该函数获取AD采样值。VoltGyro为陀螺仪电压信号值,Voltx、Volty、Voltz分别为加速度计三灵敏轴的电压输出信号值,VoltTum为转把的电压信号值。VoltGyro=GetVolt(0x10);VoltxVolty=GetVolt(Ox20);=GetVolt(0x30);=GetVolt(0x40);VoltzVoltTum=GetVolt(0x50);采样所得电压信号值分别经各自的换算关系得到标准单位的角度信号值。该数据经简易互补滤波算法处理可得到最优系统姿态角度估计。在实际完成的代步车
好文档 - 专业文书写作范文服务资料分享网站