基于NI-VISA的USB接口虛擬數(shù)據(jù)采集儀設(shè)計(jì)
本文給出的實(shí)例是當(dāng)單片機(jī)接收到上位機(jī)發(fā)送過來的“開始溫度采集”信號(hào)后,開始不斷啟動(dòng)溫度的采集和往上位機(jī)發(fā)送溫度數(shù)據(jù),直到收到上位機(jī)發(fā)送過來的“停止溫度采集”信號(hào)。本實(shí)例單片機(jī)端的主程序偽代碼如下:
本文引用地址:http://www.ex-cimer.com/article/248194.htm
在“中斷服務(wù)模塊”代碼中的端點(diǎn)2的OUT事務(wù)部分,讀取上位機(jī)發(fā)送過來的數(shù)據(jù),從該數(shù)據(jù)中獲取信息,刷新“開始溫度采集”的標(biāo)志,然后退出中斷。在單片機(jī)主程序里面可以根據(jù)對(duì)該標(biāo)志的判斷來決定開始采集溫度還是暫停采集溫度。
3 上位機(jī)軟件設(shè)計(jì)
上位機(jī)的USB設(shè)備的驅(qū)動(dòng)編寫采用的是NI-VISA圖形化的方法進(jìn)行設(shè)置,詳細(xì)步驟見參考文獻(xiàn)。驅(qū)動(dòng)編寫后,接下來就是采用LabVIEW 2012編寫上位機(jī)程序,上位機(jī)的運(yùn)行界面如圖2所示。
其關(guān)鍵程序代碼如下:
①打開USB資源。該部分代碼如圖3所示。其中關(guān)鍵函數(shù)是圖3中所示的“VISA打開”函數(shù)。
②點(diǎn)擊運(yùn)行界面上的“開始采集溫度”按鈕。實(shí)現(xiàn)上位機(jī)往CH372設(shè)備發(fā)送一個(gè)字符“1”。CH372設(shè)備接收后,觸發(fā)單片機(jī)中斷服務(wù)讀取該字符。讀取該字符后,刷新“開始采集溫度”的標(biāo)志。在單片機(jī)的主程序中,根據(jù)該標(biāo)志啟動(dòng)溫度采集和往上位機(jī)發(fā)送溫度數(shù)據(jù)。因此,上位機(jī)程序中必須含有往CH372設(shè)備寫發(fā)送數(shù)據(jù)的操作和讀來自CH372設(shè)備數(shù)據(jù)的操作,該部分代碼如圖4所示。其中的關(guān)鍵函數(shù)是圖4所示的“VISA寫入”函數(shù)和“VISA讀取”函數(shù)。
結(jié)語
該模板采用CH372芯片的內(nèi)置同件模式,屏蔽了USB通信的底層細(xì)節(jié),大大降低了USB通信的復(fù)雜度。同時(shí)對(duì)CH372的操作細(xì)節(jié)進(jìn)行了封裝,提供相應(yīng)接口給應(yīng)用層,開發(fā)者的設(shè)計(jì)只局限在應(yīng)用層,大大降低了開發(fā)時(shí)間和難度。采用NI-VISA的圖形化配置的方法快速開發(fā)了USB設(shè)備的驅(qū)動(dòng),采用LabVIEW里面提供的函數(shù)方便實(shí)現(xiàn)USB設(shè)備打開和讀寫操作。因此,該模板能實(shí)現(xiàn)USB接口的虛擬數(shù)據(jù)采集儀的快速設(shè)計(jì)。
pid控制相關(guān)文章:pid控制原理
模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
晶振相關(guān)文章:晶振原理
評(píng)論