新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于LabVIEW的單片機脈沖發生器

        基于LabVIEW的單片機脈沖發生器

        作者: 時間:2009-02-13 來源:網絡 收藏

        3 上位機系統的設計

        本文引用地址:http://www.104case.com/article/173904.htm

        語言是美國國家儀器(NI)公司開發的一種圖形化語言(G語言)的編程語言,利用該語言編寫的模塊化程序,具有良好的界面,簡單、直觀,且易于理解、調試和維護。做成的虛擬儀表可以當作許多儀器設備來使用,其功能完全由用戶編程定義。另外,內還包含豐富的數據采集、數據信號分析以及控制等子程序,特別適用于數據采集、通信處理系統。

        提供了很多現成的可供調用的函數庫,從底層的GPIB,VXI,PXI,串口數據采集板的控制子程序到大量的儀器驅動程序;從基本的功能函數到高級分析庫,幾乎涵蓋了儀器設計中需要的所有函數。同時,LabVIEW還支持用于網絡通訊的TCP/IP協議、動態數據交換(DDE)和網絡化多媒體對象技術(ActiveX)等應用軟件標準。

        3.1 VISA

        LabVIEW提供了功能強大的VISA庫。VISA(Virtual Instrument Software Architecture,虛擬儀器軟件規范)是用于儀器編程的標準I/O函數庫及其相關規范的總稱。VISA庫駐留于計算機系統中,完成計算機與儀器之間的連接,用以實現對儀器的程序控制,其實質是用于虛擬儀器系統的標準的API(Application Programmer Inter-face,應用程序接口)。正因為如此,VISA可以連接不同標準的I/O設備。

        VISA本身并不具備編程能力,惟他通過調用底層的驅動程序來實現對儀器的編程。VISA的I/O軟件庫的源程序是惟一的,其與操作系統及編程語言無關,只是提供了標準形式的API文件作為系統的輸出。

        3.2 LabVIEW中利用VISA實現串口通信

        在LabVIEW中使用串口的基本流程為:先調用VISA Configure Serial Port來完成串口參數的初始化設置,包括了串口的資源分配,波特率的設定,數據位、停止位、校驗位和流控制等。

        當某一個串口初始化成功后,就可以使用該串口進行數據的收發。使用VISA Write進行數據的發送,使用VISA Read進行數據的接收。在接收數據前,有時需要VISA Bytes at Serial Port查詢當前串口接收緩沖區中的數據字節數,如果VISA Read要讀取的字節數大于緩沖區中的數據字節數,VISA Read操作將一直等待,直至緩沖區中的數據字節數達到要求或是等待時間滿足VISA Configure Serial Port所設定的Timeout。

        在對數據的連續性要求不高的時候,VISA Read也支持分批讀取接收緩沖區里的數據字節或者只是讀取其中的一部分字節。

        在某些特殊的情況下,可以利用VISA SET I/O Buffer Size設置串口接受/發送緩沖區的大小,使用VISAFlash I/O Buffer清空接收與發送緩沖區。

        在串口使用結束后,使用VISA Close結束與VISAresource name所指定串口間的會話。

        該LabVIEW程序框圖中調用了一個叫做change的子VI程序,該子VI程序的功能是將高低電平的寬度值,轉換成定時器的初始值,并且拼湊成一個4個字節的16進制數,通過VISA Write模塊送入下位機。該子VI的程序框圖如圖5所示。

        <strike id="qyy2q"><rt id="qyy2q"></rt></strike>
          • <ul id="qyy2q"></ul>
            <tfoot id="qyy2q"></tfoot>

            評論


            相關推薦

            技術專區

            主站蜘蛛池模板: 孙吴县| 聂荣县| 宝清县| 会东县| 东阳市| 丹巴县| 依安县| 积石山| 区。| 陇西县| 凤翔县| 岳阳县| 贞丰县| 额济纳旗| 大余县| 大同县| 湖州市| 赤壁市| 柳州市| 沙湾县| 讷河市| 无锡市| 武强县| 昭苏县| 河津市| 册亨县| 景德镇市| 临高县| 洞头县| 海盐县| 安宁市| 巢湖市| 察哈| 虞城县| 葫芦岛市| 合阳县| 四子王旗| 红河县| 乌鲁木齐县| 渭南市| 垣曲县|
            <del id="qyy2q"></del>