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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

結(jié)合WinCE 6.0嵌入式系統(tǒng)實(shí)現(xiàn)脈沖/數(shù)據(jù)發(fā)生器的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-04 08:36 ? 次閱讀

引言

脈沖/數(shù)據(jù)發(fā)生器作為通用測試信號(hào)源,能夠產(chǎn)生脈沖、群脈沖和數(shù)據(jù)三種類型的信號(hào)輸出。參數(shù)連續(xù)可調(diào)的脈沖信號(hào)和大容量、多樣化的數(shù)字信號(hào),滿足了高速數(shù)字設(shè)備中噪聲容限的測試要求以及大型集成電路射頻系統(tǒng)的設(shè)計(jì)初期對(duì)激勵(lì)信號(hào)源的需求。隨著嵌入式技術(shù)的飛速發(fā)展以及廣泛應(yīng)用,利用嵌入式操作系統(tǒng)支持進(jìn)行智能儀器設(shè)備開發(fā)正成為主流。Win CE系統(tǒng)是美國微軟公司推出的一種32位嵌入式操作系統(tǒng),可以實(shí)現(xiàn)實(shí)時(shí)、多任務(wù)、多線程操作,同時(shí)具備出色的圖形用戶界面。本文實(shí)現(xiàn)了一種以嵌入式WinCE 系統(tǒng)為支撐的脈沖/數(shù)據(jù)發(fā)生器應(yīng)用軟件設(shè)計(jì)。

1 系統(tǒng)設(shè)計(jì)方案

脈沖/數(shù)據(jù)發(fā)生器系統(tǒng)結(jié)構(gòu)如圖1所示,包括嵌入式系統(tǒng)、控制主板模塊、觸發(fā)模塊、時(shí)鐘模塊以及模擬通道輸出模塊。整個(gè)系統(tǒng)中,各個(gè)模塊按照一定作用互相支持,協(xié)調(diào)工作。

時(shí)鐘模塊能夠產(chǎn)生系統(tǒng)所需的連續(xù)可調(diào)、高精度的時(shí)鐘信號(hào);觸發(fā)模塊用以接收外部觸發(fā)信號(hào),實(shí)現(xiàn)與外部電路的同步;模擬通道輸出模塊實(shí)現(xiàn)對(duì)前級(jí)產(chǎn)生的脈沖和數(shù)據(jù)信號(hào)的幅度、電平、沿的控制與調(diào)整;控制主板模塊采用FPGA 來構(gòu)建主控制邏輯系統(tǒng),實(shí)現(xiàn)觸發(fā)模式、時(shí)鐘頻率、脈沖產(chǎn)生和數(shù)據(jù)地址產(chǎn)生等相關(guān)控制。

嵌入式系統(tǒng)以及運(yùn)行于其上的應(yīng)用軟件在整個(gè)系統(tǒng)結(jié)構(gòu)中處于最前端。

結(jié)合WinCE 6.0嵌入式系統(tǒng)實(shí)現(xiàn)脈沖/數(shù)據(jù)發(fā)生器的設(shè)計(jì)

通過儀器人機(jī)界面接收操作人員的指令并與后級(jí)的控制主板進(jìn)行數(shù)據(jù)交換,最終由控制主板操控其后硬件模塊完成用戶指令,在模擬通道輸出端得到相應(yīng)的脈沖信號(hào)和串行數(shù)據(jù)信號(hào)。為了滿足儀器設(shè)備實(shí)時(shí)性的要求,嵌入式操作系統(tǒng)選取WinCE 6.0,微處理器選擇三星公司的S3C2440A,其內(nèi)核為ARM920T,能夠滿足低價(jià)格、低功耗、高性能的需求。

2 人機(jī)界面開發(fā)

軟件集成開發(fā)環(huán)境選取微軟公司提供的VisualStudio 2005.用于定制系統(tǒng)的Platform Builder for CE6.0 被作為插件集成到Visual Studio 2005 中,這樣定制操作系統(tǒng)和開發(fā)應(yīng)用程序都在同一開發(fā)環(huán)境下,避免頻繁切換開發(fā)環(huán)境的麻煩。在完成WinCE 操作系統(tǒng)的定制、導(dǎo)出軟件開發(fā)包SDK之后,便可以進(jìn)行驅(qū)動(dòng)程序和應(yīng)用程序的開發(fā)[4]。脈沖發(fā)生器作為現(xiàn)代電子測量儀器,其軟件開發(fā)包含兩部分:界面設(shè)計(jì)以及功能設(shè)計(jì)。

界面是人機(jī)之間信息傳遞的橋梁,是儀器的重要組成部分。界面設(shè)計(jì)需要完成簡潔、友好的人機(jī)界面,用戶通過操作界面完成對(duì)儀器的控制。人機(jī)界面軟件流程如圖2所示。功能設(shè)計(jì)則是建立在硬件模塊的基礎(chǔ)之上,圍繞硬件模塊分別實(shí)現(xiàn)儀器系統(tǒng)各個(gè)功能。

結(jié)合WinCE 6.0嵌入式系統(tǒng)實(shí)現(xiàn)脈沖/數(shù)據(jù)發(fā)生器的設(shè)計(jì)

系統(tǒng)啟動(dòng)后,軟件開機(jī)自動(dòng)運(yùn)行,首先進(jìn)行開機(jī)自檢,確認(rèn)儀器各個(gè)硬件設(shè)備是否工作正常。然后主線程啟動(dòng),進(jìn)行初始化工作,依次初始化所有工程變量,創(chuàng)建并初始化所有頁面為最近一次關(guān)機(jī)前的狀態(tài)。接著進(jìn)入消息循環(huán)和建立錯(cuò)誤信息報(bào)告循環(huán)。程序不斷檢測錯(cuò)誤消息隊(duì)列看是否有錯(cuò)誤發(fā)生,一旦發(fā)現(xiàn)錯(cuò)誤消息隊(duì)列有錯(cuò)誤需要響應(yīng)時(shí),依次讀取并處理錯(cuò)誤消息報(bào)告,轉(zhuǎn)而執(zhí)行相應(yīng)的功能。比如用戶操作錯(cuò)誤時(shí),錯(cuò)誤信息顯示就會(huì)彈出,提示用戶正確的操作方法,直至用戶操作正確。如果有鍵盤消息到達(dá),則通過主線程交給相應(yīng)的各個(gè)頁面去響應(yīng)控件消息,達(dá)到與儀器操作人員進(jìn)行信息交互的目的。整個(gè)人機(jī)界面設(shè)計(jì)基于CFormView類。鍵盤信息處理等模塊被設(shè)計(jì)成動(dòng)態(tài)鏈接庫的形式,既節(jié)省了系統(tǒng)資源,同時(shí)也便于程序以后的維護(hù)和升級(jí)。

3 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

數(shù)據(jù)傳輸?shù)墓δ転閷?shí)現(xiàn)脈沖/信號(hào)發(fā)生器上層應(yīng)用軟件和底層硬件系統(tǒng)之間的數(shù)據(jù)通信。嵌入式WinCE6.0 操作系統(tǒng)通過對(duì)控制主板模塊進(jìn)行操作,最終實(shí)現(xiàn)對(duì)各個(gè)硬件的控制。ARM 的GPIO 口操作可以實(shí)現(xiàn)此功能需求。S3C2440A 提供了130個(gè)通用IO 口。

GPIO 操作主要由端口配置寄存器GPXCON、端口數(shù)據(jù)寄存器GPXDAT、設(shè)置接口上拉電阻寄存器GPXUP(其中X表示對(duì)應(yīng)的GPA到GPJ端口)等寄存器來實(shí)現(xiàn)。

在WinCE 6.0 系統(tǒng)下,將GPIO 的實(shí)地址(例如S3C2440A 的GPIO 的基地址為0X56000000)映射到虛擬地址空間(對(duì)應(yīng)為0XB1600000),通過對(duì)這段虛擬地址空間的操作,就能夠完成對(duì)GPIO或者其他片內(nèi)資源的控制、輸入輸出工作。在編程中需要使用到兩個(gè)關(guān)鍵函數(shù)VirtualAlloc 和VirtualCopy.首先通過VirtualAlloc來獲得一段虛擬地址空間的分配,然后VirtualCopy將一個(gè)虛擬地址綁定到一個(gè)物理地址上,從而實(shí)現(xiàn)對(duì)物理硬件的訪問。為了增強(qiáng)系統(tǒng)的安全性和穩(wěn)定性,WinCE 6.0加強(qiáng)了對(duì)虛擬地址訪問的限制,驅(qū)動(dòng)被放到內(nèi)核空間下,使得WinCE6.0在應(yīng)用程序中不能再直接對(duì)物理地址進(jìn)行操作。雖然在上層應(yīng)用程序中無法調(diào)用Virtu-alAlloc和VirtualCopy,但是可以在內(nèi)核態(tài)下編寫驅(qū)動(dòng)程序,通過VirtualAlloc和VirtualCopy進(jìn)行內(nèi)存映射,故在WinCE6.0 系統(tǒng)下,訪問物理地址可以采取的一種方法是:在內(nèi)核模式中編寫流驅(qū)動(dòng)程序,將驅(qū)動(dòng)程序編譯到內(nèi)核后再下載到NandFlash中。相關(guān)代碼如下:

volatile S3C2440A_IOPReg *v_pIOPRegs;

/*申請(qǐng)空間*/

v_pIOPRegs=

(volatile S3C2440A_IOPReg *) VirtualAlloc (0,

sizeof

(S3C2440A_IOPReg),

MEM_RESERVE,PAGE_NOACCESS);

i(f /*申請(qǐng)空間失敗*/)

{/*進(jìn)行錯(cuò)誤處理并返回*/

} else {/*進(jìn)行映射*/

if (!VirtualCopy ( (PVOID) v_pIOPRegs, (PVOID)

(S3C2440A_IOBase》8) , sizeof (S3C2440A_IOPReg) ,

PAGE_READWRITE|PAGE_NOCACHE ))

{/

*如果映射失敗,釋放申請(qǐng)的空間并返回*/}}

S3C2440A整合了多種接口和總線?;谕ㄓ闷xnGCSn 的SRAM 接口具有配置簡單、邏輯控制信號(hào)少、尋址以及數(shù)據(jù)讀寫的速度高的特點(diǎn),因此選擇nGCS2作為片選信號(hào),同時(shí)搭配寫使能信號(hào)nWE 以及讀使能信號(hào)nOE完成對(duì)脈沖/數(shù)據(jù)發(fā)生器單數(shù)據(jù)通道的操作。

nGCS2片選信號(hào)為低有效,對(duì)應(yīng)的端口是PortA,其第13 位用來實(shí)現(xiàn)nGCS2 的控制,對(duì)應(yīng)的配置寄存器是GPACON,數(shù)據(jù)寄存器是GPADAT,它們分別對(duì)應(yīng)的物理地址為0X56000000 和0X56000004.當(dāng)GPA13 設(shè)置成0時(shí)候,nGCS2為普通輸入輸出口;設(shè)制成1的時(shí)候,nGCS2成為使能信號(hào)。其他信號(hào)設(shè)置與此類似。在本項(xiàng)目中,nGCS2按照要求被設(shè)置成使能信號(hào):

v_pIOPRegs-》rGPACON |=(0×01《13);

BWSCON 是總線位寬和延時(shí)控制寄存器,它可以用來配置8 b、16 b或者32 b的總線寬度。將其設(shè)置為32 b的總線寬度:

v_pMEMRegs - 》rBWSCON=(v_pMEMRegs - 》rBWSCON~(0XF《8))(| 0XE《8);驅(qū)動(dòng)編譯到內(nèi)核的過程如下:在BSP中創(chuàng)建驅(qū)動(dòng)文件夾并開發(fā)流驅(qū)動(dòng)程序。完成后,再創(chuàng)建makefile 文件、模塊導(dǎo)出文件以及用于編譯的sources文件。最后在注冊(cè)表中添加GPIO 流驅(qū)動(dòng)程序,將驅(qū)動(dòng)添加到NK中,用Visual Studio 2005 中的Platform Builder 6.0 編譯得到NK.bin文件,下載到NandFlash中。

4 程序移植及系統(tǒng)測試

人機(jī)界面以及各功能模塊開發(fā)完成之后,需要進(jìn)行應(yīng)用程序的移植。ActiveSync 6.1可以實(shí)現(xiàn)連接裝有桌面Windows的PC機(jī)和WinCE設(shè)備。通過它可以使用串口、USB端口、以太網(wǎng)紅外線連接在移動(dòng)設(shè)備和PC之間創(chuàng)建同步關(guān)系。在本項(xiàng)目中,選擇使用USB口建立連接,這就需要首先安裝BSP下面的USB驅(qū)動(dòng)。建立連接之后,將編譯好了的應(yīng)用程序下載到定制好的WinCE 6.0系統(tǒng)中,即可實(shí)現(xiàn)應(yīng)用程序在嵌入式WinCE 6.0系統(tǒng)中的運(yùn)行。脈沖/數(shù)據(jù)發(fā)生器功能包括多樣化觸發(fā)、時(shí)鐘發(fā)生、脈沖生成、脈沖參數(shù)可控、信號(hào)時(shí)延可控、串行數(shù)據(jù)發(fā)生等各項(xiàng)功能。利用嵌入式軟件編程實(shí)現(xiàn)的友好簡潔的人機(jī)界面如圖3所示。通過現(xiàn)場測試表明該軟件操作簡便,使用函數(shù)生成數(shù)據(jù)時(shí)界面刷新無明顯遲滯,具有一定健壯性,能有效處理用戶誤操作。圖4顯示為頻率設(shè)置成50 MHz、脈寬設(shè)置為1 ns 時(shí),脈沖/數(shù)據(jù)發(fā)生器輸出通道所輸出的脈沖波形。

5 結(jié)語

本文結(jié)合WinCE 6.0嵌入式系統(tǒng),制定脈沖/數(shù)據(jù)發(fā)生器軟件實(shí)現(xiàn)方案,實(shí)現(xiàn)了脈沖/數(shù)據(jù)發(fā)生器界面設(shè)計(jì)、嵌入式應(yīng)用程序移植、上層軟件與底層硬件的數(shù)據(jù)通信等工作。經(jīng)過實(shí)際測試及運(yùn)行,開發(fā)的脈沖發(fā)生器軟件平臺(tái)運(yùn)行穩(wěn)定,界面簡潔美觀且易于操作,上層應(yīng)用軟件功能齊全,系統(tǒng)的實(shí)時(shí)響應(yīng)能力達(dá)到儀器的設(shè)計(jì)要求。

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

    關(guān)注

    1629

    文章

    21744

    瀏覽量

    603655
  • 嵌入式
    +關(guān)注

    關(guān)注

    5083

    文章

    19131

    瀏覽量

    305533
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6834

    瀏覽量

    123348
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    盈鵬飛嵌入式AM335X WINCE 6.0 BSP相關(guān)資料

    盈鵬飛嵌入式AM335X WINCE 6.0 BSP相關(guān)資料
    發(fā)表于 03-28 15:23

    怎么實(shí)現(xiàn)基于WinCE嵌入式視頻數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)?

    怎么實(shí)現(xiàn)基于WinCE嵌入式視頻數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)?
    發(fā)表于 06-03 06:39

    基于嵌入式ARM & WinCE 的小型監(jiān)控系統(tǒng)的設(shè)計(jì)

    本文介紹了嵌入式操作系統(tǒng)WinCE 的技術(shù)特性、構(gòu)建基于WinCE嵌入式平臺(tái)以及在構(gòu)建的平臺(tái)上開發(fā)
    發(fā)表于 06-10 14:02 ?22次下載

    WinCE實(shí)驗(yàn)教程之--嵌入式系統(tǒng)

    WinCE實(shí)驗(yàn)教程之--嵌入式系統(tǒng):嵌入式這個(gè)詞現(xiàn)在變得越來越流行,然而關(guān)于它的很多概念可能還有一大部分人不是很明確,在本文中,我們不追求具體的概念是否準(zhǔn)確,而是要對(duì)其有
    發(fā)表于 09-28 12:16 ?0次下載

    基于嵌入式WinCE的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)

    設(shè)計(jì)了一種基于嵌入式WinCE 的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)。利用分層技術(shù)在PB(PlatformBuilder)集成開發(fā)環(huán)境中定制基于WinCE
    發(fā)表于 12-31 14:29 ?21次下載

    ARM嵌入式-WinCE開發(fā)教程

    ARM嵌入式-WinCE開發(fā)教程
    發(fā)表于 02-09 14:37 ?331次下載
    ARM<b class='flag-5'>嵌入式</b>-<b class='flag-5'>WinCE</b>開發(fā)教程

    基于嵌入式WinCE的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)

    基于嵌入式WinCE的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)   摘要:設(shè)計(jì)了一種基于嵌入式WinCE的遠(yuǎn)程
    發(fā)表于 04-01 15:47 ?946次閱讀
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>WinCE</b>的遠(yuǎn)程<b class='flag-5'>數(shù)據(jù)</b>采集<b class='flag-5'>系統(tǒng)</b>

    嵌入式操作系統(tǒng)WINCE實(shí)踐教程

    嵌入式操作系統(tǒng)WINCE實(shí)踐教程,哈理工大學(xué)WinCE教程課件,內(nèi)含實(shí)驗(yàn)例子。
    發(fā)表于 03-14 16:13 ?4次下載

    基于嵌入式ARM&WinCE的小型監(jiān)控系統(tǒng)的設(shè)計(jì)

    本文介紹了嵌入式操作系統(tǒng)WinCE的技術(shù)特性、構(gòu)建基于WinCE嵌入式平臺(tái)以及在構(gòu)建的平臺(tái)上開發(fā)嵌入式
    發(fā)表于 04-18 14:12 ?1次下載

    SQLite在嵌入式Wince中的應(yīng)用

    隨著科學(xué)技術(shù)的發(fā)展,嵌入式系統(tǒng)成為了科技發(fā)展的主要領(lǐng)域, Linus和Wince是比較常見的嵌入式系統(tǒng)。
    發(fā)表于 11-30 08:55 ?585次閱讀
     SQLite在<b class='flag-5'>嵌入式</b><b class='flag-5'>Wince</b>中的應(yīng)用

    基于WinCE 6.0操作系統(tǒng)實(shí)現(xiàn)車載終端的嵌入式地圖的設(shè)計(jì)

    本文介紹在某基于WinCE 6.0操作系統(tǒng)的車載信息終端上嵌入式地圖的實(shí)現(xiàn)方法。主要的目標(biāo)功能如下:能夠
    的頭像 發(fā)表于 08-14 08:03 ?3644次閱讀
    基于<b class='flag-5'>WinCE</b> <b class='flag-5'>6.0</b>操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>實(shí)現(xiàn)</b>車載終端的<b class='flag-5'>嵌入式</b>地圖的設(shè)計(jì)

    如何使用FPGA實(shí)現(xiàn)靜止補(bǔ)償?shù)腜WM脈沖發(fā)生器設(shè)計(jì)

    研制了基于現(xiàn)場可編程門陣列 (FPGA)實(shí)現(xiàn)的、用于± 50 0 kvar靜止補(bǔ)償 (STATCOM)的 PWM脈沖發(fā)生器。該脈沖
    發(fā)表于 01-07 11:15 ?24次下載
    如何使用FPGA<b class='flag-5'>實(shí)現(xiàn)</b>靜止補(bǔ)償?shù)腜WM<b class='flag-5'>脈沖</b><b class='flag-5'>發(fā)生器</b>設(shè)計(jì)

    探究SQLite在嵌入式系統(tǒng)Wince中的應(yīng)用

    首先介紹了SQLite嵌入式數(shù)據(jù)庫的結(jié)構(gòu)和特點(diǎn)與選擇必要性及應(yīng)用到嵌入式系統(tǒng)Wince中的優(yōu)點(diǎn);其次介紹以ARM9與
    的頭像 發(fā)表于 03-31 10:39 ?2349次閱讀
    探究SQLite在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>Wince</b>中的應(yīng)用

    基于ARM11和WinCE的溫室大棚嵌入式監(jiān)控系統(tǒng)設(shè)計(jì)

    基于ARM11和WinCE的溫室大棚嵌入式監(jiān)控系統(tǒng)設(shè)計(jì)(嵌入式開發(fā)設(shè)計(jì)師年薪)-基于ARM11和WinCE的溫室大棚
    發(fā)表于 07-30 14:46 ?15次下載
    基于ARM11和<b class='flag-5'>WinCE</b>的溫室大棚<b class='flag-5'>嵌入式</b>監(jiān)控<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    脈沖發(fā)生器是什么意思?脈沖發(fā)生器怎么使用?

    脈沖發(fā)生器是什么意思?脈沖發(fā)生器怎么使用? 脈沖發(fā)生器是一種電子設(shè)備,可以生成不同類型的
    的頭像 發(fā)表于 08-24 15:18 ?3982次閱讀