新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Cortex-M3的 STM32微控制器处理先进电机控制方法

基于Cortex-M3的 STM32微控制器处理先进电机控制方法

作者: 时间:2010-12-24 来源:网络 收藏

Harvard架构,这个32位RISC采用Thumb2指令集,提供16位和32位指令。对比纯32位代码,这个指令集能够大幅提高代码密度,同时保留原有ARM7指令集的多数优点(附加优化的乘加运算和硬件除法指令)。

系统要求微器须具备卓越的实时响应性(中断延时短)、纯功能(如单周期乘法)以及优异的性能(当非序列执行流和条件转移指令时)。能够满足所有这些要求。例如,当时钟频率是72MHz时,在25µs内对一个永磁完成一次无传感器磁场定向控制,这相当于在10 kHz采样率下25% 的CPU负荷。

内,该内核与意法半导体优化型闪存接口紧密配合,只需增加很少的外部元器件,周边外设即可外部事件(图2所示是F103中容量微的结构框图)。不用说,PWM定时器和模数转换器是最重要元器件。PWM定时器包括最的功能,如中央对齐模式PWM信号生成和死区时间插入逻辑,特别强调安全性:该模块直接控制功率开关换向,可控开关功率达到数千瓦。例如,用于配置某些重要参数的寄存器代码可以被锁保护,以防软件失效。只要“紧急停止”引脚被拉低,所有的 I/O引脚都被置于用户可配置的安全状态。这个功能设计采用组合逻辑模块,当主时钟(晶体)失效时,内部切换到后备振荡器之前,可确保保护电路仍然能够正常工作。最后,该微还包含一个第4比较通道,专门用于触发模数转换器,实现最佳的电流测量精度。

未标题-1.jpg

2F103中容量微控制器结构框图

即使最复杂的算法几乎也无法修正不精确的模拟测量值,但是,在某种程度上,驱动系统的总体性能取决于模数转换器的质量。STM32F103芯片内置三个采样率为1MSps的12位模数转换器,在整个温度和电压范围内,总不可调整误差 (TUE)低于5 LSB。模数转换器的数字接口有三个主要功能:首先,使CPU摆脱简单控制任务和数据处理;其次连接芯片的其余部件(中断请求、DMA请求、触发输入);最后,使STM32的多路转换器同步操作。在这些对无刷电机控制有用的功能中,我们首先考虑通道读序列发生器。对比传统的扫描电路(按照模拟输入序号,按序转换一定数量的通道), 在一个16个转换通道组成的顺列(例如:Ch3, Ch3, Ch0, Ch11)内,序列发生器可按任何顺序转换通道,当设计人员在设计印刷电路板时,这个功能给设计人员带来更高的设计灵活性,为实现平均转换目的,准许对同一通道进行多次采样(在一个序列内),当整个序列转换完毕后,DMA通道将转换结果送到RAM,中断处理程序产生一个中断请求。

在检测电机相位电流的过程中,瞬变电压在功率开关上产生的噪声(在离线开关应用中,典型噪声达到几百个V/µs)是引起读取误差的一个重要原因,可能导致测量结果的信噪比非常低。解决方案是使模数转换器与控制功率级的定时器同步:因为换向时刻可以预定(由3 PWM定时器的比较寄存器定义),所以可以使用一个额外比较通道在换向时刻稍前或稍后触发模数转换操作。这个原因,STM32启用了第二个序列发生器(又称注入序列发生器),该序列发生器的优先级高于正常序列发生器,可以用一个不能延迟的新转换操作使当前的转换操作中断。通常情况下,正常序列发生器负责“内部管理”转换,连续检测温度或直流总线电压(作为后台任务),然后通过DMA通道发送到RAM,而注入序列发生器则将处理时间关键的转换操作,并将转换结果存储在模数转换器寄存器(将会产生一个中断,但是不能接受延时)。



评论


相关推荐

技术专区

关闭