基于NI-VISA的USB接口虛擬數據采集儀設計
本文給出的實(shí)例是當單片機接收到上位機發(fā)送過(guò)來(lái)的“開(kāi)始溫度采集”信號后,開(kāi)始不斷啟動(dòng)溫度的采集和往上位機發(fā)送溫度數據,直到收到上位機發(fā)送過(guò)來(lái)的“停止溫度采集”信號。本實(shí)例單片機端的主程序偽代碼如下:
本文引用地址:http://dyxdggzs.com/article/248194.htm


在“中斷服務(wù)模塊”代碼中的端點(diǎn)2的OUT事務(wù)部分,讀取上位機發(fā)送過(guò)來(lái)的數據,從該數據中獲取信息,刷新“開(kāi)始溫度采集”的標志,然后退出中斷。在單片機主程序里面可以根據對該標志的判斷來(lái)決定開(kāi)始采集溫度還是暫停采集溫度。
3 上位機軟件設計
上位機的USB設備的驅動(dòng)編寫(xiě)采用的是NI-VISA圖形化的方法進(jìn)行設置,詳細步驟見(jiàn)參考文獻。驅動(dòng)編寫(xiě)后,接下來(lái)就是采用LabVIEW 2012編寫(xiě)上位機程序,上位機的運行界面如圖2所示。

其關(guān)鍵程序代碼如下:
①打開(kāi)USB資源。該部分代碼如圖3所示。其中關(guān)鍵函數是圖3中所示的“VISA打開(kāi)”函數。

②點(diǎn)擊運行界面上的“開(kāi)始采集溫度”按鈕。實(shí)現上位機往CH372設備發(fā)送一個(gè)字符“1”。CH372設備接收后,觸發(fā)單片機中斷服務(wù)讀取該字符。讀取該字符后,刷新“開(kāi)始采集溫度”的標志。在單片機的主程序中,根據該標志啟動(dòng)溫度采集和往上位機發(fā)送溫度數據。因此,上位機程序中必須含有往CH372設備寫(xiě)發(fā)送數據的操作和讀來(lái)自CH372設備數據的操作,該部分代碼如圖4所示。其中的關(guān)鍵函數是圖4所示的“VISA寫(xiě)入”函數和“VISA讀取”函數。

結語(yǔ)
該模板采用CH372芯片的內置同件模式,屏蔽了USB通信的底層細節,大大降低了USB通信的復雜度。同時(shí)對CH372的操作細節進(jìn)行了封裝,提供相應接口給應用層,開(kāi)發(fā)者的設計只局限在應用層,大大降低了開(kāi)發(fā)時(shí)間和難度。采用NI-VISA的圖形化配置的方法快速開(kāi)發(fā)了USB設備的驅動(dòng),采用LabVIEW里面提供的函數方便實(shí)現USB設備打開(kāi)和讀寫(xiě)操作。因此,該模板能實(shí)現USB接口的虛擬數據采集儀的快速設計。
pid控制相關(guān)文章:pid控制原理
模擬信號相關(guān)文章:什么是模擬信號
晶振相關(guān)文章:晶振原理
評論