新闻中心

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

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

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


  3.1.2 NiosⅡ系统软件设计

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

本文引用地址://m.amcfsurvey.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转换。速度环的计数器脉冲锁存一个反馈速度信号,然后计数器循环计数。



评论


相关推荐

技术专区

关闭