0引言

ARM處理器是Acorn計算機(jī)有限公司面向低預(yù)算市場設(shè)計的第一款RISC微處理器。ARM處理器具有耗電少功能強(qiáng)、1 6位/位雙指令集和合作伙伴眾多等特點(diǎn)。本設(shè)計采用F103ZET6芯片進(jìn)行研究。此芯片采用ARM 位的Cortex-M3 CPU作為內(nèi)核,芯片帶有2通道12位的D/A轉(zhuǎn)換器,12通道DMA控制器能支持外設(shè):定時器、ADC、DAC、USART等,具有112個快速IO端口。同時此芯片具有多達(dá)13個通信接口,其中包括USB2.0全速接口[1].

是一種程序開發(fā)環(huán)境,采用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言。是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受,視為一個標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣[2-3].

由于32F103ZET6芯片功能強(qiáng)大,IO端口眾多,為了方便在線對芯片IO端口,DAC、ADC功能以及PWM功能進(jìn)行配置,本文利用8.6軟件對STM32芯片進(jìn)行了平臺的設(shè)計。利用LabVIEW8.6軟件進(jìn)行平臺的開發(fā)可以起到縮短開發(fā)周期,增強(qiáng)程序可讀性和理解度以及界面更優(yōu)美的優(yōu)點(diǎn)。

1平臺的總體構(gòu)架

利用LabVIEW8.6軟件設(shè)計的調(diào)試平臺是按照下載到STM32F103ZET6芯片的程序進(jìn)行設(shè)計。STM32芯片的內(nèi)部程序已經(jīng)對USB傳輸控制、IO端口的控制、AD數(shù)據(jù)采集、DA輸出以及PWM輸出都進(jìn)行了定義。STM32系統(tǒng)利用自帶的USB2.0通信接口與調(diào)試平臺進(jìn)行通信[4].調(diào)試平臺主要由USB設(shè)備選擇模塊、IO端口控制模塊、AD數(shù)據(jù)采集模塊、DA輸出模塊以及PWM輸出模塊這五個部分組成,本平臺的總體結(jié)構(gòu)框圖如圖1所示。本文主要對調(diào)試平臺中USB設(shè)備選擇模塊來進(jìn)行研究和實(shí)現(xiàn)。

本文引用地址:http://cafeforensic.com/article/185514.htm

圖1 調(diào)試平臺的總體結(jié)構(gòu)框圖
圖1 調(diào)試平臺的總體結(jié)構(gòu)框圖

2 USB設(shè)備選擇模塊的設(shè)計
USB設(shè)備選擇模塊設(shè)計流程圖
圖2 USB設(shè)備選擇模塊設(shè)計流程圖

調(diào)試平臺與STM32F103ZET6之間是通過USB設(shè)備選擇模塊進(jìn)行通信,STM32芯片內(nèi)部已經(jīng)通過程序?qū)π酒腢SB2.0接口進(jìn)行了配置,USB設(shè)備選擇模塊通過調(diào)用VC編寫的USB通信DLL(動態(tài)鏈接庫)進(jìn)行LabVIEW編程來完成調(diào)試平臺與STM32芯片之間的通信。USB設(shè)備選擇模塊在整個調(diào)試平臺中主要起到進(jìn)行USB通信,監(jiān)測插入STM32設(shè)備數(shù)量,選擇插入STM32設(shè)備并且實(shí)時顯示當(dāng)前STM32設(shè)備使用狀況的作用,此模塊的設(shè)計流程框圖如圖2所示。USB設(shè)備選擇模塊通過LabVIEW8.6軟件來進(jìn)行設(shè)計,軟件設(shè)計程序的時候分為前面板和后面板兩部分,下面對此模塊的前后面板設(shè)計進(jìn)行具體的分析。

2.1前面板的設(shè)計

前面板是用來設(shè)計程序的顯示界面的,此USB設(shè)備選擇模塊的前面板如圖3所示。LabVIEW軟件的前面板設(shè)計主要是針對VI的各種控制量和顯示量的設(shè)計,基本包括了常用的各種控件。對面板的設(shè)計就如同搭積木一樣簡單——選擇用戶需要的控制量或顯示量將它們放在適當(dāng)?shù)奈恢蒙显偌由弦恍┖唵蔚膱D形及文字修飾就構(gòu)成了與實(shí)際儀器類似的面板[ 5 ].通過圖3可以看出通過調(diào)用控件面板中的列表框控件、字符串輸入與字符串顯示控件以及布爾控件,對它們的屬性進(jìn)行設(shè)置,然后進(jìn)行布局即構(gòu)成了USB設(shè)備選擇模塊的前面板。

左邊那個列表框控件用來顯示當(dāng)前連接設(shè)備列表,當(dāng)只連接一個STM32設(shè)備時,此框會出現(xiàn)設(shè)備0字樣,如果再連接一個STM32設(shè)備,此框接在下面會出現(xiàn)一個設(shè)備1字樣,隨著連接STM32設(shè)備的多少,列表框中會依次出現(xiàn)相應(yīng)的設(shè)備序列號。通過對列表框中設(shè)備序列號的選取,可以對相應(yīng)的STM32設(shè)備進(jìn)行在線配置和控制。比如:當(dāng)點(diǎn)擊設(shè)備0時,右邊設(shè)備ID中會顯示出設(shè)備0的ID號,根據(jù)STM32設(shè)備與調(diào)試平臺是否連接,設(shè)備連接狀態(tài)欄會顯示出已經(jīng)連接設(shè)備一個或者當(dāng)前沒有連接設(shè)備,同時當(dāng)前使用連接設(shè)備欄也會相應(yīng)的顯示設(shè)備0已打開,設(shè)備ID號×或者當(dāng)前沒有使用設(shè)備。同時通過配置新I D號控件可以對連接的STM32設(shè)備的ID號進(jìn)行更改,通過關(guān)閉USB控件可以隨時斷開相應(yīng)STM32設(shè)備與調(diào)試平臺之間的連接。

USB設(shè)備選擇模塊的前面板
圖3 USB設(shè)備選擇模塊的前面板
2.2 后面板設(shè)計
后面板是用來進(jìn)行程序設(shè)計的,通過后面板的圖形化程序的運(yùn)行來控制前面板控件以及前面板與STM32 設(shè)備之間的操作。后面板圖形化程序框圖主要通過調(diào)用V C 編寫的USB 通信DLL 配合后面板函數(shù)選板中編程函數(shù)中的相關(guān)函數(shù)以及前面板控件創(chuàng)建的屬性節(jié)點(diǎn)進(jìn)行實(shí)現(xiàn)[ 6 ] 。USB通信DLL 中包括16個函數(shù),此USB 設(shè)備選擇模塊中要用到獲取當(dāng)前連接的設(shè)備數(shù)目函數(shù)、打開設(shè)備函數(shù)、關(guān)閉設(shè)備函數(shù)、配置地址函數(shù)以及獲取設(shè)備的序列號函數(shù)這5 個函數(shù)。LabVIEW 軟件中程序的運(yùn)行是采用多線程數(shù)據(jù)流的模式,根據(jù)USB 設(shè)備選擇模塊的設(shè)計流程本圖形程序框圖被設(shè)計成兩個模塊,一個用于統(tǒng)計連接的STM32 設(shè)備數(shù)目,一個用于對選定的STM32 設(shè)備進(jìn)行操作。這兩個模塊是同時運(yùn)行的。

顯示插入STM32設(shè)備的程序框圖
圖4 顯示插入STM32設(shè)備的程序框圖

統(tǒng)計連接STM32設(shè)備數(shù)目模塊程序需先從函數(shù)選板中選取一個while循環(huán)結(jié)構(gòu),三重條件結(jié)構(gòu)來構(gòu)成此模塊的大框架,整體程序中最主要的是如何在列表框中顯示插入的STM32設(shè)備。為了實(shí)現(xiàn)這個功能本程序做了如下設(shè)計。首先選取函數(shù)選板互連接口中的調(diào)用庫函數(shù)節(jié)點(diǎn),雙擊此函數(shù)節(jié)點(diǎn),在庫名或路徑中調(diào)用USB通信DLL文件,接著在函數(shù)名中選擇獲取當(dāng)前連接的設(shè)備數(shù)目函數(shù),然后在參數(shù)選項(xiàng)中添加變量名并設(shè)定其參數(shù)類型,這樣就完成了獲取當(dāng)前連接的設(shè)備數(shù)目函數(shù)的調(diào)用。此函數(shù)能檢測到插入電腦USB口的STM32設(shè)備的個數(shù),設(shè)備檢測到之后還要讓它按照插入的先后順序顯示在列表框中,在這里通過一個條件結(jié)構(gòu)來完成。首先將獲取當(dāng)前連接的設(shè)備數(shù)目函數(shù)與一個等于0的比較函數(shù)進(jìn)行比較,如果等于0即為真,此時執(zhí)行沒有連接設(shè)備的程序,如果不為0即為假,此時執(zhí)行在列表框中按照順序顯示設(shè)備0、設(shè)備1??設(shè)備N - 1的程序。

列表框中顯示插入STM32設(shè)備的程序框圖如圖4所示。通過對程序的設(shè)計和優(yōu)化可以得到統(tǒng)計連接STM32設(shè)備數(shù)目模塊程序的程序框圖如圖5所示。

統(tǒng)計連接STM32設(shè)備數(shù)目模塊程序圖
圖5 統(tǒng)計連接STM32設(shè)備數(shù)目模塊程序圖

對選定的設(shè)備進(jìn)行操作程序框圖
圖6 對選定的設(shè)備進(jìn)行操作程序框圖

對選定的STM32設(shè)備進(jìn)行操作程序通過調(diào)用USB通信DLL文件中打開設(shè)備函數(shù)、關(guān)閉設(shè)備函數(shù)、配置地址函數(shù)以及獲取設(shè)備的序列號函數(shù)來進(jìn)行設(shè)計。此程序運(yùn)用了事件結(jié)構(gòu),通過設(shè)置顯示設(shè)備列表信息、配置新ID號、打開USB以及關(guān)閉USB事件以達(dá)到整體功能實(shí)現(xiàn)的效果,此程序的設(shè)計框圖如圖6所示。

3結(jié)束語

綜上所述應(yīng)用LabVIEW軟件設(shè)計虛擬儀器設(shè)備具有低成本、高效率和高靈活性的特點(diǎn)可以很好的實(shí)現(xiàn)遠(yuǎn)程控制和信息資源的共享。基于LabVIEW8.6設(shè)計出來的調(diào)試平臺,其框圖程序的可讀性較強(qiáng),界面友好,操作較方便。測試結(jié)果表明,該設(shè)計方案響應(yīng)速度快,此調(diào)試平臺和STM32為主控件的設(shè)備已經(jīng)應(yīng)用于工業(yè)控制當(dāng)中,運(yùn)行良好。