基于LabVIEW的單片機脈沖發(fā)生器
3 上位機系統的設計
本文引用地址:http://dyxdggzs.com/article/173904.htmLabVIEW語(yǔ)言是美國國家儀器(NI)公司開(kāi)發(fā)的一種基于圖形化語(yǔ)言(G語(yǔ)言)的編程語(yǔ)言,利用該語(yǔ)言編寫(xiě)的模塊化程序,具有良好的界面,簡(jiǎn)單、直觀(guān),且易于理解、調試和維護。做成的虛擬儀表可以當作許多儀器設備來(lái)使用,其功能完全由用戶(hù)編程定義。另外,LabVIEW內還包含豐富的數據采集、數據信號分析以及控制等子程序,特別適用于數據采集、通信處理系統。
LabVIEW提供了很多現成的可供調用的函數庫,從底層的GPIB,VXI,PXI,串口數據采集板的控制子程序到大量的儀器驅動(dòng)程序;從基本的功能函數到高級分析庫,幾乎涵蓋了儀器設計中需要的所有函數。同時(shí),LabVIEW還支持用于網(wǎng)絡(luò )通訊的TCP/IP協(xié)議、動(dòng)態(tài)數據交換(DDE)和網(wǎng)絡(luò )化多媒體對象技術(shù)(ActiveX)等應用軟件標準。
3.1 VISA
LabVIEW提供了功能強大的VISA庫。VISA(Virtual Instrument Software Architecture,虛擬儀器軟件規范)是用于儀器編程的標準I/O函數庫及其相關(guān)規范的總稱(chēng)。VISA庫駐留于計算機系統中,完成計算機與儀器之間的連接,用以實(shí)現對儀器的程序控制,其實(shí)質(zhì)是用于虛擬儀器系統的標準的API(Application Programmer Inter-face,應用程序接口)。正因為如此,VISA可以連接不同標準的I/O設備。
VISA本身并不具備編程能力,惟他通過(guò)調用底層的驅動(dòng)程序來(lái)實(shí)現對儀器的編程。VISA的I/O軟件庫的源程序是惟一的,其與操作系統及編程語(yǔ)言無(wú)關(guān),只是提供了標準形式的API文件作為系統的輸出。
3.2 LabVIEW中利用VISA實(shí)現串口通信
在LabVIEW中使用串口的基本流程為:先調用VISA Configure Serial Port來(lái)完成串口參數的初始化設置,包括了串口的資源分配,波特率的設定,數據位、停止位、校驗位和流控制等。
當某一個(gè)串口初始化成功后,就可以使用該串口進(jìn)行數據的收發(fā)。使用VISA Write進(jìn)行數據的發(fā)送,使用VISA Read進(jìn)行數據的接收。在接收數據前,有時(shí)需要VISA Bytes at Serial Port查詢(xún)當前串口接收緩沖區中的數據字節數,如果VISA Read要讀取的字節數大于緩沖區中的數據字節數,VISA Read操作將一直等待,直至緩沖區中的數據字節數達到要求或是等待時(shí)間滿(mǎn)足VISA Configure Serial Port所設定的Timeout。
在對數據的連續性要求不高的時(shí)候,VISA Read也支持分批讀取接收緩沖區里的數據字節或者只是讀取其中的一部分字節。
![]() |
在某些特殊的情況下,可以利用VISA SET I/O Buffer Size設置串口接受/發(fā)送緩沖區的大小,使用VISAFlash I/O Buffer清空接收與發(fā)送緩沖區。
在串口使用結束后,使用VISA Close結束與VISAresource name所指定串口間的會(huì )話(huà)。
該LabVIEW程序框圖中調用了一個(gè)叫做change的子VI程序,該子VI程序的功能是將高低電平的脈沖寬度值,轉換成定時(shí)器的初始值,并且拼湊成一個(gè)4個(gè)字節的16進(jìn)制數,通過(guò)VISA Write模塊送入下位機。該子VI的程序框圖如圖5所示。
相關(guān)推薦技術(shù)專(zhuān)區
|
評論