一种基于FPGA的永磁同步电机控制器的设计
3.1.2 NiosⅡ系统软件设计
该系统设计的软件程序主要在Nios IED软件中编辑调试,实现按键中断程序,按键如下:reset(复位),start/stop(启动和暂停),choose(参数选择),increase(参数值的增量),de-crease(参数值的减量),transmit(参数的传输);并实现串口通信中断程序。图3为NiosⅡ处理器软件执行流程。本文引用地址:https://www.eepw.com.cn/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转换。速度环的计数器脉冲锁存一个反馈速度信号,然后计数器循环计数。
评论