【正文】
設(shè)計(jì)中廣泛應(yīng)用的一種通用儀器。 傳統(tǒng)文本 編程語(yǔ)言根據(jù)指令的先后順序決定程序執(zhí)行順序,但 LabVIEW 則采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點(diǎn)之間的數(shù)據(jù)流向決定了 VI 及函數(shù)的執(zhí)行順序。這就是圖形化源代碼,又稱(chēng)G 代碼。它可以增強(qiáng)你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實(shí)現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。 論文共分為五章。第四章系統(tǒng)的調(diào)試和分析部分,這章主要對(duì)調(diào)試的過(guò)程作了詳盡的描述,并對(duì)調(diào)試過(guò)程中產(chǎn)生的問(wèn)題進(jìn)行了分析。 基本原理 采樣的基本原理 采樣定理,又稱(chēng)香農(nóng)采樣定理,奈奎斯特采樣定理,是信息論,特別是通訊與信號(hào)處理學(xué)科中的一個(gè)重要基本結(jié)論。 在 進(jìn)行模擬 /數(shù)字信號(hào)的轉(zhuǎn)換過(guò)程中,如果采樣頻率大于信號(hào)中最高頻率fmax 的 2 倍時(shí) (=2fmax),采樣之后的數(shù)字信號(hào)完整地保留了原始信號(hào)中的信息,一般實(shí)際應(yīng)用中保證采樣頻率為信號(hào)最高頻率的 5~ 10 倍 , 采樣定理又稱(chēng)奈奎斯特定理 。 1933年由 蘇聯(lián) 工程師科捷利尼科夫首次用 公式 嚴(yán)格地表述這一定理,因此在蘇聯(lián)文獻(xiàn)中稱(chēng)為科捷利尼科夫采 樣定理。 API 實(shí)現(xiàn) USB 通信原理 USB 無(wú)疑已經(jīng)成為 21 世紀(jì)嵌入式系統(tǒng)的標(biāo)準(zhǔn)外部串行接口;然而開(kāi)發(fā) USB外設(shè),需要面對(duì)微處理器和 USB 控制器的選擇,熟悉 Windows 驅(qū)動(dòng)程序,開(kāi)發(fā)微處理器固件程序和 PC 機(jī)端應(yīng)用程序等諸多問(wèn)題,開(kāi)發(fā)工作既專(zhuān)業(yè)又麻煩。另外, Silicon Laboratories 公司還為 USB 驅(qū)動(dòng)程序開(kāi)發(fā)提供了 USBXpress 開(kāi)發(fā)套件,使得 USB 主機(jī)和從機(jī)驅(qū)動(dòng)程序開(kāi)發(fā)可以快捷、高效地完成。 利用 LabVIEW 軟件開(kāi)發(fā) PC 機(jī)端 USB 應(yīng)用程序,不僅可以獲得具有良西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 5 好人機(jī)交互的 GUI 界面,而且將極大地加快開(kāi)發(fā)進(jìn)程 [4]。在 PC 機(jī)端,需要首先建立 USB 主機(jī)驅(qū)動(dòng)程序,然后編寫(xiě)用戶(hù)應(yīng)用程序,進(jìn)而利用 API 函數(shù)實(shí)現(xiàn)用戶(hù)應(yīng)用程序從 USB 主機(jī)驅(qū)動(dòng)處獲取 USB 數(shù)據(jù)包,并完成相應(yīng)的 USB 讀寫(xiě)操作; 在單片機(jī)端,同樣需要先調(diào)用 USB 器件驅(qū)動(dòng)程序,然后編寫(xiě)應(yīng)用程序,而應(yīng)用程序通過(guò) USB 器件驅(qū)動(dòng)程序?qū)崿F(xiàn)訪問(wèn) USB 底層硬件。這些函數(shù)封裝了 USB協(xié)議的細(xì)節(jié),使得程序開(kāi)發(fā)人員不需要了解 USB的過(guò)多細(xì)節(jié)即可使用 USB進(jìn)行數(shù)據(jù)通信。 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 6 前面板,前面板是圖形用戶(hù)界面,也就是 VI的虛擬儀器面板,前面板直接面向用戶(hù),是用戶(hù)使用虛擬儀器的基本操作面板。在程序框圖中存在著對(duì) VI編程,以控制和操縱定義在前面板上的輸入和 輸出。 VI具有層次化和結(jié)構(gòu)化的特征,一個(gè) VI可以作為子程序,這里稱(chēng)為子 VI,被其他 VI調(diào)用。這些選板的詳細(xì)功能及用法通過(guò)不斷的學(xué)習(xí)設(shè)計(jì) VI的過(guò)程逐漸地掌握。 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 7 系統(tǒng)方案 本設(shè)計(jì)的實(shí)現(xiàn)主要由硬件部分和軟件部分組成。 U S BT h e l a b v i e wa p p l i c a t i o nC 8 0 5 1 F 3 4 0P C 機(jī)s i g n a l g e n e r a t o rT h e U S B h o s tM i c r o c o n t r o l l e e ra p p l i c a t i o nU S B d r i v e rAPIDrivers q u a r e w a v et r i a n g u l a r w a v eS i n e w a v e s 圖 13系統(tǒng)機(jī)構(gòu)框架圖 器件選擇 單片機(jī)器件選擇 本次設(shè)計(jì)主要運(yùn)用了 C8051F340,具體介紹如下 : 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 8 圖 14 C8051F340的內(nèi)部結(jié)構(gòu) C8051F340/1/2/3/4/5/6/7器件是完全集成的混合信號(hào)片上系統(tǒng)型 MCU。 通用串行總線 ( USB)功能控制器,有 8個(gè)靈活的端點(diǎn)管道,集成收發(fā)器和1K FIFO RAM。 片內(nèi)電壓比較器(兩個(gè)) 。 硬件實(shí)現(xiàn)的 SMBus/ I2C、增強(qiáng)型 UART( 最多兩個(gè) ) 和增強(qiáng)型 SPI串行接口 4個(gè)通用的 16位定時(shí)器 。 具有片內(nèi)上電復(fù)位、 VDD監(jiān)視器、電壓調(diào)整器、看門(mén)狗定時(shí)器和時(shí)鐘振蕩器的 C8051F340/1/2/3/4/5/6/7器件是真正能獨(dú)立工作的片上系統(tǒng)。調(diào)試邏輯支持觀察和修改存儲(chǔ)器和寄存器,支持?jǐn)帱c(diǎn)、單步、運(yùn)行和停機(jī)命令。電源電壓大于 ,必須使用內(nèi)部穩(wěn)壓器。 圖 15 C8051F340的原理圖 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 10 圖 16 C8051F340的引腳圖 示波器 示波器是一種使用非常廣泛,且使用相對(duì)復(fù)雜的儀器。 示波器工作原理 :示波器是利用電子示波管的特性,將人眼無(wú)法直接觀測(cè)的交變電信號(hào)轉(zhuǎn)換成圖像,顯示在熒光屏上以便測(cè)量的電子測(cè)量?jī)x器。與匯編相比, C 語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上都有明顯的優(yōu)勢(shì),易學(xué)易用?;?Keil C51 的所有這些優(yōu)點(diǎn),在本設(shè)計(jì)中選用其作為軟件設(shè)計(jì)環(huán)境 [8]。 測(cè)試方案 本設(shè)計(jì)首先是利用 Keil C51 軟件編譯寫(xiě)好的程序代碼, 無(wú)誤后通過(guò) Keil 的下載功能將編譯好的目標(biāo)文件下載到搭建好的測(cè)試系統(tǒng)中,并運(yùn)行一段時(shí)間后,檢西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 12 測(cè)程序的正誤。 論文章節(jié)安排 本論文共分為五章,具體介紹如下: 第一章是緒論,主要介紹了數(shù)據(jù)通信, USB 通信, LabVIEW 軟件設(shè)計(jì)基本原理和相關(guān)軟件的介紹。 第四章是系統(tǒng)的調(diào)試與分析,這章主要對(duì)調(diào)試的過(guò)程作了詳盡的描述,并對(duì)調(diào)試過(guò)程中 產(chǎn)生的問(wèn)題進(jìn)行了分析。其中測(cè)試系統(tǒng)硬件的詳細(xì)設(shè)計(jì)主要是 C8051F340 單片機(jī)系統(tǒng)的硬件設(shè)計(jì)進(jìn)行詳細(xì)介紹。下位機(jī)C8051F340 單片機(jī)主要作為對(duì)數(shù)據(jù)的采集。 單片機(jī)最小系統(tǒng) 該部分主要是為了實(shí)現(xiàn)對(duì)信號(hào)的采樣,進(jìn)而通過(guò) USB 發(fā)送到 PC 機(jī)上進(jìn)行波形的顯示和頻譜的分析。其原理框圖如圖 23 所示。單片機(jī)正常工作期間,復(fù)位引腳Reset 需要一直保持低電平。設(shè)計(jì)復(fù)位電路的要求就是確定電阻電容值,使其時(shí)間常數(shù)達(dá)到 2 個(gè)機(jī)器周期的復(fù)位最小正脈寬要求。 當(dāng)單片機(jī)上電后,因?yàn)殡娙輧啥说碾妷翰荒芡蛔兙蜁?huì)使 RST 端瞬間產(chǎn)生一個(gè)大約為 +5V 的電壓,而 CMOS 單片機(jī)最小輸入高電平電壓 Umin=,它瞬間產(chǎn)生的電壓是大于 的,因此 RST 接收高電平進(jìn)行初始化。 C 1 00 . 1 u F111 u F+ 3 .3 VR S T / C 2 C KR E S E TS W P BR51KR61K 圖 24 復(fù)位電路 圖 24 所示電路中,在上電瞬間,由于電容的兩端電壓不可能突變,電阻R5 對(duì)電容進(jìn)行充電,充 電得時(shí)間常數(shù)一般由電容和電阻的乘積來(lái)決定,要求大于 5 個(gè)外部時(shí)鐘周期,有時(shí)為防止復(fù)位不完全,這些參數(shù)可選大一些,在本設(shè)計(jì)中采用 1181。 JTAG 電路 當(dāng)系統(tǒng)調(diào)試時(shí),需要把在計(jì)算機(jī)上編譯并生成執(zhí)行的代碼下載到單片機(jī)芯片上,實(shí)現(xiàn)在線調(diào)試硬件和軟件。本設(shè)計(jì)采用的是 接口。5%,這里的偏差可以通過(guò)接入旁路電容來(lái)消除。因此正確設(shè)計(jì)原理圖非常的重要,一般為避免出錯(cuò),所以在設(shè)計(jì)原理圖時(shí)候,應(yīng)該注意以下幾個(gè)問(wèn)題:首先在畫(huà)原理圖之前,應(yīng)該根據(jù)用到的元器件去查看 PROTEL 的元器件庫(kù)里是否有,如過(guò)沒(méi)有,應(yīng)該先把這些元器件的原理圖符號(hào)先畫(huà)好。分模塊設(shè)計(jì)的最大好處就是簡(jiǎn)單明了一目了然。所以繪制 PCB 圖也采用 Altium Designer Summer 09 軟件。 下位機(jī) 利用 C8051F340 實(shí)現(xiàn)對(duì)信號(hào)的采樣及發(fā)送。 上位機(jī) 利用 LabVIEW 虛擬儀器設(shè)計(jì)一個(gè)示波器實(shí)現(xiàn)波形顯示和頻率分析。 下位機(jī)軟件總體框圖 : 圖 31下位機(jī)總體框圖 上位機(jī)軟件總體框圖 : 圖 32 上位機(jī)總體框圖 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 22 軟件詳細(xì)設(shè)計(jì) 主程序統(tǒng)領(lǐng)各個(gè)子程序的工作,是程序設(shè)計(jì)的核心部分,也是難度比較大的一部分,所以必須根據(jù)設(shè)計(jì)要求仔細(xì)推敲,保證設(shè)計(jì)思路的正確,為后面的子程序設(shè)計(jì)做好鋪墊,要在時(shí)序上安排好每個(gè)子程序的工作順序,保證各個(gè)子程序能夠更好的工作。主程序整個(gè)流程結(jié)束 ,依次循環(huán)執(zhí)行。 這是 調(diào)用 AN169USB 通信庫(kù)函數(shù) USB_Clock_Start()。 3. 使能 API 中斷程序代碼 USB_Int_Enable()。本設(shè)計(jì)需要初始化看門(mén)狗定時(shí)器而該對(duì)應(yīng)位的復(fù)位 值為 ?1?因此無(wú)需做修改。 端口 I/O 初始化包括以下步驟: 用端口輸入方式寄存器( PnMDIN)選擇所有端口引腳的輸入方式(模擬或數(shù)字)。 使能交叉開(kāi)關(guān)( XBARE = 1)。 if(AD_flag1==1) Block_Write(Out_Packet1, 1500)。 完成最信號(hào)的 AD 轉(zhuǎn)換后,對(duì)信號(hào)進(jìn)行采樣,考慮到時(shí)效性,我們采樣一組數(shù)據(jù)在通過(guò) USB 進(jìn)行發(fā)送。 AD_flag1=1。 if(num=1500) { num=0。 } 上位機(jī)程序設(shè)計(jì) 前面板 前面板是圖形用戶(hù)界面,也就是 VI 的虛擬儀器 面板,前面板直接面向用戶(hù),是用戶(hù)使用虛擬儀器的基本操作面板。在程序框圖中存在著對(duì) VI 編程,以控制和操縱定義在前面板上的輸入和輸出。 程 序 開(kāi) 始調(diào) 用 用 戶(hù) 上 層 應(yīng) 用 程 序進(jìn) 行 U S B 通 信 嗎 ?調(diào) 用 S I G e t N u m D e v i c e s 0 和 S I _ G e t P r o d uc t S t r i n g 0 , 獲 取 U S B 器 件 相 關(guān) 信 息設(shè) 置 U S B 總 線 延 遲調(diào) 用 S I _ O p e n O , 打 開(kāi) U S B 器 件調(diào) 用 S I R e a d 0 , 讀 U S B 器 件 數(shù) 據(jù) 塊 : 或 者 調(diào) 用S I W r i t e 0 , U S B 器 件 寫(xiě) 數(shù) 據(jù) 塊 U S B 通 信 完 成 嗎 ? 調(diào) 用 S L C l o s e 0 , 關(guān) 閉 U S B 器 件程 序 結(jié) 束NYNY 圖 37后面板流程圖 借助 USBXpress提供的 USB主機(jī) API,即 USBX—press安裝目錄下的SiUSBXp. dll,可以簡(jiǎn)便地實(shí)現(xiàn)在 PC機(jī)上通過(guò) Labview軟件編寫(xiě)的 GUI程序與作為 USB器件的 C8051F340單片機(jī)的 USB通信。 圖 37函數(shù)調(diào)用 在“庫(kù)名置 USB主或路徑”框中設(shè)機(jī) API函數(shù)的封 裝庫(kù) SiUSBXp. dll的路徑,然后在“函數(shù)名”下拉菜單中選擇當(dāng)前想要調(diào)用的 SI~ GetNumDevices()函數(shù),在“線程”框中選擇“在 UI線程中運(yùn)行”,在“調(diào)用規(guī)范”框中選“ stdcall(wINAPI)”,最后在“參數(shù)”菜單中進(jìn)行相應(yīng)設(shè)置。 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 29 圖 38 USB讀寫(xiě)延遲 打開(kāi) USB圖如下: 圖 39 打開(kāi) USB器件 向 USB器件寫(xiě)數(shù)據(jù)模塊: 310 向 USB器件寫(xiě)數(shù)據(jù)塊 波形圖表是顯示一條或多條曲線的特殊數(shù)值顯示控件,一般用于顯示以恒定速率采集到的數(shù)據(jù)。波形圖表的默認(rèn) 圖表歷史長(zhǎng)度 為 1,024 個(gè)數(shù)據(jù)點(diǎn)。波形圖表接收 波形數(shù)據(jù)類(lèi)型 ,該類(lèi)型包含了波形的數(shù)據(jù)、起始時(shí)間和時(shí)間間隔 (△ t)。 圖 312波形圖表 幅值和電平測(cè)量 。勾選直流或均方根復(fù)選框時(shí),才可使用該選項(xiàng)。 最小峰 —測(cè)量 信號(hào) 的最低負(fù)峰值。 西安工程大學(xué)本科畢業(yè)設(shè)計(jì) (論文 ) 31 程序代碼 本設(shè)計(jì)中的 單片機(jī) 程序代碼在 Keil uVision4環(huán)境下編寫(xiě),具體程序代碼分別見(jiàn)附錄 V。 驗(yàn)證被測(cè)信號(hào)功能 被測(cè)信號(hào)是本次設(shè)計(jì)的關(guān)鍵部分,是我們應(yīng)該首先保證的環(huán)節(jié),通過(guò)示波器我們首先要保證三種被測(cè)信號(hào)的正常使用,為后面信號(hào)分析形成對(duì)比部分。本次檢測(cè)是運(yùn)用四個(gè)探針對(duì)主要線路進(jìn)行檢測(cè)。因?yàn)?340 單片機(jī)體積小、價(jià)錢(qián)便宜、片上外設(shè)資源豐富。由于本次設(shè)計(jì)的目的是對(duì)其頻率和幅度進(jìn)行分析。對(duì)不同頻率的信號(hào)與被測(cè)信號(hào)進(jìn)行對(duì)比。 分析:這個(gè)問(wèn)題主要是由于硬件問(wèn)題引起的,故先要檢查硬件。 解決:在檢查過(guò)程中發(fā)現(xiàn)是被測(cè)信號(hào)的頻率給的過(guò)大,所以輸送小頻率信號(hào)得到完整信號(hào)。對(duì) 1V和 3V的對(duì)比分析不同幅度的波形。 結(jié)論 在下位機(jī)上,完成了對(duì)信號(hào)的采樣,并通過(guò) USB 發(fā)送到 PC 機(jī)上。在 LabVIEW 界面上我們實(shí)現(xiàn)了正弦波,三角波,方波,而且顯示了他們相應(yīng)的頻譜圖,對(duì)不同的頻率我們也