0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Linux的嵌入式GUI实现微波信号发生器人机界面设计

电子设计 来源:现代电子技术 作者:于晓,王家礼,宋营 2020-11-30 10:01 次阅读

1 引 言

嵌入式系统的出现至今已有30多年的历史,嵌入式技术也经历了三个发展阶段。早期的嵌入式系统因资源极其有限,只有字符界面或者简单的图形界面。随着技术的发展,硬件成本的大幅下降,嵌入式系统应用要求越来越高,应用范围越来越广。这样字符界面和简单的图形界面不再能满足一些嵌入式系统的要求。嵌入式系统对图形用户界面(GUI)的需求越来越迫切。

不同于在个人PC上的图形用户界面,对嵌入式系统上的GUI包括:轻型、占用资源少,可配置,高性能,高可靠性。

2 几种成熟的基于Linux的嵌入式GUI

2.1 MicroWindows/NanoX

MicroWindows是一个开放源代码的项目,起源于NanoGUI项目。他支持两种应用程序编程接口,Win32API的实现叫MicroWindows,类似Xlib API的实现叫Nano-X。

MicroWindows是一个基于典型客户/服务器体系结构的GUI系统,基本分成3层。最底层是面向图形输出和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的抽象接口,并进行窗口管理,实际上是一个可移植的窗口引擎。他实现了画线、区域填充、多边形、剪切和多种颜色模式,这些实现是参考Xfree86而设计的;最高层分别提供兼容于Xwindow和Windows CE(Win 32子集)的API。

该项目的主要特色在于提供了类似X的客户/服务器体系结构和相对完善的图形功能,包括一些高级功能。比如Alpha混合、三维支持、TrueType字体支持等。该项目目前由美国Century Software公司主持开发。

2.2 MiniGUI

MiniGUI是原清华大学教师魏永明主持的一个自由软件项目,其目标是基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。MiniGUI基于SVGALib和LinuXThread库,采用简化的类Windows风格的图形用户界面,功能限制期不能用于更大的嵌入式系统。

2.3 Qt/Embedded

Qt/Embedded是跨平台C++图形用户界面工具包,因其面向对象、跨平台、界面设计更美观而得到广泛应用。基于Qt的X Window程序可以方便地移植到Qt/Embedded版本上。因此,自从Qt/Embedded以GPL条款发布以来,就有大量的嵌入式开发商转到Qt/Embedded系统上。

3 Qt/Embedded框架结构及编程关健技术

3.1 Qt/Embedded的开发环境及工具

使用Troll tech公司的X开发平台自由软件的自由版:Qt/Embedded 3.3.3。下载RPM包并安装。Qt支持多种处理器,根据所选用的处理器进行适当的配置和编译,即可得到如下创建应用程序所需的软件包和工具:

(1) Qt/Embedded函数库。

(2) 虚拟帧缓冲qvfb(virtual frame buffer):在X窗口用来运行和测试Qt/Embedded应用程序的系统程序。有了他,就可以不必在控制台和X11之间来回切换了。

(3) designer:Qt下用于设计窗口组件的工具。

(4) tmake:Makefile文件的自动生成器。

(5) moc:用于Qt C++扩展的meta-object编译器。

(6) uic:从XML文件生成代码的用户界面编译器。

(7) 其他工具,再加上g++,就可以进行基于Qt/Em-bedded的应用程序开发、编译和调试了。

3.2 Qt/Embedded的框架结构

Qt/Embedded的框架结构。相对于Linux上Qt的另外一个版本Qt/X11,Qt/Embedded并不依赖于XServer。这使Qt/Embedded相对于Qt/X11节省了不少的内存。代替X server和Xlib库的是Qt/Embedded库。根据应用的需要,可以对其进行配置,编译后库的大小从700 kB~7 MB左右,典型应用的库大小大约为2~3 MB。如果事先知道应用和相关的具体组件,还可以将应用程序、组件和Qt/Embedded库静态连接,从而更能节约内存和CPU。FrameBuffer是一种驱动程序接口,这种接口将显示设备抽象为帧缓冲区。用户可以将他看成显示内存的一种影像,将其映射到进程地址空间后,就可以直接进行读写操作,而写操作可以立即反映到屏幕上。该驱动程序的设备文件一般是/dev/fb0,/dev/fb1等。

3.3 Qt编程关键技术

Qt是面向对象的C++工具包,其应用程序设计遵循面向对象的编程方法。不同于Xt处理事件采用回调函数的方式,Qt采用更灵活的signal/slot(信号/槽)机制。Qt是这样处理事件的:QApplication的事件循环体从事件队列中拾取本地窗口系统事件或其他事件,译成Qevent(),并送给Qobject::event(),最后送给QWidget::event()分别对事件处理。事件的产生来自于所在的窗口系统,也可以是QApplication类成员函数发送的消息,如:sendEvent()。

Qt应用程序中,首先在main()函数中创建QApplication对象,QApplication对象负责图像用户界面应用程序的控制流和主设置,通过调用该对象的exec()函数,进入事件循环处理,对来自窗口系统或其他的事件进行处理和调度,直到收到exit()或quit()结束。

Qt利用signal/slot机制实现对象之间的通信。当某一个对象1状态改变时,发出signal,通知所有与该信号相连对象的slot,从而引发对应的slot的动作。Signal/slo机制真正实现了封装的概念。Slot除了可以接收signa之外,与其他函数没有什么不同。Signal和slot并没有构成一一对应的关系,同一个signal可以连接任意个slot,多个signal也可以和同一个slot相连。虽然signal/slot机制比回调函数速度方面有所减慢,但并不明显,特别是在嵌人式系统中,所用的signal和slot不多的场合,这种速度上的损失可以承受。但这种机制所带来的简明性、灵活性确实给应用带来了很多便利。

4 微波信号发生器的软件设计

Qt/Embedded在微波合成扫源上开发的图形用户界面。该项目采用研华PCM-4335PC/104主板,Cyrix 300 MHz的处理器(x86系列),8 MB内存16 MB的DOM,嵌入式Linux系统。液晶显示模块的分辨率为640×240。

4.1 微波信号发生器原理

我们所开发的信号发生器是一种微波合成扫频信号源。

时基标准为频率发生器提供标准信号10 MHz,整机的频率稳定度由该标准频率决定。频率合成器采用频率合成技术使标准频率产生15~40 MHz的离散IF信号。微波输出组件产生2~20 GHz的微波输出信号。外围设备接口电路包括前面板、后面板、GPIB硬件、液晶模块、键盘控制等。调制扫描及微电路控制部分提供各种控制信号,完成功率电平稳幅(ALC)、模拟扫频、脉冲调制等功能。

4.2 点频功能的实现算法

频率合成器作用是给微波扫频信号提供一定分辨力的频率参考信号,并对微波信号输出频率进行逐点锁定,以得到高准确度和稳定度的扫频输出信号。

输出点频信号和扫频信号是微波合成扫源的基本功能。而点频输出又是扫频输出的基础(扫频信号的输出可以利用点频通过程序控制的方法实现)。下面是点频功能的实现算法。

(1) 用户在前面板上设置需要设定的频率f0。

(2) 判断f0属于哪个频段,求出YTO的输出频率fYTO。并对YTO进行预置频率。

(3) 根据fYTO和f0算出YTO鉴相器参考频率,由此推出取样环和小数分频环的分频系数,并将分频系数置人对应的数据锁存器。

4.3 试验测试

我们选用中国电子科技集团公司第41研究所AV4032微波频谱分析仪和功率计等仪器对微波信号发生器的输出信号做测试。

从测试结果来看,完全达到了设计要求。

5 结 语

嵌入式产品正在成为新的技术热点,上层应用程序是产品的直接功能体现。Qt/Embedded因其面向对象、跨平台、界面设计更美观、程序设计简明和灵活而得到越来越多的广泛应用。本文结合微波信号发生器人机界面设计介绍了Linux下基于Qt/Embedded的设计。使用Qt/Embedded设计的微波信号发生器频率切换时间达到了45 ms。单边带相位噪声为-75 dBc/Hz,功率准确度为0.52 dB。其他指标也完全达到了设计的要求。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4977

    文章

    18246

    浏览量

    287947
  • Linux
    +关注

    关注

    87

    文章

    10981

    浏览量

    206687
  • 信号发生器
    +关注

    关注

    28

    文章

    1271

    浏览量

    107737
收藏 人收藏

    评论

    相关推荐

    人机界面设计在工业设计中的应用

    好的人机界面美观易懂、操作简单且具有引导功能,使用户感觉舒适、愉快,从而提高使用效率。界面可以分为硬界面和软界面,也可以分为广义的和狭义的人机界面
    发表于 01-21 15:43 2399次阅读

    嵌入式人机界面,PLC人机界面,单片机人机界面

    `嵌入式人机界面,PLC人机界面,单片机人机界面[qq]418891963[/qq]广州易显工控-嵌入式
    发表于 12-23 13:16

    嵌入式人机交互界面研究与实现

    交互界面设计要确保可靠性、稳定性、安全性、便捷性;医疗类嵌入式人机交互界面设计必须考虑医院环境,医患使用场景等重要因素。 硬件因素 嵌入式
    发表于 05-05 08:31

    嵌入式GUI FTK界面设计的相关资料分享

    嵌入式GUI FTK 界面设计
    发表于 11-09 07:38

    基于VxWorks的无线接收器的人机界面设计实现

    基于VxWorks的无线接收器的人机界面设计实现
    发表于 03-29 12:29 25次下载

    数控机床人机界面设计原则初探

    数控机床人机界面设计原则初探     数控机床是现代制造技术的重要工具。本文从人机界面设计的概念及研究方向入手,充
    发表于 02-24 15:48 921次阅读

    人机界面设计与应用

    本专题为你介绍人机界面设计及相关应用。内容包括人机界面人机交互的含义与区别,人机界面硬件选型、开发软件下载,人机界面技术资料,
    发表于 11-30 13:53
    <b class='flag-5'>人机界面设计</b>与应用

    基于Android车载虚拟仪表人机界面设计

    基于Android车载虚拟仪表人机界面设计
    发表于 01-24 16:15 9次下载

    人机界面设计触摸感应技术

    本文档内容包含了人机界面设计触摸感应技术,供网友参考。
    发表于 09-14 18:34 3次下载
    <b class='flag-5'>人机界面设计</b>触摸感应技术

    hmi人机界面包括什么_hmi人机界面设计

     HMI是Human Machine Interface的缩写,即“人机接口”,也叫人机界面。HMI人机界面是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受
    发表于 12-05 17:26 2.6w次阅读
    hmi<b class='flag-5'>人机界面</b>包括什么_hmi<b class='flag-5'>人机界面设计</b>

    人机界面设计案例分析

    本文开始对人机界面的定义进行了详细的介绍,其次阐述了人机界面的设计原则和人机界面的设计过程,最后对人机界面设计的三个案例进行了分析。
    发表于 03-12 10:25 3.2w次阅读

    嵌入式GUI FTK 界面设计

    嵌入式GUI FTK 界面设计
    发表于 11-03 20:21 4次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b> FTK <b class='flag-5'>界面设计</b>器

    使用RGBW LED驱动提升LED人机界面设计

    使用RGBW LED驱动提升LED人机界面设计
    发表于 11-01 08:26 0次下载
    使用RGBW LED驱动提升LED<b class='flag-5'>人机界面设计</b>

    人机界面设计用什么软件_人机界面通常包括哪些设备

    人机界面设计可以使用多种软件进行实现,常用的软件包括以下几种:   Adobe Photoshop:Photoshop是一款流行的图像编辑软件,可以用于设计人机界面的视觉效果,如图标、按钮
    发表于 03-16 15:24 3393次阅读

    嵌入式智能家居终端人机界面设计实现

    电子发烧友网站提供《嵌入式智能家居终端人机界面设计实现.zip》资料免费下载
    发表于 11-17 10:18 0次下载
    <b class='flag-5'>嵌入式</b>智能家居终端<b class='flag-5'>人机界面设计</b>与<b class='flag-5'>实现</b>