Qt for MCUs:为嵌入式微控制器(MCU)设计和开发高性能应用程序

随着新能源汽车的高速发展,智能座舱技术在不断创新进步,致力于为用户带来更好的体验。作为汽车智能化的最佳载体,智能座舱已成为市场销售的主要卖点之一。智能座舱内的交互体验和屏幕设计已经成为购车者必不可少的重要考虑因素。随着屏幕功能的不断增多,汽车的交付过程变得越来越复杂,这不仅对汽车芯片性能提出了更高的要求,同时对平台、开发人员技术的要求也越来越高。

更多功能,更低成本

在激烈的市场竞争下,主机厂面临着提升产品功能和降低价格的双重挑战。然而,随着屏幕数量增加,硬件成本和开发成本也相应增加。在此背景下,采用低成本的MCU芯片在HMI设计开发中逐渐成为了一个能够平衡功耗、保证稳定性和控制成本的重要方案。

MCU在HMI领域有许多优势,它们体积更小、功耗更低,相对于Cortex-A级别的MPU、PCB,布局的复杂度较低,还拥有较好的安全性和可靠性。因此,无论是BOM成本还是对电路设计人员的能力要求,选用MCU都是一个比较好的方案。借由MCU的固有特性,它可以适用于多种座舱的场景,包括但不限于IVI、HVAC、扶手屏、HUD以及智能钥匙等。

然而,由于MCU的计算能力和存储容量非常有限,如何最大程度地利用MCU的性能,并在高设计标准下保证用户体验就成为了一个极高的挑战。一方面,这需要应用程序开发者具备较强的架构设计能力和编码能力;另一方面,选择更好的开发框架也至关重要。一个出色的框架提供的GUI解决方案,可以让开发者事半功倍。这些框架能够充分利用可用资源,并提供高效的图形用户界面(GUI)开发工具和相关依赖库,简化开发流程,并在有限的资源下实现更多功能,达到更好的性能,保证用户体验。

Qt for MCUs

Qt for MCUs是Qt专为低成本、低功耗的MCU设计的解决方案,它能够充分利用MCU的有限资源,实现高效的图形渲染。它采用了轻量级的图形引擎和优秀的算法,可在最小的代码体积和资源消耗的前提下最大化的保证用户体验。同时也能够在MCU上处理复杂的图形界面和动画计算,快速响应用户的操作并及时提供反馈。

Qt for MCUs提供了丰富的图形用户界面(GUI)开发工具、各种转换工具和库,使开发者能够轻松创建各种交互式界面元素,如按钮、文本框、图表等。它支持丰富的绘图功能和动画效果,可以实现平滑的界面过渡和动态效果,提升用户界面的吸引力,增强交互性。除此之外也支持大量Qt 5、Qt 6的功能:包括QML语言、QML控件库等开发工具,使得Qt开发人员可以在最小迁移成本和学习成本下参与到Qt for MCUs的项目开发中。

对硬件平台的支持

Qt for MCUs支持Infineon、NXP、Renesas、ST、芯驰等主流芯片厂商的硬件平台,还可以通过 Qt 的可移植性和扩展性,在其他支持 Arm Cortex-M 内核的微控制器平台上进行移植和定制开发。

Vendor

Board

Infineon

Traveo II TVII-C-2D-6M

NXP

i.MX RT1050 EVK

i.MX RT1060 EVK

i.MX RT1064 EVK

i.MX RT1170 EVK

Renesas

EK-RA6M3G

RH850/D1M1A

ST

H750B-discovery

F769I-discovery

F469I-discovery

芯驰

E3

Qt for MCUs的案例应用

伟世通

随着车载仪表的显示日益复杂,越来越多的OEM 或车企更愿意使用单芯片平台来实现全液晶仪表盘的功能。在评估了市面上多个主流的GUI框架后,因为Qt 的研发团队的实力以及Qt的跨平台特性,团队最终选定了Qt for MCUs来开发这个基于低成本芯片的车载仪表HMI平台。

杜卡迪

Ducati Scrambler选择了Qt for MCUs作为数字显示屏的开发平台。在仅有1.5MB RAM的限制下,成功完成了复杂的仪表组设计,包括闪屏动画、可变屏幕和动态多语言等功能。同时还实现了与摩托车数据的快速实时交互,确保了良好的用户体验。

东信创智与HMI

作为Qt在国内的重要合作伙伴,我们的团队凭借丰富的Qt开发经验及多年车载行业开发经验,成功以Qt for MCUs为基础,打造了基于AUTOSAR的创新性HMI框架。

这一框架不仅具有卓越的性能,更是在动态内存管理、硬件加速渲染、业务逻辑封装、接口易用性、动画效果等方面表现极佳。

通过我们的框架可在4M的有限空间内容纳近百个页面文件,并封装了全部业务逻辑,对外开放了相关功能接口和控制接口,在有限运行空间下可以轻松控制全部页面的切换、渲染与响应,借助硬件自带的图形加速功能,加快了图形渲染速度,实现了流畅的动画效果。

基于Qt for MCUsHMI Framework软件框架

此框架由AUTOSAR作为基础框架,Qt for MCUs(以下称为QUL)以复杂驱动身份运行并驱动QUL应用以及相关逻辑,由中间层向QUL应用提供运行时数据并完成对信号收发等功能的支持,并由Cdd_QUL task模拟调度周期运行,保证线程安全。

AUTOSAR支持

最新发布的Qt for MCUs 2.6版本引入了对AUTOSAR平台架构的支持。现在,完整的Qt堆栈可以作为复杂设备驱动程序集成在AUTOSAR Classic架构中。借助基于C++的Qt for MCUs API和基于C语言的AUTOSAR集成,开发人员能够轻松查看常见的车辆状态数据参数。此外,东信创智的基础软件团队提供了包括MCAL、AUTOSAR基础软件和应用层配置集成等底层的支持,形成了全流程的HMI解决方案。

QUL Complex Driver

QUL Complex Driver是QUL的主体,由应用程序,核心库,平台抽象和平台库组成,通过调用Service Layer层响应硬件中断,触发相关基础软件组件的中断服务,并同时调用硬件计时器提供QUL运行时需要的时间戳;Microcontroller Abstraction Layer与 MicroController 提供其他运行需要的资源,例如显示驱动,触摸驱动等。

Cdd_QUL & HMI SWC

Cdd_QUL是QUL的运行实体,CDD是复杂驱动程序是未经 AUTOSAR 标准化的软件实体,可直接访问或通过AUTOSAR 所定义的接口或基本软件模块 API 进行访问。

HMI SWC为依赖于Cdd_QUL Task的模拟Task,通过Cdd_QUL task可将其分解为多个周期执行的任务(如 10ms和50ms),充当UI与底层之间的中间转换层,从而实现实际的功能。

QUL 应用程序

业务逻辑层与QML页面层组成了一个完整的QUL应用程序,并通过对外暴露层提供了一系列接口实现数据的流转与实际的业务流程控制,在我们的设计下,其具有以下优势:

页面管理

在资源有限的硬件条件上,页面管理成为决定用户体验的关键因素。我们凭借丰富行业及开发经验,为客户提供了创新性的页面管理解决方案。

  • 支持运行时的页面装载与卸载:我们的系统支持在运行时动态添加或移除页面,使得座舱系统更加灵活,不再受限于静态页面。这一特性使用户能够根据个性需求定制座舱界面,提高系统的动态响应性。
  • 支持不同页面之间的消息传递与联动:通过高效的消息传递机制,系统实现了页面之间的紧密协作,确保信息同步和功能联动的顺畅进行,用户可享受到一致且无缝的操作体验。
  • 支持页面预加载功能:系统可预加载被用户访问的页面,确保在用户操作瞬间实现无缝切换,消除加载等待时间,进一步提升用户体验。
  • 支持全局事件的触发与响应:不局限于页面内部,系统更注重对全局事件的灵敏响应,包括系统通知、用户手势以及外部传感器触发的事件,以此满足多样化的客户需求。

消息管理

  • 全部消息都由框架统一接收管理和分配,逻辑简单,安全高效;
  • 采用自己实现的消息队列机制,轻松完成数据交换任务,确保数据可以被准确可靠的广播出去,并且在此过程中可随时截断消息。

触控管理

  • 支持多种输入事件的冲突屏蔽;
  • 支持多种触摸事件类型,如点击、拖拽、长按等等;
  • 支持防快速随机点击。

多语言

  • 支持多国语言切换,每种语言用独立的文件管理,方便增加、删除及修改;
  • 支持动态刷新,修改语言后不需要重启系统即可生效。

东信创智基于Qt 的HMI开发团队,在丰富的项目开发基础上,积累了大量的经验,并持续地改进开发模式,提升开发效率。基于Qt for MCUs产品的解决方案也期待在未来更多的微处理器相关HMI项目中得到更多的应用。

注:本文部分内容来自于Qt官网

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值