⑴ 如何将DSP和MCU两者完美结合
按照传统方式,嵌入式应用中的数字信号处理器(DSP)相对于主微控制器(MCU)起从属作用。在这些
应用中,MCU用作系统控制器,而大量的数据处理留给DSP。例如,在音频或视频处理应用中有可能需要人
机界面管理,或者是整个系统的控制。
设计方案选择
为完成这些任务,有几种系统设计方案选择。
第一种方案将DSP和MCU芯片组合在印制电路板(PCB)上。这种方案成本高并且占用面积大,但是可
适当地调整每个芯片的尺寸以最大限度地满足系统需要。
第二种方案是一种将DSP和MCU组合在单个封装内的多芯片模块(MCM)。这种方案的局限性是,设计
工程师必须按“50/50”的时间比例分配给控制和DSP功能;例如,一旦DSP超出时间,MCU将不能完成计算
任务。像第一种方案选择一样,当DSP和MCU内核独立存在时,需要两套开发工具。
第三种方案是将DSP功能合并到一个MCU中。这种方案只适合于直接的信号处理应用。MCU的时钟频率
和计算体系结构根本上不太适合大量的数字处理。有些MCU试图通过增加一个乘法和累加器(MAC)(DSP
的一个特点)来补偿上述不足。但是这种方案仍然缺乏高级应用所需要的基本的“由下至上 ”的体系结
构设计 。
最近,已经出现第四种方案它是将MCU的功能合并到一个DSP中。这类方案的一个例子是美国模拟器件
公司(Anolog Device Inc.,简称ADI)的Blackfin™ 处理器系列。这些新型处理器具有统一的经过优化的
体系结构,不仅适于数据计算,而且也适于有关的控制任务。通过平衡执行控制任务与复杂计算的要求,
这种方案可以根据系统实时处理的需要,完成100%的控制或者100%的计算任务。完成所有这一切任务不需
要在DSP模式和MCU模式之间的模式转换。
(translation of graphics)
System Control blocks=系统控制单元
Emulator & Test control=仿真器和测试控制
Voltage regulation=稳压电源
Event controller=事件控制器
Clock(PLL)=时钟
锁相环(PLL)
Memory dma=存储器
直接存储器存取(DMA)
Watchdog timer=监视定时器
Real Time clock=实时时钟
Core=内核
48 KB Instruction SRAM/Cache=48 KB指令
静态存储器(SRAM)
和高速缓存
32 KB Instruction rom="32" KB指令
只读存储器(ROM)
32 KB Data SRAM/Cache=32 KB数据
静态存储器(SRAM)
和高速缓存
4 KB Scratchpad ram="4" KB
高速暂存
随机存储器(RAM)
System Interface unit=系统接口单元
External Memory interface=外部存储器接口
High Speed I/O=高速I/O端口
Parallel Peripheral Interface/GPIO=并行外围接口(PPI)
和通用输入输出接口(GPIO)
UART=通用异步收发器
SPI=串行外围接口(SPI)
Hi-speed Serial ports=高速串行端口
PCI/USB=可编程通信接口(PCI)和通用串行总线(USB)
Timers 0/1/2=定时器0,1,2
Peripheral blocks=外围设备单元
一类新型的DSP也提供一套RISC指令系统集、存储器管理单元、事件控制器和多种外设以便在一颗单
芯片内提供大量计算和高效系统控制功能。
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平台(由Blackfin™ DSP系列产品说明)已经投放
⑵ mcu是什么意思
mcu的意思:abbr. 微程序控制器(Microprogrammed Control Unit);漫威电影宇宙(Marvel Cinematic Universe);电机控制器(motor control unit)。
短语
MCU SW微程序控制器软件 ; 微步伐控制器软件
MCU FAE技术支持工程师 ; 单片机技术支持
Embedded MCU嵌入式微控制器 ; 嵌入式mcu ; 嵌入式微处理器 ; 嵌入式单片机
Voice MCU语音微控制器 ; 盛群语音微控制器
MICROCHIP MCU单片机
ARM MCU销售员 ; 单片机 ; ARM微控制器
Standard MCU准型微控制器
例句
Studyon thestackercontrolsystembased onMCU.
堆垛机的单片机控制系统研究。
'systembased onMCU.
基于单片机的单工无线呼叫及数据传送系统的设计。
⑶ mcu单片机工作原理什么
1、单片机就是小型的计算机,具有运算器、控制器、存储器、输入输出设备。单片机在外接时钟控制下(晶振)下一步步完成一系列指令实现预定的功能。
2、单片机由运算器、控制器、存储器、输入输出设备构成。 单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
⑷ 从事自动化程序员设计应该具备什么能力
1、阅读代码
这个技能需要程序员能够具备读懂已经存在的代码的能力,这样的能力可以让程序员分析程序的行为,了解程序,这样才能和开发团队一起工作,继承维护或是改进现有的程序。
2、编写程序
编写程序并不包括程序设计。不要以为编程是一件很简单的事情,很多程序员都认为编程只需要懂得程序语言的语法,并把设计实现就可以了。但是这离编写程序还远远不够,使用什么样的编码风格成为编写程序员最需要具备的基本技能。能否使用非常良好的编程风格直接决写了程序员的级别。
3、软件设计
这一能力直接决定了需要吏用什么样的代码技术达到怎么样的功能,而系统架构设计直接决定了软件的质量、性能和可维护性。并不是所有的程序在这一方面都非常优秀,但每个程序员都需要或多或少的明白和掌握这一基本技能。
4、熟悉软件工程
每个程序员都应该明白软件工程是什么东西,都应该知道,需求分析 设计,编码测试,Release和维护这几个阶段。
5、使用程序库或框架
一个程序员需要学会使用已有的代码,无论是标论的程序库,或是第三方的,还是自己公司内部的,都需要学会做。比如:C++中,需要学会使用STL,MFC,ATL,BOOST,ACE,CPPUNIT等等。使用这些东西,可以让你的工作事半功倍。
6、程序调试
程序调试是分析BUG和解决问题最直接的能力。没有人能够保证程序写出来不用调试就可以运行正常 也没有人可以保证程序永远不会出BUG。所以,熟练使用调试器是一个程序员需要具备的基本技能
7、使用IDE
学会使用IDE工具也会让你的工作事半功倍。比如,VC++,Emacs Eclipse等等,并要知道这些IDE的长处和短处。
8、使用版本控制
一定要学会使用版本控制工具,什么叫mainline/trunk,什么叫tag,什么叫branch,怎么做patch,怎么merge代码,怎么reverse,怎么利用版本控制工具维护不同版本的软件。这是程序员需要明的的软件配置管理中最重要的一块。
9、单元测试
单元测试是每个程序都需要做的。很多单元测试也是需要编码的。
10、重构代码
这是每个程序员都需要有最基本的能力去重构目前已有的代码,使代码达到最优但却不能影响任何的已有的功能。
11、自动化编译
程序员需要使用一个脚本,其能自动化编程所有的工程和代码,这样整个开发团队可以不停地集成代码 自动化测试,自动化部署,以及使用一些工具进行静态代码分析或是自动化测试。
如果对您有所帮助,望采纳!
⑸ MCU的存储器结构是什么
中央处理器CPU,包括运算器、控制器和寄存器组。是MCU内部的核心部件,由运算部件和控制部件两大部分组成。前者能完成数据的算术逻辑运算、位变量处理和数据传送操作,后者是按一定时序协调工作,是分析和执行指令的部件。存储器,包括ROM和RAM。ROM程序存储器,MCU的工作是按事先编制好的程序一条条循序执行的,ROM程序存储器即用来存放已编的程序(系统程序由制造厂家编制和写入)。存储数据掉电后不消失。ROM又分为片内存储器和片外(扩展)存储器两种。
⑹ 全国单片机汇编语言程序设计师
单片机学习方法:
网上单片机资料很多:
http://www.mcufan.com/scom.htm
http://www.laogu.com/downtop.aspx
上面去搜搜看单片机的学习资料,都有入门级的
另外书店里面入门级的书也很多,可以买一本(北航出版的比较好)
1.入门时先了解单片机的构造啊原理啊
2.如果没有实验板自己搭建单片机的最小平台是比较难的
网上有个叫proteus的软件,可以用于单片机的仿真,就是说你编的程序可以在这个软件里运行,效果挺逼真的,可免费下载.
3.单片机的编程软件有keil或者wave,推荐前者,可以用c语言编写也可以汇编语言,c语言比较好学,推荐入门学习c语言,(可以买c和汇编语言都有介绍的单片机的书)
4.然后用keil编写程序在proteus上跑起来,如果你能点亮经典的单片机流水灯实验,那你就已经入门了
另:单片机的开发板或者最小系统可以买,电路水平高的话也可以自己搭建起来,51单片机大概6块左右一片自己搭建最小系统很便宜滴,学单片机一定要多做实验,不过推荐还是从仿真入门,仿真成功了后面的就有方向了.
⑺ 单片机程序里面,经常听说底层,中间层,应用层,什么意思 51单片机也需要这么分层吗
一般当程序比较大、功能比较繁多,需要进行结构化程序设计的时候,才会进行分层。分层的好处是可以将应用与硬件剥离,当硬件发生变更(移植,设计更改)时只需改动底层以及少量中间层;当需求发生变更时只需改动上层以及少量中间层。
底层一般是直接访问硬件的接口,以串口而言如寄存器操作函数;中间层一般是在底层与上层之间进行数据及信息的转换,以串口而言如封包/拆包/消息产生/消息响应;上层一般面向应用,在很少考虑硬件实现的前提下以通用的方式实现所需的功能,以串口而言如printf。
分这么多层是为了不同程度的开发人员可以同期工作的原因。比如说,底层就雇佣一个特别熟悉芯片和硬件的人做,中间层大概要找比较熟悉应用的人来把硬件功能来做扩展,应用层就随便抓一把人来开发了。
这样,多个项目可以公用一个硬件层,有两到三组中间层的支持工程师,然后每个项目各有一组应用工程师就好了。51也可以这样做,这和效率无关,层做得好,执行效率不会影响很大,开发效率提高很多。
单片机的应用:
1,通用专用:
这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
2,线型应用:
这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积。
3,控制型应用:
这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是唯一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
⑻ 芯巴巴电子元器件MCU单片机工作原理是什么
单片机由运算器、控制器、存储器、输入输出设备构成。 单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;
⑼ 单片机编程用汇编好还是C语言好
单片机编程,C语言编程但很好。
大致分成三类:机器语言、汇编语言、高级语言。机器语言由于繁琐容易出错,大部分用户已经不再便用。
1.单片机汇编语言
汇编语言是一种符号语言,它使用文字助记符来表示机器指令。它是最接近机器代码的语言。它的主要优点是占用资源少,程序执行效率高。由于每条指令对应于一个机器码,所以每一步的执行都非常清楚。
并且程序的大小和栈调用都易于控制,调试也更加方便。但是不同类型的单片机,其汇编语言可能会有一点不同,所以移植起来并不容易,因为它们的指令系统是不同的。但掌握汇编语言可以帮助我们理解影响四川语学习效率的特殊规律。
例如,了解汇编语言指令可以让您使用芯片内ram作为变量,因为芯片外变量需要多个指令来设置访问的累加器和数据指针。
类似地,只有汇编编程经验才能防止在需要浮点数和启用函数时创建大型、低效的程序,这在没有汇编语言的情况下是无法做到的。
2.单片机的C语言
MCUC语言是一种经过编译的程序设计语言,它兼顾了多种高级语言的特点,具有汇编语言的功能。C语言具有丰富的库函数,计算速度快,编译效率高,可移植性好,并能实现对系统硬件的直接控制。
此外C语言程序具有完整的程序模块结构,为软件开发中的模块化编程方法提供了强有力的保证。与组装相比,具有以下优点:
MCU的指令系统不需要知道,只需要对51的内存结构有一个初步的了解,对于寄存器的分配,不同的内存寻址和数据类型等细节都由编译器来管理。程序有一个正式的结构,可以分为不同的功能。这使得程序可以结构化,结合变量选择和特殊操作,并提高程序的可读性。
大大减少了编程和调试时间,从而提高了效率。所提供的库包含许多具有强大数据处理能力的标准子例程,由于其方便的模块化编程技术,可以很容易地将这些子例程编程到新程序中。
功能强大灵活,库中包含了很多标准的子程序,具有较强的数据处理能力,可以方便地编程植入新的程序,因为它具有方便的模块化编程技术。
MCUC语言作为一种非常方便的语言而得到了广泛的支持,(语言程序本身不依赖于机器硬件系统,基本上不根据单片机的修改就可以将U的不同之处快速移植过来。)
利用单片机c语言进行编程,已经成为单片机软件开发的主流,作为一门综合性的技术和参与开发的大型软件系统,单片机开发人员最好能够掌握基本的c语言编程。
(9)mcu程序员设计扩展阅读:
SCM语言
MCU支持三种高级语言,即PL/M、C和BASIC。C语言是一种通用的编程语言,其码率高,数据类型和运算符丰富,并具有良好的程序结构,适用于各种应用程序的设计,是一种广泛应用的单片机编程语言。
单片机的C语言采用C51编译器(简称C51)。C51生成的目标代码短小、快速、存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,可与A51汇编语言或PL/M51语言目标代码混合使用