中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 传感控制 >>电子行业新闻正文

嵌入式步进电机控制系统的设计与实现

时间:2007/3/26 10:24:00  作者:  来源:ic72  浏览人数:1601
 
 

      摘要:介绍了步进电机的工作原理,提出了步进电机嵌入式设计方法,采用先进的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的系统可以提高系统的可靠性和稳定性

 
【相关文章】
·基于LMD18245型驱动器的二相步进电机细分驱动器设计
·基于门控时钟的寄存器传输级功耗优化
·如何改善机器振动的分析方法
·嵌入式步进电机控制系统的设计与实现
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9