24小时论文定制热线

咨询电话

ASP.NETVC++MySQLPHP安卓JSPLinuxJava机械VBASP单片机模具汽车工程毕业设计Flash
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

PowerPC嵌入式平台移植Linux系统的人机界面设计开发

添加时间:2018/06/29
本文所用到的powerpc平台为南瑞自主研发的基于Linux系统的, powerpc通用平台, 采用MPC8309处理器, 主频达400 MHz;DDR2时钟266 MHz;对外提供1个CAN网接口;提供8/16个RS-485串口, 最高速率38400;提供2个10M/100M自适应以太网口;基于Linux操作系统。
  以下为本篇论文正文:

  摘要:随着嵌入式的飞速发展, 嵌入式Linux系统人机界面受到人们越来越多的关注, 如何开发出一套具有高可靠性、使用寿命长、可进行多线程、多任务实时性等性能成为现如今人机界面交互的研究重点。本文采用Power PC嵌入式平台植入Linux操作系统, 使用Mini GUI图形开发, 设计出具有实时性和高效性的人机界面。

  关键词:PowerPC; Linux; MiniGUI; 人机界面;

  Abstract:With the rapid development of embedded system, the man-machine interface of embedded Linux system has received more and more attention. How to develop a set of high reliability, long service life, multi-threading, multi-task real-time performance, etc. Become the focus of research on human-machine interface interaction. This article adopts Power PC embedded platform to implant Linux operating system, use Mini GUI graphics development, and design a human-machine interface with real-time and high efficiency.

  Keyword:PowerPC; Linux; MiniGUI; Human-machine Interface;

  1、引言

  如今, 嵌入式开发已经作为一个热门话题, 涉及到各个领域。由于嵌入式的飞速发展, 嵌入式操作系统中的Linux系统具有功耗低、可靠性强、功能强大、性价比高、实时性强、支持多任务、占用空间小、效率高等特点, 得到了越来越多开发者的青睐, 本文采用了Power PC嵌入式平台移植Linux操作系统进行人机界面的设计开发。

  2、原理设计

  2.1、Power PC平台

  本文所用到的powerpc平台为南瑞自主研发的基于Linux系统的, powerpc通用平台, 采用MPC8309处理器, 主频达400 MHz;DDR2时钟266 MHz;对外提供1个CAN网接口;提供8/16个RS-485串口, 最高速率38400;提供2个10M/100M自适应以太网口;基于Linux操作系统, 内核版本2.6以上。

图1 Powerpc平台框图
图1 Powerpc平台框图

  2.2、Linux系统

  Linux操作系统是UNIX操作系统的一种克隆系统, 它诞生于1991年的10月5日。Linux是一套免费使用和自由传播的类Unix操作系统, 是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以络为核心的设计思想, 是一个性能稳定的多用户网络操作系统。在嵌入式开发方面更是具有其它操作系统无可比拟的优势。

  2.3、人机界面软件设计

图2 系统软件整理框架
图2 系统软件整理框架

  从图2中, 可得本文所设计的人机界面具有有参数配置, 数据实时显示, 采集可控等功能, 系统采用Linux2.6.34版本, 通过系统接口调用来完成内部进程及外设的交互。主要包括:u-boot引导、kernel、ramdisk+ubifs文件系统及mini GUI库, 以及相关驱动程序。通过启动多进程显示各个功能, 如启动采集控制进程, 可进行共享内存建立、实时数据采集交互等功能;启动数据告警进程, 可进行数据分析和告警条件判断等功能;还可启动外设通讯接口进程, 进行串口、以太网口及can网的通讯功能。

  2.4、图形界面开发

  本文采用Mini GUI图形系统进行界面显示开发, Mini GUI具有可伸缩强、轻型、占用资源少、高性能、高可靠性、可配置性等特点, 所以本文嵌入式系统Mini GUI进行界面开发。

  由于在目标板中调试Mini GUI较繁琐, 需要频繁的往目标板中下载程序, 所以通常, 我们先将Mini GUI安装在PC机中, 在PC机开发调试, 最后进行交叉编译后下载到目标板中。

  本文将Mini GUI安装在PC机中的Ubuntu10.04虚拟机中。现在虚拟机中安装minigui的相关库文件, 如libminiguigpl、libmgplus、Freetype、jpegsrc、libpng、qvfb、zlib等库, 通过命令configure和make将这些库安装完成, 即可进行Mini GUI程序编写工作。

  3、Mini GUI的图形界面开发

  本文界面显示流程图如图3所示。

图3 本文界面显示流程图
图3 本文界面显示流程图

  3.1、Mini GUI程序开发头文件

  Mini GUI的应用程序中必须要包含<minigui/common.h>、<minigui/minigui.h>、<minigui/gdi.h>和<minigui/window.h>这四个头文件。

  common.h包括Mini GUI常用的宏以及数据类型的定义。

  minigui.h包含了全局的和通用的接口函数以及某些杂项函数的定义。

  gdi.h包含了Mini GUI绘图函数的接口定义。

  window.h包含了窗口有关的宏、数据类型、数据结构定义以及函数接口声明。

  使用预定义控件的Mini GUI应用程序还必须包括另外一个头文件<minigui/control.h>;

  control.h包含了libminigui中所有内建控件的接口定义。

  所以一个minigui程序的开始通常都要包括以下的头文件:

头文件

  3.2、Mini GUI程序开发入口程序

  一般Mini GUI程序的入口点为Mini GUIMain函数, 本文所使用的函数原型为:int Mini GUIMain (int argc, const char*argv[]) 。

  因为main函数已经在Mini GUI的库函数中定义, 该函数在进行一些Mini GUI的初始化工作后调用Mini GUIMain函数。所以每个M i n i G U I应用程序的入口点均为Mini GUIMain。参数argc和argv与C程序main函数的参数含义是一样的, 分别为命令行参数个数和参数字符串数组指针。

  3.3、Mini GUI界面程序

  每个Mini GUI应用程序的初始界面一般都是一个主窗口, 通过调用Create Main Window函数来创建主窗口, 其参数是一个指向MAINWINCREATE结构的指针, 本文创建窗口函数为:

本文创建窗口函数
本文创建窗口函数-2

  主窗口函数中定义Create Info为MAINWINCREATE结构;Create Info.dw Style=WS_VISIBLE|WS_BORDER;设置主窗口风格, 窗口设置为初始可见, 并具有边框;Create Info.dw Ex Style=WS_EX_NONE;设置主窗口的扩展风格, 该窗口没有扩展风格;Create Info.sp Caption=“标题”;设置窗口标题;Create Info对窗口属性进行设置, 还设置了主窗口主菜单样式、光标样式、主窗口图标、主窗口在屏幕上的位置、主窗口背景色、主窗口形式等。调用Show Window (h Main Wnd, SW_SHOWNORMAL) 函数将创建的窗口显示到屏幕上, 第一个参数为要显示的窗口句柄, 第二个参数为窗口显示方式。

  调用Show Window函数后, 主窗口会显示到屏幕上, 然后进入消息循环。Mini GUI为每一个Mini GUI程序维护一个消息队列。在发生事件之后, Mini GUI将事件转换为一个消息, 并将消息放入目标程序的消息队列之中。消息循环代码如下:

消息循环代码

  只要从消息队列中取出的消息不为MSG_QUIT, Get Message就返回一个非0值, 消息循环将持续下去。MSG_QUIT消息使Get Message返回0, 导致消息循环的终止。Translate Message函数把击键消息转换为MSG_CHAR消息, 然后直接发送到窗口过程函数。Dispatch Message函数最终将把消息发往该消息的目标窗口的窗口过程, 让它进行处理。本文中的窗口过程函数为Logo Win Proc, 函数代码如下:

窗口过程函数

  本文所使用个消息有MSG_CREATE窗口创建消息, MSG_PAINT窗口绘制消息, MSG_ERASEBKGND窗口绘制背景消息, MSG_KEYDOWN键盘消息, MSG_TIMER系统消息定时器, MSG_CLOSE系统关闭消息。当点击关闭按钮时, 窗口过程函数将收到一个MSG_CLOSE消息, 应该程序收到MSG_CLOSE消息时调Destroy Main Window函数销毁主窗口, 程序最后调用Main Window Thread Cleanup清除主窗口所使用的消息队列等系统资源并最终由Mini GUIMain返回。

  3.4、目标板环境移植及程序下载

  将minigui相关的库通过Power PC工具编译链交叉编译, 安装到Linux系统文件的lib库中, 并将安装好的Linux系统移植到目标板中, 这样目标板环境移植完成。然后将写好的应用程序通过Power PC工具编译链交叉编译, 生成的目标程序下载到目标板中, 运行该目标程序。

  3.5、显示效果

  本文powerpc平台采用VGA液晶显示, 需要在Mini GUI.cfg中配置gal_engine=fbcon, defaultmode=800x600-16bpp, 显示效果分别如图4、图5所示。

图4 实时显示界面
图4 实时显示界面

图5 参数配置界面
图5 参数配置界面

  4、结束语

  本文所介绍的Power PC平台移植Linux系统进行的人机界面开发已经用于实际工程中, 具有多线程、多任务、响应及时的特点, 为今后的嵌入式系统人机界面的开发工作起到了一定的借鉴作用。

  参考文献
  [1]北京飞漫软件.Mini GUI移植指南[M].北京:飞漫软件技术有限公司, 2006.

    相关内容
    好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。
    所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
    如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!