可编程逻辑
智能家电的发展需求
随着技术的进步和信息化程度的提高,人们对智能家电的要求也越来越高。智能家电产品在升级进阶的过程中,针对家电产品的技术方面,包括电机运动控制、HMI的可视化控制、远程无线控制等诸多方面的多元化应用都有了高层次的需求。
多集成强算力SoC FPGA助力AIoT快速发展
在AIoT时代,智能家电的主控IC将不再只是负责核心控制,而是需要融合推理和运算等AI能力,更将图像分析、生物识别等多种人工智能算法融入家电领域,已经成为智能家电产品发展的必然趋势之一。
新一代SoC FPGA凭借其强大的并行处理数据的能力和实时性的特点在AIoT领域发挥着独特的作用。随着集成电路的发展,SoC FPGA的性能不断提高,同时较为先进的控制理论和控制算法的成熟,使得BLDC变频电机等运动控制的应用越来越广泛,各种先进的控制算法可以通过SoC FPGA中FPGA部分高效实现。图像处理方面,相比使用单一MCU或CPU,FPGA能够达到较高的实时性,可以进行实时流水线运算。在深度神经网络方面,FPGA对卷积神经网络(CNN)、循环神经网络(RNN)和较复杂的并行神经网络算法的加速具有一定的优势。
在人机交互界面(HMI)方面,相比之前用低主频/小存储的单一MCU实现方案,基于强大处理能力的SoC FPGA异构芯片能够帮助客户快速实现定制化且精美的人机图形界面。
目前较为流行的嵌入式图形库包括:LVGL(Little VGL)emWinQT和TouchGFX等,比较而言,LVGL界面更加精美,支持更多图形控件,更重要的是消耗资源少,是一款轻量级的GUI工具。LVGL对硬件和开发环境有如下要求:
应用于16、32或64位微控制器或处理器;
Flash大于64kB,RAM大于8kB(最小内存64kB Flash,8kB RAM);
推荐主频大于16MHz的微控制器;
LVGL的图形缓冲区大于水平分辨率像素;
使用C编写以获得最大兼容性(兼容C++);
需要C99或者更新的编译器。
SoC FPGA异构芯片在智能家电领域的优势
结合现代智能家电的发展和应用需求,一方面需要对电气做出快速、精准的控制,另一方面又要为消费者提供优质的人机交互界面(HMI),本文介绍的HME SoC FPGA异构芯片在性能、功耗、计算速度、人机交互处理等方面均具有一定的优势。这类新型的异构芯片更适用于新需求下智能家电领域的解决方案。
HME-M7的特点
HME-M7系列芯片是自主研发的国产SoC FPGA,集成了ARM Cortex-M3内核和高性能FPGA,采用高达12K容量的新型LP结构,优化了FPGA与Cortex-M3内核的通信接口。设计者可根据设计需求在FPGA上实现不同类型接口,如:USB2.0 Host/Device接口、PCI(33M/66M)接口、AHB2APB Bridge接口、SDR SDRAM Controller接口、FIFO/AHB接口、FIFO接口、AHB接口、EMB接口等,M7系列芯片将FPGA、CPU、SRAM、ASIC、Flash以及模拟单元等功能模块集成在单一芯片上,不仅极大地降低了工程师的设计难度,有效减小了所需要的板间面积,还成功降低了系统成本,具备超高的系统性价比。
在智能家电方案中,该芯片可利用硬件描述语言Verilog进行电气控制各个模块的编写,同时通过内嵌的Cortex-M3内核进行HMI方案的整体设计。表1是不同型号的HME-M7系列芯片的具体参数,由于HMI的开发需要较大的FramBuffer来缓存图像数据,M7M12N5型号配置有64Mb的SDRAM可用作图像的FramBuffer。此外,还配有11,520个LUT(Look-Up-Table查找表),7,680个寄存器,EMB(Embedded Memory Block内嵌存储模块)容量最大值为648Kb;在SRAM(Static Random Access Memory)方面,Instruction区有128KB,Data区有64KB,4路PLL(Phase-Locked-Loop),1个Cortex-M3内核,3路UART,2路SPI,用户I/O有310个,结合以上资源情况M7M12N5型号芯片适用于HMI的方案设计。因此完全适合在其上集成开发HMI方案与电气业务逻辑的功能处理。下面给出基于M7M12N5和HMI设计方案。
表1. HME-M7系列芯片具体参数
硬件方案
硬件架构如下图所示,该方案设计的屏幕选用TFT LCD+Touch 5寸屏,分辨率480*854,每个pixel为RGB888。使用到M7 ARM部分的USB、RTC、NandFlash、IIC、UART等控制器。外设应用如下:
UART用作GUI与电气控制的指令交互传输;
USB功能用于U盘下载图片和字库等资源到NandFlash中;
NorFlash存储Bootloader和App程序文件;
NandFlash用于存储图片和字库等资源;
LCD的触控功能是通过IIC信号控制GT911触控芯片实现;
Buzzer用于音效设计,通过pwm来控制;
RTC为系统提供时间功能。
软件开发流程
1
Python脚本生成图片和字体资源
通过Python脚本对图片、字体、多语言的资源处理:
该方案中移植的LVGL支持两种图片资源格式:背景图片和OSD图片。其中背景图片只能是和屏幕一样大小,不支持透明度,像素格式为RGB888;OSD图片不限制大小,像素格式为A8R5G6B5。通过Python脚本将这些图片转化成像素值的二进制文件的格式。
字体资源是通过Python脚本从标准的字体库文件里面提取文字,由于字体库包含了大量字体,所以没有将所有字体都存储成bin文件。为了节约NandFlash的存储空间,需要根据实际用到的汉字进行字体选择,获取到字体形状的像素值保存至字体的二进制文件中。同时,方案的GUI支持中文、英文、俄罗斯语、西班牙语等多种语言。
2
BootLoader资源下载与App程序引导
BootLoader主要有三个功能:
将U盘的图片资源和App执行程序下载到Nandflash和NorFlash中;
初始化LCD及Touch功能;
引导App程序启动运行。
3
APP图形界面开发
在开发中可以使用PC端图形模拟器对GUI进行测试和调试,能更快的设计GUI和找出设计过程中的问题。模拟器配合不同的IDE软件即可在不同的操作系统上运行,本设计采用Windows系统下的Visual Studio。
Visual Studio模拟环境可以用来开发与硬件无关的GUI功能,直接对GUI的效果进行设计,并可与MDK工程的代码同步,便于加速板级程序开发。为了达到流畅的视觉效果,方案中利用SDRAM实现3 FramBuffer作为图像界面的缓存,如设计一个日期和时间显示页面。示例代码和Visual Studio模拟器运行效果如下:
日期和时间显示中使用到6个roller,分别对应年、月、日、时、分、上/下午的设定,回调函数中将roller选择的相应日期和时间设定到RTC的时间里。Visual Studio工程的代码会同步到MDK工程中,对GUI显示的设计完成后可编译APP部分的MDK工程的代码。
总结
综上,HME SoC FPGA适用于智能家电的经济型产品中的HMI设计方案旨在为开发者提供简便/美观的人机交互与显示设计方案。此外,基于FPGA平台的电机控制方案可将电机控制的时延做得更小和更精准,可以将电机的能效做得更高,这样就使得电机设备的差异化优势更大。
随着大数据及AIoT的发展,具备低功耗/低延时/高性能/高并发处理能力的SoC FPGA异构计算变得愈发重要,而其最大的优点是具有比传统MCU/CPU并行计算更高效率和更低延时的计算性能。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !