使用带有嵌入式GPU的MCUs来充分利用基于显示的用户界面---凯利讯半导体

本文主要是介绍使用带有嵌入式GPU的MCUs来充分利用基于显示的用户界面---凯利讯半导体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  所有类型的嵌入式系统正在变得更加连接和以数据为中心,以至于终端用户期待图形,指标甚至分析的高分辨率,全彩显示。用户界面的简单旋钮和拨盘的日子正在快速消失。

  对于那些为复杂的嵌入式系统而设计的设计人员,为最终用户提供简单直观的设计,同时也让它们在美学上令人愉快,需要仔细思考许多后端设计问题和权衡。以解决方案为例。

  高分辨率转化为通常是低功率系统的更高功耗。除了最大限度地减少功耗外,设计师还需要考虑空间,成本和上市时间问题,同时选择最佳屏幕技术并相应地配置系统。

  在许多情况下,嵌入式工程师没有使用LCD屏幕的经验,很少嵌入式程序员设计了图形用户界面(GUI)。那么这些开发人员应该如何在经常紧张的时间,预算和空间限制下对其产品进行现代化?

  堆叠人机界面问题对于最终用户,图形界面应该是直观的。对于它的开发人员来说,这是什么。有吸引力和可用的界面在现场设计,校准和部署将非常困难。除了有时非直观的硬件问题之外,还有一个问题是设计界面本身的图形方面。应该如何呈现数据?指标应该有多大?在明亮的日光和昏暗的条件下,显示器是否同样可见?显示器应该快速更新还是应该呈现用户可以轻松找到的静态内容?应将实时信息呈现为“虚拟测量仪”或拨号,还是以数字,条形图或颜色表示?所有这些设计决策 - 以及更多 - 这些设计决策 - 快速向自己展示了经常强调和缺乏经验的开发人员及其团队。

  从硬件开始似乎足够逻辑。显示尺寸,颜色支持和解决方案等决策通常由营销团队做出决策,而不是必须处理影响的设计工程师。如果营销部门规定液晶显示屏应在一边测量5英寸,并支持1600万种颜色,则开发人员必须这样做。加剧情况,关于屏幕尺寸,形状和能力的决策将在产品开发的整个生命周期内改变多次。

  好消息是,LCD屏幕有很多选择:世界各地的几家制造商都提供不同形状,尺寸和颜色深度的产品。坏消息是LCD屏幕有很多选择:不同的制造商使用不同的接口时序,电压电平,内存分配和光栅扫描方案。接口选项令人迷惑,大多数第一次LCD用户将尝试将选择范围缩小到一个供应商的产品,以最大限度地减少选项的扩散和混乱的程度。

  大多数微处理器和微控制器都没有内置的LCD控制器,所以选择兼容的控制器提出了另一个设计挑战。控制器芯片是否支持优惠的液晶显示屏,还会支持不可避免的下一代显示器吗?增加(或营销驱动的设计更改)的空间有多少目前的硬件支持,以及更新/升级到下一次迭代有多困难?

  一旦硬件被选中,现在是进行软件开发的时候了。编程GUI是相同的部分艺术和科学。它需要看起来很好,像按钮和拨号一样有效,它被替换,并且是可靠的。在屏幕上移动像素可能比看起来更难,简单的二维“平面”显示器看起来并不诱人。

  今天的色彩接口需要“哇”客户,即使在工业环境中也是如此。丰富的色彩调色板,清晰地限定的曲线和形状,精确的颜色表示,微妙的阴影,和重叠的元件都是平常的一个现代GUI。不要让昂贵的工业控制器比99美元的Android平板电脑更不美观。

  硬件设计由数字随着LCD屏幕和图形显示器变得越来越受欢迎和苛刻,对它们的硬件支持也越来越广泛。独立的LCD控制器是随时可用的,某些微控制器(MCU)芯片甚至配有内置的LCD控制器。现在可以将单片机,LCD控制器和所需的外设设计在一个单芯片系统中。

  这是Microchip Technology最新的PIC32MZDA系列微控制器。尽管Microchip PIC32系列已经存在了数十年,但是--MZDA变体是新的,而且该系列中唯一的器件包括LCD控制器,模拟外设,以太网,最显着的是片内DRAM所需的器件整个LCD屏幕内部的缓冲区本身。

  独立的MZDA系列MCU使设计人员能够在单个芯片中几乎将所有需要的硬件进行打包。LCD显示器本身可能大于控制它的电路板(图1)。

  

  图1:典型的PIC32MZ-DA MCU系列具有32位MIPS处理器内核,带图形引擎的LCD控制器,串行和模拟接口,可选的加密加速以及高达32 MB的DDR2内存,用于图形存储。(图片来源:凯利讯半导体)

  MCU内部的LCD控制器非常灵活,几乎支持任何LCD屏幕。这对于首次使用液晶显示屏的用户以及预计设计变更的人员来说是一个福音。大多数液晶显示屏具有精确的时序要求,它们从一个屏幕到另一个屏幕不同,从一个制造商到另一个制造商。

  为了简化这些接口要求,Microchip提供了一个简单的软件配置工具,可以根据本书“LCD定时配置”进行设计。设计人员只需从LCD屏幕的数据表中输入几个关键参数,其余工作(图2)。没有批准的制造商的下拉列表或支持的屏幕分辨率,并且不需要下载相应的驱动程序。

  

  图2:Microchip的显示管理器是用于其MPLAB IDE的软件插件,可根据简单的数据表参数自动生成LCD屏幕的驱动程序支持。(图片来源:凯利讯半导体)

  如果LCD尺寸,分辨率,颜色深度,制造商或规格有变化,设计人员可以简单地输入新的数字,MCU驱动新屏幕。理论上,即使是未生产的新的或尚未知的LCD屏幕也可以被支持,这使得它成为面向未来的LCD控制器。

  片上DRAM高分辨率和丰富的色彩深度转化为大屏幕缓冲存储器的要求。开发人员只为屏幕缓冲区预留10到20兆字节或更多,这不算数,而不是系统的代码,堆栈和数据空间。这意味着一对外部DRAM或SRAM,以及所有数据,地址和控制引脚。当然,高频切换外部引脚也会消耗能量。最后,外部RAM将系统暴露给黑客和逆向工程,因为所有数据必须在外部引脚上“清楚”地运行,因为LCD控制器不能即时加密/解密数据。

  Microchip的-MZDA系列通过在MCU本身内封装16或32兆位DDR2(DRAM)存储器来回避所有这些问题。这将保持数据覆盖(字面上),大大减少引脚数量,并降低功耗。它还使片上LCD控制器性能提升,因为它的帧缓冲区现在坐在几米远的地方。

  该芯片不限于片上DRAM。如果设计师觉得32兆字节还不够,那么与其他MCU一样,它们可以扩展高达128兆字节外部DRAM的容量。当然,片上和片外存储器也可用于代码存储,数据,堆栈或程序员期望的任何其他用途。

  使用这么多帧缓冲区,-MZDA设备可以在水平(横向)或垂直(纵向)方向上支持高达1280 x 1024(SVGA)和24位颜色(“真彩色”)的分辨率。

  高分辨率,结合丰富的色彩深度,意味着--MZDA设备可以准确地表示公司标志,渲染微妙的阴影,显示照片或照片写实的图像,或匹配字体样式。控制器还支持精灵,图像缩放,透明度,卷积,图像旋转,缩放等。在很大程度上,效果只受程序员的想象力的限制。

  软件支持简化了图形实现Microchip意识到许多客户从来没有设计过GUI,Microchip提供了一个免费的图形设计工具,即图形制作工具(图3)。它允许开发人员在其PC上创建,编码和模拟其LCD显示。(由于即使大型1280 x 1024液晶显示屏比一般PC屏幕小,整个显示屏也能轻松实现。)

  

  图3:Microchip的MPLAB Harmony Graphics Composer软件允许开发人员在实际硬件可用之前设计和模拟其GUI。(图片来源:凯利讯半导体)

  Graphics Composer允许开发人员对所选择的LCD显示屏进行原型和实验,或者对他们可能使用的替代显示进行实验。看起来好像这样还是那样呢?营销部门是否喜欢这些图标?甚至可以用来与客户进行A / B测试,以查看他们喜欢的GUI选项。

  自然地,编程嵌入式GUI比管理LCD本身更多。还有MCU的处理器及其外设功能。Microchip的MPLAB编程环境也受到广泛的关注。MPLAB涵盖了公司使用相同桌面环境的每个PIC微控制器。更改芯片就像点击不同的配置选项一样简单。编译器,调试器和其他工具都保持不变。

  硬件入门套件Microchip提供两个评估板和一个用于-MZDA的显示板。两个评估板几乎相同。一个,DM320010依赖于MCU的内部DRAM,另一个,DM320008支持外部128兆DDR2内存。附带的插卡子卡增加了以太网PHY和连接器。USB接口包含在基板上,以及测试接头和电源连接。包装中还包括CAT5和USB电缆。两个板都可以使用或不使用MCU的片上加密加速功能,共有四个排列(图4)。

  

  图4:Microchip的PIC32MZDA MCU系列的DM320010评估板包括微控制器本身,以太网和USB接口,(可选)支持加密加速。(图片来源:凯利讯半导体)

  该48页的用户指南是免费下载的Microchip 公司的MPLAB开发软件的免费版本,包括示例代码,驱动程序,加密库,演示应用程序,外设代码,TCP / IP协议栈和文档。

  所述DM320005-5多媒体扩展板II完成集合,加入4.3英寸的液晶,VGA相机,802.11 B / G(的Wi-Fi)的无线模块,蓝牙,音频编解码器,等等。它直接插入DM3200xx开发板,所以在两者之间,一个开发人员有他们需要开始的一切(图5)。

  

  图5:Microchip的DM3200055-5多媒体扩展板II是一款现成的液晶显示器,与公司新的-MZDA微控制器的新型DM3200xx开发板兼容。(图片来源:凯利讯半导体)


  结论

       毫无疑问,新的,嵌入式的互联网连接的设备正在蓬勃发展,他们正在获得图形升级,使其更具吸引力和更灵活。这需要一个全新的设计范例,许多经验丰富的嵌入式设计师和程序员无法处理。时间表和预算也是一样紧张,但工作要求刚刚改变。

  Microchip的PIC32MZDA系列低成本MCU提供了一个硬件和软件包,可帮助开发人员快速,轻松地为下一代人机界面融合全彩色,高分辨率,高吸引力的接口。

这篇关于使用带有嵌入式GPU的MCUs来充分利用基于显示的用户界面---凯利讯半导体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948726

相关文章

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm