摘要:启动全新嵌入式设计项目的首要步骤之一就是选择微控制器。选择工作通常发生在设计最终成型之前,而且有关特性也会经常发生变化。这就导致选择合适的器件变得相当困难。
新型片上系统(SoC)器件通过支持灵活的器件配置和路由,有助于解决这一设计挑战。然而,即便拥有上述功能,一些设计人员仍发现他们所需的某种特性无法通过芯片实现,或者设计要求超过了芯片上固定数量的特定外设所能达到的范围。
SoC器件能改变数字和模拟资源的用途,从而创建出用户芯片当前不具备的功能,或者能在资源耗尽时提供新的资源。
本文将讨论当今SoC器件的可配置模拟和数字外设如何用来解决上述设计挑战,从而帮助我们在设计过程中无需更改采用其它的部件。
嵌入式系统开发最让人产生挫折感的一个问题就是:在完成了许多设计里程碑之后,用户发现最初选择的嵌入式器件已经无法满足当前的设计要求了。在开发过程中,设计要求不断发生变化,而且还会出现无法预料的挑战,特别是在新产品设计过程中尤其容易碰到这种问题。
片上系统(SoC)器件、特别是混合信号SoC器件可用来充分应对上述挑战。虽然不同的SoC公司喜欢用不同的方法来描述自己的SoC,但说到底SoC其实就是一款采用大量集成模拟和/或数字外设的微控制器(可能是低功耗8位的,也可能是高功率32位的)。此外,SoC器件还能够对资源进行定制、配置和编程。
可配置性使客户能够灵活地决定比较器和运算放大器等外设路由到引脚的方式。这些组件不像传统固定功能的微控制器那样采用静态引脚位置。器件上采用一系列寄存器,可让客户根据特定应用需求对器件进行配置。此外,混合信号SoC器件还包含可在不同层次进行编程的数字资源,包括基本的可配置逻辑到较大型PLD资源,而且能采用Verilog等硬件描述语言配置。采用可编程数字资源,开发人员能方便地创建状态机和其它复杂电路,包括在硬件中对数字信号执行FFT等。
SoC器件面临的挑战
高度可配置性固然能让开发人员适应开发过程中可能出现的变化,但仍有一些情况下所选择的SoC会达到极限。当设计要求超出了部件功能,或者当器件芯片上没有固定功能的组件而需要实现某种特性或特定功能时,就会出现极限。可配置性和灵活的路由功能可让混合信号SoC的使用发挥很大作用,利用这一点,开发人员就能解决器件架构自身可能存在的许多缺点。本文将介绍其中的一些设计挑战,并通过几个实例来探索如何解决SoC器件的有关问题。这些方法通常能在不改变当前设计所用SoC器件的前提下充分满足设计要求。
解决模拟SoC挑战
解决模拟设计挑战或许是嵌入式混合信号开发中最困难的事情之一了。与更多发挥构建块作用的“通用型”数字外设不同,模拟外设的功能“相当固定”,其自身就是组件系统,而不是构建块。工程师需要使用ADC、比较器、DAC等模拟外设,所有这些均能进行一定程度的配置。
常见的一大设计挑战就是设计中需要额外的ADC。比如说客户不希望对ADC输入多路复用或者希望在仅包含Delta Sigma ADC的器件中实现SAR ADC等特定类型的ADC,就会出现这种情况。要了解SoC如何从自身解决这个问题,我们先从设计需要SAR ADC的角度来分析。构建SAR ADC所需的组件包括比较器、DAC、状态寄存器和一些可编程数字逻辑。所有这些组件都能在SoC器件上找到。当上述组件以类似于如图1所示的方式组合在一起,就能创建出正常工作的SARADC。
点击查看大图
图1. 用现有资源实现SAR
读取状态寄存器中存储的信息可收集8位输出。算术运算和位移等各种数字功能都能用Verilog在硬件中完成。资源整合能创建出器件中此前不存在的功能,支持8位118K SPS。还有一个优势则是,只要还有更多比较器、DAC和数字逻辑,就能配置出更多SAR ADC。
许多混合信号SoC器件都包含专用的比较器和运算放大器。如果这些资源用完了,或者说器件一开始就没有采用这些外设,那该怎么办?设想一下各种不同的模拟电路,如比较器、有源滤波器、可编程增益放大器或跨阻抗放大器,其实都包含运算放大器,可用各种电阻和/或电容来创建特定的功能。一些混合信号SoC采用开关式电容(SC)外设。SC外设围绕低噪声低偏移运算放大器而构建,周围是模拟多路复用器,模拟多路复用器的周围则是电容和开关组。如果开关为静态的开或关状态,那么电容会附加到电路。此外,如果开关(图2中的ᶲ1和ᶲ2)以一定的频率交替打开和关闭,那么开关式电容的行为就跟无损电阻差不多了。
图2. 开关电容模型
集成开关式电容的器件,如赛普拉斯半导体公司推出的PSoC器件系列,通过寄存器配置来控制开关电容拓扑中的开关,从而产生各种电路,包括最基本的运算放大器到更高级的混频器、积分器或跟踪与保持等电路。
解决数字SoC的挑战
开发人员在SoC架构方面面临着严峻的数字设计挑战。传统的微控制器包含PWM和定时器等固定功能的数字外设。SoC器件则集成了类似于下图3所示方框图的数字逻辑,其来自赛普拉斯半导体公司的PSoC 3/5LP器件系列。采用Verilog等硬件描述语言,这些硬件资源经过配置可协同创建出各种可能的功能组件。
图3. 可编程数字方框图
不妨设想一下,一个SoC器件包含外设USB接口。在设计后期阶段,我们决定还需支持主机USB功能,包括连接U盘以记录数据或对现场可编程固件进行升级等。问题在于,使用的器件并不包含实现主机功能所需的硬件。但是,采用可配置的数字资源,SoC器件就能解决这一数字设计局限性。
要了解需要集成什么组件,我们首先要考虑处理USB通信需要什么。包括有差分信号、SOF生成、NRZI编码/解码、CRC计算、位填充和IN/OUT数据包语法分析等。如果我们认真研读USB规范,会发现所需的一切其实都能通过一些其它组件的帮助下在PLD中实现。通过大量Verilog代码编写工作利用如图3所示的数字资源,我们可创建出主机USB通信所需的单独组件,如图4所示。这里所显示的每个模块都代表采用各种数字输入和输出的Verilog实现方案。通过一定的粘接逻辑将这些组件连接在一起,再加上一些外部下拉电阻和晶体振荡器,我们就能实现功能齐全的USB主机了。
点击查看大图
图4. 采用可编程硬件实现USB主机
这种可配置性意味着如果在设计中选用混合信号SoC,其包含2个PWM、2个比较器、2个DAC、1个DeltaSigma ADC,那么其硬件功能并不仅仅局限于这些外设。资源可以改变用途,经过修改可扩展资源来满足不同于最初要求的功能。这样,工程师就能实现产品增值,缩短新产品设计所需的开发时间,同时无需迁移到新的嵌入式器件上,因为转用新器件的决定往往会导致新的固件开发和PCB布局工作,这就会浪费时间和资金。利用此前电子工程设计课上学到的技巧,加上混合信号SoC器件的灵活性,您就能高效解决SoC的不足了。