摘 要:提出基于嵌入式WinCE操作系統的掃頻儀設計方案。使用高效率的VS 2005工具在WinCE平臺上開發掃頻儀的應用交互式界面。介紹掃頻儀硬件結構組成,重點討論WinCE操作系統的移植及流驅動的添加。充分利用WinCE高度集成化、可按需剪裁等特點實現了低功耗低成本的便攜式掃頻儀。結果表明,設計的便攜式掃頻儀運轉穩定,達到設計要求。
關鍵詞:嵌入式系統;WinCE;掃頻儀;流驅動
中圖分類號:TP216;TP316;TP335文獻標識碼:B
文章編號:1004-373X(2010)02-031-03
Design of Portable Sweep Generator Based on Embedded System
SUN Peng,HU Bing,WANG Yusheng
(Department of Electrical Information Engineering,Xihua University,Chengdu,610039,China)
Abstract:A design and implemention of sweeper based on embedded WinCE operating system is introduced.Higher efficiency VS 2005 tools are used to develop the application interactive interface of the sweeper.The structure of sweeper′s hardware,the porting of WinCE operation system and how to add stream driver as an important aspect are proposed.Sufficiently applying the highly integrated characteristic and tailored system as the requirements of applications to implement portable sweep generator on low cost and low power consumption.Consequently,the portable sweep generator is stable,and achieves design requirements.
Keywords:embedded system;WinCE;sweeper;stream interface driver
0 引 言
掃頻儀是用于測量系統頻率響應的儀器。在現今掃頻儀市場上,高端產品功能齊全,穩定性都已經很完善,但是價格非常昂貴;低端產品的硬件實現一般是基于8位單片機,軟件實現一般采用單流程循環控制方式。其產品價格低廉,但是存在著運算能力差,硬件平臺依賴性強,不利于應用軟件的開發和移植等缺點。
基于32位Intel PXA270嵌入式處理器的掃頻儀具有成本低,穩定性好,體積小,使用靈活等特點,通過編程模塊的設計既可以讓本款儀器單獨當作波形發生器發生多種波形,如正弦波,方波,三角波,又可單獨當作示波器進行使用,還可以增加或刪減儀器的功能,可實現對測試的數據的存儲、管理等操作,界面簡單使用非常方便。
1 掃頻儀的硬件組成
該系統的硬件部分由嵌入式模塊、數據處理模塊、波形發生模塊、波形采集模塊開口液晶顯示模塊等組成[1]。其系統框圖如圖1所示。
圖1 掃頻儀硬件系統框圖
1.1 波形發生模塊
波形發生模塊采用AD7801BR,D/A模塊的精度為8位,D/A的轉換時鐘為20 MHz,D/A循環輸出讓D/A以某一時鐘頻率自動把內部緩沖區中數據進行循環轉換輸出,延遲兩個時鐘周期輸出當前數據的轉換值,D/A時鐘頻率fc與分頻系數N(9≤N≤1 023)關系如下:
fc=20 000/N+1
當分頻系數N=9時產生最高1 MHz的波形,當分頻系數N為1 023時產生最小20 kHz的波形信號輸入到待測電路。
1.2 波形采集模塊
波形采集模塊采用AD7819YR,A/D模塊的精度為8位,A/D的轉換時鐘為20 MHz,A/D自動緩沖采集讓A/D以某一采樣率自動進行采集數據,把數據放入內部緩沖區中,當緩沖區滿時,自動停止采集。若中斷控制寄存器中相應的中斷允許位置1,則產生中斷信號。主設備通過響應中斷,把數據從緩沖區中讀回。延遲7個時鐘周期輸出當前輸入信號的轉換值,其分頻系數N的范圍是1≤N≤2 047,A/D采樣頻率fs與分頻系數N關系如下:
fs=200/(N+1)
從待測電路輸出的信號由本單元接收,再由PXA270芯片進行頻譜分析,掃頻分析結果由液晶顯示屏顯示。
1.3 嵌入式平臺模塊
采用的嵌入式處理器PXA270是Intel公司設計開發的基于精簡指令集的ARM9核的CPU,最高主頻達到624 MHz,且具有豐富的外圍組件,支持Linux,WinCE等主流嵌入式操作系統。配合FPGA(EP1C6Q240C8芯片)一起使用,高速低功耗,穩定性好。
2 掃頻儀軟件設計
如圖2所示,系統的軟件設計分為三部分:嵌入式平臺內核的定制;流接口驅動程序的添加及應用程序的編寫[2]。采用WinCE作為系統平臺,使用PB(Platform Builder)根據需要定制所需系統[3]。由于嵌入式系統資源有限,C++編譯器效率高、性能好,這里使用Visual Studio 2005工具開發應用程序[4]。
圖2 整體框架圖
系統啟動后,顯示啟動界面。整個啟動界面流程如圖3所示。
2.1 平臺內核的定制
Platform Builder(PB)工具是微軟提供給開發人員進行基于WinCE平臺下嵌入式操作系統定制的集成開發環境[5]。這里使用PB設計和定制內核的,在PB中創建工程,選擇系統特性,定制滿足自己要求的最簡內核,由PB生成WinCE操作系統的鏡像內核NK.BIN。
圖3 系統流程圖
2.2 流接口驅動的添加
接口函數表如表1所示。通常實現流式接口驅動程序只需4個步驟[6]:
(1) 流接口驅動程序選擇一個前綴。通常須通過設備的名稱對驅動程序進行訪問。采用由3個大寫的英文字母。
(2) 實現流接口驅動DLL所必須的接口函數[7]。
表1 接口函數表
函數名功能簡述
XXX_Open()打開設備進行讀/寫
XXX_Close()關閉設備
XXX_Init()初始化設備,在設備被加載時調用
XX_Deinit()釋放設備,在設備被卸載時調用
XXX_Read()從設備中讀取數據
XXX_Write()向設備中寫入數據
XXX_Seek()移動設備中的數據指針
XXX_IOControl()對設備發送控制命令
XXX_PowerUp()在設備從掛起狀態中恢復時調用此函數
XXX_PowerDown ()供可使用軟件控制關閉的設備關閉自身的電源
(3) 編寫DLL的導出函數。可以有兩種方法實現:使用編譯器擴展關鍵字_declspec(dllexport)或是使用.DEF文件。
(4) 為驅動程序配置注冊表。為實現流接口驅動程序正確地被設備管理器加載,必須初始化注冊表[8]:
[HKEY_LOCAL_MACHINE\\\\DRIVERS\\\\BuihIn\\\\fpga]
\"Dll\"=\"fpga.dll\"
\"Prefix\"=\"ISA\"
\"Index\"=dword:1
\"Order\"=dword:0
Dll指明該驅動程序的實現位于fpga.dll中。
Prefix表明驅動的前綴。前綴一般都是三個大寫的英文字母,這里是ISA。
Index指明驅動的索引,這里是“1”,如果應用程序要打開該驅動,那么CreateFile()的第一個參數就必須是ISA1。
Order指明了驅動的加載順序。該值越小,驅動被加載得越早,這有助于解決驅動程序之間的依賴關系。
2.3 控制面板軟件的設計
使用 Visual Studio 2005軟件設計編寫應用交互式界面[9,10],采用可視化編程,通過按鈕調用各個模塊。軟件結構如圖4所示。
圖4 軟件結構圖
(1) 波形發生器模塊,函數模塊為OnProfilesGenerator()實現可以輸出正弦波、方波、三角波三種波形。圖5為產生正弦波的截圖。
圖5 波形發生器產生正弦波
(2) 波形發生器參數設置模塊,通過波形發生器頻率參數模塊OndaFrequency()設置產生波形的頻率,通過波形發生器幅度參數模塊OndaAmplitude()設置產生波形的幅度。
(3) 波形采集卡模塊,函數模塊為OnOscilloscope()用來采集接收到的波形,并將波形顯示在窗口顯示。
(4) 波形采集卡參數設置模塊函數OnadFrequency()和OnadAmplitude(),通過波形采集參數的設置調節波形的采樣率用來得到適合的波形顯示。
(5) 波形頻譜分析模塊,函數模塊為OnSweeper(),對待測電路進行頻譜分析并將分析的波形在窗口顯示。
3 結 語
本掃頻儀設計采用嵌入式WinCE系統,在嵌入式系統中實現高速實時的頻譜分析。實現了一機三用,除了掃頻功能還可以作為波形發生器或示波器單獨使用,基于嵌入式技術可提供網絡、打印等功能,通過軟件編程增加或刪減儀器的功能,可實現對測試的數據的存儲、管理、等操作,成本低廉,使用非常方便。
參考文獻
[1]伍玉,夏新凡.頻率特性測試儀的設計\\.電子設計工程,2009(2):30_32.
[2]何宗鍵.Windows CE嵌入式系統\\.北京:北京航空航天大學出版社,2006.
[3]余宏兵,李寶安,申功勛.基于ARM的WinCE系統定制\\.現代電子技術,2008,31(10):73_75.
[4]周毓林,寧楊,陸貴強,等.Windows CE.NET內核定制及應用開發\\.北京:電子工業出版社,2005.
[5]張晶,李心廣.基于Intel PXA270的WinCE操作系統移植\\.微計算機信息,2008,24(5):39_41.
[6]羅家兵,騰少華.WinCE.NET下流接口驅動研究與實現\\.微計算機信息,2007,23(9):230_292.
[7]李君懿,趙利,鄒柏程.WinCE 5.0的USB Camera流接口驅動開發\\.單片機與嵌入式系統應用,2008(1):76_79.
[8]張建暢,陶會榮,王建超,等.基于WinCE的嵌入式系統注冊表的研究\\.微計算機信息,2008,24(5):44_46.
[9]汪兵,李存斌,陳鵬.EVC高級編程及其應用開發\\.北京:中國水利水電出版社,2005.
[10]牛力,傅韻.Visual C++.NET編程寶典\\.北京:電子工業出版社,2006.
作者簡介
孫 鵬 男,1981年出生,黑龍江雞東人,碩士研究生。主要研究方向為嵌入式技術及應用、信號與信息系統。
胡 兵 男,1971年出生,博士,副教授。主要研究方向為現代測試理論與技術、信號處理、嵌入式技術及數字系統可測性設計。
王育生 男,1982年出生,碩士研究生。主要研究方向為計算機測控技術的研究及應用。