DSP

翌创微电子ET6000 MCU/DSP系列芯片内置Arm®/Cortex®-M系列中最高性能的32位处理器内核Cortex®-M7,具有高算力、大容量非易失性嵌入式存储、高性能模拟外设、配置灵活的高精度PWM以及快速关断的系统级保护等特性,提供卓越的实时处理与环路控制性能,特别适用于各种功率转换应用,如光伏逆变、储能变换、电机控制以及充电桩等,可为客户提供高性能的数字能源主控芯片解决方案。

为更好支持电机类客户的产品开发,翌创芯片解决方案部门(AEG)发布了基于永磁同步电机的双电机控制器参考设计。

1 应用背景

随着新能源汽车、工业自动化控制和风力发电等行业的快速发展,高性能电机控制类MCU/DSP的需求也不断增长。ET6001芯片是一款双核 M7 处理器,主频高达 300 MHz,具备超强的运算能力和丰富的外设资源,特别适合用于 FOC 算法控制的双电机系统。本期文章将重点介绍永磁同步双电机控制器的软硬件方案。

2 硬件方案

双电机 demo 的硬件整体设计包含电机驱动板和 MCU 转接板,分别实现电机驱动、MCU 控制和调试接口等功能。

电机驱动板采用两个 AD2S1210 旋变解码器和调制解调电路,构成速度和角度信息的采集系统。功率驱动部分采用了两组三相逆变桥,其中功率器件选用 Vdss=80V、Id=60A 的 MOSFET,电流传感器量程为 ±50A。栅极驱动器为非隔离型,支持 3.3V 输入,电源电压范围为 8-20V。此外,驱动板设计了过流保护比较器和 NTC 热敏电阻,以触发过流硬件保护和板级温度监测。

1.png

图1电机驱动板&控制板关键器件和接口

MCU 转接板选用 ET6001(LQFP176 封装)作为主控芯片。该芯片搭载两个 32 位 Cortex-M7 内核,最高主频可达 300MHz,支持双精度浮点运算,能够输出最多 24 路互补高精度 PWM 波形,并支持 34 路 12-bit SAR ADC,满足高性能电机控制算法的需求。同时,转接板还集成了一路串口、六个独立按键和一块 1.3 寸 OLED 显示屏,便于调试。

双电机demo整体硬件设计方案见下设计框图:

2.png

图2双电机demo硬件系统方案

3 软件方案

双电机 demo 的软件控制系统由底层软件驱动、控制算法和应用软件三部分组成:底层软件驱动主要涉及 MCU 外设配置和底层软件驱动;控制算法涵盖 FOC 控制、PID 控制和 PLL 锁相环等内容;应用软件则包括简单的按键加减速、OLED 显示以及 VOFA+ 上位机调试等功能。 

下图展示了FOC 控制算法结构框图。双电机 demo 采用磁场矢量控制(FOC)来驱动永磁同步电机,控制系统使用 PID 控制算法,分为速度环和电流环控制。

3.png

图3双电机demo控制算法结构框图

4 测试平台和视频展示

双电机demo测试结果主要在AEG部门的电机实验平台完成测试,电机实验平台主要包含集成开发编译器、VOFA+等上位机调试软件、电机性能分析仪、大功率直流DC电源、永磁同步电机、电机驱动板、电机控制板等组成。

4.png

图4双电机实验平台

以下视频展示了电机实验平台的动态加载过程:

5 总结

随着智能化的发展,电机在多种应用场景中扮演着重要角色。不同类型的电机、功率器件和传感器对 MCU 所需的外设资源各不相同。ET6000 系列高性能 MCU 特别适合电机控制,提供强大的算力和丰富的外设资源。后续的 ET6002 将引入 EQEP 和 SDFM 接口,以满足更复杂的电机控制需求;同时ET3000 系列将支持高功能安全等级和 AEC-Q100 标准,满足车规级产品的开发要求。翌创芯片解决方案部门(AEG)也将在未来推出更多电机控制场景的解决方案,融入新的产品需求和技术应用,期待与大家的见面。

来源:翌创微

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 40

翌创微电子ET6000 MCU/DSP系列芯片内置Arm®/Cortex®-M系列中最高性能的32位处理器内核Cortex®-M7,具有高算力、大容量非易失性嵌入式存储、高性能模拟外设、配置灵活的高精度PWM以及快速关断的系统级保护等特性,提供卓越的实时处理与环路控制性能,特别适用于各种功率转换应用,如光伏逆变、储能变换、电机控制以及充电桩等,同时满足有功能安全要求的汽车级应用,可为客户提供高性能的数字能源主控芯片解决方案。

为更好支持能源客户的产品开发,翌创芯片解决方案部门(AEG)发布了针对户用微型光伏逆变场景的第一代参考设计(微逆1.0)。

应用背景

根据《巴黎气候变化协定》,我国计划到2030年单位GDP的二氧化碳排放比2005年下降60%~65%,到2030年非化石能源在一次能源消费中的比例提高到20%左右。我国太阳能资源丰富,陆地表面年接受太阳能约为50×1018kJ,有2/3面积以上的地区太阳能资源丰富。得益于得天独厚的条件,我国光伏发电技术和产业化应用得到长足发展。

在光伏应用场景,目前常用的光伏并网系统架构主要有集中式逆变器(Centralized Inverter)、串式逆变器(String Inverter)、多串式逆变器(Multi-String Inverter)和交流模块(AC-Module)。

交流模块将光伏组件和逆变器集成为一体化设备(如图1所示),是一个独立的太阳能发电系统,在不需要任何人工干预的情况下,完成将太阳能转换成交流电能馈入电网。智能化、模块化使得它在微小功率分布式并网发电系统中备受青睐,一般它处理的功率等级不超过500W,因此又把这一功率处理单元称作微型逆变器 (Micro-Inverter)或交流模块(AC Modules),后续文章都简称微逆。

1.png

图1:微型逆变器的并网架构

反激类变换器通常具有电路结构简单、输入与输出电气隔离、升/降压范围宽和成本低等优点,广泛应用于中小功率开关电源中。因此,光伏并网微型逆变器常以反激式变换器为基础,在反激式变换器输出侧接工频换向桥并网,通过并网电流控制技术、高频PWM调制技术和软开关等技术满足微逆的设计需求。但随着微逆拓扑方案的逐步演进,微逆客户对MCU也提出了更高的要求;ET6000系列产品采用M7架构设计,在性价比上可满足不同类型的开发需求。

微逆1.0方案主要规格

依据各国光伏行业的准入标准以及智能化要求,微逆不仅仅是进行电能转换、最大功率点追踪和并网,还需要考虑孤岛检测、无线通讯、快速保护策略和功率测量等功能。ET6001的M7内核支持单周期乘加,DSP和浮点运算和依托成熟的算法库,可以满足复杂电网场景下的运算需求。

为了验证ET6001在微逆场景下的应用,我们开发了微逆1.0方案(250W基于反激的伪母线方案),实现:

  • 输入范围20V-60VDC,输出范围200V-240VAC;

  • 交错并联有源钳位反激;

  • M7单核实现单级控制(同步采样、环路计算和PWM更新频率100KHz);

  • 并网功率250W/峰值效率大于92.7%。

2.jpg

图2 微逆1.0方案原理框图

微逆1.0方案主要算法

图2是微逆1.0方案的原理框图,前级实现最大功率点追踪(MPPT)和输出电流的THD调节功能,后级工频管子实现并网功能。通过对光伏组件进行最大功率点追踪,实现光伏组件的最高效率利用,将太阳能量回馈到电网上。反激电路通过SPWM调制,将直流电流转换为正弦电流输出,再通过后级工频管回馈到电网上,实现并网功能。

3.png

图3  微逆1.0控制框图

图3则是详细展示了上述控制策略,其中需要调用MPPT(最大效率跟踪)和PLL(锁相环)两个重要子模块。PLL部分采用了基于内积的闭环锁相理念,可支撑无功调节的未来需求。MPPT部分则采用常规的扰动观测法,先扰动输出电压值,然后测其功率变化与扰动之前的功率值比较,不断寻找更大的功率输出点。

微逆1.0方案实物及测试结果

图4展示了微逆1.0方案的实物照片,已完成各类测试。

1724808339121707.png

图3 250W 微逆DEMO

基于以下工作条件: Vin_dc=40V;Vout=220V;Iout=1.14A,我们针对常规的指标(效率、PF、THD)进行了测试,详细数据如下:

5.png

6.png

7.png

微逆方案展望

作为中小功率场景的应用,微逆对拓扑方案的创新在不断往前推进,高频化、GaN也是微逆方案绕不开的研究热点。而阳台光储这类新兴产品需求,也对小功率DC-AC方案提出了双向的开发需求。翌创芯片解决方案部门(AEG)正在开发的微逆2.0方案,会融入更新的产品需求和新的技术应用,期待与大家见面。

来源:翌创微

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 27

6月13日,翌创微电子在上海虹桥绿地铂瑞酒店成功举办了“‘翌’路领航,创‘芯’能源”ET6000系列MCU/DSP产品发布会。在此次发布会上,翌创微电子荣耀发布了首款全国产双核Cortex-M7能源主控MCU/DSP——ET6000系列芯片。

1.jpg

翌创荣耀发布首款全国产双核Cortex-M7能源主控MCU/DSP

公司CEO罗翔鲲:以“芯”力量助推新能源高质量发展

发布会开场,公司CEO罗总满腔热情地发表了开场致辞。他带领大家回顾了公司从创立至今的历程:翌创微电子是在全球从化石能源向清洁能源转型和双碳目标确定的大背景下应运而生的。他强调,公司自成立之初,就立志通过技术创新与产品研发,为新能源领域带来新的活力,推动光储充行业向更高质量的发展迈进

在演讲中,罗总深入剖析了当前全球能源市场的状况及未来走势,他表示:“在全球追求碳中和目标的大环境下,新能源正逐步从辅助能源转变为主体能源,而技术的持续革新将为这一变革提供坚实支撑。翌创团队正积极面对挑战,紧抓机遇,为实现碳中和目标贡献我们的‘芯’力量。”

2.jpg

公司CEO罗翔鲲满腔热情地发表了开场致辞

“未来,几乎所有行业都将需要与以光伏为代表的新能源协同发展。”罗总提到,“就拿当前最火热的AI来说,AI的尽头是算力,算力的尽头是电力,电力的尽头是新能源、是光伏。”

绿色发展是未来高质量发展的核心,而新能源技术本身就是推动这种绿色发展的新质生产力。罗总表示,在这个历史性的转型过程中,公司将不遗余力地投入研发,为推动碳中和目标的实现贡献力量。

在发布会上,罗总宣布:翌创ET6000系列MCU/DSP荣耀发布。“我们希望与客户、合作伙伴一起,创新赋能新能源生态,共谋光储充行业发展!”

ET6000系列揭开面纱:高性能实时控制,绿色能源未来可期

随后,翌创微电子CMO丁京柱向与会嘉宾全面介绍了ET6000系列产品的卓越特性和完备的开发生态。他介绍道,ET6000系列凭借高算力、高性能模拟外设以及高精度PWM发波等关键技术特性,精准满足光储充行业实时控制应用场景的多样化需求。

3.jpg

公司CMO丁京柱介绍ET6000系列的卓越特性和完备的开发生态

翌创团队围绕ET6000系列MCU/DSP,精心打造了一系列与数字能源应用相关的专业级解决方案,包括PFC、LLC、车载充电机(OBC)、组串式逆变器、微型逆变器、充电桩模块等参考设计。

“以车载充电机为例,团队采用碳化硅器件作为PFC级的主功率器件,通过ET6001芯片的高速环路控制,实现了两路交错120kHz高频硬开关,既降低了磁元件尺寸,又维持了较高的转换效率。”

这些实际应用案例充分展示了ET6000系列在新能源领域的广泛潜力和价值,引起了与会嘉宾的广泛关注和热烈讨论。

此外,翌创团队还为ET6000系列配备了完善的开发生态系统,包括软件应用生态、EVB测试平台和场景测试平台,旨在降低客户工程师的学习成本,缩短开发周期,加速产品上市。

ET6000系列推出:彰显新能源主控“芯”实力

此次发布会的成功举办,不仅彰显了翌创微电子在新能源主控芯片领域的技术实力和创新能力,更传递了其推动绿色发展的坚定决心。随着ET6000系列的正式推出,翌创微电子有望在全球能源革命和碳中和目标实现过程中发挥更加重要的作用。

此次发布会不仅是一场技术与产品的盛宴,更是一次行业交流与合作的契机。固德威副总裁方刚,以及合肥一维新能源、厦门宝沃尔、阳光电源、天青元储、美的合康等行业嘉宾及代理商、相关投资机构代表也亲临现场,共同见证了这一荣耀时刻。

4.jpg

发布会现场

除了到访嘉宾外,还有来自全国各地的数千位电源工程师在线上观看了本次发布会,大家踊跃发言提问,对技术细节、产品应用、未来趋势的探讨等细节进行询问和探讨,并表达出对ET6000系列MCU/DSP量产上市的期待。

参会嘉宾们纷纷表示,将密切关注翌创微电子的后续发展,期待与之展开更紧密的合作,共同书写能源行业的新篇章!

关于翌创

成都翌创微电子有限公司于2021年9月在成都成立,在上海、深圳、武汉均有分部。公司立足新能源领域的“源、网、荷、储”,聚焦工业(光伏、储能、充电桩、电机等)、新能源汽车(电源、电池、电控、域控)等领域,为客户提供高性能的“芯片+产品”解决方案。

公司立足中国应用市场,紧跟工业、车载等领域的发展趋势,深入了解客户需求,精准定义芯片规格,快速推出新品,提供具有竞争力的产品和服务,确保供应链、产业链安全自主可控。

公司地址:成都高新区高朋大道3号东方希望大厦A座9楼901室

电话:028-83350520

网址:https://www.etmcu.com

邮箱:support@etmcu.comsales@etmcu.com

来源:翌创微

围观 15

CKS32F4xx系列使用高性能的32位内核,支持浮点运算单元(FPU),同时还支持DSP指令以及存储保护(MPU)用来加强应用的安全性。

DSP介绍

CKS32F4xx系列拥有两个DSP指令:MAC指令(32位乘法累加)和SIMD指令。32位乘法累加(MAC)单元包括新的指令集,能够在单周期内完成一个32×32+64→64的操作或两个16×16的操作。而SIMD指令与硬件乘法器一起工作(MAC),使所有这些指令都能在单个周期内执行。受益于SIMD指令的支持,CKS32F4xx系列能在单周期内完成高达32×32+64→64的运算,为其他任务释放处理器的带宽,而不是被乘法和加法消耗运算资源。

DSP源码库具有以下功能:

BasicMathFunctions

提供浮点数的各种基本运算函数,如向量加减乘除等运算。

CommonTables

arm_common_tables.c文件提供位翻转或相关参数表。

ComplexMathFunctions

复杂数学功能,如向量处理,求模运算的。

ControllerFunctions

控制功能函数。包括正弦余弦,PID电机控制,矢量Clarke变换,矢量Clarke逆变换等。

FastMathFunctions

快速数学功能函数。提供了一种快速的近似正弦,余弦和平方根等,相比CMSIS计算库要快的数学函数。

FilteringFunctions

滤波函数功能,主要为FIR和LMS(最小均方根)等滤波函数。

MatrixFunctions

矩阵处理函数。包括矩阵加法、矩阵初始化、矩阵反、矩阵乘法、矩阵规模、矩阵减法、矩阵转置等函数。

StatisticsFunctions

统计功能函数。如求平均值、最大值、最小值、计算均方根RMS、计算方差/标准差等。

SupportFunctions

支持功能函数,如数据拷贝,Q格式和浮点格式相互转换,Q任意格式相互转换。

TransformFunctions

变换功能。包括复数FFT(CFFT)/复数FFT逆运算(CIFFT)、实数FFT(RFFT)/实数FFT逆运算(RIFFT)、和DCT(离散余弦变换)和配套的初始化函数。

DSP库运行环境搭建

接下来我们讲解如何搭建DSP库运行环境,只要运行环境搭建好了,使用DSP库里面的函数来做相关处理就非常简单了。在MDK里面搭建CKS32F4xx系列的DSP运行环境(使用.lib方式)是很简单的,分为3个步骤:

1、添加文件

首先,我们在例程工程目录下新建DSP_LIB文件夹,存放我们将要添加的相关文件,如图1所示:
1.png
然后,打开工程,新建DSP_LIB分组,并将.lib文件添加到工程里面,如图2所示:
2.png

2、添加头文件包含路径

添加好.lib文件后,我们要添加头文件包含路径,将第一步拷贝的Include文件夹和DSP_LIB文件夹加入头文件包含路径,如图3所示:
3.png

3、添加全局宏定义

最后,为了使用DSP库的所有功能,我们还需要添加几个全局宏定义:

1,__FPU_USED

2,__FPU_PRESENT

3,ARM_MATH_CM4

4,__CC_ARM

5,ARM_MATH_MATRIX_CHECK

6,ARM_MATH_ROUNDING

添加方法:点击魔法棒→C/C++选项卡,然后在Define里面进行设置,如图4所示:
4.png
这里,两个宏之间用“,”隔开。并且,上面的全局宏里面,我们没有添加__FPU_USED,因为这个宏定义在Target选项卡设置Code Generation的时候选择了:Use FPU(如果没有设置Use FPU,则必须设置!!),故MDK会自动添加这个全局宏,因此不需要我们手动添加了。这样,在Define处要输入的所有宏为:

CKS32F40_41xxx,USE_STDPERIPH_DRIVER,ARM_MATH_CM4,__CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING 共6个。 

至此,CKS32F4xx系列的DSP库运行环境就搭建完成了。为了方便调试,本章例程我们将MDK的优化设置为-O0优化,以得到最好的调试效果。

DSP FFT测试

关于FFT这里就不再详细介绍。 如果我们要自己实现FFT算法,对于不懂数字信号处理的人来说,是比较难的,不过,DSP库里面就有FFT函数给我们调用,因此我们只需要知道如何使用这些函数,就可以迅速的完成FFT计算。DSP库里面提供了定点和浮点 FFT 实现方式,并且有基4的也有基2的,大家可以根据需要自由选择实现方式。注意:对于基4的FFT输入点数必须是4n,而基2的FFT 输入点数则必须是2n,并且基4的FFT算法要比基2的快。本章我们将采用DSP库里面的基4浮点FFT算法来实现FFT变换,并计算每个点的模值,所用到的函数有:

FFT变换用到的函数

arm_status arm_cfft_radix4_init_f32( arm_cfft_radix4_instance_f32 * S, 
uint16_t fftLen,uint8_t ifftFlag,uint8_t bitReverseFlag)
void arm_cfft_radix4_f32(const arm_cfft_radix4_instance_f32 * S,float32_t * pSrc)
void arm_cmplx_mag_f32(float32_t * pSrc,float32_t * pDst,uint32_t numSamples)

arm_cfft_radix4_init_f32用于初始化FFT运算相关参数,其中:fftLen用于指定 FFT长度(16/64/256/1024/4096),本章设置为1024;ifftFlag用于指定是傅里叶变换(0)还是反傅里叶变换(1),本章设置为0;bitReverseFlag用于设置是否按位取反,本章设置为1;最后,所有这些参数存储在一个 arm_cfft_radix4_instance_f32结构体指针S里面。

arm_cfft_radix4_f32就是执行基4浮点FFT运算的,pSrc传入采集到的输入信号数据(实部+虚部形式),同时FFT变换后的数据,也按顺序存放在pSrc里面,pSrc必须大于等于 2倍fftLen长度。另外,S结构体指针参数是先由arm_cfft_radix4_init_f32函数设置好,然后传入该函数的。 

arm_cmplx_mag_f32用于计算复数模值,可以对FFT变换后的结果数据,执行取模操作。pSrc为复数输入数组(大小为 2*numSamples)指针,指向FFT变换后的结果;pDst 为输出数组(大小为 numSamples)指针,存储取模后的值;numSamples就是总共有多少个数据需要取模。

通过这三个函数,我们便可以完成 FFT 计算,并取模值。

主函数

int main(void)
{
    arm_cfft_radix4_instance_f32 scfft;
    float time;
    u8 buf[50];
    u16 i;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
    delay_init(168);  //初始化延时函数
    Debug_USART_Config(); //初始化串口波特率为115200
    TIM3_Int_Init(65535,84-1); //1Mhz计数频率,最大计时65ms左右超出
    arm_cfft_radix4_init_f32(&scfft,FFT_LENGTH,0,1);//初始化scfft结构体,设定FFT相关参数  
    while(1)
    {
        for(i=0;i<fft_length;i++) 生成信号序列
        {
            fft_inputbuf[2*i]=100+10*arm_sin_f32(2*PI*i/FFT_LENGTH)+30*arm_sin_f32(2*PI*i*4/FFT_LENGTH)+50*arm_cos_f32(2*PI*i*8/FFT_LENGTH); //生成输入信号实部 
            fft_inputbuf[2*i+1]=0;//虚部全部为0
        }
        TIM_SetCounter(TIM3,0);//重设TIM3定时器的计数器值
        timeout=0;
        arm_cfft_radix4_f32(&scfft,fft_inputbuf); //FFT计算(基4)
        time=TIM_GetCounter(TIM3)+(u32)timeout*65536;
        sprintf((char*)buf,"%0.3fms\r\n",time/1000);
        printf("\r\nFFT基4运算运行时间为:\r\n%s", buf);
        arm_cmplx_mag_f32(fft_inputbuf,fft_outputbuf,FFT_LENGTH);
        printf("\r\n%d point FFT runtime:%0.3fms\r\n",FFT_LENGTH,time/1000);
        printf("FFT Result:\r\n");
        for(i=0;i<fft_length;i++)< span="">
        {
            printf("fft_outputbuf[%d]:%f\r\n",i,fft_outputbuf[i]);
        }
        delay_ms(2000);
        delay_ms(2000);
        delay_ms(2000);
    }
}

主函数里面通过我们前面介绍的三个函数:arm_cfft_radix4_init_f32、 arm_cfft_radix4_f32和arm_cmplx_mag_f32来执行FFT变换并取模值。每隔6秒就会重新生成一个输入信号序列,并执行一次FFT计算,将 arm_cfft_radix4_f32 所用时间统计出来,同时将取模后的模值通过串口打印出来。

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 18

本视频将向您介绍通用开发生态系统,使您能够在一个完整的平台设计中使用低功耗PIC24F MCU和强大的dsPIC33 DSC,并演示跨器件系列的轻松移植。 您可以从我们的GitHub页面下载代码示例: https://github.com/microchip-pic-avr-examples/pic24f-dspic33c-easy-migration-demo

来源:Microchip
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 15

首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。

然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。

MCU俗称”单片机“经过这么多年的发展,早已不单单只有普林斯顿结构的51了,性能也已得到了很大的提升。因为MCU必须顺序执行程序,所以适于做控制,较多地应用于工业。而ARM本是一家专门设计MCU的公司,由于技术先进加上策略得当,这两年单片机市场份额占有率巨大。

ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃香,所以也不是ARM的单片机一定要上系统,关键看应用场合。

DSP叫做数字信号处理器,它的结构与MCU不同,加快了运算速度,突出了运算能力。可以把它看成一个超级快的MCU。低端的DSP,如C2000系列,主要是用在电机控制上,不过TI公司好像称其为DSC(数字信号控制器)一个介于MCU和DSP之间的东西。高端的DSP,如C5000/C6000系列,一般都是做视频图像处理和通信设备这些需要大量运算的地方。

FPGA叫做现场可编程逻辑阵列,本身没有什么功能,就像一张白纸,想要它有什么功能完全靠编程人员设计(它的所有过程都是硬件,包括VHDL和Verilog HDL程序设计也是硬件范畴,一般称之为编写“逻辑”。)。

如果你够NB,你可以把它变成MCU,也可以变成DSP。由于MCU和DSP的内部结构都是设计好的,所以只能通过软件编程来进行顺序处理,而FPGA则可以并行处理和顺序处理,所以比较而言速度最快。

那么为什么MCU、DSP和FPGA会同时存在呢?那是因为MCU、DSP的内部结构都是由IC设计人员精心设计的,在完成相同功能时功耗和价钱都比FPGA要低的多。而且FPGA的开发本身就比较复杂,完成相同功能耗费的人力财力也要多。

所以三者之间各有各的长处,各有各的用武之地。但是目前三者之间已经有融合的态势,ARM的M4系列里多加了一个精简的DSP核,TI的达芬奇系列本身就是ARM+DSP结构,ALTERA和XINLIX新推出的FPGA都包含了ARM的核在里面。所以三者之间的关系是越来越像三基色的三个圆了。

一言以蔽之“你中有我,我中有你”。

硬件工程师学习从何开始?

单片机:通常

dsp:用于复杂的计算,像离散余弦变换、快速傅里叶变换,常用于图像处理,在数码相机等设备中使用。

arm:一个英国的芯片设计公司,但是不生产芯片。只卖知识产权。

fpga:现场可编程门阵列,以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。

嵌入式 是相对于台式电脑而言,系统可裁剪,形态各异,可能体积、功耗、成本受限、实时性要求高,如示波器,手机,平板电脑,全自动洗衣机,路由器、数码相机,这些设备中,虽然看不到台式机的存在,但是都有一个或多个嵌入式系统在工作。

根据对象体系的功能复杂性和计算处理复杂性,提供的不同选择。对于简单的家电控制嵌入式系统,采用简单的8位单片机就足够了,价廉物美,对于手机和游戏机等,就必须采用32位的ARM和DSP等芯片了。FPGA是一种更偏向硬件的实现方式。

所以要通过学习成为硬件工程师,要从单片机开始,然后学习ARM和DSP之类。

市面上七大主流单片机的详细介绍

单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相当的迅速,从上世纪80年代,由当时的4位8位发展到现在的各种高速单片机。

各个厂商们也在速度、内存、功能上此起彼伏,参差不齐~~同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…国内的宏晶STC单片机也是可圈可点…

下面为大家带来51、MSP430、TMS、STM32、PIC、AVR、STC单片机之间的优缺点比较及功能体现……

51单片机

“”

应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。

51单片机之所以成为经典,成为易上手的单片机主要有以下特点:

特性:

  • 从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。
  • 同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便,
  • 乘法和除法指令,这给编程也带来了便利。很多的八位单片机都不具备乘法功能,做乘法时还得编上一段子程序调用,十分不便

缺点:(虽然是经典但是缺点还是很明显的)

  • AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担
  • 虽然I/O脚使用简单,但高电平时无输出能力,这也是51系列单片机的最大软肋
  • 运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利
  • 51保护能力很差,很容易烧坏芯片

应用范围:

目前在教学场合和对性能要求不高的场合大量被采用。

使用最多的器件:8051、80C51。

MSP430单片机

“”

MSP430系列单片机是德州仪器1996年开始推向市场的一种16位超低功耗的混合信号处理器,给人们留下的最大的亮点是低功耗而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手。

主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。其迅速发展和应用范围的不断扩大,主要取决于以下的特点…

特性:

  • 强大的处理能力,采用了精简指令集(RISC)结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序
  • 在运算速度方面,能在 8MHz 晶体的驱动下,实现 125ns 的指令周期。16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 FFT 等)。
  • 超低功耗方面,MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。电源电压采用的是 1.8~3.6V 电压。因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200~400uA 左右,时钟关断模式的最低功耗只有 0.1uA

缺点:

  • 个人感觉不容易上手,不适合初学者入门,资料也比较少,只能跑官网去找
  • 占的指令空间较大,因为是16位单片机,程序以字为单位,有的指令竟然占6个字节。虽然程序表面上简洁, 但与pic单片机比较空间占用很大

应用范围:

在低功耗及超低功耗的工业场合应用的比较多

使用最多的器件:MSP430F系列、MSP430G2系列、MSP430L09系列

TMS单片机

“”

这里也提一下TMS系列单片机,虽不算主流。由TI推出的8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合。虽然没STM32那么优秀,也没MSP430那么张扬,但是TMS370C系列单片机提供了通过整合先进的外围功能模块及各种芯片的内存配置,具有高性价比的实时系统控制。

同时采用高性能硅栅CMOS EPROM和EEPROM技术实现。低工作功耗CMOS技术,宽工作温度范围,噪声抑制,再加上高性能和丰富的片上外设功能,使TMS370C系列单片机在汽车电子,工业电机控制,电脑,通信和消费类具有一定的应用。

STM32单片机

“”

由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核。

同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名…

特性:

  • 内核:单周期乘法和硬件除法
  • 存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器
  • 时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振
  • 调试模式:串行调试(SWD)和JTAG接口。最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口
  • 使用最多的器件:STM32F103系列、STM32 L1系列、STM32W系列

PIC单片机

“”

PIC单片机系列是美国微芯公司(Microship)的产品,共分三个级别,即基本级、中级、高级,是当前市场份额增长最快的单片机之一,CPU采用RISC结构,分别有33、35、58条指令,属精简指令集。

同时采用Harvard双总线结构,运行速度快,它能使程序存储器的访问和数据存储器的访问并行处理。这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令。这样总的看来每条指令只需一个周期,这也是高效率运行的原因之一,此外PIC单片机之所以成为一时非常热的单片机不外乎以下特点:

特点:

  • 具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器,从而解决了51系列I/O脚为高电平时同为输入和输出的状态。
  • 当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。相对于51系列而言,这是一个很大的优点。
  • 它可以直接驱动数码管显示且外电路简单。它的A/D为10位,能满足精度要求。具有在线调试及编程(ISP)功能。

不足之处:

其专用寄存器(SFR)并不像51系列那样都集中在一个固定的地址区间内(80~FFH),而是分散在四个地址区间内。只有5个专用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4个存储体内同时出现,但是在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。

数据的传送和逻辑运算基本上都得通过工作寄存器W(相当于51系列的累加器A)来进行,而51系列的还可以通过寄存器相互之间直接传送,因而PIC单片机的瓶颈现象比51系列还要严重,这在编程中的朋友应该深有体会。

使用最多的器件:PIC16F873、PIC16F877

AVR单片机

“”

AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。

AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短指令执行时间为250~125ns。

特点:

  • AVR系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR)。
  • 而且还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些都比51系列出色些

  • AVR的专用寄存器集中在00~3F地址区间,无需像PIC那样得先进行选存储体的过程,使用起来比PIC方便。AVR的片内RAM的地址区间为0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄存器的功能。
  • 当程序复杂时,通用寄存器R0~R31就显得不够用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种感觉。

  • AVR的I/O脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。这点虽不如PIC,但比51系列还是要优秀的…

缺点:

  • 没有位操作,都是以字节形式来控制和判断相关寄存器位。
  • C语言与51的C语言在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习惯。
  • 通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。

使用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515

STC单片机

“”

说到STC单片机有人会说到,STC也能算主流,估计要被喷了~~我们基于它是国内还算是比较不错的单片机来说。

STC单片机是宏晶生产的单时钟/机器周期的单片机,说白了STC单片机是51与AVR的结合体,有人说AVR是51的替代单片机,但是AVR单片机在位控制和C语言写法上存在很大的差异。而STC单片机恰恰结合了51和AVR的优点,虽然功能不及AVR那么强大,但是在AVR能找到的功能,在STC上基本都有,同时STC单片机是51内核,这给以51单片机为基础的工程师们提供了极大的方便,省去了学习AVR的时间,同时也不失AVR的各种功能…

STC单片机是高速、低功耗、超强抗干扰的新一代8051单片机51单片机,指令代码完全兼容传统8051,但速度快8~12倍,内部集成MAX810专用复位电路。4路PWM 、8路高速10位A、D转换,针对电机电机 的供应商控制,强干扰场合,成为继51单片机后一个全新系列单片机…

特性:

  • 下载烧录程序用串口方便好用,容易上手,拥有大量的学习资料及视频,最著名的要属于杜老师的那个视频了,好多对单片机有兴趣的朋友都是通过这个视频入门的,同时具有宽电压:5.5~3.8V,2.4~3.8V, 低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)
  • STC单片机具有在应用编程,调试起来比较方便;带有10位AD、内部EEPROM、可在1T/机器周期下工作,速度是传统51单片机的8~12倍,价格也较便宜
  • STC12C2052AD系列为2通道,也可用来再实现4个定时器或4个外部中断,2个硬件16位定时器,兼容普通8051的定时器。4路PCA还可再实现4个定时器,具有硬件看门狗、高速SPI通信端口、全双工异步串口,兼容普通8051的串口,同时还具有先进的指令集结构,兼容普通8051指令集。

PS:STC单片机功能虽不及AVR、STM32强大,价格也不及51和ST32便宜,但是这些并并不重要,重要的是这属于国产单片机比较出色的单片机,但愿国产单片机能一路长虹…

使用最多的器件:STC12C2052AD

Freescale单片机

“”

主要针对S08,S12这类单片机,当然Freescale单片机远非于此。Freescale系列单片机采用哈佛结构和流水线指令结构,在许多领域内都表现出低成本,高性能的的特点,它的体系结构为产品的开发节省了大量时间。此外Freescale提供了多种集成模块和总线接口,可以在不同的系统中更灵活的发挥作用!Freescale单片机的特有的特点如下:

  • 全系列:从低端到高端,从8位到32位全系列应有尽有,其推出的8位/32位管脚兼容的QE128,可以从8位直接移植到32位,弥补单片机业界8/32 位兼容架构中缺失的一环
  • 多种系统时钟模块:三种模块,七种工作模式。多种时钟源输入选项,不同的mcu具有不同的时钟产生机制,可以是RC振荡器,外部时钟或晶振,也可以是内部时钟,多数CPU同时具有上述三种模块!可以运行在FEI,FEE,FBI,FBILP,FBE,FBELP,STOP这七种工作模式
  • 多种通讯模块接口:Freescale单片机几乎在内部集成各种通信接口模块:包括串行通信接口模块SCI,多主I2C总线模块,串行外围接口模块 SPI,MSCAN08控制器模块,通用串行总线模块(USB/PS2)
  • 具有更多的可选模块:具有LCD驱动模块,带有温度传感器,具有超高频发送模块,含有同步处理器模块,含有同步处理器的MCU还具有屏幕显示模块OSD,还有少数的MCU具有响铃检测模块RING和双音多频/音调发生器DMG模块
  • 可靠性高,抗干扰性强,多种引脚数和封装选择
  • 低功耗、也许Freescale系列的单片机的功耗没有MSP430的低,但是他具有全静态的“等待”和“停止”两种模式,从总体上降低您的功耗!新近推出的几款超低功耗已经与MSP430的不相上下!

使用最多的器件:MC9S12G系列

如果真要在这些单片机中分个一二三等,那么如果你想跟随大众,无可厚非51单片机还是首选;如果你追求超高性价比,STM32将是你理想选择;如果你渴望超低功耗,MSP430肯定不会让你失望;如果你想支持国产,STC会让你兴奋…

本文转载自:电子发烧友
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:
cathy@eetrend.com)。

围观 232

一、区别

两则的分流造成的主要原因是数字信号处理的简便性,考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。

类似的运算在数字信号处理过程中大量的重复发生,使得为此设计的器件必须提供专门的支持,促进了DSP器件与通用处理器(GPP)的分流:

1. 对密集乘法的支持


2. 存储器结构


此外,DSP处理器几乎都不具备数据的高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃,几乎不再重复使用。

3. 零开销循环

DSP算法的一个共同的特点,即大多数处理时间都花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓的零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值,条件转移到循环大额顶部,将循环计数器减1.

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持零开销循环同样地效果。

二、联系

按照传统方式,嵌入式应用中的数字信号处理器(dsp)相对于主微控制器起到从属的作用。在这些应用中,MCU用作系统控制器,而大量的数据处理留给DSP。例如,在音频或视频处理器应用中有可能需要人机界面管理,或则是整个系统的控制。

为完成这些任务,有几种系统设计方案选择。

第一种方案是将DSP和MCU芯片组合在印制电路板上。这种方案成本高并且占用面积大,但是可适当地调整每个芯片的尺寸以最大限度的满足系统需要。

第二种方案是将DSP功能合并到一个MCU中。这种方案只适合于直接的信号处理应用。MCU的时钟频率和计算体系结构根本上不太适合大量的数字处理。有些MCU试图通过增加一个乘法和累加器(MAC)(dsp的一个特点)来补偿上述不足。但是这种方案任然缺乏高级应用所需要的基本的“由上至下”的体系结构设计。

第三种方案是一种将dsp和mcu组合在单个封装内的多芯片模块(mcm).这种方案的局限性是,设计工程师必须按“50/50”的时间比例分配给控制和DSP功能;例如,一旦DSP超出时间,MCU不能完成计算任务。像第一种方案选择一样,当DSP和MCU内核独立存在的时候,需要两套开发工具。

已经出现第四种方案它是将MCU的功能合并到一个DSP中。这类方案的一个例子是美国模拟器件公司(Anolog Device Inc.,简称ADI)的Blackfin 处理器系列。这些新型处理器具有统一的经过优化的体系结构,不仅适于数据计算,而且也适于有关的控制任务。通过平衡执行控制任务与复杂计算的要求,这种方案可以根据系统实时处理的需要,完成100%的控制或者100%的计算任务。完成所有这一切任务不需要在DSP模式和MCU模式之间的模式转换。

DSP & MCU

首先让我们回顾一下DSP和MCU的典型功能。DSP主要是在一单个时钟周期内尽可能完成多个MAC(乘法和累加)操作。为了这一点,指令的操作代码通常是可变的超长的指令字(VLIW)。DSP也适于工作在紧密、高效的环路中。另外,为了达到性能指标通常需要编写优化的汇编代码。由于DSP的算法程序一般装在小容量、短等待时间的内置存储器中,所以代码密度通常不是大问题。像DSP主要用于完成计算一样,MCU主要用于完成控制功能。同样地,典型的MCU应用包括许多条件操作,在程序流程中频繁地跳转。通常使用C或者C++语言编写程序。代码密度极为重要,并且根据编译代码的长度来评估算法。存储器系统是基于高速缓存从而允许该系统设计工程师用较长等待时间从较大的存储器中调用较大程序。利用基于高速缓存系统,程序员不需要考虑如何以及何时将指令输入到内核去执行。

统一的DSP和MCU兼备两者的优点。它的指令集由16 bit,32 bit和64 bit操作码组成,但是由于最常用的指令采用16 bit编码,所以编译代码密度大小与那些流行的MCU相同。另外,它包括一个存储器保护功能以及指令高速缓存和数据高速缓存,作为整个存储器管理单元(MMU)的一部分。此外,容易提供一套完整的C/C++开发工具,提供可选汇编语言或者全部汇编语言适合算法优化的编程。

RTOS

系统控制的一个重要方面是任务管理。实时操作系统(RTOS)逐渐地用于控制复杂系统中多种正在进行的和同时发生的任务。通过提供对任务调度与管理的支持,RTOS简化了编程模式,这通常是由MCU控制的,由于普通的DSP不具备支持RTOS需要的所有功能以便有效地控制。

然而,统一的DSP和MCU促进了RTOS几个重要功能的发展。第一个是限制访问功能以保护或者保留存储单元。第二个是配备单独的堆栈和帧指针以减少操作系统(OS)请求以及中断和异常处理所需的等待时间。第三个是具备单独的用户操作模式和管理员操作模式。过去,DSP按照等效于管理员操作模式工作,从而允许在任何时间完全访问所有的系统资源。然而MCU提供类似的在用户操作模式,它允许在OS的顶层运行应用软件。现在,在一个统一的体系结构下提供两种操作模式,因为增强的DSP系统能够限制用户应用软件仅通过OS访问系统资源。

MCU的一个优点是包含使用灵活和种类齐全的外围设备。作为通用的嵌入式控制器,它们通常具备可编程输入输出(I/O)标志、定时器、串行接口和日益增加越来越复杂的标准接口。MCU外围设备的主要作用是嵌入式控制,而不是大量计算。例如,一个实时时钟信号可以唤醒一只温度传感器用以采集环境温度并且将一个延迟的信息通过I/O引脚反馈到MCU。然后,一个定时器的脉冲宽度调制(PWM)输出相应地能够增加或者减小风扇电机的转速。像MCU一样,统一的DSP和MCU具备一套系统控制外围设备(例如,实时时钟、多功能定时器、监视定时器、双向标志位引脚)。然而,它还包括一些高速接口(例如,PCI、异步或者同步存储器控制器、USB、并行视频接口)以便通过这些接口,与许多DMA通道配合快速搬移数据,从而有助于有效利用高速DSP内核的信号处理能力。

功耗控制一直是嵌入式控制器的一项功能。但是,当系统要求DSP具有优良的性能时,对其电源的选择就不太理想。如果将独立的MCU和DSP芯片应用于电源敏感的场合,通常必须为每个芯片提供一个单独的开关稳压器,因为这两个器件的内核电压经常不一致。这会导致降低电源变换效率和增加设计器件的引脚数目,最终增加布线的复杂程度和解决方案的成本。此外,当MCU和DSP的内核集成到一个芯片上时,电源解决方案本质上不是最佳的,因为它必须满足2个完全独立并具有不同负载特性处理器的需求。将这种情况与统一的DSP和MCU相比较,它包含一个集成动态电源管理(DPM)控制器。由于它是只有一个处理器的体系结构,所以该控制器能够完全适合给定应用的需求。它提供几种固有的电源模式以支持多种系统性能等级。另外,对于未使用的时钟和L2存储器可选择性地禁止。该PLL的频率可在一个宽范围(通常1倍~31倍)进行调节,以满足在DSP和MCU内部多层次的处理需求。最后能够调节电压(外部或者通过一个集成的开关控制器)以提供指数式的节省功耗。由于系统成本、开发容易、器件采购和升级能力的原因,设计工程师正趋向采用一种单芯片解决方案用于嵌入式信号处理解决方案。这种单芯片解决方案必须能够同样好地完成DSP和MCU的功能,所以有必要提出一种统一的处理器体系结构。面对MCU的挑战,比较简单的解决方案是将MCU的功能合并到一个高性能的DSP内核,而不是与此相反。当今一个统一的DSP和MCU平台(由BlackfinDSP系列产品说明)已经投放市场,它将在MCU和DSP目前应用领域提供许多应用。

本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!

围观 748

DSP:

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:

(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

DSP优势在于其有独特乘法器,一个指令就可以完成乘加运算,但GPP(通用处理器)处理一般是用加法代替乘法,要n多cpu周期,尽管cpu主频很快,但还是要相当时间,这一点现在的GPP已经基本上可以做到内部单周期运算乘加指令了。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用

ARM:

ARM ( Advanced RISC Machines ),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。 ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

ARM最大的优势在于速度快、低功耗、芯片集成度高,多数ARM芯片都可以算作SOC,基本上外围加上电源和驱动接口就可以做成一个小系统了。

基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。

ARM与DSP的比较:

区别:

由于两大处理器在各自领域的飞速发展,如今两者中的高端或比较先进的系列产品中,都在弥补自身缺点、且扩大自身优势,从而使得两者之间的一些明显不同已不再那么明显了,甚至出现两者部分结合的趋势(如ARM的AMBA总线,可以把DSP或其他处理器集成在一块芯片中;又如DSP中的两个系列OMAP和达芬奇系列,就是直接针对两者的广泛应用而将两者结合在一起,从而最大发挥各自优势),另外,两者各自不同系列的产品侧重点也不尽相同,所以这里讨论的是一些传统意义上比较。

总的来说主要区别有:

ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,它的速度和数据处理能力一般,但是外围接口比较丰富,标准化和通用性做的很好,而且在功耗等方面做得也比较好,所以适合用在一些消费电子品方面;

而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。由于其在控制算法等方面很擅长,所以适合用在对控制要求比较高的场合,比如军用导航、电机伺服驱动等方面。

如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。

另外:

内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。

详细来说:

DSP的优势主要是速度,它可以在一个指令周期中同时完成一次乘法和一次加法,这非常适合快速傅立叶变换的需求。DSP有专门的指令集,主要是专门针对通讯和多媒体处理的;而ARM使用的是RISC指令集(当然ARM的E系列也支持DSP指令集)是通用处理用的。

存储器架构和指令集特点不一样

单片机为了存储器管理的方便(便于支持操作系统),一般采用指令、数据空间统一编码的冯·诺依曼结构。 DSP为了提高数据吞吐的速度,基本上都是指令、数据空间独立的哈佛结构。

单片机对于数字计算方面的指令少得多,DSP为了进行快速的数字计算,提高常用的信号处理算法的效率,加入了很多指令,比如单周期乘加指令、逆序加减指令(FFT时特别有用,不是ARM的那种逆序),块重复指令(减少跳转延时)等等,甚至将很多常用的由几个操作组成的一个序列专门设计一个指令可以一周期完成(比如一指令作一个乘法,把结果累加,同时将操作数地址逆序加1),极大的提高了信号处理的速度。由于数字处理的读数、回写量非常大,为了提高速度,采用指令、数据空间分开的方式,以两条总线来分别访问两个空间,同时,一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。DSP为提高数字计算效率,牺牲了存储器管理的方便性,对多任务的支持要差的多,所以DSP不适合于作多任务控制作用。

1 对密集的乘法运算的支持

GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2 存储器结构

传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。

还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中(CMD文件的编写)。程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3 零开销循环

如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1(逆序加减指令)。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4 定点计算

大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

发展趋势:

DSP是否将作为手机的心脏生存下去,目前的争论非常激烈。今天的手机生产采用的是双核方式:DSP芯片处理通信,如调制解调器功能和语音处理等;一块通用处理器(通常是ARM设计的RISC处理器)负责处理手机上运行的各种程序,如用户界面和控制协议堆栈等。随这两种处理器的功能日益强大,或许它们中的一方将会接管另一方目前执行的功能。但问题在于:是ARM取代DSP,还是DSP挤掉ARM?

如果将这三者结合起来,即由DSP结合采样电路采集并处理信号,由ARM处理器作为平台,运行Linux操作系统,将经过DSP运算的结果发送给用户程序进行进一步处理,然后提供给图形化友好的人机交互环境完成数据分析和网络传输等功能,就会最大限度的发挥三者所长。

转自: leoking01-博客园

围观 954

考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。

类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:

1 对密集的乘法运算的支持

GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2 存储器结构

传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。

还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3 零开销循环

如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4 定点计算

大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

从表面上来看,DSP与标准微处理器有许多共同的地方:一个以ALU为核心的处理器、地址和数据总线、RAM、ROM以及I/O端口,从广义上讲,DSP、微处理器和微控制器(单片机)等都属于处理器,可以说DSP是一种CPU。但DSP和一般的CPU又不同:

首先是体系结构:CPU是冯.诺伊曼结构的,而DSP有分开的代码和数据总线即“哈佛结构”,这样在同一个时钟周期内可以进行多次存储器访问——这是因为数据总线也往往有好几组。有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。

标准化和通用性:CPU的标准化和通用性做得很好,支持操作系统,所以以CPU为核心的系统方便人机交互以及和标准接口设备通信,非常方便而且不需要硬件开发了;但这也使得CPU外设接口电路比较复杂,DSP主要还是用来开发嵌入式的信号处理系统了,不强调人机交互,一般不需要很多通信接口,因此结构也较为简单,便于开发。如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。

流水线结构:大多数DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。但流水线的采用也增加了软件设计的难度,要求设计者在程序设计中考虑流水的需要。

快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。硬件乘法器占用了DSP芯片面积的很大一部分。(与之相反,通用CPU采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。

地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。这包括前(后)增(减)、环状数据缓冲的模地址以及FFT的比特倒置地址。地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP可以在一个时钟周期内可以完成的工作量。

硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。

低功耗:DSP的功耗较小,通常在0.5W到4W,采用低功耗的DSP甚至只有0.05W,可用电池供电,很适合嵌入式系统;而CPU的功耗通常在20W以上。

来源: 中电网

围观 533

页面

订阅 RSS - DSP