劉璐,袁戰軍,郭靜
(陜西國際商貿學院信息與工程學院,陜西咸陽712046)
在現代工業不斷發展和進步的過程中,控制系統也越來越復雜,數據的處理量也在不斷的提高,但是單片機的處理能力是有限的,從而無法滿足控制需求,所以分布式系統逐漸備受重視。在分布式系統數據收集過程中主要是通過下位機實現,將收集數據實現進一步分析及處理是通過上位機實現[1]。因為單片機的價格較低,并且具有較高的可靠性,所以被廣泛應用到較為惡劣的工業環境中,分布式控制系統大部分都是使用單片機作為下位機。但是計算機的處理能力較強,并且具有良好的人際交互優勢,所以其被作為上位機使用[2]。單片機和計算機通信一般都是使用串口通信模式,其主要是利用數據信號線、控制線和地線等按位實現數據通信的方式。Labview屬于以數據流為基礎的圖形化編程環境,其被廣泛應用到控制領域和檢測方面。因為程序屬于圖形化框圖的形式,在人機交互過程中具有一定的優勢,并且其逐漸成為上位機的編程軟件[3]。基于此,本文就實現了基于Labview的計算機和單片機通信設計。
文中所設計的通信硬件主要包括4部分,圖1為計算機和單片機的線路設計結構,計算機屬于上位機,其主要目的就是實現數據的發送、接受及人機交互。單片機作為下位機,其主要目的就是實現串口數據接口和發送[4]。

圖1 計算機和單片機的線路設計結構
首先,通過單片機、電阻、晶振和電容創建單片機最小的系統,基于最小系統,根據MXA232芯片實現DB9串行端口的引出。使單片機串口到計算機和TXD中發送,并且接收到RXD的連接,單片機串口接收到計算機和RXD串口的連接對TXD相連進行發送,并且將兩者和單片機的I/O引腳相互連接[5]。圖2為串口通信顯示系統硬件的電路結構。

圖2 串口通信顯示系統硬件的電路結構
系統中的計算機屬于主控機,其主要作用就是控制下位單片機,實現下位機發送數據的存儲和處理,程序使用Labview進行編寫。下位單片機的主要目的就是實現工業現場的監控對象檢測及控制,程序使用匯編語言進行編寫。為了能夠有效提高通信過程中的可靠性,通信雙方要簽訂相應的通信協議,也就是雙方都需要遵守的約定。比如,數據傳輸格式、校驗格式及波特率等[6]。本文實現的通信協議主要為:使用RS-232異步通信,數據傳輸格式為11 bit。
圖3為單片機主函數的程序流程,圖4為單片機串口中斷函數的程序流程。其中的參數要和上位機參數設置相同,比如奇偶校驗、波特率等,通過對語句判斷,將標識位去除,全面解析上位機發送的數據,之后使數據能夠到串口緩沖區寄存器進行寫入。為了能夠將數據通過液晶充分的展現出來,就要根據液晶驅動時序圖實現數據、寫指令等一系列時序的設置,然后實現串口通信及液晶顯示時序的匹配。因為液晶要具有一定的時間,而且串口通信數據收發比較快,無法接收某個字節并且將此字節顯示處理,所以就要將接收數據到另外數組中通過中斷方式充分展現[7]。

圖3 單片機主函數的程序流程

圖4 單片機串口中斷函數的程序流程
Labview具有5個串行通信節點,其主要功能就是串口設置、串口讀、串口寫、串口緩存的檢測、中斷等多種功能,此節點都是在功能模板的I/O子模板中設置[8]。
串口通信節點使用過程比較簡單,并且容易理解,以下為其節點的定義、功能及使用方法。
1)初始化。圖5為初始化串口的設置,其主要功能就是實現數據位、波特率、奇偶校驗位、停止位等的設計,其在通過計算機對串口儀器設備進行控制的過程中會使用,在使用串口通信之前,要實現串口的配置,從而實現正常通信[9]。

圖5 初始化串口的設置
2)串口寫。圖6為串口寫的設置,此節點將需要送到數據發送到串口輸出緩存中。

圖6 串口寫的設置
3)檢測串口緩存字節數。圖7為檢測串口緩存字節數的設置,在使用此節點檢測到目前串口輸入緩存中已經具有的字節數,之后制定serial port read節點,通過串口輸入緩存實現字節數的讀取,從而保證以此就能夠將緩存數據全部讀取[10]。

圖7 檢測串口緩存字節數的設置
4)串口讀。圖8為串口讀的設置,通過串口緩存實現端端口制定長度數據的讀取。

圖8 串口讀的設置
5)串行通信設計。圖9為串行通信的設計。

圖9 串行通信的設計
在通過Labview開發環境創建程序的過程中,其主要包括程序板、程序調試和框圖程序的設計,前面板設計的主要目的就是實現良好人機交互界面的生成,用戶利用操作控件實現操作,并且實現輸入參數的設計,還能夠實現輸入量指示器的設計,從而顯示數據。框圖程序設計的主要目的就是實現數據端口、節點及連線的程序設計[11]。圖10為計算機和單片機通信的結構圖。

圖10 計算機和單片機通信的結構圖
以本文設計要求,在DDS信號源掃頻模式前面板設計窗口中利用添加控件板數值實現控件輸入、開關、按鈕等一系列的操作,利用DDS實現起始掃描及頻率截止、掃描周期、掃描步進等輸入數值,以此實現數據的控制。能夠對按鈕的形狀、位置、控制量精度、名稱進行調整,通過控件選板實現I/O口資源名稱控件的添加,從而能夠實現串口通信設備的安裝。并且根據不同的信號,實現跳頻、單頻工作模式前面板的設計,從而使操作更加便捷及簡單[12]。圖11為前面板的設計結構。
在實現框圖程序設計的過程中,要在框圖窗口面板中選擇滿足需求的節點圖表,之后在框圖中通過端子和其相互連接,這個時候要使用單片機為AD芯片控制寄存和幅度、頻率、駐留時間和步進等一系列的寄存器實現控制字信息的發送,在通過Labview實現設計單片機和計算機通信的時候,要使前面板輸入DDS掃頻起始頻率、掃頻步進、截止頻率、掃頻周期等十進制數值通過相應運算轉換成為十六進制數值,使用VISA寫入函數使緩沖區相應的十六進制數據到VISA資源名稱進行接口及設備的寫入,最后對單片機進行發送[12-13]。圖12為單片機和計算機框圖程序的設計。

圖12 單片機和計算機框圖程序的設計
現代串口通信程序開發過程中,在計算機操作系統中一般使用VC、VB等高級語言進行編寫,在使用其實現串口通信程序開發過程中,開發人員要面臨較為繁瑣的API函數編程,使用文本語言編寫串口通信較為復雜,并且花費時間比較長,所以在實現主機通信程序設計的過程中,都使用Labview圖形化語言進行編程,其能夠將高級語言函數封裝成為圖形功能模塊,圖標之間的相互連線能夠實現功能模塊的相互傳遞,其編程較為簡單,能夠直接使用[14]。
首先對VIS進行調用,從而設置串口參數,包括比特率、串口號及數據中的停止位、位數、數據流量控制及奇偶檢驗,假如初始化沒有問題就使用此串口實現數據收發,在串口結束使用過程中,通過VIS結束和相應串口進行對話[15]。圖13為VISA調用的工作流程。

圖13 VISA調用的工作流程
根據軟件和硬件的設計實現以Labview為基礎的計算機和單片機串口通信的設計,通過上位機實現數據123的發送,單片機在接收到數據之后到上位機進行返回,并且在液晶屏中實現數據的顯示,從而能夠實現計算機和單片機的數據通信[16]。
Labview屬于虛擬儀器開發的工具,圖形化編程界面能夠使開發人員便于開發理想虛擬儀器程序,并且Labview還具有較為強大的網絡功能,通過Labview開發更加便捷。本文實現Labview實現了計算機和單片機的通信設計,通過最后調試表示,本文所設計的通信能夠實現計算機數據的實時通信,并且提高通信的精準度。