LABVIEW的通訊問題
解答: 串口通訊架構
每一個異步串行系統的核心都是一個UART(通用異步接收機/發送機)。UART不僅控制傳輸的數據,相應的電平,同時也控制通訊的速度。UART能夠存儲足夠的信息,所以保證了在電腦忙得時候,數據流也能連續傳輸。這對于同時處理大量任務的操作系統非常有幫助。下面附圖是理想串行通訊的示意。我們大部分的串行卡都有一個輸入輸出的FIFO(查看目錄了解詳細信息)。FIFO的數據可以通過串行驅動獲取。串行驅動會自動地把FIFO的數據傳輸到軟件的緩存,這個緩存是可以在應用軟件由用戶配置的(比如,在LabVIEW您可以使用Serial Port Init VI來設置緩存去大小)。讀接口的數據實際上包含從軟件緩存讀的過程。確認硬件操作的回路測試有三種方式確認串口的操作:LabVIEW,超級終端和LabWindows/CVI。這三種方式進行回路測試是把串口的發送和接受引腳短接。第一步描述短接引腳的過程。LabVIEW的處理寫在下面,而超級終端和LabWindows/CVI的過程在本文后面的鏈接里。對于LabVIEW建議使用如下步驟:
a,連接一根電纜到串口。最常用的RS-232電纜是9針或者25針(DB-9或者DB-25)。在電纜端把2、3引腳短接。這會把計算機發送數據的線連接到接收數據的線。一旦短接,BD-9的上一排變成【1 2=3 4 5】。
對于RS-485端口,電壓是差分的。因此,你必須短接TXD+和RXD+、TXD-和RXD-(對于DB-9電纜,連接pin4到pin8和pin5到pin9;對于模塊化接口,連接pin2到pin6和pin3到pin7;對于Combicon接頭,連接pin1到pin5和pin2到pin4。)確保你的軟件配置為4線模式
二、使用說明
在LabVIEW環境中使用串口與在其它開發環境中開發過程類似,基本的流程框圖如下。

先需要調用VISA Configure Serial Port完成串口參數的設置,包括串口資源分配、波特率、數據位、停止位、校驗位和流控等等。

如果初始化沒有問題,就可以使用這個串口進行數據收發。發送數據使用VISA Write,接收數據使用VISA Read。在接收數據之前需要使用VISA Bytes at Serial Port查詢當前串口接收緩沖區中的數據字節數,如果VISA Read要讀取的字節數大于緩沖區中的數據字節數,VISA Read操作將一直等待,直至Timeout或者緩沖區中的數據字節數達到要求的字節數。當然也可以分批讀取接收緩沖區或者只從中讀取一定字節的數據。

在某些特殊情況下,需要設置串口接收/發送緩沖區的大小,此時可以使用VISA Set I/O Buffer Size;而使用VISA Flush I/O Buffer則可以清空接收與發送緩沖區。在串口使用結束后,使用VISA Close結束與VISA resource name指定的串口之間的會話。

具體的例子可以參考:examplesinstrsmplserl.llb。
第二部分使用MSCOMM控件
在LabVIEW中使用MSCOMM控件,與在VC、VB中使用一樣。同樣可以使用中斷方式進行接收。具體的例子可以發索取。


首先通過LabVIEW的工具菜單“Tools >> Advanced >> Import ActiveX Controls”將Microsoft的串口控件-“Microsoft Communications Control,version 6.0”添加到LabVIEW環境中,存放在缺省路徑即可,這樣在User Controls Palette里面可以找到這個控件。

關鍵詞:
LABVIEW通訊問
評論