新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于FPGA的永磁同步电机控制器的设计

一种基于FPGA的永磁同步电机控制器的设计

作者: 时间:2010-03-17 来源:网络 收藏

  
  3.1.2 NiosⅡ系统软件设计
  
  该系统设计的软件程序主要在Nios IED软件中编辑调试,实现按键中断程序,按键如下:reset(复位),start/stop(启动和暂停),choose(参数选择),increase(参数值的增量),de-crease(参数值的减量),transmit(参数的传输);并实现串口通信中断程序。图3为NiosⅡ处理器软件执行流程。

本文引用地址://www.cghlg.com/article/226186.htm


  
  这里只给出 stait按键中断软件程序代码,而choose,in-crease,decrease,transmit程序与之相同。
  
  int main(void)
  
  { alL_irq_register(start_IRQ,start_BASE,start_ISR);//按键
  
  start的中断注册
  
  IOWR_ALTERA_AVALON_PIO_IRQ_MASK(start_BASE,
  
  0x01);//开启中断使能;
  
  IOWR_ALTERA_AVALON_PIO_EDGE_CA(start_BASE,
  
  0x00)://清除捕获寄存器;
  
  //只给出start变量(用于启动电机)初始化,并写入输出
  
  寄存器:其他变量初始化相同;
  
  Unsigned start=0;
  
  . IOWR_ALTERA_AVALON_PIO_data(start_BASE,start);
  
  //变量写入输出PIO寄存器;
  
  While()
  
  }
  
  3.2 电机硬件驱动模块
  
  电机硬件驱动模块实现clark,park,i_park坐标变换,PI调节器,SVPWM产生器,转速检测等硬件模块等双闭环结构。由于上述各个模块设计比较简单常见,因此,这里主要介绍SoPC时序控制部分。Reset按键为全局复位。复位后系统软件从主程序入口开始执行;而此时硬件驱动模块中的两个状态计数器为“-1”。这两个计数器计数时间对应50μs和1 ms,分别对应于电流环和速度环的采样时间。一旦检测到来自NiosⅡ处理器的start高电平信号,该信号作为计数使能信号,这两个计数器从“0”开始计数,计数为“0”时产生一个高电平脉冲信号,电流环计数器脉冲用于锁存SVPWM中的Ta,Tb,Tc(三相占空比信号),并启动A/D转换。速度环的计数器脉冲锁存一个反馈速度信号,然后计数器循环计数。



评论


相关推荐

技术专区

关闭