结合DSP和微控制器特性、用于电机控制的单片处理器

发布者:ching80790最新更新时间:2014-02-15 来源: EEPW关键字:DSP  微控制器 手机看文章 扫描二维码
随时随地手机看文章

正确地利用电机控制器可为电机控制以及许多相关系统和产品设计节约大量的成本。本文针对低成本、低功耗和程序代码要求较高的电机控制及其它应用,介绍了集成DSPMCU特性的单片处理器解决方案,可为电机控制领域设计工程师进行器件选择提供参考。

Rich Hoefle

应用工程经理

DSP标准产品部

摩托罗拉公司

电机在人们日常生活中扮演着重要角色,从普通的家用电器到复杂的电子系统和计算机,电机为各种应用提供旋转运动或线性运动。随着大量更为复杂应用的出现,电机控制问题变得越来越重要。因此,需要开发出更为复杂的技术,以改善其性能、功耗和安全性。小型电机通常用于精度要求极高的应用,而大型电机,如用于机器人中的电机,常常需要执行非常复杂的任务,并且强调实时性。

高性能的电机控制对总的能耗具有重要影响。家庭和办公室中的电冰箱(与电机紧密相关的设备)约消耗世界能源的10%,而用于商业建筑的取暖、通风设备以及空调中的电机运行系统,其电费约占整个建筑物总电费的50%。通过利用基于DSP的改进型电机控制技术,如某些已接近商业化的控制器,可总共节省30%至50%的能耗,如家用电冰箱的能耗可减小25%,而HVAC鼓风机可节省多达80%的能耗。

DSP电机控制器的应用

DSP控制器通过提高效率,可以改善许多产品的特性。例如,洗衣机就从中受益匪浅。通过结合不太昂贵的AC感应或磁阻电机的复杂旋转控制,洗衣机可获得一些新的功能特性,这些特性以往受成本约束或者根本就不可能实现。目前,一些高档洗衣机中已具有快速脱水、柔和搅动以及失衡校正等功能,用不了多久,电子控制将使普通洗衣机也具有这些功能。

早期的洗衣机采用一种机械传动方式,为不同的洗涤周期提供不同的滚桶速度和搅动程度,以及有效脱水所需的高速滚桶速度。传动方式允许只用单个无电子控制AC电机实现洗衣机的功能,但成本较高且可靠性差。

最新型的洗衣机则没有采用传动工作方式,因为采用复杂DSP或微控制器(MCU)对低成本AC感应或开关磁阻电机进行控制,可提供所有标准的洗涤周期。此外,电气控制的感应或开关-磁阻电机使搅动周期更为高效和柔和,不仅可以降低能耗,而且减小了衣物的磨损。脱水旋转周期可通过电子控制达到超出以往的高速度,从而脱去更多的水并缩短甩干时间。更为有效的周期意味着洗涤时间更短、用水更少且所需的洗涤剂也更少。

电冰箱也同样从电子控制中获益。例如,为了消除冰箱压缩机周期性地起动和停止(这需要较高的启动转矩)的现象,一种带有小型电机的小型压缩机可连续低速运行,并调整其转矩以保持冰箱内所需的温度,而无需重复地起动和停止。因此,可降低压缩机的功率要求和整体运行成本。

对电器而言,改进型控制器的成本逐年减少,很容易降低复杂电子控制的成本。以洗衣机为例,有效的控制估计可节约高达50%的用电和用水,且不包括洗涤剂及加热时所节省的煤气等能源。

AC感应和开关磁阻电机的速度和转矩控制,在用于诸如磨床、车床和钻孔机等机械加工应用中,可将工具速度控制及灵活性提高到前所未有的水平,同时降低机械的复杂度和机械成本。

早期的机械加工工具没有电子控制装置,需要传动带和滑轮、齿轮传动装置、机械减速器和其它控制AC电机速度的装置。这些复杂的机械设备不仅增加了加工的成本,降低了可靠性,而且加工速度的精度也不如数字控制方法高。加工速度与加工方法和材料有关。

复杂电机控制无需机械驱动控制系统,可减轻重量,并且降低了加工制造和运输成本。机械部件越少,可靠性越高,从而减少维护成本。

基于DSP的电机控制使至今为止无法实现的加工变为现实。具有动态控制切割速率的工具,能够根据加工时转矩的反馈进行自动调节。

在交通方面,汽车、公交车和卡车已成为DSP应用的重要目标,通常用来控制新车型中的各种电子系统。为电机控制而设计的DSP适用于驱动火车和电力机车、车体控制及安全系统,如反抱死制动系统、牵引和悬架系统以及最新的夜视和防冲撞系统。总的来说,这些应用覆盖了近90%的汽车半导体市场。

系统设计者目前面临多种控制器选择,选用微控制器还是DSP是一个很棘手的问题。两种控制器都具有广泛的应用灵活性。在控制电机速度或位移的应用中,MCU通常仍是开环(无反馈)系统或电机闭环反馈系统的最佳选择,具有很高的性价比。但是,如果受控电机转速很高,并有许多线圈,且用于连续转矩系统,或者需要额外的MCU或微处理器来控制系统运行,那么基于DSP的控制器则是最佳选择。同样,在电机转速非常高,或者必须采用闭环算法对电机进行严格控制的情况下,如高速开关磁阻或低速牵引电机,基于DSP的控制器也是最佳解决方案。

DSP和微控制器相结合的内核架构

一般而言,DSP是为有效地执行信号处理算法而设计,在开发良好的DSP架构和良好的微处理器架构之间,经常需要进行折衷。许多DSP系统既采用了DSP,又采用了微控制器,DSP用于满足计算要求,微控制器用来满足功能要求。额外的芯片会大大增加最终产品的材料成本,于是在一块芯片上集成两种芯片的功能,在成本和开发时间上都极具吸引力。

将DSP的性能和微控制器的主要功能结合起来是一项重大课题。摩托罗拉通过创建一种新的DSP架构解决了这一课题。这种新的架构采用高效的微控制器代码和编译器性能,既适用于通用的DSP算法又能实现高性能控制。如图所示,这种架构将DSP功能和许多微控制器特性集成在一起,可进行电机控制和全面的系统控制。

基于DSP56800内核的电机控制产品系列包含以下结构特征:

  1. 工作于4.57V至5.5V、时钟频率为80MHz时,处理速度为40MIPS;

  2. 采用哈佛架构,可处理大量通信数据;

  3. 具有DSP寻址模式的并行指令集;

  4. 周期16×16位并行乘法器-累加器(MAC);

  5. 2×36位累加器,包含扩展位;

  6. 单周期16位并行移位器;

  7. 硬件DO和REP循环;

  8. 3条16位内核数据总线和3条16位内部地址总线;

  9. 1条16位外部接口数据总线;

  10. 支持DSP和控制器功能的指令集;

  11. 控制器类型的寻址模式和可减小代码规模的指令;

  12. C 编译器和支持局部变量;

  13. 软件子程序和无限嵌套深度的中断堆栈。

DSP56800内核是一种可编程的CMOS 16位定点DSP,专为实时数字信号处理和通用计算而设计。该内核由4个并行工作的功能单元组成,可提高系统的处理能力。这些功能模块包括程序控制器和硬件循环单元、地址生成单元(AGU)、数据算术逻辑单元(data ALU)和位操作单元,分别带有独立的寄存器集和控制逻辑。每个功能模块可独立工作或与其它3个模块并行工作,并通过内核的内部地址和数据总线,与其它单元、存储器和存储器映射的外围电路进行接口。因此,在同一时刻,程序控制器可取出第一条指令,地址生成单元可为第二条指令生成多达两个地址,数据ALU则在第三条指令执行乘法运算。

除了功能模块以外,该内核架构还包含3条内部地址总线、4条内部数据总线、一个调试端口以及时钟生成电路。

高性能DSP控制器设计通常需要具有以下4种特性:

  1. 高宽带并行存储器传输性能;

  2. 支持并行存储器传输并提供DSP寻址模式的AGU;

  3. 可进行快速算法计算、具有足够寄存器集的计算单元;

  4. 执行循环时,不降低性能的硬件循环机制。

摩托罗拉的架构可满足这些要求,它有如下一些特点:

  1. 并行转移(move)指令:灵活的并行转移指令集允许存储器存取与计算单元的运行同时进行。实现高带宽存取计算单元数据,可保持计算单元始终处于繁忙状态,消除了数据进出计算单元时的传输瓶颈效应。在目前的情况下,允许两种类型的并行转移:单向并行转移和双向并行读。这两种转移都在一个指令周期中执行,并占据程序存储器的1个字长位置。

  2. 地址生成单元:地址生成单元(AGU)是进行所有地址计算的模块。在DSP56800内核中,AGU包含两个算术单元和自己的寄存器集,可为数据存储器提供高达两个地址,也可在一个指令周期中更新两个地址。它适应两种类型的算法,包括用于通用地址计算的线性算法以及用于创建存储器内数据结构的求模算法,通过更新地址寄存器对数据进行操作,而无需移动大块的数据。

  3. 数据ALU单元的快速计算:处理器计算单元的性能取决于它如何存取操作数及其计算能力。

    许多传统的DSP设计基于累加器,即无论操作数来自哪里,运算的结果总是存储在累加器中。除了乘法运算不允许累加器作为一个乘数输入以外,运算执行后一个操作数要留在累加器中。

    新架构的大量寄存器和正交结构提高了计算的效率,其中算术运算的结果可写入数据ALU的5个寄存器中的任一个。数据ALU输入也允许是立即数,在任何寄存器进行增量运算的同时,进行其它寄存器的运算,从而大大增强了寄存器集的性能。累加器也能够用作乘法器的输入或用来累加。这一技术还减少了存储器的存取次数,因为中间结果无需暂时存储在存储器中。该内核的设计不是管线操作,故在一个指令周期之后乘法或乘法-累加的结果就可获得,而无需两个指令周期。

  4. 循环机制:DSP和其它数字计算程序经常使许多处理器的执行时间浪费在一些与数字相关的小型计算循环中,因为这种循环需要进行大量存储器存取。因此,提供一套具有强大寄存器集的灵活并行转移指令十分必要,循环本身的执行时间的最小化也很重要。DSP56800内核使用一种灵活的硬件循环机制,可不附加任何计算时间,自动进行循环,成为“无开销循环”。这通过提供一种硬件“DO loop”机制来实现,无需额外的执行时间就可循环任意条指令。与早期的无开销循环设计不同,这一循环机制可中断并具有可嵌套于“DO loop”机制中的重复循环能力。

减小程序规模的内核特性

该内核的编程模型分为三组不同的寄存器集,分别对应于DSP内核中三个功能单元,每一功能单元具有一套完整的寄存器来完成其任务。

这种架构允许对立即数或存储器直接进行操作。使用立即数有助于减少寄存器的使用,因为使用立即数时,算术运算可直接完成,从而无需使用寄存器存储重要变量和中间结果。

该内核的转移指令和寻址模式设计为通用模式,以简化编程任务,提高效率。完整的寻址模式指令集支持8种不同的寻址方式,可采用任何转移指令对数据存储器或片上存储器映射的外围寄存器进行存取。其它寻址模式也可在经常存取DSP内核寄存器的一个子集中找到,包括数据ALU中的寄存器和ALU中的所有指针。

除了上面描述的硬件循环外,软件循环也是DSP架构中的一个重要性能。内核可将AGU或数据ALU中的寄存器用作循环计数器来实现软件循环。将存储器的某一单元用于循环计数,可使整个寄存器集都用于完成算法计算,这一性能已证明是有用的。

与大多数DSP架构中传统的硬件堆栈不同,DSP56800内核采用位于存储器中的一个真正堆栈指针实现其堆栈。这一特性允许无限制地嵌套子程序和中断,也支持通常只能在高级控制器中实现的结构化编程技术,例如子程序的参数传递和局部变量。软件堆栈、堆栈指针与寻址模式,既适用于汇编语言编程,又适用于高级语言编译器。

这种内核架构减小了DSP编程和控制器编程的代码规模。指令可直接作用于存储器的性能、循环机制、正交的转移指令集和取址模式以及将立即数直接装载到存储器的能力,均有助于减小通用计算的代码规模。通过并行转移指令、完整的寄存器集和将结果写回任一数据ALU寄存器的能力,减小了DSP算法的代码规模。直接对立即数或存储器进行算术运算的特点,也使代码密度得到提高。最初已有的一些结果表明,与传统DSP架构的编译器相比,程序的代码规模减小了1/3或1/2。

中断与外围电路

DSP56800的中断单元采用了一种矢量中断方案,可实现快速中断服务,也可进行扩展,以支持未来基于内核的设计。目前的设计支持13个不同的中断源:用于7个不同的片上外围器件的7个中断通道、2个外部中断以及4个来自DSP内核的中断源。从这些中断源中,执行的指令可量化为多达64种不同的中断向量中的一种。每个可屏蔽的中断源均可单独被屏蔽,也可在状态寄存器中屏蔽所有可屏蔽中断。

内核与外围特性的结合使产品设计高度集成化,为电机控制应用提供经济的系统解决方案。 DSP56800系列产品在一块芯片上包含了多通道A/D、PWM、CAN、积分编码器和电压调节器。这些外围电路简化了电机控制系统和软件设计,如插入死区、失真校正和与A/D转换器的同步。积分编码器提供了抖动、轴位移和速度的测量,将外部电路板器件减至最少。每种产品都使用了程序FLASH存储器、数据存储器和引导装载存储器,可进行远程编程,缩短了设计周期,并在保证系统设计可灵活复用的同时,避免了对程序ROM进行传统的掩膜固化,从而节约了成本。

由于软件已完成了驱动程序、算法和应用级的优化和整体测试,所以也能缩短整个设计时间。通过提供利用公共API的程序库,可简化从8位MCU应用中移植代码的过程,并易于将代码向未来更高性能DSP内核移植。

DSP56800的应用范围

DSP56800系列产品具有软件和硬件开发工具,包括集成软件开发环境、用于软件开发的EVM目标平台、标准组件电机控制开发硬件、实时监控和修改电机控制参数的可视化分析工具以及嵌入式软件。

总而言之,DSP56800内核架构适用于强调控制成本的应用,如伺服和AC电机控制等消费领域。DSP56800其它可能的应用还包括调制解调器、数字无线信息发送、数字应答机和数字相机。高性能的DSP特性和通用指令集使这一架构适用于对低成本、低功耗和高效程序代码要求较高的应用。

作者简介:

Rich Hoefle在摩托罗拉工作了15年,具有丰富的经验,曾担任该公司的各种职务,包括应用工程师、高级销售代表、区域工程经理、市场开发经理和区域技术经理。

关键字:DSP  微控制器 引用地址:结合DSP和微控制器特性、用于电机控制的单片处理器

上一篇:嵌入式DSP设计中的功耗优化
下一篇:基于Maflab的IIR数字滤波器设计及DSP实现

推荐阅读最新更新时间:2024-05-02 22:58

基于51单片机的智能水表
一.硬件方案 本设计主要以51单片机作为主控处理器的智能水表,该水表能够记录总的用水量和单次用水量,当用水量超出设定值时系统发出声光报警提醒,水量报警值能够通过按键进行自行设置,并且存储于AT24C02中,并且可以测量水流速度。测量的结果采用LCD1602液晶显示平显示出来。 主要由51单片机+最小系统+LCD1602液晶显示模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+按键电路+AT24C02芯片模块+水泵驱动电路;如图: 二.设计功能 (1)采用LCD1602液晶显示屏实时显示瞬时水流速、总用水量、本次用水量、水流量限值; (2)可通过按键设置水流量限值,当本次用水量超过水流量限值时系统发出声光报警提醒; (3)
[单片机]
基于51<font color='red'>单片机</font>的智能水表
基于单片机的实时时钟芯片DS1302驱动程序
本程序实现了时间与日历的轮换显示。 由于是2011年1月5日调试的,初始时间设置为11:59:58,日历11-01-05 // 标题: 试验数码管显示时钟 // // 通过本例程了解 DS1302时钟芯片的基本原理和使用 ,理解并掌握DS1302时钟芯片 // 驱动程序的编写以及实现数字字符在数码管中的显示。 // 请学员认真消化本例程,懂DS1302在C语言中的操作 #include reg52.h //包含头文件,一般情况不
[单片机]
51单片机基础之数码管(二)
原理: 因为数码管有8个,我们必须采用38译码器来节省单片机的资源,这里先简单介绍一下38译码器的原理,之后会慢慢补充常用芯片的原理和工作方法。 功能:38译码器有三个信号输入端,2的3次方就是8,有八种输出情况,每种情况对应一个输出,八个数码管分别连接八个输出,三个输入就可以实现八个数码管的动态显示。 真值表: 代码: #include reg52.h #define SMG P0 typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //配置38译码器,到时候要用 sbit LSA=P2^2; sbit LSB
[单片机]
51<font color='red'>单片机</font>基础之数码管(二)
ATMEGA128单片机定时器+数码管显示
#define SS 0 #define SCK 1 #define MOSI 2 #define MISO 3 #define SS_H() PORTB|=(1 SS) #define SS_L() PORTB&=~(1 SS) //注意,不要漏掉了() #define led0_en() {DDRB|=1 4;PORTB|=(1 4);} //开第一个数码管的位选 #define led0_dis() {DDRB|=1 4;PORTB&=~(1 4);} //关第一个数码管的位选 #define led1_en() {DDRB|=1 5;PORTB|=(1 5);} #define led1_dis() {DDRB|=1 5;
[单片机]
基于单片机与CF卡的接口设计与实现
  引言   电子存储设备的不断涌现,使许多便携设备大容量数据的实时处理和存储成为可能,CF卡( Compact Flash card)因具有容量大、体积小、性能优良、携带方便等优点,已广泛应用在数据采集系统和许多消费类电子产品中。然而目前所开发的产品成本高,电路复杂,所需元器件数目多,严重制约了CF卡在更广阔领域内的应用。本文给出了一种简洁实用的硬件接口电路.成功实现了单片机对CF卡标准文件的读写。   2 接口电路设计   接口电路如图1所示,采用与80C51兼容的SST89C54型单片机。SST89C54程序存储器分为block0和block1两块,前者为16 KB,后者为4 KB,block0和block1的地址不是
[嵌入式]
48-基于51单片机的矩阵电子秤设计
具体实现功能 系统由STC89C51单片机+HX711模块+按键模块+LCD1602显示+报警模块等构成. 具体功能: 1、系统可实现电子称基本的称重功能(称重范围为0~5Kg,重量误差不大于±0.005Kg); 2、系统应具备输入单价,计算总价的功能; 3、系统超出最大测量范围5Kg时应有报警指示功能(蜂鸣器报警提示)。 设计背景 秤是一种在实际工作和生活中经常用到的测量器具。随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。 与传统秤相比较,电子秤利用新型传感器、高精度AD转换器件、
[单片机]
48-基于51<font color='red'>单片机</font>的矩阵电子秤设计
STM32单片机的PWM输入捕获模式设计
说 不进中断 等等基本功能没实现ok的,查看: STM32 外设配置关键步骤 务必仔细瞅瞅… TIM输入捕获简介 TIM输入捕获两种模式: 1. PWM输入模式 2. 输入捕获模式 调试记录PWM输入模式: 该模式的理解: STM32的PWM输入捕获模式 仅适用于通道1、 2 从输入捕获中断说起… 从TIM3 CH1输入信号, (TIM_GetITStatus(TIM3,TIM_IT_CC1)==SET)//{ic1=TIM_GetCapture1(TIM3)+1;//周期ic2=TIM_GetCapture2(TIM3)+1;//脉冲宽度floatpulse=ic2/(float)ic1;//占空比FAN_Frequency=(
[单片机]
STM32<font color='red'>单片机</font>的PWM输入捕获模式设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved