基于QT/Embedded的可变情报板应用程序开发

发布者:代码漫游者最新更新时间:2010-03-16 来源: 电子元器件应用 关键字:GUI  Uclinux  可变情报系统 手机看文章 扫描二维码
随时随地手机看文章

  0引言

  QT是奇趣科技推出的一种多平台的C++图形用户界面应用程序框架。它包括QT开发库QT Library、快速开发工具QT Designer、国际化工具QTLinguist以及开发助手QT Assistant,由于其可移植性好,而且完全面向对象,很容易扩展,因此,QT已成为众多嵌人式厂家选择的热点工具。

  1  操作系统选择

  本文主要讨论的是一个可变情报板控制器的图形界面系统。该系统需要用串口和以太网口两路来和主控PC和LED情报板通讯,所以,硬件上选择的是一款采用SAMSUNGS 3C2440A高性能处理器的开发板。并带有外部存储器、两个五线异步串行口、一个10 M/100 Mbps网口、一个SD卡接口、一个IDE接口,可直接挂接硬盘、LCD和触摸屏接口等。因此,本设计选择uclinux作为操作系统,适合于不带MMU的微处理器芯片。

  2应用程序开发

  该程序按照功能可分为三个模块,分别为界面显示模块,串口通讯模块和以太网通讯模块。

  界面显示模块可提供人机交互接口。它采用一种直观便捷的方式来为用户系统提供控制功能。程序开始运行后,首先进入主界面,包括菜单栏,状态栏和中间区域界面(包括一个列表框和播放,暂停,下一条,上一条等按钮,可分别实现不同功能)。

  串口通讯模块用于LED情报板和控制器的通讯,以及轮询情报板的状态信息。控制板每隔一定时间发送一个串口模糊查询命令,以轮询与其连接的16个模块的状态信息,被轮询到的模块将回送自己所搜集的数据,若在指定时间内没有收到该模块的数据信息,则按通讯异常处理。

  以太网通讯模块用来实现主控PC和控制器的通讯.以完成数据收发功能。主控PC作为客户端连接的控制器,可以发送控制命令。控制器接收命令后,便可按照通信协议把命令转换成控制信号,并完成上传下载文件和改变LED显示内容等功能。

  3  关键技术

  3.1 QT的信号与槽的机制

  QT使用信号与槽的机制来完成对象间的通讯,它支持同一进程间的对象通讯。连接信号与槽的函数为:

  QObjiect::connect(const QObject*sender,const chat*signal,const QObject*receiver,const char*member)

  当某一个特定系统定义的或者用户定义的信号被触发时,这个信号便被发射。当事先预定义的槽接收到这个信号后,便进行相应的处理。但是使用了信号与槽机制的类必须在类定义的时候申明Q_OBJECT。此外,用户也可以使用emit来发射一个信号,如:emit function (value)。

  3.2  串口编程技术

  本系统的整个程序框架遵从linux系统下串口通信编程的标准流程,即:串口的打开、设置属性、读写数据、以及关闭。Linux下对设备的管理都是按照文件形式进行的。对串口的读写就是对设备文件的读写操作。下面是Linux下的部分操作定义:

  ◇串口打开函数:int open (const char*port,int MODE);

  ◇设置属性:包括波特率和奇偶校检,停止位,硬件流控,软件流控等的设置。

  ◇串口发送函数:int write(intfd,char[]buffer,int Length)。

  ◇串口接收函数:int read(int fd,char []buffer,int length)。

  ◇关闭串口:close(int fd)。

  3.3 Socket编程技术

  在本应用程序中,控制器一般被设置为服务器端,其具体的过程如下:

  ◇创建套接字:int socket(int domain,inttype,int protocol。

  ◇绑定socket到特定端口:int bind (intsockfd,struct sockaddr*my_addr,int addrlen)。

  ◇监听套接字端口:int listen(int sockfd,int backlog)。

  ◇接受客户端连接请求:int accept (intsockfd,void*addr,int*addrlen);

  ◇发送数据(面向TCP连接):int send (intsockfd,const void*msg,int len,int flags)。

  ◇接收数据(面向TCP连接):int rear(intsockfd,void*buf,int len,unsigned int flags)。

  ◇关闭套接口:close(socket)。

  3.4  进程间的通信技术

  进程间的通信手段主要有管道、消息队列、信号、共享内存、信号量、套接口等等,本文采用的是内存共享和信号机制。

  (1)内存共享

  在该方式中,多个进程可以访问同一块内存空间,它是最快的可用IPC形式,往往使用信号量机制来达到进程同步一互斥。mmap()系统调用使得进程之间可以通过映射同一个普通文件来实现内存共享。当普通文件被映射到进程地址空间后,进程可以向访问普通内存一样来对文件进行访问,而不必再调用read()和write()等操作。

  (2)信号机制

  该方式可用于通知接受进程有某种事件发生,是进程间唯一的异步通信机制。该方式的信号安装代码为:

  int sigaction(int signum,const struct sigaction*act,struct sigaction*oldact)。

  而发送信号的代码为:

  int sigqueue(pid_t pid,int sig,const unionsigval val)。

  4  运行步骤

  将编译好的可执行文件移植到目标板上,需要以下几个步骤:

  (1)打开电脑的超级终端程序,将计算机串口与目标板相连;

  (2)在ARM板加电初始化完毕后,cd到开发板的tmp文件夹底下,再用超级终端上的上载文件功能,将可执行程序下载到板子上。

  (3)在命令行敲人chmod 777 xxx,改变可执行文件的执行权限。

  (4)在命令行敲人./xxx,并执行。此后程序开始运行。

  5  结束语

  本文以可变情报板图形系统的开发为例,阐述了基于QT的应用软件开发方法,其友好的人机交互界面以及反应快速灵敏的特点,使得该系统具有良好的执行效果。目前,该系统已经成功交付使用并具有良好的稳定性。随着嵌入式技术的继续飞速发展和用户需求的不断增加,相信在未来不久,LED可变情报板系统将会发挥越来越多的作用。

关键字:GUI  Uclinux  可变情报系统 引用地址:基于QT/Embedded的可变情报板应用程序开发

上一篇:TI推出支持Stellaris的CCS工具与参考设计
下一篇:风河航空与国防软件平台全面升级

推荐阅读最新更新时间:2024-05-02 21:01

uClinux下Nor Flash的JFFS2文件系统构建
摘要:目前的嵌入式系统多使用FLASH作为主存,因此,如何有效管理FLASH上的数据非常重要。文章以SST39VF160芯片为例,讨论了在Nor Flash上建立uClinux的JFFS2文件系统的一般步骤,从而为FLASH上的数据管理提供了理想的选择方式。 关键词:uClinux;Nor Flash;MTD;JFFS2;文件系统 嵌入式系统正随着Internet的发展而在各个领域得到广泛的应用,作为嵌入式应用的核心,嵌入式Linux以其自由软件特性正日益被人们看好。Linux具有内核小、效率高、源代码开放等优点,还内涵了完整的TCP/IP网络协议,因此非常适于嵌入式系统的应用。而作为专门运行于没有MMU的微处理器的嵌入式操作
[嵌入式]
ARM/uClinux应用程序的开发
  应用程序的开发   因为目标板上用uClinux,它提供的程序接口和linux下的基本一致,不一致的部分主要在于uClinux不支持MMU(应该说是uClinux是为不带MMU的cpu定制的),最明显的就是fork函数要用vfork函数替代,这也是编程时,感觉最不爽的一点(没办法,谁让咱们的CPU有生理缺陷)。另一个不易觉察的差异在于uClinux提供的库uClibc是经过裁减的。更适合于资源紧张的嵌入式系统(上回分解已经说了,应用程序很大一部分是在和库函数打交道,而且大家最终是链在一起,所以库函数大了,你的程序也小不了)。   于是基于这种开发模式的应用程序开发变成了linux下的程序开发。而且在实际中一般是编好了程序先在
[单片机]
ARM的uClinux的设计与应用
  1 嵌入式操作系统uClinux及其应用开发   嵌入式软件平台由以下部分组成:系统引导程序、嵌入式操作系统内核、文件系统。系统引导程序通常也称为BootLoad—er ,代码量虽少,但是作用非常大,相当于PC上的BOIS,负责将操作系统内核固化到Flash中和系统初始化工作。然后将系统控制权交给操作系统。文件系统是嵌入式软件平台占用存储量最大的一部分,也是与用户开发最相关的一部分,它存储了系统配置文件、系统程序、用户应用程序和必需的驱动程序。   近些年我们在嵌入式系统及其应用的科研工作中采用了信息产业中的最新技术,打破了学科之间的界限,感到控制的出路原来很多,尽管处处是挑战。过去我们熟悉的“控制”有很大的局限性。:一是
[单片机]
ARM的<font color='red'>uClinux</font>的设计与应用
基于嵌入式uCLinux内核启动过程分析与设计
  0 引言   32位ARM嵌入式处理器具有高性能、低功耗、高性价比的特性,已被广泛应用于消费电子产品、无线通信、控制和网络通信等领域。uCLinux是专门为无MMU处理器设计的嵌入式操作系统,已支持ARM、Motorola等微处理器。目前采用ARM+uCLinux作为嵌入式系统的一种开发模式非常普遍。   一个基于uCLinux的完整的嵌入式系统由三个部分组成,即系统引导程序Bootloader、uCLinux操作系统内核和文件系统。嵌入式系统的启动引导技术是嵌入式系统开发的一个难点,系统启动引导的成功与否决定了应用程序的运行环境是否能正确建立,系统启动成功是应用正确运行的前提。而uCLinux内核的启动过程也是其中重要一
[单片机]
基于嵌入式<font color='red'>uCLinux</font>内核启动过程分析与设计
uClinux在嵌入式系统中的移植研究
1 引言 uClinux作为Linux衍生操作系统,具有支持多任务、内核精简、高效、稳定和源代码开放等优点,专门应用于无MMU微处理器的嵌入式系统 。将uClinux应用于嵌入式系统已经成为许多嵌入式开发人员的选择。本文针对基于三星公司生产的ARM系列微处理器S3C44B0的硬件平台,详细论述移植uClinux 的过程,主要包括BootLoader的设计, uClinux内核的修改,交叉编译环境的建立,uClinux内核的配置,编译及连接,映像文件的下载及运行。 2 硬件环境 硬件平台以S3C44B0为核心,采用的外部晶振频率为10MHz,内核主频最高可达到64MHz;通过RS232接口与上位机通讯;外接JTAG
[嵌入式]
基于Matlab GUI的串口通信编程实现
0 引言 Matlab是MathWorks公司开发的一种科学计算软件。Matlab运行稳定、可靠、使用方便,是广大科研人员进行科学研究的得力助手。Matlab不仅具有强大的科学计算功能,还具有满足一般要求的数据采集以及界面设计开发功能。Matlab GUI(Graphic User Interface)就是内置于Matlab的进行图形界面开发的模块。 本文利用Matlab GUI设计通过串口进行数据发送和接收的界面,并利用内置于Matlab的串口通信API实现串口数据发送与接收功能。 1 Matlab GUl介绍 启动Matlab后,运行guide命令即可以启动Matlab GUI开发工具。如图1所示。
[嵌入式]
一种嵌入式GUI的研究与应用
引 言 随着半导体技术和信息技术的飞速发展,各式各样的嵌入式系统产品已经渗入到人们生活的每一个角落。小到手机、MP3、MP4、数码相机、机顶盒等产品,大到汽车、数控机床、火箭等产品。嵌入式GUI(Graphical User Interface)作为嵌入式系统的应用软件,已经成为当今图形用户界面领域的发展焦点。 1 GUI 的概述 GUI以一种以图形化为基础的用户界面,使用统一的图形操作系统,如可移动的视窗、选项与鼠标,作为用户与操作系统之间的中介。GUI最重要的优势在于使用户摆脱了在命令行提示符下与操作系统进行交互的方式,用户可以仅仅通过鼠标点击来实现熟悉程序的操作,而且由于图表、对话框等的引入,使得操作直观形象。GU
[工业控制]
一种嵌入式<font color='red'>GUI</font>的研究与应用
用动作识别控制GUI输入的研究及其实现
简介:本文提出一种新颖的用手的动作来控制GUI输入接口的思路和具体实现技术。在将CLinux和Microwindows移植到基于ARM的嵌入式系统中后,利用加速度传感器ADXL105达到了用手的动作对GUI菜单进行控制的目的,从而实现了更自然的人机交互输入。 引言 嵌入式系统在消费类电子产品中的应用发展迅速,已经渗透到生活的方方面面,包括手机、个人数字助理(PDA)等。围绕各种消费类电子产品的嵌入式应用技术也不断引起人们的关注。其中,除PC机中成熟的GUI(图形用户界面)在嵌入式系统中得到广泛应用外,一些新的用户界面也初露端倪。 计算机用户界面是指计算机与其操作者之间的人机交互接口。以GUI为基础的人机交互方式的出现,大大
[单片机]
用动作识别控制<font color='red'>GUI</font>输入的研究及其实现
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved