网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 传感控制 > 正文
  • RSS
  • 嵌入式步进电机控制系统的设计与实现
    http://www.ic72.com 发布时间:2007/3/26 10:24:00

        摘要:介绍了步进电机的工作原理,提出了步进电机嵌入式设计方法,采用先进的ARM控制器,实现了软件与硬件相结合的控制方法,用软件代替脉冲分配器,达到了对步进电机的最佳控制。

        关键词: 步进电机;嵌入式;ARM控制器

        前言 

        嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统[1]。自20世纪70年代世界上第一个为嵌入式应用而    设计的微处理器诞生以来,已在几十年的发展历程,如今嵌入式系统(embedded system)已经成为电子信息产业中最具增长力的一个分支。随着微电子技术的发展,嵌入式控制系统在工业生产智能化、自动化中的应用越来越普及。尤其手机、PAD、GSP、机顶盒等新兴产品的大量应用,嵌入式系统的市场正在以每年30%的速度递增,嵌入式系统的设计也成为软硬件工程师越来越关心的问题。

        步进电机是工业控制中的一种常用执行部件,具有控制灵活、价格低等优点,因而在许多设备和装置中常被采用。嵌入式步进电机控制器就是将微处理器置于电机控制器中,使步进电机控制器能按设定的相数、拍数以及单个触发脉冲所走的步数,提供相应的控制逻辑。

        1、 步进电机的工作原理

        步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。目前常用的步进电机有3类:反应式步进电动机(VR)、永磁式步进电动机(PM)和混合式步进电动机(HB)。现以反应式三相步进电机为例说明其工作原理,定子铁芯上有六个形状相同的大齿,相邻两个大齿之间的夹角为60o。每个大齿上都套有一个线圈,径向相对的两个线圈串联起来成为一个绕组,各个大齿的内表面上又有若干个均匀分布的小齿。转子是一个圆柱形铁心,外表面上圆周方向均匀地布满了小齿。转子小齿的齿距是和定子相同的。设计时应使转子齿数能被2整除,但某一项绕组通电,而转子可自由旋转时,该相两个大齿下的各个小齿将吸引相近的转子小齿,使电动机转动到转子小齿与该相定子小齿对齐的位置,而其他两相的各个大齿下的小齿必定和转子的小齿分别错开1/3的齿距,开成“齿错位”,从而形成电磁引力使电动机连续地转动下去。

        永磁式步进电动机和混合式步进电动机的绕组电流要求正、反向流动,故驱动电路一般要做成双极性驱动。

        2、 相应的软硬件配置

        硬件环境:主要包括ARM嵌入式开发板;用于ARM7TDMI的JTAG仿真器;Pentium100以上PC。

        软件环境:PC机操作系统工程Windows98以上、ARM SDT2.51或ASD1.2集成开发环境、仿真器驱动程序。

        3、 开发板中步进电机的实现

        开发板中使用的步进电机为四相步进电机,转子小齿数为64。系统中采用四路I/O进行并行控制,ARM控制器直接发出多相脉冲信号,在通过功率放大后,进入步进电机的各相绕组。这样就不再需要脉冲分配器了,其功能可以由纯软件的方法实现,连接方法如图1:

    ic72新闻中心

    图1 四相步进电机在开发板中的接法

        四相步进电机的控制方法有四相单四拍、四相单、双八拍和四相双四拍3种控制方式。步距角的计算公式为

        其中:m为相数,孔制方法是四相单四拍和四相双四拍时C为1。控制方法是四相单、双八拍时C为2,Zk为转子小齿数。我们采用的是四相单、双八拍控制方法,所以步距角应为360o/512/8。

        UP-NETARM300开发平台中使用EXI/O的高四位控制四相步进电机的四个相。按照四相单、双八拍控制方法,电机正转时的控制顺序为A →AB→B→BC→C→CD→D→DA。

        4、用ARM汇编语言实现对步进电机的控制

        对步进电机工作原理掌握后,通过程序完成对74HC573的高四位进行操作来完成步进电机的脉冲分配。在C 语言程序中调用汇编先要完成两件工作:在C语言程序中使用extern关键字声明外部函数,即要声明要调用的汇编子程序;在汇编程序中使用export伪指令声明要C中要调用的汇编子程序,使用export声明后其他程序可以调用此汇编程序。如下例:

        4.1     C中调用汇编程序

        #include

        extern void strcopy(char *d,const char *s);

        int main()

        {  const char *srcstr=”First string-source”;

        char dststr[]=”Second string - destinnation”;

        printf(“Before copying:\n”);

        printf(“ %s\n   %s\n”,srcstr,dststr);

        strcopy(dststr,srcstr);

        printf(“After copying:\n”);

        printf(“ %s\n   %s\n”,srcstr,dststr);

        return (0);

        

        4.2 汇编语言字符串复制子程序

        AREA  Scopy,  CODE,  READONLY

        EXPORT  strcopy                     ;此句保证其他程序可调用此程序

        Strcopy                              

          LDRB  r2,  [r1],#1                   ;装载字节后将地址加1

        STRB  r2,  [r1],#1                   ;保存字节后将地址加1

        CMP  r2,   #0                       ;比较r2 是否为零

        BNE  Strcopy                        ;如果r2不等于零跳转

        MOV  pc,  1r                        ;返回

        END

        4.3 原理图

    ic72新闻中心

    图    74HC573控制原理

        4.4 使用的程序如下:

        AREA  STEP,  CODE,  READONLY         

        EXPORT  STEPCTROL                     

        STEPCTROL                              

        START MOV  R0, #0                  

        ADR  R2,  TABLE                   ;将表头地址存入R2中

        LOOP  LDR R5,=0x0a000000草药      ;bank5,将要写入数据的地址放R5中

        LDRB  R1,[R2],#1                    ;注意这里是先将R2中的数据(一个字节)送入R1后R2的内容所表示的地址再加1

        STRB R1, [R5]                        ;将R1中的数据送入R5中的数据所表示的地址中

        MOV  R1,#0                         ;从本句开始到DELAYOVER为两级循环嵌套延时

        REPEAT ADD R1,R1,#1                ; 将R1中的值加1再送入R1中

        CMP  R1, #400                       ;[R1]和400比较

        BNE  NEXT1                   ;如果上面的比较结果不等跳转

        B   DELAYOVER

        NEXT1  MOV R3, #2

        NEXT2  ADD  R3, R3, #2

        CMP  R3, #40

        BNE  NEXT2                  ;将R3中的数据和40进行比较,不等则跳转

        B  REPEAT

        DELAYOVER

        ADD  R0, R0, #1               ;控制循环八次

        CMP  R0, #8                  ;将8和R0中的数比较

        BNE  loop                    ;如果上面的比较结果不等跳转到loop,否则执行下一条语句

        B  START

        TABLE  DCB ox10, ox30, ox20, ox60, ox40, oxc0, ox80, ox90

        END

        5、结束语

        嵌入式步进电机控制器,具有成本低、应用方便、通用性强等优点,有较大的推广价值。用汇编语言实现对ARM的四路I/O通道输出控制,实现环形脉冲分配用于控制步进电机,嵌入式技术可以大大减小系统的体积和重量,在环境比较恶劣的现场,基于ARM的系统可以提高系统的可靠性和稳定性


    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质