在工业控制、智能家居应用中,人机界面设计越来越成为标配。如何设计出美观的人机界面又不影响控制的实时性,对于嵌入式工程师来说,是一个需要认真权衡的难题。
对于喜欢使用STM32的工程师来说,2016年底ST推出的高性能系列STM32H7是个选择,但是一个内核要兼顾两方面考虑,也着实难为它了。为了帮助客户解决这个难题,近期ST推出了双核STM32H7。
据ST微控制器事业部STM32高性能产品线市场经理RenaudBouzereau介绍,此次推出的双核STM32H7是目前全球性能强大的微控制器。
双核各司其职,让设计更简单
双核STM32H7中采用一颗ArmCortex-M系列中性能高的480MHz的Cortex-M7内核+一颗240MHz的Cortex-M4内核。据RenaudBouzereau介绍,双核STM32H7创下了1327DMIPS和3224CoreMark的性能新纪录,而友商的产品在600MHz下CoreMark测试成绩为2950。
强大的Cortex-M7内核搭配双精度FPU、MPU、先进的DSP和L1Cache,能够帮助工程师设计出先进的人机界面;实时性较好的Cortex-M4内核搭配单精度FPU、DSP、MPU和ARTAccelerator,让设计的产品更好地完成实时性工作,两个内核可以独立运行,两套任务可以并行进行,所以采用双核STM32H7做设计,能够实现人机界面等辅助功能和实时控制功能的统一,两个内核各司其职,工程师无需在两者之间因为分配资源而作权衡考虑。
工程师可能会有这样的疑问,我已经习惯了用单核产品做开发,双核会不会让开发过程变得复杂?
RenaudBouzereau这样解释道:在硬件方面,双核STM32H7内置了硬件信号量,将两个内核同步,如果一个内核正在占用某些外设,另一个内核会同步知道,无需工程师在设计中考虑关于外设的分配情况,这样工程师只需要关注于功能的实现即可。在软件方面,很多第三方供应商(如FreeRTOS等),都会支持双核设计,工程师使用起来非常便利。如果工程师想把现有设计升级,比如增加更复杂的图形用户界面,可以把以前在单核Cortex-M4MCU上的旧代码迁移到STM32H7Cortex-M4上,同时在Cortex-M7上运行新GUI。
使用双核STM32H7还有非常重要的一个优势:如果使用单核产品做开发,用户界面代码和实时控制功能代码需要由同一个团队来完成,而采用双核STM32H7,用户界面和实时控制两部分功能开发可以分开,两个团队并行进行,可以大大缩短项目的开发周期。可以说,采用双核STM32H7,不仅两个内核各司其职,工程师也可以各司其职。
主DMA,让两个内核数据传输不出错
两个内核放在同一个封装中,棘手的问题就是数据传输,如果仅仅一个内核,数据传输不会发生错误,但是两个内核与共同的外设连接,数据传输发生错误,后果会非常严重。为了解决这个问题,双核STM32H7内部设计了主DMA(DirectMemoryAccess),其能处理记忆体和外设之间复杂的数据传输配置,保证不会出现数据传输错误,并且无需CPU干预。
为了提高STM32H7的能效,其中的两个内核都有电源域,在不需要时可以单独关闭,这样STM32H7拥有高性能的同时也兼顾了低功耗。
SFI,让生产流程更安全
安全是网络时代绕不开的话题。RenaudBouzereau介绍,双核STM32H7采用专属的硬件加密技术和哈希硬件加速,而不像其他产品采用软件加密,一方面可以使客户的产品安全性更高,另一方面还可以减轻90%以上的CPU工作负荷。
双核STM32H7配备预安装密钥和原生安全服务,包括安全固件安装(SFI)。SFI允许客户在世界任何地方订购标准产品,并将加密固件交付给外部编程公司,避免未加密的代码泄露。除此之外,STM32H7还内置安全启动和安全固件更新支持功能,保护空中下载升级和补丁的安全。
STM32广受欢迎,离不开其强大的生态系统支持!与其他STM32产品一样,ST也为双核STM32H7配齐了开发工具,包括STM32CubeH7固件模块和应用程序源代码、评估板、开发套件和Nucleo开发板。
STM32上运行Linux,这事不远了!
喜欢使用STM32开发的工程师问,什么时候可以在STM32上跑Linux?RenaudBouzereau透露,ST公司已经推出内置2个Cortex-A和一个Cortex-M4的3核STM32产品,此系列产品可以运行Linux,来满足工程师更多样的需求,预计下半年在中国市场上市。
STM32这款经典的产品家族,成员依然在继续扩大,当你发现单核产品开发遇到困难或者无法使设计完美的时候,试试双核STM32H7,可能会给你柳暗花明的惊喜!
精彩评论