当前位置:首页 > 作文大全 >

μC/GUI在嵌入式智能监控系统中的移植研究与应用

发布时间: 2022-03-24 09:15:25 浏览:

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

关键词:人机交互; μC/GUI; 移植; NiosⅡ

中图分类号:TN919-34 文献标识码:A

文章编号:1004-373X(2011)18-0067-03

Transplant Research of μC/GUI in Embedded Intelligent Monitoring System

ZHU Jian-wu, LI Rong, Zhang Wen

(School of Physics & Telecommunication Engineering, South China Normal University, Guangzhou 510006, China)

Abstract: In order to obtain the man-machine interactive function in an intelligent surveillance system, the embedded images interface software μC/GUI is transplanted into NiosⅡembedded software development environment through writing VGA IP core and building hardware environment in SOPC Builder based on DE2 development board. The experimental results show that μC/GUI can be successfully transplanted into NiosⅡembedded development platform, which can achieve μC/GUI text display, drawing and window management function, and can communicate with any LCD monitor with VGA interface.

Keywords: man-machine interaction; μC/GUI; transplant; NiosⅡ

基金项目:广东省教育部产学研结合项目(2010B080703025)

0 引 言

人机交互是智能化嵌入式产品一项重要功能,在设计智能监控系统时人机交互需要界面设计软件,常用的图形界面软件有MiniGUI[1],QT/Embedded[2],OpenGUI等。Altera 公司NiosⅡ已经集成了μC/OS-Ⅱ系统[3]。μC/OS-Ⅱ是一个实时多任务内核[4],不具有现代操作系统的线程,上述GUI不能方便的运行。

μC/GUI是一个优秀的嵌入式图形用户界面,具有众多的优点。如,代码开源,占用系统资源少,所有的代码均由ANSIC实现,功能强大且易于移植,可以应用于任何的LCD控制和CPU任何尺寸的物理与虚拟显示,非常适合用于资源有限的嵌入式系统中。同时,μC/GUI与μC/OS-Ⅱ都是美国Micrium公司产品,μC/GUI能轻易地在μC/OS-Ⅱ上应用,实现与μC/OS-Ⅱ的无缝结合。

本文在设计具有人机交互功能的基于NiosⅡ的嵌入式智能监控系统时,为实现友好的人机交互和更加方便的显示,将μC/GUI移植到NiosⅡ嵌入式平台,系统采用通用液晶显示器显示,具有更加广泛的通用性。

1 硬件系统设计

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

图1 系统设计框图

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

2 μC/GUI移植

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

图2 μC/GUI软件体系结构

μC/GUI函数库为用户程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是鼠标、键盘或触摸屏;二维图形包括图片、直线、多边形、圆、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。

μC/GUI由库函数目录GUI和配置文件目录Config两个目录组成,表1是μC/GUI目录结构,带星号的都是可选项[10]。

2.1 配置文件的移植

GUIConf.h是μC/GUI的基本属性配置文件,有很多开关可以配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏,以及配置动态内存的大小等。具体可以参考μC/GUI的用户手册,这里只需配置几个必要的参数如下:

2.2 LCD驱动文件的移植

由于采用VGA显示,根据LCDConf.h对LCD_CONTROLLER的配置,在LCD驱动文件目录下选择LCDDummy.c,删除其他无关的驱动文件,LCD驱动文件负责把μC/GUI的各种函数解释成LCDConf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关,LCD驱动在SDRAM开辟帧缓冲以及往VGA IP中写入数据,在函数LCD_Controller_Init()完成,开辟显示缓冲区由framebuffer = (alt_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_ExecIdle (void) { OS_X_Delay(1); } 改为:

void GUI_X_ExecIdle (void) { OSTimeDly(1); }

同时在文件中末添加3个子函数:

void GUI_X_Log(const char*s) {GUI_USE_PARA (s);};

void GUI_X_Warn(const char*s) {GUI_USE_PARA(s);};

void GUI_X_ErrorOut(const char*s) { GUI_USE_PARA(s);};

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

3 μC/GUI应用程序开发实例

根据平台修改完配置、驱动文件和接口函数之后,在Nios Ⅱ9.0 IDE建立一个新的工程,选择工程操作系统为μC/OS Ⅱ,将已经修改好的Config和GUI文件夹以及GUI_X_μCOS.c拷贝到建立的工程目录下,可以根据实际需求,删掉一些不需要的功能文件,减少编译时间以及编程生成的执行文件的大小。根据需求编写相应的应用程序,要使PS/2 IP核正确使用,在应用程序中要用要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Ⅱ的智能监控系统可以完全集成为监视器中的一个功能模块,具有很好应用前景与研究意义。

参考文献

[1]陈喜春,黄波.基于Linux和MiniGUI的某型指控终端人机接口设计[J].现代电子技术,2010,33(14):25-31.

[2]于晓,王家礼,宋营坤,等.基于Qt/Embedded 的微波信号发生器软件设计[J].现代电子技术,2007,31(13):1-3.

[3]Altera Corporation. Nios II processor reference handbook \. \. .cn/literature/hb/nios2/n2cpu_nii5v1.

[4]张磊,江海河,储焰南.基于μC/OS-Ⅱ的嵌入式GUI 研究与应用[J].微计算机信息,2008,24(17):50-52.

[5]Altera Inc..DE2 development and education board user manual V1.4 \. \: Altera Inc. , 2006.

[6]Altera Inc..Cyclone II device handbook \. \: Altera Inc., 2004.

[7]Altera. Altera Corporation University Program \. \: http:// ftp.altera.com/up/archive/QII_9.0/Altera_Material/University_Program_IP/Generic_IO/PS2_Controller.

[8]王刚,张潋.基于FPGA的SoPC嵌入式系统设计与典型实例[M].北京:电子工业出版社,2009.

[9]周立功.SoPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2006.

[10]Micrium Corporation. μC/GUI embedded graphical user interface \. \. http://micrium.com/page/products/rtos/gui.

作者简介: 朱建武 男,1986年出生,湖北咸宁人,硕士研究生。研究方向为图像处理与机器视觉。

李 榕 男,1957年出生,教授,硕士生导师。研究方向为图像处理与识别、光电信息处理、通信工程。

张 文 男,1986年出生,湖北咸宁人,硕士研究生。研究方向为图像处理与机器视觉。

相关热词搜索: 监控系统 移植 嵌入式 智能 研究

版权所有:无忧范文网 2010-2024 未经授权禁止复制或建立镜像[无忧范文网]所有资源完全免费共享

Powered by 无忧范文网 © All Rights Reserved.。冀ICP备19022856号