0引言

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

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

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

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

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

本文引用地址:http://butianyuan.cn/article/185514.htm

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

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

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

2.1前面板的設(shè)計(jì)

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

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

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

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

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

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

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

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

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

3結(jié)束語(yǔ)

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