广告

使用特定任务的MCU简化复杂设计

2022-08-16 18:04:17 Robert Perkel,应用工程师,Microchip公司 阅读:
在当今的电子世界中,运行实时操作系统(RTOS)的大型32位微控制器(MCU)和微处理器(MPU)越来越普遍。然而,处理复杂应用的单个大型MCU,可能会遇到与小型内务管理任务相关的CPU资源问题,这些任务并不复杂,但非常耗时。较小的器件,例如8位和16位MCU,可用于从32位器件卸载这些任务。

在当今的电子世界中,运行实时操作系统(RTOS)的大型32位微控制器(MCU)和微处理器(MPU)越来越普遍。然而,处理复杂应用的单个大型MCU,可能会遇到与小型内务管理任务相关的CPU资源问题,这些任务并不复杂,但非常耗时。较小的器件,例如8位和16位MCU,可用于从32位器件卸载这些任务。CYtednc

让我们来考虑一下以下这个示例:将32位MCU用于控制汽车的非安全功能,如娱乐系统、环境照明和空调。32位器件必须要能分配其资源来处理与这些功能相关的所有任务。一些示例包括多点测量机舱温度、打开/关闭空调系统、更新图形显示、处理用户输入、调整照明条件和播放音乐。即使对于大型32位器件,这也是很多工作。CYtednc

但是,如果能将其中一些任务从32位器件卸载到仅负责处理其中一项或两项任务的子处理器,而在此过程中又几乎不需要监督,那么这些任务就更易于管理。这释放了主处理器上的CPU资源,从而降低了软件复杂性,同时提高了性能和执行时间。CYtednc

该解决方案类似于MCU中外设的优势。外设是小型专用硬件模块,可以添加新功能,例如运算放大器或模数转换器(ADC),或者可以减少CPU必须为给定功能执行的工作量。在某些情况下,外设在初始化后可以独立于CPU运行。CYtednc

例如,为了展示外设的优势,可以考虑脉宽调制(PWM)信号的生成。要在没有专用外设的情况下生成PWM,只需将I/O线设置为高电平,等待一定数量的周期,将其设置为低电平,再等待一段时间,然后重复。这会占用大量CPU周期,并且对于诸如RTOS之类的东西来说很难可靠地执行。相比之下,PWM外设可让CPU在执行其他任务的同时设置所需的波形参数。CYtednc

本文提供的第一个示例显示了卸载CPU密集型任务的好处。在这种情况下,8位MCU用于创建I/O扩展器。I/O扩展器不是复杂的器件;然而,由于中断的频繁服务,它们使用了大量的CPU时间。通过使用专门的MCU来完成这项任务,较大的32位器件可以降低其I/O利用率和需要处理的中断数量。此外,I/O扩展器的功能集是在软件中设置的,因此可以针对应用进行定制和调整。CYtednc

本文中的第二个示例展示了独立于内核的外设的性能,以创建独立于CPU运行的电压频率(V/F)转换器。本例中CPU的唯一功能是初始化外设并将调试消息打印到UART。在更大的系统中,当V/F在后台运行时,CPU可以执行另一个简单的任务。CYtednc

I/O扩展器

使用8位MCU创建I/O扩展器的最大好处是灵活性。I/O扩展器ASIC的功能集已嵌入到该器件中,而MCU则可根据其执行的软件定义其行为。这种灵活性使基于MCU的版本能够适应最终应用的需求。CYtednc

实现高级I/O扩展器

在内部,高级I/O扩展器在基于查找表的结构上运行。在读取或写入之前,会发送一个虚拟地址。该地址与MCU上的寄存器无关——它仅特定于查找表。这意味着可以透明地添加MCU硬件寄存器中所没有的功能。表格中的条目也可以很容易地重新排列以用于特定用途。这种结构的另一个好处是能够向查找表添加权限(图1)。例如,要创建一个只读寄存器,只需省略写查找表条目即可。CYtednc

图1:高级I/O扩展器查找表中的条目可以针对特定用例轻松重新排列。CYtednc

更复杂的结构也适用于非标准功能。“MEM OP”功能支持MCU将其当前的通用输入输出(GPIO)配置保存或加载到内存中。CYtednc

MEM OP还可以将GPIO配置重置为编译时所设置的参数(图2)。CYtednc

图2:MEM OP功能支持MCU将其当前的GPIO配置保存或加载到内存中。CYtednc

或者,可以将MCU设置为在上电时加载保存的设置。如果启用,MCU会尝试加载配置0中的设置。如果配置校验和验证失败,则MCU将恢复为编译时间常数。如果不需要,可以在软件中禁用此功能。CYtednc

此解决方案的要点

基于MCU的解决方案,其优势在于极大的灵活性。与市场上的ASIC不同,可以将MCU配置为具有特定于所用应用的非标准功能。此应用是为通用PIC16F15244系列MCU所开发的。CYtednc

有关此实现的更多信息或想要试用此例,请参阅源存储库中的README文件。其中还提供了带有Arduino的高级I/O扩展器的演示。GitHub上提供了源代码、文档和演示。CYtednc

电压频率(V/F)转换器

V/F转换器通过减少物料清单(BOM)和设计面积来改进传统的模拟解决方案。市场上的许多V/F转换器都需要外部电阻器和电容器才能运行,而MCU只需要通用的去耦和上拉元件(所有MCU都需要这些元件)即可运行(图3)。CYtednc

图3:TC9400器件的应用原理图,突出显示10Hz至100kHz V/F转换器。CYtednc

MCU不使用模拟技术进行数字化,而是使用独立于内核的外设和功能的组合。MCU使用带计算功能的内部模数转换器(ADCC)测量输入信号,然后对时钟信号进行分频以产生可变频率输出。在本例中,外设已设置为在初始化后独立于CPU运行。这意味着CPU可以用于最终应用中的其他任务。CYtednc

基于MCU的方法有一个挑战是它的性能不如模拟解决方案。输出的分辨率本质上受ADCC的限制。名义上,ADCC是12位的,但根据程序的配置方式,ADCC以过采样的14位分辨率运行。同样,合成输出频率的片内数控振荡器(NCO)具有有限的分辨率,并且在其输出中可能存在抖动,具体取决于ADCC测量的值。CYtednc

基于MCU的解决方案可分为三个不同的外设模块:模拟采样模块、输出振荡器模块和占空比发生器(图4)。CYtednc

图4:三个模拟采样模块简化了基于MCU的解决方案。CYtednc

模拟采样模块负责模数转换(图5)。为了在器件的频率限制下实现100kHz的输出,ADCC已配置为过采样,然后向下平均以获得14位结果。CYtednc

图5:模拟采样模块的实现方式。CYtednc

这种过采样的一个缺点是在结果中添加了额外的统计噪声。可以通过对过采样求平均值并添加滞后来补偿噪声。为了实现滞后,这里使用了ADCC的阈值中断功能。为简单起见,本文将仅介绍此示例如何使用阈值中断功能的细节。CYtednc

当ADCC完成过采样平均值计算时,会将结果值与外设中的设定点寄存器进行比较。如果两者之差大于或小于设定阈值,则触发中断。CPU屏蔽这个中断并且不受影响,但是,此中断会触发直接存储器访问(DMA),将平均得到的过采样结果复制到ADCC的设定点寄存器,从而产生滞后。如果未超过阈值,则不会发生DMA复制,也就不会触发输出振荡器模块的DMA更新。CYtednc

输出振荡器模块

该解决方案的输出振荡器模块负责生成所需输出频率的时钟信号。该输出信号在内部连接到占空比发生器,进而将输出频率减半,但会产生50%的占空比输出。因此,输出振荡器模块以输出频率的两倍运行。CYtednc

输出振荡器模块的核心是NCO(图6)。NCO外设通过在输入时钟的上升沿向累加器添加增量值来工作。累加器溢出用于获得外设的输出。CYtednc

图6:输出振荡器模块负责生成所需输出频率的时钟信号。CYtednc

在此示例中,NCO2已设置为在内部创建所需的输入时钟频率,从而从14位输入获得100kHz输出。之所以使用14位结果,是因为来自ADCC本身的12位结果不足以在没有外部时钟源的情况下生成100kHz输出。CYtednc

CYtednc

表1:看门狗关闭情况下100kHz V/F转换器的理想输出。

如果改变NCO2的输出频率,或使用替代源,则输出频率将缩放到不同的输出范围。例如,如果NCO2降低到1.28MHz,则输出最大为10kHz。CYtednc

CYtednc

表2:看门狗关闭情况下10kHz V/F转换器的理想输出。

占空比发生器

该解决方案的占空比发生器模块负责创建50%的占空比输出(图7)。此功能是可选的,尽管占空比会在更大程度上变化,但NCO的输出可以直接使用。CYtednc

图7:占空比发生器产生50%的占空比输出。CYtednc

该发生器使用可配置逻辑单元(CLC)之一实现。CLC是类似于FPGA单个单元的分立可配置逻辑的小模块。CLC可用作分立逻辑门,例如AND-OR或OR-XOR。它们也可以配置为锁存器或触发器。在这个解决方案中,CLC被实现为带有复位功能的JK触发器。J和K保持在逻辑高电平。输出振荡器模块用作触发器的时钟。每个输入时钟脉冲都会导致输出切换,从而产生50%的占空比。值得注意的是,来自输出振荡器模块的频率抖动会影响占空比。CYtednc

定时器6用作不稳定的“看门狗”定时器。如果输出没有产生边沿(上升沿或下降沿),则定时器将溢出而为CLC生成时钟脉冲。这控制了输出频率范围的低端。输出不会达到DC,而是以定时器频率的一半切换,从而获得6Hz输出。CYtednc

此解决方案的要点

此设计示例演示了使用硬件外设来创建通常必须使用外部IC创建的独立于内核的功能。这种配置的最大好处之一是外设操作是在软件中设置的,因此很容易适应最终应用。由于使用了大量外设,因此选择了PIC18-Q43系列MCU来实现该示例。CYtednc

有关此示例的更多信息,可以参阅示例存储库中的README文档。示例存储库还包含频率电压转换器的实现,它可以在与电压频率转换器相同的器件上实现。源代码和文档可在GitHub上获得。CYtednc

虽然高性能MCU和MPU仍然存在,但8位和16位MCU是执行小型专业任务的宝贵工具。这些任务不一定很复杂,但它们可能很耗时或时间紧迫。通过卸载任务,32位器件可以实现更简单的实现,从而提高可靠性、减少内存使用和降低功耗。CYtednc

(原文刊登于EDN美国版,参考链接:Deploying task-specific microcontrollers simplifies complex designs,由Franklin Zhao编译。)CYtednc

本文为《电子技术设计》2022年9月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里CYtednc

责编:Franklin
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 嵌入式Rust:我们如今身处何方? Rust对于一般应用开发来说很有意义,但对于嵌入式软件团队来说真的有意义吗?Rust如今的情况如何,它是否就是大家所鼓吹的最美好的解决方案?
  • 毫米波雷达与音频技术重塑汽车驾乘新体验 汽车行业的发展正由两大创新领域主导:更为精准可靠的车内感知系统和高质量音频系统。传统方法如增加传感器或音频设备数量,虽可提升性能但会带来成本上升和复杂性增加的问题。
  • 创新的FPGA技术实现低功耗、模块化、小尺寸USB解决方 本文总结了业界用于高性能 USB 3 设备的一些典型解决方案,并介绍了一种新的架构,这种架构既能节省功耗和面积,又能提高灵活性和易用性···
  • 盘点CES 2025上基于Arm架构的AI创新和技术亮点 近期在美国拉斯维加斯举行的 CES 2025 再次彰显了其作为展示最新科技创新的重要平台。今年展会上所呈现的众多前沿产品和新的发布将推动各个行业的变革与发展···
  • 通嘉PD快充适配器高效能及小型化之氮化镓集成方案 随着消费者对便携性和高效充电的需求增加,手机厂商和充电器品牌纷纷推出小型化PD快充产品,以满足市场需求···
  • Arm 技术预测:2025 年及未来的技术趋势 Arm 对 2025 年及未来的技术发展做出了预测,范围涵盖技术的各个方面,从 AI 的未来发展到芯片设计,再到不同技术市场的主要趋势···
  • CES 2025:洞察汽车创新未来 从CES 2025的汽车方案展示可以看到,汽车OEM正从黑盒解决方案转变为区域架构为主的处理主干,传感器功能也逐渐优化,结合多模态输入数据与情境感知的 ML...
  • CES 2025:Edge AI硬件加速再掀热潮 边缘计算/边缘人工智能(Edge AI)一直是热门话题,在CES 2025也不例外。然而,实现边缘计算/智能的底层硬件是什么?又是如何实现与应用的呢?
  • 2024是AI MCU元年? 2024年开启了MCU领域的AI时代,2025年可望见证更多轻量化AI模型在MCU上的进一步突破...
  • 下载|汽车动力与底盘MCU市场现状研究报告 本报告选择汽车动力(Powertrain)与底盘(Chassis)系统中的MCU做探讨,一方面是因为,就车规MCU的角度来看,这两个组成部分更为关键、复杂,对安全性要求更高,更具实现难度;另一方面,即便是传统汽车角度,动力与底盘系统的电子控制也更加由来已久和具代表性。
  • 新一代MCU向着边缘AI和实时控制发展 在工业和汽车领域,电机驱动和数字电源转换是典型的实时控制系统,要求处理器具有高实时性和强大的数学计算与处理能力。这些应用需要优质的ADC和PWM功能,并通过联动机制,形成高效、有机的实时控制系统。
  • 下一代汽车微控制器:意法半导体技术解析 意法半导体(ST)深耕汽车市场已有30余年的历史,其产品和解决方案覆盖普通车辆的大多数应用系统。随着市场的发展,意法半导体的产品也在不断升级改进,其中的重要产品汽车微控制器(MCU)也不例外···
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了