把32位微控制器性能带入工业和汽车应用
扫描二维码
随时随地手机看文章
现今的嵌入式工业及汽车系统中,有许多是基于8位或16位微控制器架构来设计的。随着新的低功耗32位架构的面市,这些应用有可能获得更高的性能、准确度和功效。此外,处理能力的提高也有助于实现新产品的差异性功能,包括先进的控制算法,GUI显示器、语音控制,以及电容式触摸感测等下一代接口。
例如,在许多工业应用中,马达效率是影响功耗的主要因素之一。利用先进的控制算法可以提高马达效率,但这些算法又需要更高性能的微控制器来实现。另一方面,通信速度也同样会影响效率,因为通信速度越高,系统就能够从传感器收集到更多的信息,同时更快速地识别事件并采取相应的行动。
过去32位架构转换一直受拖延的原因很多,比如微控制器的成本较高,不支持5V I/O等等。而现在,随着爱特梅尔推出带有全浮点单元(floating-point unit,FPU)的工业级微控制器——AVR® UC3C 32位微控制器,这些问题甚至其他一些设计问题都已迎刃而解。AVR UC3C整合了外设事件系统、高精度时钟方案和高性能外设,可提高系统的性能、可靠性和功效。此外,安全Flash、硬件式安全机制、直接连接模拟传感器的能力,以及可配置软件框架等多项功能的集成,可大大加快应用的开发进程。最后,AVR UC3C专门针对工业及汽车应用的特殊要求进行了优化,不仅能提供32位处理能力,而且其功耗仅相当于8位或16位微控制器的水平。
32位处理性能
32位与8/16位系统的效率差异相当大,在16位处理器上,一次普通的32位乘/累加操作需要4次乘法与4次加法运算。由于需要访问存储器以存储中间结果或释放多个寄存器,执行效率会进一步降低,并可能减慢其他操作的速度。因此,在16处理器上,一次32位乘法可能需要20~40个周期。而32位UC3C处理器只需要单个周期即可。此外,32位管线较宽,故从存储器检索数据及指令的速度更快。
集成式FPU的推出也使应用开发得以进一步简化。当一种算法过于周期密集或需采用定点格式来实现时,必须花费产品开发周期的很大一部分时间来寻找能够简化算法、加速计算的方法。这类简化常常是以准确度为代价的。而利用FPU实现复杂算法所需要的工作量较小,动态范围更宽,并可保持最高的精度。利用32位浮点指令来实现复杂算法,不仅可以提高系统的准确度和效率,还能够大幅度加快开发进程。浮点技术对广大范围内的多种应用都很有用,包括机器人技术、运动控制、马达控制和音频应用。
爱特梅尔AVR® UC3C 32位微控制器指令集是结合了16位和32位指令的丰富指令集,可以利用C语言编译器平衡性能与代码密度。不过,UC3C微控制器的最大优势在于它的架构针对嵌入式系统中常见的实时事件管理进行了优化。UC3C微控制器支持广大范围的各种高精度外设和接口,比如嵌入式系统需要的CAN和LIN,并支持整个工业温度范围的可靠运作。AVR UC3C架构设计是针对较小化处理延时以确保实时事件处理的,如图1所示,系统可靠性和操作人员安全性的微控制器。
图1表示的是爱特梅尔AVR UC3C 32位微控制器是一款高性能微控制器,设计具有较小处理延时以确保实时事件处理,从而确保系统可靠性和操作人员安全性。
图1 爱特梅尔AVR UC3C 32位微控制器设计框图[!--empirenews.page--]
增强的处理能力可通过多种不同的方式来提升应用的性能:
更高的准确度和精度:更大的处理能力让微控制器能够以更高的采样率支持更精确的ADC和DAC。
模拟传感器的直接使用:AVR UC3C具有基于DMA的ADC、先进的处理能力,以及可正确管理模拟传感器的精确时序的集成技术,故相比传统的微控制器架构,可以支持更多的模拟传感器。
更先进的算法:实现更先进的算法,如三相马达控制和死区插入技术(dead-band insertion techniques),可以提高系统效率,降低系统的功耗和成本。
差异性:更大的处理能力还能够实现更先进的用户接口图形。例如,许多微控制器都需要4或5个芯片才能实现系统的电容式触摸功能。而利用灵活、高性能的AVR UC3C,电容式就能够采用软件实现触摸功能,并可通过任何I/O引脚工作,无需外部元件。
更大的通信带宽:系统可以共享更多的数据,控制多个节点,并捕捉分辨率更高的数据。目前的16位系统往往无法支持单个CAN或以太网堆栈。而利用带DMA的32位架构,单个器件就可以作为多接口网关。
5V I/O标准
随着制造工艺尺寸的缩小,微控制器供应商也顺应形势,致力于减小I/O电压以降低功耗和提高稳定性。虽然这种电压减小对消费电子产品等众多应用是很有利的,但由于工业市场中的系统要求更长的使用寿命,故不适合于采用3.3V I/O。因此,工业应用中的大多数元件仍然是基于5V I/O的。
一直以来,32位处理器只提供3.3V I/O,因为它们的晶体管数目较多,导致其制造工艺的几何尺寸更小。为了支持市面上大量的基于5V的工业元件,这些处理器需要附加的电路,包括成本高昂的电平转换器和电源,把5V I/O降至3.3V电平,以便于连接。当然,更高的处理能力总是受欢迎的,但更高的成本却不为市场所接受。至于转换到3.3V I/O及元件这一替代方案也是不切实际的。大多数传感器及其他工业元件都基于5V,故与其把系统需要的所有传感器都来个大调换,继续采用8位和16位微控制器则更方便、更具成本效益。
独特的爱特梅尔AVR® UC3C 32位微控制器是首个支持5V I/O的工业级微控制器。这一成果通过更先进的0.18µm工艺技术而得以实现,因为其以一种可靠且具成本效益的方法支持更高的I/O电压水平。这种本征5V I/O让基于AVR UC3C的设计能够充分利用32位微控制器新增加的CPU性能,无需任何复杂昂贵的电压转换器件。
除了支持5V I/O之外,AVR UC3C还附带有广大范围的高性能外设,可满足工业和汽车应用的需求:
ADC:16通道,12位,采样速率高达1.5Msps;双采样及保持能力;内置校准;内部与外部参考电压。
DAC:4路输出(2×2通道),12位分辨率;转换速率达1Msps,1us建立时间(settling time);灵活的转换范围;每通道1个连续输出或2个采样/保持输出。
模拟比较器:4通道并带有可选功率与速度;可选磁滞(0V、20mV和50mV);灵活的输入选择和中断;结合两个比较器的窗口比较功能。
定时器/计数器:多个时钟源(5个内部的,3个外部的);丰富的功能集(计数器、捕获、上/下,PWM);每通道2个输入/输出信号;全局启动控制,实现同步运作。
正交解码器:集成式解码器,支持直接马达旋转检测。
多个接口:包括一个双通道双线接口(TWI)、主/从SPI,以及可用作SPI或LIN的全功能USART。
全集成USB:内置USB2.0收发器,支持低(1.5Mbps)、全(12Mbps)和On-The-Go模式。此外,AVR软件框架为各种USB设备(海量存储、HID、CDC、音频)、主设备(大容量存储、HID、CDC)和组合功能设备提供生产就绪(production-ready)的驱动程序。
更高的系统吞吐量
外设管理可能已经成为一个主要的系统瓶颈问题,情况在外设数目与其工作频率不断提高的情况下则更严重。在一个传统的中断式系统中,数据到达一个接口或传感器端口,在被下一个数据值覆写之前,CPU必须读取和存储结果。由于多通道高采样速率,中断开销和数据处理会消耗很大比例的处理器可用时钟周期。随着被管理的外设数目增加,中断延时也增加,从而引入抖动,降低准确度。另外,其他设计问题也随之产生,比如致使任务调度复杂化的优先级中断处理。
为了便于多个高性能外设的高效工作,AVR UC3C架构采用了一个外设事件系统,其允许外设自我管理,并彼此通信,无需主处理器干预,如图2所示。外设事件控制器通过一个可实现所有外设互连的内部通信结构来独立处理CPU的外设间信令。取代触发一个中断去通知CPU读取外设或端口数据,外设可以自我管理,把数据直接传送给SRAM存储,所有这些都无需CPU任何干预。从功率角度来看,只有那些转换功能模块是有源的。在整个事件发生期间,设备中最耗电的部件CPU,被释放出来执行应用代码或进入IDIE模式以节能,而不必为了处理高频中断频频处于活跃状态。[!--empirenews.page--]
图2表示了外设事件系统允许外设自我管理,无需主处理器干预。例如,若无外设事件系统,定时器会在一个ADC上触发一个转换,然后把结果传送给DMA,再存储到存储器里,所有这些都无需CPU的任何干预。若带有外设事件系统,没有抖动,且当爱特梅尔AVR工作在66MHz时,响应延时固定在三个周期仅33ns。
图2 外设事件系统允许外设自我管理
相比基于CPU的中断驱动式事件控制器,外设事件控制器的响应还具有更大的确定性。当32位AVR UC3C工作在66MHz时,延时固定在三个周期或仅33ns,从而实现无抖动的精确事件时序,使ADC和DAC上的数据读取和传输更准确。这种延时可预测以及无需CPU开销的特性还可防止事件遗漏或数据丢失。
为了全面地观察外设事件系统的功能,考虑管理单个SPI端口所需的CPU负荷。如果外设与SRAM之间的数据传输是基于中断的,SPI端口在接收到数据时会触发一个中断,然后CPU保存应用环境(application context),把数据传送到SRAM的适当数据缓冲器中,再恢复应用环境。即使在1.2Mbps的低数据率之下,管理SPI端口也需要53%的处理器能力。
反之,若采用外设事件系统,USB端口会自动把接收到的数据传输到DMA。DMA再自动把该数据存储在适当的存储缓冲器中,所有这些操作都无需CPU的任何干预。实质上,采用外设事件系统可省去与外设管理有关的所有中断,从而能把更多的CPU能力留给应用。
外设事件系统还能减低实时系统管理的总体复杂性。以一个典型的三相马达控制应用为例,这种应用需要一个PWM利用开/关脉冲发送来驱动电流。在开环架构中必须同时测量两个电流,才能确定反电动势(back-EMF),以计算转子的位置。闭环架构也需要测量两个电流,以读取增量式编码器返回的位置和方向数据。在紧急状态下,系统还需要执行硬件故障机制来中止马达。而利用爱特梅尔AVR® UC3C 32位微控制器,所有这些输入和输出都可以通过外设事件系统在后台进行管理。
工业和汽车应用需要大量不同的时钟来实现这些系统支持的众多功能。AVR UC3C架构提供有多个时钟选择,从而可省去系统原本可能需要的多个外部时钟源。AVR UC3C提供的时钟选择包括3个内部RC振荡器(115kHz、8MHz及120MHz)和1个用于生成频率范围从80MHz到240MHz的高速系统时钟的锁相环(PLL)。任何一个振荡器都可作为系统的实时时钟(RTC)源,外部振荡器可用于提供额外的时钟频率。
IP保护
由于目前制造业常常将业务外包和离岸外包,加上软件所包含的知识产权(IP)越来越多,代码保护成为关键的设计考虑事项。有关IP保护的三大主要因素包括:
源代码和目标代码的保护:存储程序代码的Flash必须具有锁定功能,以保护代码不被读取或拷贝。这不仅可以防止竞争对手窃取应用代码,还能防止欠考虑的离岸制造商复制代码,私下制造产品在当地销售。
代码的部分锁定:利用第三方开发商提供的应用代码,可以显著加快系统开发进程,尤其是对依赖专用算法的应用而言。传统的保护机制,比如只提供目标代码的方案,因为无法检验代码被使用的次数,故不足以保护第三方的投资。而部分锁定Flash的功能让第三方开发商能够放心地提供专有的代码,因为代码已经编程在微控制器上了。
器件编程成本:微控制器的编程必须在安装在电路板上之前进行,或者是采用器件内编程的方式。预编程技术给物流带来挑战,因为器件必须先在可靠的设施上编程,再运送到制造厂房。器件内编程技术则可以在制造阶段添加最新代码。器件编程常用的一种方法是利用微控制器的JTAG端口。这种方法的缺点是需要指定4个I/O引脚专用于此目的,而且二进制代码在微控制器和电路板之间传送时会被暴露。替代方案是让器件在工厂装载启动加载程序代码,而这些代码拥有足以支持一个接口(如USB端口)的功能。AVR UC3C 就附带有USB驱动器,能够支持器件固件升级(DFU),允许器件通过系统的USB端口进行编程。这就释放了I/O引脚,并从系统BOM中删去了JTAG标头。
爱特梅尔AVR® UC3C 32位微控制器架构还包含了爱特梅尔FlashVault™代码保护技术。FlashVault允许片上Flash进行部分编程和锁定,创建安全的片上存储空间,用以保护软件IP。Flash上的锁定部分不能被读取、拷贝或调试。在开发和调试期间,FlashVault还可以采用一种部分未保护模式工作,以访问存储在Flash中的应用程序代码,同时仍然能够保护第三方代码。启动加载程序代码也可以被锁定,以确保器件在出现灾难性软件故障的情况下总是能够重载应用代码。[!--empirenews.page--]
系统安全性
对于工业和汽车应用,由于系统故障可能造成代价高昂的后果,甚至可能导致操作人员的伤亡,故安全性是其主要考虑事项。事实上,相当比例的系统都会遇到时钟故障,因而系统必须具有从时钟故障中良好恢复的能力,对于那些使用寿命预计数十年的工业系统尤其如此。例如,马达控制系统必须能够在检测到时钟故障时就智能化关断系统,以保护马达或操作人员避免灾难性损害。为此,AVR UC3C器件可以检测出主要的时钟故障,并切换到一个内部115kHz RC振荡器。系统可以利用备份时钟继续运行(同时触发一个主时钟发生故障的警报),或执行任何必须的关断操作,以使系统进入故障保护状态。
另一个重要的安全功能是窗口式看门狗定时器。微控制器一般都采用看门狗定时器来监测系统是否正常运行。如果应用代码被破坏,看门狗定时器就不会被启动,而一个软件复位被触发,警告系统启动失败。这种机制在软件更新后显得特别重要,以确保更新成功。
不过,看门狗定时器存在一个问题,就是它是通过软件来设置和激活的。如果设置看门狗定时器的代码从未被执行,故障保护中断就不会被触发。窗口式看门狗定时器,如图3所示,则是一种更为可靠的故障检测形式,它定义了一个较窄的看门狗启动窗口。这种方案仍然需要定时器以软件形式启动,但不会出现上述看门狗因是通过硬件设置和激活的就无法被设置的异常情况,并可防止已破坏的应用程序错误修改看门狗配置。于是,窗口式看门狗总是在系统上电时被设置和激活,故若应用代码被破坏,在设置时间之后,故障保护中断将被触发。
图3所示的看门狗定时器的作用是,通过要求应用在设置时间帧之内对看门狗定时器进行清零来确认系统是否正常工作。对于传统看门狗定时器,如果已破坏的系统复位看门狗定时器,若不能首先激活它,就无法执行故障检测。而窗口式看门狗定时器在系统上电时以硬件形式被设置和激活,故可确保系统故障被检测到。
图3 窗口式看门狗定时器
窗口式看门狗定时器只在某个时间帧内被启动。例如有一个中断,其应该在执行了一定的周期数之后才返回到主循环(启动看门狗定时器)。如果中断返回太快,中断就没有被正确执行,因此可能存在某个系统问题。对于传统的看门狗定时器,这个问题会被忽略过去。而使用时间帧式看门狗定时器的话,这时定时器将被过快启动,从而触发看门狗中断。
加速系统开发
今天,在评测微控制器架构时,需要考虑的不仅有器件的硬件能力,还包括可使用什么样的软件库和应用就绪应用软件。从头开始设计一个完整的系统需要大量的开发资源和时间。反之,利用现有的软件框架则可以加快上市速度,大幅度减少应用开发投资。
爱特梅尔AVR®软件框架可以简化系统开发,它支持各种最优化接口驱动器、外设固件和应用代码,包括大量的马达控制算法、电容式触摸驱动器、先进的数字信号处理算法(即FFT,以及带通、高通及低通滤波器)、常用音频与图像编解码器(如MP3)、语音识别引擎、显示驱动器、CAN/LIN服务,以及FAT12/16/32文件系统等等。利用该框架实现外设或接口驱动器可大大简化固件开发,并缩短在AVR产品系列上移植应用程序所需的时间。譬如,可用3个UART驱动器支持RS-232与RS-485接口,还可以覆盖一个CAN接口。同样的,创建一个USB驱动器就和选择一个器件类别一样简单,而且该框架提供有对应的驱动器代码和协议堆栈。这个框架还包含了一个完整的实时操作系统(freeRTOS),并支持众多流行产品,如uC-OS/II、embOS、ThreadX和openRTOS。爱特梅尔可免费向客户提供AVR软件框架。
利用广义的软件框架有助于缩短开发时间,加快上市速度。AVR软件框架提供有业界范围最广的生产就绪的软件驱动器及程序库选择,并包含了一组丰富的范例应用完备文档代码。AVR微控制器可支持实时跟踪,实现系统操作的完全可视化。此外,AVR微控制器每季都进行更新,推出新功能。
利用直观的GUI式爱特梅尔AVR Studio®开发环境可以快速配置驱动器和接口,这样一来,只需数分钟而不是数个月就可以实现首个原型,如图4所示。快速又简单的外设配置对工业市场而言是至关重要的,因为这样一来,整个设计团队得以把主要精力集中在应用开发上,而不是浪费在另一个UART驱动器的编码上。AVR Studio是业界最完善的8位和32位应用开发环境,可为所有AVR微控制器提供全面的编译器和调试器支持。由于利用AVR软件框架来配置外设,故不同AVR器件之间的移植是真正无缝的。AVR Studio与AVR软件框架完全集成,二者都可免费或免权益金获取。
图4所示为爱特梅尔AVR Studio开发环境,可为所有外设提供驱动器和接口固件。采用这种方法,无需数个月,数分钟就可以配置出首个原型。
图4 爱特梅尔AVR Studio开发环境
爱特梅尔还提供有广泛的硬件式系统内编程、调试和评测工具。例如,爱特梅尔AT32UC3C-EK评测工具套件就具有开箱即用的简便性,可为爱特梅尔AVR® UC3C 32位微控制器架构的大量功能提供使用入口。它能够接入每一个引脚和片上资源,以简单的过程直接验证AVR UC3C出色的低功耗特性。该评测工具套件还有爱特梅尔QTouch®电容式触摸能力,以及用于无线连接的RF4CE、ZigBee、Wi-Fi和蓝牙插件板。
真正的系统设计并不是把各种不同的芯片或子系统简单地组合起来。现在的嵌入式应用产品是包含了众多功能性组件的复杂系统。向32位架构转换可以实现将设计整合在单个微控制器上,而这种32位微控制器架构针对高性能、低功耗、实时处理与系统可靠性进行了优化。此外,这时系统设计还可以在单个协调环境中完成,从而加快系统的开发和测试进程。
AVR UC3C是业界首款专为工业和汽车应用而设计的32位处理器。UC3C整合了浮点计算能力和外设事件系统,支持32位性能,它提供的性能与处理能力能够为这些系统引入先进的功能性,并创建新的市场机遇。再结合适当的高精度外设组合、原生5V I/O、安全Flash和最完善的设计环境,加之针对马达控制、传感器监控以及数字信号处理功能的生产就绪代码,UC3C成为那些需要实时可靠性、高性能及高功效的应用的理想MCU选择。