嵌入式操控体系以其低功耗、低成本、高功用等优势被广泛用于工业操控范畴,而在嵌入式操控体系中步进电机驱动操控技能是关键技能之一。在步进电机操控体系规划中,传统的办法是用逻辑电路或单片机完结步进电机操控,尽管此办法可行,但由于线路杂乱而且制成后不易调整,存在必定的局限性。跟着嵌入式技能的开展,越来越多的智能化带有界面操控功用的小型设备深化到人们日子傍边。开发者依据嵌入式范畴中的Qt技能,规划出一套运用于工控范畴的具有人机交互界面的智能操控统,Qt是挪威Trolltech闻名的标志性产品,选用C++作为程序规划语言,已经成为用C++GUI东西包在Linux上进行自在软件开发的干流,是Linux上盛行的KDE桌面环境的根底。Qt/Embedded是闻名的Qt库开发商Trolltech公司开发的面向嵌入式体系的Qt版别。Qt是Server/Client结构,连续了Qt在X上的强壮功用,在底层摒弃了Xlib,仅选用帧缓冲作为底层图形接口。Qt/Embedded类库彻底选用C++封装,供给给运用程序开发者树立艺术级的图形用户界面所需的一切功用。Qt/Embedded是彻底面向对象的,很简略扩展,供给了丰厚的窗口部件集,而且答应真实的组件编程。
1 硬件电路规划
1.1 体系全体框图
该操控体系的硬件部分主要由:步进电机、TA8435H、S3C2440微处理器、光电耦合器、接触显现屏组成。操控体系硬件结构图如图1所示。
体系在Linux下运用Qt规划开发嵌入式操控体系人机界面的办法,经过接触屏界面临步进电机进行操控,操控步进电机的滚动方向和转速、细分形式等。
1.2 电路规划
1.2.1 SC2440和TA8435H电路规划
本体系的硬件中心电路是由S3C2440处理器、TA8435H步进电机驱动芯片以及步进电机组成的步进电机操控电路。步进电机操控电路如图2所示。
在该步进电操控体系中,选用了以arm920t为内核的S3C2440芯片,该芯片是三星公司出产的一款高功用微处理器,具有功耗小、功用高、价格低一级优势,在许多范畴都获
得了运用。本文挑选该芯片为中心处理器,并将其植入Linux体系,从而完结经过接触屏对步进电机交互操控。S3C2440芯片具有289个引脚,其间多功用通用I/O多达30个,别离为GPA~GPJ,GPA有25个输出端口,其他均可依据需求装备成输入或输出。为了完结四个电机的牢靠操控,本体系挑选GPB端口为操控端口,该端口具有8个引脚,别离为GPB0~GPB8,所以可完结步进电机的实时操控。TA8435H是东芝公司出产的单片正弦细分二项步进电机驱动专用芯片,TA8435H能够驱动二项步进电机,且电路简略,作业牢靠。
TA8435H步进电机驱动芯片引脚4外接电容的电容值决议芯片内部驱动级的斩波频率,这儿运用的%&&&&&%容量是0.01μF。由于电机所需求的驱动电流为0.1 A,因而设定REF IN引脚为高电平,Rnf=0.8 Ω。步进电机接口需求运用快康复二级管(D1—D4),用来泄放绕组电流。
1.2.2 电路牢靠性规划
为了进步硬件的牢靠性而且有用按捺搅扰,S3C2440和TA8435H之间参加由光耦TLP521-4和TLP521-2芯片组成的电平阻隔电路,将S3C2440处理器操控信号与步进电机操控器进行电平转化和阻隔。电平阻隔电路如图3所示,S3C2440处理器GPIO端口、PWM输出引脚经过光电耦合器TLP251完结电平阻隔转化。
2 软件规划
由于在实践工业操控中会对电机有精度、速度、安稳性、方向等要求,所以本规划要经过接触屏按键交互,完结对电机正转、回转、转速、细分形式的挑选。
TA8435H芯片有正转回转两种作业形式,别离经过引脚CW/CK1/CK操控电机的正回转。也能够经过M1,M2输入引脚的凹凸电平来挑选细分形式。当M1M2为00表明步进电机作业在整部办法,没有细分;10为半步办法,01为1/4办法;11为1/8细分办法。在低速作业时,能够选用1/4或1/8细分形式,以进步步距角精度;在高速作业时,能够选用整步或半步办法,以进步步进电机运转的安稳性,减小步进电机的噪声和振荡。
步进电机的转速是由脉冲信号频率所决议的,脉冲信号的发生与操控实践是由CPU发生的,一般脉冲信号的占空比为0.3—0.4左右,电机转速越高,占空比则越大。本规划中电机转速是经过改动定时器参数,已发生其他频率和占空比的PWM输出操控步进电机。
PWM输出信号占空比公式为
PWM定时器的设置,要别离设置定时器0的预分频器值和时钟分频值,以供定时器0的比较缓冲寄存器和计数缓存寄存器。预分频值为0~255,分频器的分频值为2,4,8,16。
定时器输出时钟频率为
TCLK=PCLK/[(预分频值+1)]×分频器分频值 (2)
当时钟被使能后,定时器计数缓冲存储器(TCNTBn)把计数初值下载到递减计数器中,定时器比较缓冲器(TCMPBn)把其初始值下载到比较寄存器中,并将该值和递减计数器的值进行比较。这种依据TCNTBn和TCMPBn的双缓冲特性使定时器在频率和占空比变化时发生安稳输出。
3 QT操控界面规划开发
首要介绍将Qt/Embedded在以S3C2440为中心的硬件渠道上的移植。该体系选用CPU内部LCD操控器和320*240分辨率的16bpp TFT LCD作为显现设备,一起移植了ARM Linux作为操作体系。这儿用到的操作体系渠道是Linux—Red Hat 9.0,穿插编译器版别是arm—linux—gcc 4.1. 2。其次介绍以qtopia为图形界面运用程序开发渠道和图形界面操控电机体系的开发进程。
3.1 tslib移植
本规划选用的接触屏是TQ4.3寸屏,由于要经过与接触屏的交互来操控电机,也就是说在开发板上操作QT程序,是经过接触屏完结的,所以首要要移植tslib,进行接触屏校对。tslib是一个开源的接触屏支撑库,它是handhelds.org上开发的,作者是Russul King,Douglas Lowder和Chris Larson。它给上层的运用程序,为不同的接触屏供给了一个一致的接口。它供给比如滤波、去抖、校准之类的功用。
解压源代码tslib-1.4.tar.gz,编译装置tslib,将装置途径下的整个tslib文件夹,下载至开发班的上,寄存的途径为/usr/local。设置开发板环境变量,经过超级终端,翻开环境变量文件/etc/profile,增加如下内容:
3.2 QT开发环境树立与移植
将qt-4.6.3.tar.gz压缩包解压为3份,别离编译PC,嵌入式x86和arm三个版别的Qtopia-2.2.0。在root目录下树立tmp文件夹,将qt-4.6.2.tar.gz直接解压后仿制3份,别离命名为pc、x86、arm。将Linux-Red Hat上/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib(bin/include/fronts)中的一切文件别离仿制到ARM板/fla sh/qt/lilib(bin/include/fronts)目录中。移植qt的嵌入式版别到嵌入式设备中,确保设备发动后能够正常进入到GUI形式。
3.3 树立QT项目文件
在PC的Linux的终端输入指令:#qt2/bin/designer 1来在后台发动QT规划器。规划步进电机的操控界面,整个操控界面的名称为xagc,并将按钮的点击事情与操控电机转速和方向的函数用信号与槽衔接起来。图4是电机操控界面,操控界面别离操控电机滚动、细分形式、四种转速。图5是信号和槽衔接,增加的响应函数为void Motor_CW(),voidMotor_CCW(),voidDriver_Model1/2/3/4(),void Speed Model1/2/3/4()。
保存工程名为xagc.ui,然后运用uic软件将刚刚树立工程转化为源代码,首要树立一个可履行脚原本完结文件转化,这儿用到的文件名与ui相同,该脚本会在今后开发中用到,设置ui2cpp脚本为可履行,最终履行树立的脚本转化文件。取得源码xagc.h;xagc.cpp;moc_first.cpp。程序如下。
依据得到的pro文件运用tmaker软件生成Makefile文件,手首要仿制前面制作好的“xagc/”目录到“/opt/EmbedSky/Qte/arm-qtopia-2.2.0/pro/”目录下,然后从头翻开一个PC的linux的终端,从头设置环境变量,修正Makefile文件,然后编译即可完结移植。
4 成果测验
经测验,电机操控界面移植到了s3c2440上,并经过接触屏按键的交互,能够完结步进电机的操控,而且在改动电机速度时,电机能够安稳的运转。实例运转成果如图6。
5 定论
图形用户界面的广泛盛行是当今计算机技能的重大成就之一,它极大当地便了非专业用户的运用。本规划经过Linux下运用Qt规划开发嵌入式操控体系人机界面的办法,规划出了简略便利的步进电机操控界面,完结了对步进电机转速、方向、细分形式的挑选操控。运用这一技能操控的步进电机成功地运用到咱们研发的核电设备的焊机体系上,体系运转安稳,操控精度高,其软件界面形象生动,而且编程简略,完结起来十分便利,而且可依据用户的不同要求随时调整操控办法,因而具有广泛的运用价值。