当前位置:首页 > 嵌入式 > 嵌入式硬件

为应用选择合适的基于ARM内核的微控制器(MCU)有可能是一个复杂的令人望而却步的任务。目前基于ARM内核的可用微控制器数量超过125款,寻找一款符合相应外围设备组合和性能标准的微控制器需要投入大量研究。本白皮书描述如何使用DeviceDatabase中的参数搜索引擎,为应用快速选择正确的MCU。

此外,使用DeviceDatabase可以在RVMDK中为选定的MCU部件配置相应的工具。

概述

在嵌入式开发领域中,对领先竞争对手的需求,结合32位微控制器的出现,推动了这些部件在新产品中的广泛应用,取代过去的8位和16位微控制器。开发人员在选择微控制器时,遵循四项主要标准:功能、可用性、成本和熟悉程度。本文中,讨论使用联机DeviceDatabase帮助开发人员为其应用作出选择。我们演示DeviceDatabase如何与RealViewMicrocontrollerDevelopmentKit微控制器开发套件集成,使开发人员能自动配置他们的工具链,使用选定的MCU进行开发。

选择问题

今天,在选择具备所需外围设备组合和性能并且价格适当的MCU时,开发人员可选的余地很大。生产基于ARM内核的MCU的半导体公司数量超过16家,其中包括一些全球最大的MCU提供商。每家半导体供应商提供的MCU不只一款,且是针对特定市场领域的一系列MCU。在编写本文时,共有超过125款基于ARM内核的MCU,而且该数字每周仍在不断增长。部分供应商提供一些在线搜索工具,使开人员能对其产品组合中的MCU作出比较和对比。但是如果要比较不同供应商的MCU,它就毫无价值了。我们真正需要的是一个工具,它使开发人员能对相同产品系列、不同产品系列和不同供应商的MCU作出比较和对比。这正是DeviceDatabase的切入点。

DeviceDatabaseDevice

Database是一个可搜索数据库,该数据库包含KeilTM(ARM公司)软件开发工具支持的各种MCU的相关信息,其中包括RealViewMicrocontrollerDevelopmentKit微控制器开发套件支持的那些基于ARM内核的MCU。DeviceDatabase有两个版本,一个是/dd上的在线版本,另一个则内建在RVMDK中。只有基于Web的版本提供参数搜索功能。

该数据库支持以下MCU信息:

除此以外,该数据库还包含指向FindChips.com网站的链接,其中列出了不同MCU的经销商。

数据库搜索

可按下列方式在DeviceDatabase中搜索MCU:

架构——显示支持特定处理器架构的所有MCU。例如,按ARM架构搜索将列出MCU内核中支持ARM架构的所有供应商。

供应商——显示特定半导体供应商生产的所有MCU。例如,将飞利浦作为供应商进行搜索将列出飞利浦生产的所有MCU系列的MCU。

参数——允许开发人员输入他们要查找的MCU的要求。

使用参数搜索强大功能

开发人员最感兴趣的可能是DeviceDatabase的参数搜索功能,它使开发人员能搜索整个MCU范围内的特定外围设备组合和性能标准,而不会受到任何一家处理器供应商的搜索功能限制。使用这种搜索,开发人员可以迅速确定一个MCU部件或MCU系列,它们可提供最合适的性能、外围设备组合以及未来可扩展性。

参数搜索示例

为了展示DeviceDatabase参数搜索的一些高级功能,我们将使用以下示例。示例:远程温度记录设备我们要创建一个远程温度传感设备,它能持续记录来自的信息并将它们存储在本地。现场使用时设备应由供电,如果崩溃则应有故障重新启动功能。通过USB连接设备时,它应该能通过USB转储其日志,并同步时钟以便进一步收集数据。基于这些条件,我们可以将MCU要求精简如下:

如果我们将这些参数作为参数搜索输入DeviceDatabase,我们发现目前有两个来自不同MCU供应商、基于ARM内核的MCU系列,每个系列都有四个MCU部件符合上述要求。在不同MCU供应商范围内使用这种搜索将超过125种MCU的选择工作缩减到8种。此时,我们可以检查DeviceDatabase中各个部件项,并根据更多客观条件(如过去的经验、文档清晰性、应用程序库和示例代码的相关性,当然还有价格/批量)作出最终决策。RealViewMicrocontrollerDevelopmentKit微控制器开发套件配置在上述示例中,我们已说明如何在Web上将DeviceDatabase用作独立工具,根据特殊应用的MCU选择作出明智的决策。但DeviceDatabase的用途远不止此,因为在特殊应用项目的设置阶段中也可以使用它。RVMDK包含一个DeviceDatabase版本,在开发人员着手新项目时调用它。当开发人员在RVMDK的μVisionIDE中指定DeviceDatabase选择的MCU时,将使用该MCU的数据库知识自动配置和定制专门针对该MCU的开发工具这样可大幅缩短工具设置时间。

自动化工具配置包括下列步骤:

仿真器设置本步骤配置μVision仿真器为相应的MCU建模,包括默认时钟频率、指令集、寄存器集、内置ROM和RAM空间以及外围设备组合。接程序设置本步骤构建一个链接程序可读内存映射或分散文件,它定义链接程序应将代码放到正确地址,告诉MCU仿真器内存映射的布局(仿真器可写入非内存或只读内存)。编译器和汇编器设置本步骤设置编译器和汇编器,包括包含该MCU的正确头文件的路径。将启动代码安装到项目中本步骤预先将相关示例MCU启动代码的源代码安装到项目开始处,确保在重置后、执行应用程序之前将MCU置于明确定义的已知状态。除此以外,自动配置可以帮助用户在第一次使用工具时设置几个实用默认值,其中包括调试编译、map文件的生成以及调用图等。μVisionIDE中“目标GUI”的“选项”中可以显示所有这些相关选项,包括作为GUI生成的每个工具的GUI可更改选项以及命令行参数Web上将DeviceDatabase用作独立工具,根据特殊应用的MCU选择作出明智的决策。但DeviceDatabase的用途远不止此,因为在特殊应用项目的设置阶段中也可以使用它。RVMDK包含一个DeviceDatabase版本,在开发人员着手新项目时调用它。

当开发人员在RVMDK的μVisionIDE中指定DeviceDatabase选择的MCU时,将使用该MCU的数据库知识自动配置和定制专门针对该MCU的开发工具。这样可大幅缩短工具设置时间。自动化工具配置包括下列步骤:仿真器设置本步骤配置μVision仿真器为相应的MCU建模,包括默认时钟频率、指令集、寄存器集、内置ROM和RAM空间以及外围设备组合。链接程序设置本步骤构建一个链接程序可读内存映射或分散文件,它定义链接程序应将代码放到正确地址,并告诉MCU仿真器内存映射的布局(仿真器可写入非内存或只读内存)。编译器和汇编器设置本步骤设置编译器和汇编器,包括包含该MCU的正确头文件的路径。将启动代码安装到项目中本步骤预先将相关示例MCU启动代码的源代码安装到项目开始处,确保在重置后、执行应用程序之前将MCU置于明确定义的已知状态。除此以外,自动配置可以帮助用户在第一次使用工具时设置几个实用默认值,其中包括调试编译、map文件的生成以及调用图等。μVisionIDE中“目标GUI”的“选项”中可以显示所有这些相关选项,包括作为GUI生成的每个工具的GUI可更改选项以及命令行参数统、文件系统和联发过程演变为将各种组件整合在一起,只需较少的组件内部知识或相应外围设备的知识即可快速构建嵌入式应用程序。ARMRVMDK和RV-RTL提供一套软件组件,可满足嵌入式应用程序的诸多常见要求。此外,DeviceDatabase包含许多使用这些软件组件的示例程序,提供可改编为最终应用的高级模板应用程序。

目标配置

为嵌入式应用程序正确设置目标环境需要投入相当多的时间。如指南1所述,RVMDK可在项目开始阶段为选定微控制器添加特定启动代码,使开发人员的应用程序能在MCU处于明确定义的已知状态时开始执行。但是,特定MCU上运行的各个应用程序的内存要求和外围设备行要求相差悬殊,提供的启动代码不可能符合开发人员需要的每种可行设置。一种方法是开发人员使用一套标准的启动代码,逐步修改它直至达到MCU及其资源(如堆栈)需要的状态。虽然此方法肯定可以成功,但要耗费大量时间。RVMDK提供另一种方法,即使用配置向导手工修改示例启动代码,该向导提供映射到启动代码的MCU资源的高级视图。图1显示AtmelAT91M55800A微控制器外部总线接口上两个芯片选择寄存器的部分配置。开发人员可通过修改每项的值轻松启用和配置特定芯片选择寄存器。此方法大大简化了启动代码的创建,因为完成配置向导时会自动生成启动代码。例如,完成芯片选择0(CSR0)项时会自动修改下表ARM汇编器常量声明相关的数值:

EBI_CSR0_ValEQU0x010024A9

EBI_CSR0_ValEQU0x010024A9

该常量之后用于在启动代码中初始化外部总线接口。

配置向导的内幕

配置向导使用简单标记语言来定义用户在对话框中看到的内容以及用户的选择如何生成数字和文本项。为此,标记语言可以嵌入C、C++、汇编器源代码或任何文本文件中。这样可将配置向导用于使用数字字符串定义的任意配置。图2显示将配置向导用于配置目标系统堆栈大小的示例。图3显示该示例的底层标记语言。标记和定义堆栈项及其相关标签的起点和终点。标记定义数字范围内的用户可编辑项。此示例中要编辑的实际项不明显,即标记(0x00000000)后的第一个数字字段。用户可通过在0后指定一个数字来定义字段偏移量。

软件应用程序库

基于ARM内核的MCU提供的高性能使它们能用于计算更密集的市场领域(相对于8位和16位MCU针对的市场)。成功填补这些市场空缺需要更复杂的软件。典型的8位应用程序可能包含一个实时操作系统()和一些控制代码,而的32位MCU应用程序通常包含完整的通信栈,其复杂程度比低级高出一个数量级。RV-RTL提供一套经常需要的软件组件,可以将它们轻松部署到基于ARM内核的MCU中去。该库包含一些为其支持的MCU的特殊外围设备专门优化的项,如TCP/IP网络栈、文件系统、USB设备启动程序以及CAN设备驱动程序。开发人员可使用RVMDK中的配置向导快速配置组件。图4显将配置向导用于配置栈的示例。RVMDK中的可配置对象包括RTX实时内核,RV-RTL中以源代码形式提供该内核。这是一款全功能实时内核,提供许多现代中最常见的资源抽象,包括线程、计时器、队列、邮箱、信号量、互斥体、块池和事件标记。开发人员可使用内核来组合实时库中的组件,以便在目标系统上作为单独的通信任务来执行。

代码模板和应用程序示例

RVMDK包含几个针对各个受支持MCU的示例应用程序。开发人员可将这些示例用作他们的应用程序模板,无需深入了解其选定MCU即可着手开发。示例涵盖常见的初始开发要求,如设置中断、闪烁或将文本写入输出设备以及完成模拟数据采集和实时OS示例。RV-RTL还随附几个示例应用程序,它们在现实世界典型情况下使用RV-RTL中的组件。它们可以用作整个嵌入式应用程序的基础。示例包括:

包含CGI脚本的嵌入式Web服务器

电子邮件通知



USB内存设备

USB人机接口设备

USB音频设备

结论

通过使用基于32位ARM内核的MCU开发微控制器应用程序,开发人员能使用之前8位和16位MCU无法实现的方式利用各种现成软件组件。基于ARM内核的MCU的强大实力和内存寻址功能无需手工编码汇编器或专用软件库。RVMDK和RV-RTL为开发人员提供了常见软件组件和示例库,可用作其应用程序的基础构建模块。使用内建的配置向导,可以在RVMDK的μVisionIDE中为所需的应用程序轻松配置目标系统和软件组件。通过使用这些可配置组件并与实时内核相结合,开发人员可以更自信地将其应用程序迅速推向市场。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭