| 基于国产嵌入式芯片GT2000的舵机控制系统设计 |
| 类别:网文精粹 |
| 基于国产嵌入式芯片GT2000的舵机控制系统设计
Design of Servo Control System Based on ARCA GT2000 摘要:本文设计实现了基于国产CPU的舵机控制系统。提出了一种利用芯片的定时器资源和中断系统实现多路PWM信号的接收、复制、生成与输出并成功控制舵机的方法,该方法具有实现简单、成本低的优点。 关键字:GT2000 舵机 定时器 中断 PWM Abstract:The servo control system based on homemade CPU is realized in this paper. With the timer unit and interrupt system of GT2000, multiple PWM signals can be received, copied, generated and output. With the simple and low-cost method discussed in this paper,the servo can be controlled well. Keywords: GT2000, servo,timer, interrupt, PWM 1、引言 GT2000是一种国产32位高性能、低成本、低功耗的嵌入式RISC(Reduced Instruction Set Computer)微处理器,它的CPU核心工作频率达到400MHz, 具有完整的MMU功能,且芯片内部集成了串口通信控制器、中断控制器、定时器、看门狗、通用I/O端口等大量外围模块,目前正在被广泛地应用于网络终端、金融税务专用机、VPN和网关等网络设备等领域。 针对无人机自动驾驶仪控制核心芯片国产化这一目标,为实现无人机自动驾驶和遥控驾驶的无扰动切换,本文设计实现了基于方舟GT2000的舵机控制系统,完成了舵机遥控信息的接收与识别、舵机控制信号的产生与输出,从而正确控制舵机完成各种动作。 2、舵机的基本原理及控制方法 舵机是一种位置伺服的驱动器。在微机电系统和航模中,舵机是一个基本的输出执行机构,它接收PWM控制信号,根据信号的占空比输出相应的角度,从而控制角度需要不断变化或保持的外部设备。本文采用的日本FUTABA S3003 型舵机的原理框图如图1所示,PWM 信号经接收通道进入信号解调电路BA6688L 的12 脚进行解调, 解调后的直流偏置电压与BA6688L内部电位器的电压比较,获得电压差由BA6688 的3 脚输出。该输出送入电机驱动集成电路BAL6686 ,以驱动电机正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,直到电压差为0 ,电机停止转动。
图1 FUTABA S3003 型舵机原理框图 图2 舵机转角与输入信号脉冲宽度的关系 FUTABA S3003 型舵机有电源线、地线、控制线三条外部连线。电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源,电压通常介于4~6 V 。控制线的输入是PWM控制信号——宽度可调的周期性方波脉冲信号,要求该信号的周期为20 ms。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,输出角度的变化与输入脉冲宽度的变化成正比, 如图2所示。因此,在控制线上输入PWM控制信号即可控制舵机动作。 3、控制系统的硬件结构 通常无线接收模块接收遥控器传来的遥控信息,输出相应的PWM控制信号直接控制舵机转动。但根据课题实际需要,本文为实现无人机自动驾驶和遥控驾驶的无扰动切换,无线接收模块输出的PWM信号要先进入以GT2000为控制芯片的控制电路板,完成遥控指令的接收与复制,再由控制电路板生成PWM信号控制舵机。为了验证控制系统的功能,本文通过两路PWM信号控制实验小车的方向和速度,硬件连接如图3所示。 图3 控制系统硬件框图 在进行遥控信号的接收与复制时,无线接收模块输出的两路PWM控制信号PWM_CH1和PWM_CH2经电平转换模块变换为_PMW_CH1和_PWM_CH2,GT2000通过外部中断管脚IRQ0和IRQ1接收和复制这两路信号;在进行控制信号的输出时,GT2000通过通用I/O口PortA~0和PortA~1管脚输出控制信号_pwm_ch1和_pwm_ch2,这两路信号经电平变换模块变换为pwm_ch1和pwm_ch2控制遥控小车的方向和速度。 无线接收模块输出的高电平为2.8V,GT2000接收与输出信号的高电平为3.3V,舵机所接收的控制信号高电平为4~6V。如果将无线接收模块输出的信号直接输入到GT2000的外部中断输入口,会导致错误地触发中断;如果GT2000将控制信号直接输出控制舵机,舵机工作会发生异常。所以,增加电平变换模块可以使控制信号的高电平电压符合各模块的要求,从而正确地控制实验小车。电平转换模块可采用OC门实现。 4、控制软件设计 1)遥控信号的接收与复制 本文使用定时器和外部中断采集PWM的脉冲宽度的时间值来实现的遥控指令的接收。当PWM波形的前沿来临时触发中断,中断服务程序中记录当前定时器的计数值为 ,当PWM波形的后沿来临时也触发中断,中断服务程序中记录当前定时器计数值为 ,假设定时器计数寄存器下溢的重新装入值为 ,则所复制的PWM脉冲宽度T的计算方法可由公式(1)表示。 GT2000提供TMU0、TMU1、和TMU2三个独立的定时单元,这里选用TMU2为信息的捕获和复制提供定时服务。由于通过电平转换PWM波形与原波形反相,所以控制信号的前沿是下降沿,后沿是上升沿。以外部中断输入口IRQ0为例,首先在打开中断前初始化中断触发方式为下降沿触发,在IRQ0的下降沿中断服务程序中记录TMU2当前的定时计数值为T11,然后设置IRQ0的中断触发方式为上升沿触发,最后中断返回;在其上升沿中断服务程序中记录TMU2当前的定时器计数值为T12,通过公式(1)计算得PWM的脉冲宽度,之后设置IRQ0的中断触发方式为下降沿触发,最后中断返回。IRQ0接收PWM信号的时序如图4所示。 图4 IRQ0的PWM接收时序图 图5 两路PWM信号输出时序图 IRQ1的中断实现方式与IRQ0相同,这样通过外部中断和定时器的配合使用就实现了两路PWM遥控指令的接收和复制。 2) 舵机控制信号的生成与输出 由于定时器资源有限,为了实现多路PWM信号的输出,需采用分时控制的方式输出PWM信号,为此需要使用TMU0、TMU1 两个定时器,TMU0针对周期定时,TMU1针对脉冲宽度定时,在中断服务程序中完成控制信号的输出。具体方法如下。 假设复制得到的遥控信号_PWM_CH1和_PWM_CH2的当前脉冲宽度与定时器计数器对应的值分别为T1和T2,信号周期与定时器对应的计数器值为T,经GT2000的通用I/O口PortA~0和PortA~1要输出与之脉宽相同的控制信号为_pwm_ch1和_pwm_ch2。首先,初始化定时单元TMU0与TMU1为中断方式,即在定时单元计数发生下溢时向CPU申请中断。其次,设置TMU0的计数器值为T/4,从而在一个周期内可以分时输出四路PWM控制信号。两路PWM信号的输出与定时器中断时序如图5所示,定时单元TMU0和TMU1具体的中断服务程序流程如图6所示。 图6(a) TMU0中断服务流程 图6(b) TMU1中断服务流程 为实现分时输出,这里需要一个开关变量CHANNEL(初始值为0)控制当前输出哪一路控制信号,当CHANNEL为0时输出pwm_ch1,CHANNEL为1时输出pwm_ch2。因此通过两个定时器协同工作可以在I/0口PortA~0和PortA~1输出两路PWM波形,之后通过电平转换产生标准的PWM波控制舵机。 3)实验结果 本文定时器定时频率为10.025MHz,所以定时精度约为0.1 (1/10.025MHz)。本文CPU的系统时钟为40.1MHZ,每条指令的平均执行时间为1个时钟周期,耗时最长的中断分支要执行160条指令,因此中断返回时间为3.99 。由于输出一路PWM信号要发生两次中断,那么信号脉宽的最大误差为7.9 ,如图2所示,舵机的转角与PWM脉宽的关系为90 /ms,所以由于中断产生的舵机转角误差为0.71 ,系统可以灵活地控制舵机的转动。 通过示波器测得控制系统输出的两路PWM波形如图7所示,该波形的周期和脉宽符合控制需求,且能够控制遥控小车完成各种动作。 图7 两路PWM波形 5、结束语 本文提出的基于国产嵌入式芯片GT2000实现PWM信号的复制和输出方法成功实现了对遥控小车的控制,为基于国产芯片的无人机自动驾驶仪的进一步研究奠定了良好的基础。 本文作者创新点:本次设计使用了具有自主知识产权的国产CPU,减少了控制系统对国外的技术依赖。所用CPU内部定时器频率可独立设置,在生成低频率的PWM信号时,不必降低CPU的工作频率;同时,采用内部定时器产生PWM信号而不必另外设计电路,因此硬件实现简单。此设计方法不但可以应用于多路PWM信号的捕获和输出,而且只需修改软件中的控制参数即可产生周期和脉宽均可变的PWM信号。 |
- B2B搜索“联姻”..
- 2008-9-11
- HOLTEK推出H..
- 2008-9-11
- 关于ISPRO校验..
- 2008-9-11
- 利用适配板实现免制..
- 2008-9-11
- GSMSMS模块客..
- 2008-9-11
- ISPro下载型编..
- 2008-9-11
- C语言之stati..
- 2008-9-11
- 完美结合语音芯片与..
- 2008-9-11
- 又做一工具:ATm..
- 2008-9-11
- QE128的DEM..
- 2008-9-11
- 特别推荐一款高性能..
- 2008-9-11
- SATA硬盘使用解..
- 2008-9-16
- EPoX主板几种前..
- 2008-9-16
- 反其道行之降低电压..
- 2008-9-16
- 基于ATM8051..
- 2008-9-16
- THB6016H测..
- 2008-9-16
- 显示器黑屏的解决办..
- 2008-9-16
- 你会买网络服务器吗..
- 2008-9-16
- 酷漫教你制作只带一..
- 2008-9-16
- 酷漫破解网页右健锁定
- 2008-9-16



