基于arm的舞台电脑灯步进电机控制研究
任慧,蒋伟,袁阔,刘 荣
(中国传媒大学自动化系,北京100024)
摘要:舞台电脑灯能够在舞台上创建具有震撼力的灯光效果,是现代舞台、剧场等娱乐场所不可缺少的智能灯具。针对传统的51单片机电脑灯控制系统的不足,提出了嵌入式linux的arm处理器作为电脑灯的控制核心,根据舞台剧情设置步进电机驱动程序,自动对电脑灯步进电机进行控制,实现了舞台电脑灯所完成的功能。
关键词:舞台电脑灯;嵌入式lmux;步进电机;驱动电路
中图分类号:tm383. 6 文献标志码:a 文章编号:1001-6848(2010)03-0098-03
0引 言
传统的电臆灯的控制方法采用单片机控制步进电机,但由于单片机的系统赘源、运算速度和存储空间的限制,每个单片机控制的步进电机的数量较少,而每台电脑灯往往需要很多步进电机。arm凭借丰富的系统资源和更高的运算速度,更适于作为电脑灯步进电机的微处理器,一个arm可以控制更多的步进电机。而嵌入式的linux系统负责嵌入式系统的全部软、硬件资源的分配、调度,它在实时性、硬件的相关依赖性、软件固化以及应用的专业性等方面具有较为突出的优点,本文重点阐述嵌入式linux的步进电机驱动程序的
设计[1]。
1 系统硬件电路设计
为了便于说明,本系统仅使用3台步进电机来控制。电脑灯控制台送出dmx-512信号,arm电路板接收到该信号后进行处理,转换成相应步进电机的脉冲信号,使步进电机实现相应的动作,进而实现电脑灯的动作。为了防止步进电机出现漏步,与步进电机同轴安置码盘检测步进电机是否按要求准确动作,如果出现谝步,通过偏差进行调整。系统电路结构如图1所示。
1.1接口芯片a3972
本设计中选用两相四线混合式步进电机42bygh107,额定电流为0.4 a,步距角为1.80。采用的接口芯片是a3972,a3972是allegro公词生产的一款双dmos全桥微步距脉宽调制(pwm)步进马达驱动集成电路,利用cpu通过3线(时钟、数据、选通)串行接口对其进行控制,可设置步进电机的运转方向及各种不同的步进法(从微步距到全步驱动),对步进电机的转矩控制具有很大的灵活性[2,3]。
1.2步进电机9200muio使用配置
本系统中,3个步进电机接口芯片的a3972里的串行接口的3个引脚ste(使能信号端)、clk(时钟信号端)、data(数据输入信号端)分别与at91rm9200的gpio口相连,对应关系如表l所示,at91rm9200处理器的pao,pa1,pa2接步进电机1接口芯片的三个引脚,pa3,pa4,pa5接步进电机2接口芯片的三个引脚,pa18,pa19,pa20接步进电机3接口芯片的三个引脚。
2嵌入式linux步进电机驱动
linux将所有的设备看作具体的文件,通过文件系统层对设备进行访问。所以在lmux的框架结构中,与设备相关的处理可以分为两个层次,即文件系统层和设备驱动层。设备驱动层屏蔽具体设备的细节;文件系统层则向用户提供一组统一的规范的用户接口。这种设备管理方法可以很好的做到“设各无关性”,可以根据外设的更新进行方便的扩展。整个设备管理子系统的结构如图2所示。
2.1步进电机主要驱动程序设计
首先定义gpio口,初始化硬件,然后根据ch的值选择不同的电机,在这里我们使用3个电机,ch的值来选择控制3个通道中对应的gpio来向
a3972传数据,从而控制不同的电机。在i从18 >o的19次循环里,控制clock_ pin模拟clk时钟的一个周期,并用get_ bit获取数据的第i位,赋
予data_ pin来传递给a3972,具体程序如下:
|