把32位微控制器性能带入工业和汽车应用
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中的应用程序代码,同时仍然能够保护第三方代码。启动加载程序代码也可以被锁定,以确保器件在出现灾难性软件故障的情况下总是能够重载应用代码。
系统安全性
对于工业和汽车应用,由于系统故障可能造成代价高昂的后果,甚至可能导致操作人员的伤亡,故安全性是其主要考虑事项。事实上,相当比例的系统都会遇到时钟故障,因而系统必须具有从时钟故障中良好恢复的能力,对于那些使用寿命预计数十年的工业系统尤其如此。例如,马达控制系统必须能够在检测到时钟故障时就智能化关断系统,以保护马达或操作人员避免灾难性损害。为此,AVR UC3C器件可以检测出主要的时钟故障,并切换到一个内部115kHz RC振荡器。系统可以利用备份时钟继续运行(同时触发一个主时钟发生故障的警报),或执行任何必须的关断操作,以使系统进入故障保护状态。
另一个重要的安全功能是窗口式看门狗定时器。微控制器一般都采用看门狗定时器来监测系统是否正常运行。如果应用代码被破坏,看门狗定时器就不会被启动,而一个软件复位被触发,警告系统启动失败。这种机制在软件更新后显得特别重要,以确保更新成功。
不过,看门狗定时器存在一个问题,就是它是通过软件来设置和激活的。如果设置看门狗定时器的代码从未被执行,故障保护中断就不会被触发。窗口式看门狗定时器,如图3所示,则是一种更为可靠的故障检测形式,它定义了一个较窄的看门狗启动窗口。这种方案仍然需要定时器以软件形式启动,但不会出现上述看门狗因是通过硬件设置和激活的就无法被设
- 爱特梅尔为32位AVR UC3微控制器开发浮点单元技术(03-16)