如何将DSP和MCU两者完美结合
时间:08-10
来源:
点击:
按照传统方式,嵌入式应用中的数字信号处理器(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访问系统资源。
设计方案选择
为完成这些任务,有几种系统设计方案选择。
第一种方案将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访问系统资源。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)
鐏忓嫰顣舵稉鎾茬瑹閸╃顔勯弫娆戔柤閹恒劏宕�
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...
栏目分类