0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于Linux的嵌入式GUI實現(xiàn)微波信號發(fā)生器人機界面設計

電子設計 ? 來源:現(xiàn)代電子技術(shù) ? 作者:于曉,王家禮,宋營 ? 2020-11-30 10:01 ? 次閱讀

1 引 言

嵌入式系統(tǒng)的出現(xiàn)至今已有30多年的歷史,嵌入式技術(shù)也經(jīng)歷了三個發(fā)展階段。早期的嵌入式系統(tǒng)因資源極其有限,只有字符界面或者簡單的圖形界面。隨著技術(shù)的發(fā)展,硬件成本的大幅下降,嵌入式系統(tǒng)應用要求越來越高,應用范圍越來越廣。這樣字符界面和簡單的圖形界面不再能滿足一些嵌入式系統(tǒng)的要求。嵌入式系統(tǒng)對圖形用戶界面(GUI)的需求越來越迫切。

不同于在個人PC上的圖形用戶界面,對嵌入式系統(tǒng)上的GUI包括:輕型、占用資源少,可配置,高性能,高可靠性。

2 幾種成熟的基于Linux的嵌入式GUI

2.1 MicroWindows/NanoX

MicroWindows是一個開放源代碼的項目,起源于NanoGUI項目。他支持兩種應用程序編程接口,Win32API的實現(xiàn)叫MicroWindows,類似Xlib API的實現(xiàn)叫Nano-X。

MicroWindows是一個基于典型客戶/服務器體系結(jié)構(gòu)的GUI系統(tǒng),基本分成3層。最底層是面向圖形輸出和鍵盤、鼠標或觸摸屏的驅(qū)動程序;中間層提供底層硬件的抽象接口,并進行窗口管理,實際上是一個可移植的窗口引擎。他實現(xiàn)了畫線、區(qū)域填充、多邊形、剪切和多種顏色模式,這些實現(xiàn)是參考Xfree86而設計的;最高層分別提供兼容于Xwindow和Windows CE(Win 32子集)的API。

該項目的主要特色在于提供了類似X的客戶/服務器體系結(jié)構(gòu)和相對完善的圖形功能,包括一些高級功能。比如Alpha混合、三維支持、TrueType字體支持等。該項目目前由美國Century Software公司主持開發(fā)。

2.2 MiniGUI

MiniGUI是原清華大學教師魏永明主持的一個自由軟件項目,其目標是基于Linux的實時嵌入式系統(tǒng)提供一個輕量級的圖形用戶界面支持系統(tǒng)。MiniGUI基于SVGALib和LinuXThread庫,采用簡化的類Windows風格的圖形用戶界面,功能限制期不能用于更大的嵌入式系統(tǒng)。

2.3 Qt/Embedded

Qt/Embedded是跨平臺C++圖形用戶界面工具包,因其面向?qū)ο?、跨平臺、界面設計更美觀而得到廣泛應用?;赒t的X Window程序可以方便地移植到Qt/Embedded版本上。因此,自從Qt/Embedded以GPL條款發(fā)布以來,就有大量的嵌入式開發(fā)商轉(zhuǎn)到Qt/Embedded系統(tǒng)上。

3 Qt/Embedded框架結(jié)構(gòu)及編程關健技術(shù)

3.1 Qt/Embedded的開發(fā)環(huán)境及工具

使用Troll tech公司的X開發(fā)平臺自由軟件的自由版:Qt/Embedded 3.3.3。下載RPM包并安裝。Qt支持多種處理器,根據(jù)所選用的處理器進行適當?shù)呐渲煤途幾g,即可得到如下創(chuàng)建應用程序所需的軟件包和工具:

(1) Qt/Embedded函數(shù)庫。

(2) 虛擬幀緩沖qvfb(virtual frame buffer):在X窗口用來運行和測試Qt/Embedded應用程序的系統(tǒng)程序。有了他,就可以不必在控制臺和X11之間來回切換了。

(3) designer:Qt下用于設計窗口組件的工具。

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

(5) moc:用于Qt C++擴展的meta-object編譯器。

(6) uic:從XML文件生成代碼的用戶界面編譯器。

(7) 其他工具,再加上g++,就可以進行基于Qt/Em-bedded的應用程序開發(fā)、編譯和調(diào)試了。

3.2 Qt/Embedded的框架結(jié)構(gòu)

Qt/Embedded的框架結(jié)構(gòu)。相對于Linux上Qt的另外一個版本Qt/X11,Qt/Embedded并不依賴于XServer。這使Qt/Embedded相對于Qt/X11節(jié)省了不少的內(nèi)存。代替X server和Xlib庫的是Qt/Embedded庫。根據(jù)應用的需要,可以對其進行配置,編譯后庫的大小從700 kB~7 MB左右,典型應用的庫大小大約為2~3 MB。如果事先知道應用和相關的具體組件,還可以將應用程序、組件和Qt/Embedded庫靜態(tài)連接,從而更能節(jié)約內(nèi)存和CPU。FrameBuffer是一種驅(qū)動程序接口,這種接口將顯示設備抽象為幀緩沖區(qū)。用戶可以將他看成顯示內(nèi)存的一種影像,將其映射到進程地址空間后,就可以直接進行讀寫操作,而寫操作可以立即反映到屏幕上。該驅(qū)動程序的設備文件一般是/dev/fb0,/dev/fb1等。

3.3 Qt編程關鍵技術(shù)

Qt是面向?qū)ο蟮腃++工具包,其應用程序設計遵循面向?qū)ο蟮木幊谭椒?。不同于Xt處理事件采用回調(diào)函數(shù)的方式,Qt采用更靈活的signal/slot(信號/槽)機制。Qt是這樣處理事件的:QApplication的事件循環(huán)體從事件隊列中拾取本地窗口系統(tǒng)事件或其他事件,譯成Qevent(),并送給Qobject::event(),最后送給QWidget::event()分別對事件處理。事件的產(chǎn)生來自于所在的窗口系統(tǒng),也可以是QApplication類成員函數(shù)發(fā)送的消息,如:sendEvent()。

Qt應用程序中,首先在main()函數(shù)中創(chuàng)建QApplication對象,QApplication對象負責圖像用戶界面應用程序的控制流和主設置,通過調(diào)用該對象的exec()函數(shù),進入事件循環(huán)處理,對來自窗口系統(tǒng)或其他的事件進行處理和調(diào)度,直到收到exit()或quit()結(jié)束。

Qt利用signal/slot機制實現(xiàn)對象之間的通信。當某一個對象1狀態(tài)改變時,發(fā)出signal,通知所有與該信號相連對象的slot,從而引發(fā)對應的slot的動作。Signal/slo機制真正實現(xiàn)了封裝的概念。Slot除了可以接收signa之外,與其他函數(shù)沒有什么不同。Signal和slot并沒有構(gòu)成一一對應的關系,同一個signal可以連接任意個slot,多個signal也可以和同一個slot相連。雖然signal/slot機制比回調(diào)函數(shù)速度方面有所減慢,但并不明顯,特別是在嵌人式系統(tǒng)中,所用的signal和slot不多的場合,這種速度上的損失可以承受。但這種機制所帶來的簡明性、靈活性確實給應用帶來了很多便利。

4 微波信號發(fā)生器的軟件設計

Qt/Embedded在微波合成掃源上開發(fā)的圖形用戶界面。該項目采用研華PCM-4335PC/104主板,Cyrix 300 MHz的處理器(x86系列),8 MB內(nèi)存16 MB的DOM,嵌入式Linux系統(tǒng)。液晶顯示模塊的分辨率為640×240。

4.1 微波信號發(fā)生器原理

我們所開發(fā)的信號發(fā)生器是一種微波合成掃頻信號源。

時基標準為頻率發(fā)生器提供標準信號10 MHz,整機的頻率穩(wěn)定度由該標準頻率決定。頻率合成器采用頻率合成技術(shù)使標準頻率產(chǎn)生15~40 MHz的離散IF信號。微波輸出組件產(chǎn)生2~20 GHz的微波輸出信號。外圍設備接口電路包括前面板、后面板、GPIB硬件、液晶模塊、鍵盤控制等。調(diào)制掃描及微電路控制部分提供各種控制信號,完成功率電平穩(wěn)幅(ALC)、模擬掃頻、脈沖調(diào)制等功能。

4.2 點頻功能的實現(xiàn)算法

頻率合成器作用是給微波掃頻信號提供一定分辨力的頻率參考信號,并對微波信號輸出頻率進行逐點鎖定,以得到高準確度和穩(wěn)定度的掃頻輸出信號。

輸出點頻信號和掃頻信號是微波合成掃源的基本功能。而點頻輸出又是掃頻輸出的基礎(掃頻信號的輸出可以利用點頻通過程序控制的方法實現(xiàn))。下面是點頻功能的實現(xiàn)算法。

(1) 用戶在前面板上設置需要設定的頻率f0。

(2) 判斷f0屬于哪個頻段,求出YTO的輸出頻率fYTO。并對YTO進行預置頻率。

(3) 根據(jù)fYTO和f0算出YTO鑒相器參考頻率,由此推出取樣環(huán)和小數(shù)分頻環(huán)的分頻系數(shù),并將分頻系數(shù)置人對應的數(shù)據(jù)鎖存器。

4.3 試驗測試

我們選用中國電子科技集團公司第41研究所AV4032微波頻譜分析儀和功率計等儀器對微波信號發(fā)生器的輸出信號做測試。

從測試結(jié)果來看,完全達到了設計要求。

5 結(jié) 語

嵌入式產(chǎn)品正在成為新的技術(shù)熱點,上層應用程序是產(chǎn)品的直接功能體現(xiàn)。Qt/Embedded因其面向?qū)ο?、跨平臺、界面設計更美觀、程序設計簡明和靈活而得到越來越多的廣泛應用。本文結(jié)合微波信號發(fā)生器人機界面設計介紹了Linux下基于Qt/Embedded的設計。使用Qt/Embedded設計的微波信號發(fā)生器頻率切換時間達到了45 ms。單邊帶相位噪聲為-75 dBc/Hz,功率準確度為0.52 dB。其他指標也完全達到了設計的要求。

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5082

    文章

    19126

    瀏覽量

    305293
  • Linux
    +關注

    關注

    87

    文章

    11304

    瀏覽量

    209535
  • 信號發(fā)生器

    關注

    28

    文章

    1474

    瀏覽量

    108765
收藏 人收藏

    評論

    相關推薦

    嵌入式人機界面,PLC人機界面,單片機人機界面

    `嵌入式人機界面,PLC人機界面,單片機人機界面[qq]418891963[/qq]廣州易顯工控-嵌入式
    發(fā)表于 12-23 13:16

    基于VxWorks的無線接收人機界面設計實現(xiàn)

    基于VxWorks的無線接收人機界面設計實現(xiàn)
    發(fā)表于 03-29 12:29 ?25次下載

    數(shù)控機床人機界面設計原則初探

    數(shù)控機床人機界面設計原則初探     數(shù)控機床是現(xiàn)代制造技術(shù)的重要工具。本文從人機界面設計的概念及研究方向入手,充
    發(fā)表于 02-24 15:48 ?1079次閱讀

    人機界面設計與應用

    本專題為你介紹人機界面設計及相關應用。內(nèi)容包括人機界面人機交互的含義與區(qū)別,人機界面硬件選型、開發(fā)軟件下載,人機界面技術(shù)資料,
    發(fā)表于 11-30 13:53
    <b class='flag-5'>人機界面設計</b>與應用

    基于Android車載虛擬儀表人機界面設計

    基于Android車載虛擬儀表人機界面設計
    發(fā)表于 01-24 16:15 ?9次下載

    人機界面設計觸摸感應技術(shù)

    本文檔內(nèi)容包含了人機界面設計觸摸感應技術(shù),供網(wǎng)友參考。
    發(fā)表于 09-14 18:34 ?3次下載
    <b class='flag-5'>人機界面設計</b>觸摸感應技術(shù)

    無風扇嵌入式工控機(嵌入式工控主板)與可編程人機界面組態(tài)軟件

    無風扇嵌入式工控機(嵌入式工控主板)與可編程人機界面組態(tài)軟件
    發(fā)表于 10-26 08:43 ?15次下載
    無風扇<b class='flag-5'>嵌入式</b>工控機(<b class='flag-5'>嵌入式</b>工控主板)與可編程<b class='flag-5'>人機界面</b>組態(tài)軟件

    hmi人機界面包括什么_hmi人機界面設計

     HMI是Human Machine Interface的縮寫,即“人機接口”,也叫人機界面。HMI人機界面是系統(tǒng)和用戶之間進行交互和信息交換的媒介,它實現(xiàn)信息的內(nèi)部形式與人類可以接受
    發(fā)表于 12-05 17:26 ?2.7w次閱讀
    hmi<b class='flag-5'>人機界面</b>包括什么_hmi<b class='flag-5'>人機界面設計</b>

    人機界面設計案例分析

    本文開始對人機界面的定義進行了詳細的介紹,其次闡述了人機界面的設計原則和人機界面的設計過程,最后對人機界面設計的三個案例進行了分析。
    發(fā)表于 03-12 10:25 ?3.2w次閱讀

    嵌入式GUI FTK 界面設計

    嵌入式GUI FTK 界面設計
    發(fā)表于 11-03 20:21 ?4次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b> FTK <b class='flag-5'>界面設計</b><b class='flag-5'>器</b>

    使用RGBW LED驅(qū)動提升LED人機界面設計

    使用RGBW LED驅(qū)動提升LED人機界面設計
    發(fā)表于 11-01 08:26 ?1次下載
    使用RGBW LED驅(qū)動提升LED<b class='flag-5'>人機界面設計</b>

    人機界面設計用什么軟件_人機界面通常包括哪些設備

    人機界面設計可以使用多種軟件進行實現(xiàn),常用的軟件包括以下幾種:   Adobe Photoshop:Photoshop是一款流行的圖像編輯軟件,可以用于設計人機界面的視覺效果,如圖標、按鈕
    發(fā)表于 03-16 15:24 ?4288次閱讀

    人機界面設計包括哪些方面_人機交互方式有哪五種

    人機界面設計包括以下幾個方面:   用戶需求分析:首先需要分析用戶的需求和使用場景,確定人機界面的功能和特性。   信息架構(gòu)設計:根據(jù)用戶需求和使用場景,設計人機界面的信息結(jié)構(gòu)、組織方式
    發(fā)表于 03-16 15:35 ?6578次閱讀

    人機界面產(chǎn)品中有操作系統(tǒng)嗎?

    任何人機界面產(chǎn)品都有系統(tǒng)軟件部分。系統(tǒng)軟件運行在人機界面的處理上,支持多任務處理。處理需要一個小的操作系統(tǒng)管理系統(tǒng)軟件來運行?;谄桨咫娔X的高性能
    發(fā)表于 04-14 15:21 ?705次閱讀

    嵌入式智能家居終端人機界面設計實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《嵌入式智能家居終端人機界面設計實現(xiàn).zip》資料免費下載
    發(fā)表于 11-17 10:18 ?1次下載
    <b class='flag-5'>嵌入式</b>智能家居終端<b class='flag-5'>人機界面設計</b>與<b class='flag-5'>實現(xiàn)</b>