当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]μC/GUI在嵌入式智能监控系统中的移植研究与应用

摘要:为了使智能监控系统具有人机交互功能,以DE2开发板为验证平台,通过编写VGA IP核以及在SoPC Builder搭建硬件环境,移植嵌入式图形界面软件μC/GUI到NiosⅡ嵌入式软件开发环境。实验结果表明,μC/GUI成功移植到NiosⅡ嵌入式开发平台中,可以实现μC/GUI文字显示、绘图以及窗口管理等功能,并可以外接任何具有VGA接口的LCD显示器。
关键词:人机交互;μC/GUI;移植;NiosⅡ

0 引言
    人机交互是智能化嵌入式产品一项重要功能,在设计智能监控系统时人机交互需要界面设计软件,常用的图形界面软件有MiniGUI,QT/Embedded,OpenGUI等。Altera公司NiosⅡ已经集成了μC/OS-Ⅱ系统。μC/OS-Ⅱ是一个实时多任务内核,不具有现代操作系统的线程,上述GUI不能方便的运行。
    μC/GUI是一个优秀的嵌入式图形用户界面,具有众多的优点。如,代码开源,占用系统资源少,所有的代码均由ANSIC实现,功能强大且易于移植,可以应用于任何的LCD控制和CPU任何尺寸的物理与虚拟显示,非常适合用于资源有限的嵌入式系统中。同时,μC/GUI与μC /OS-Ⅱ都是美国Micrium公司产品,μC/GUI能轻易地在μC/OS-Ⅱ上应用,实现与μC/OS-Ⅱ的无缝结合。
    本文在设计具有人机交互功能的基于NiosⅡ的嵌入式智能监控系统时,为实现友好的人机交互和更加方便的显示,将μC/GUI移植到NiosⅡ嵌入式平台,系统采用通用液晶显示器显示,具有更加广泛的通用性。

1 硬件系统设计
   本系统设计采用的硬件平台是Altera公司生产的DE2开发板,使用软件是QuartusⅡ9.0,FPGA芯片是EP2C35F672C6,通过VGA接口连接液晶显示器显示,利用QuartusⅡ软件的SOPC Builder搭建的系统设计如图1所示。其中,PS/2 IP核是采用AItera公司大学计划中的IP核,SDR AM为系统运行时的内存。在系统中运行交互界面时,通过PIO传输系统设置的参数,控制硬件实现的视频的采集、显示与相关视频分析算法的实现。


    VGA IP核采用突发传输模式,这样可以提高从端口的数据吞吐量,在主端口一次多个数据单元的时候,可以达到极高的效率。在本设计的VGA IP核设计一次传输10个数据单元,额外的burstcount信号为4位。

2 μC/GUI移植
    本系统采用μC/GUI 3.98版本进行移植,在移植μC/GUI之前,有必要熟悉μC/GUI的软件体系结构与文件结构,μC/GUI的软件体系结构如图2所示。

[!--empirenews.page--]
    μC/GUI函数库为用户程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是鼠标、键盘或触摸屏;二维图形包括图片、直线、多边形、圆、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。μC/GUI由库
函数目录GUI和配置文件目录Config两个目录组成,表1是μC/GUI目录结构,带星号的都是可选项。


    其中Config目录下包括3个文件分别是LCDConf.h、GUIConf.h和GUITouchConf.h,3个文件分别用来配置LCD驱动、μC/GUI配置、触摸屏的配置。μC/GUI移植主要就是对Config文件以及LCDDriver的移植,针对不同的平台做相应的修改。
2.1 配置文件的移植
    GUIConf.h是μC/GUI的基本属性配置文件,有很多开关可以配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏,以及配置动态内存的大小等。具体可以参考μC/GUI的用户手册,这里只需配置几个必要的参数如下:
[!--empirenews.page--]
2.2 LCD驱动文件的移植
    由于采用VGA显示,根据LCDConf.h对LCD_CONTROLLER的配置,在LCD驱动文件目录下选择LCDDummy.c,删除其他无关的驱动文件,LCD驱动文件负责把μC/GUI的各种函数解释成LCDconf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关,LCD驱动在SDRAM开辟帧缓冲以及往VGAIP中写入数据,在函数LCD_Controller_Init()完成,开辟显示缓冲区由framebuffer=(aIt_u32*)alt_uncached_malloc(LCD _XSIZE*LCD_YSIZE*LCD_BITSPERPIXEL/2)实现。同时编写void LCD_L0_SetPixelIndex(int x,int y,int PixelIndex)和unsigned int LCD_L0_GetPixelIndex(int x,int y)这2个函数,分别是设置一个像素和获取一个像素的颜色,后面很多操作如画点、线、圆等都需要调用这2个函数。
2.3 接口函数移植
    由于支持μC/OS-Ⅱ操作系统,所以要对GUI_X_μCOS.c文件进行修改,GUI_X_μCOs.c定义了GUI与RTOS的接口函数,使之能与μC/OS-Ⅱ操作系统实现无缝衔接,要增加系统延时函数OSTimeDly(1),void GUI_X_Execldle(void){OS_X_Dday(1);}改为:

    到此,μC/GUI移植需要修改的代码部分已经全部完成。

3 μC/GUI应用程序开发实例
    根据平台修改完配置、驱动文件和接口函数之后,在NiosⅡ9.0 IDE建立一个新的工程,选择工程操作系统为μC/OS-Ⅱ,将已经修改好的Config和GUI文件夹以及GUI_X_μCOS.c拷贝到建立的工程目录下,可以根据实际需求,删掉一些不需要的功能文件,减少编译时间以及编程生成的执行文件的大小。根据需求编写相应的应用程序,要使PS/2IP核正确使用,在应用程序中要用要alt_up_ps2_open_dev(“/  dev/ps2”),开启PS/2 IP核,同时要正确显示图形界面在显示界面代码之前要调用GUI_Init()函数,它的功能是初始化GUI,同时初始化LCD控制器与显示缓冲区。Nios II IDE编译器成功编译工程还要为移植的文件添加相应的路径,在include路径要包括Config、GUI/Core,GUI/Widget和GUI/WM,编译完成之后的工程目录如图3所示。成功编译之后将程序下载到DE2开发平台,程序运行嵌入式智能监控系统交互界面,运行画面如图4所示。


    交互界面显示了系统标志,按键、窗口以及键盘,每个按键代表一个功能,按键按下,弹出参数输入窗口,可以在键盘输入相关的参数通过PIO传输到硬件模块。

4 结语
    本文详细介绍了μC/GUI在NiosⅡ嵌入式系统中的移植过程,包括从硬件平台的搭建到μC/GUI配置文件、驱动文件和接口函数的修改,采用自己编写的VGA显示IP核,使系统可使用任何通用的液晶显示器,与其他很多专用的LCD驱动而言,本系统具有很强的通用性。结果表明,μC/GUI功能强大,易于移植,占用系统资源少,移植过程有很多可选功能,可以针对不同的需求,非常适用于资源有限的嵌入式系统中。
    同时μC/GUI还提供了仿真器以及位图转换工具,有助于我们应用程序的开发,在开发的过程中应用程序可以在仿真器中完成而不必每次都在硬件平台运行验证。μC/GUI对鼠标、键盘以及触摸屏等的支持,将使基于NiosⅡ的智能监控系统可以完全集成为监视器中的一个功能模块,具有很好应用前景与研究意义。

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

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存
关闭
关闭