文/侯光輝
在工業應用中,新設備的開發都需要有說服力的理論依據和足夠的實驗數據來支撐,而實際開發過程中會遇到多樣的困難,這就需要前期的系統仿真,來驗證方案的正確性、可行性以及可能會存在的風險。本文以串行接口RS-232 為例闡述串行通信的工作過程。
系統分為上位機與下位機兩部分,上位機是通過LabVIEW 完成控制命令的下發,以及讀取下位機回傳的狀態,并顯示在窗口;下位機為電機控制系統,通過Proteus 仿真實現,該系統以單片機AT89S52 為控制器,ULN2003A 為電機驅動器,完成上位機命令的接收過程以及反饋電機的運動狀態,系統框架如圖1所示。

表1:串口管腳說明

圖1:系統流程示意圖

圖2:串口連線圖
串行接口(Serial Interface)簡稱串口,其傳遞方式為數據逐位按順序傳送。根據信息的傳送方向以及時間關系,串行通訊可以進一步分為單工、半雙工和全雙工三種。
串行接口按電氣標準及協議來分,包括RS-232-C、RS-422、RS485 等。RS-232 為 標準串口,是最常用的一種串行通訊接口,比較常見的為9 芯D 型插座(DB9),信號管腳如表1所示。RS-422 標準全稱是“平衡電壓數字接口電路的電氣特性”,典型的RS-422 是四線接口,RS-485 與RS-422 相仿。
串行通信連線規則:數據接收針腳與數據發送針腳彼此交叉相連,信號地對應相接。當使用一個串口時只需將2 線與3 線連接,可完成自發自收的過程,如圖2中a 所示;使用一對串口時(包含同一臺計算機或分別在不同計算機上),連接方法為2-3 交叉相連,5 線直連,如圖2中b 所示。

圖3:LabVIEW 上位機界面

圖4:電機仿真系統
串口通信參數包含:波特率、數據位、停止位和奇偶校驗等。其中波特率是衡量符號傳輸速率的參數,數據位是衡量通信中實際數據位的參數,停止位用于表示單個包的最后一位,奇偶校驗位是在串口通信中一種簡單的檢錯方式。
為解決串口資源不足的問題,可借助于軟件創建虛擬串口,和實際的串口工作機制一致。使用串口測試工具,測試串口的通信是否正常時需要注意以下兩點:
(1)通信的對應端口,需要保持其波特率、數據位、校驗位、停止位、流控制等設置一致。
(2)通信過程中,發送設置應該與顯示設置保持一致,不然會出現收發內容不一致的現象。
LabVIEW 是由美國國家儀器公司開發的圖形化程序開發平臺。采用數據流編程方式,數據流向決定了程序的執行順序。LabVIEW通過VISA 模塊能與大多數儀器總線連接,包括GPIB、USB、串口、PXI、VXI 和以太網等,因此被廣泛地應用于汽車、航空、半導體、電子設計生產、過程控制和生物醫學等各個領域。
利用LabVIEW 中VISA 模塊中的串口函數,編寫串口測試程序相對比較簡單,一般流程為:VISA 配置串口、VISA 寫入、VISA 讀取、VISA 關閉。
上位機界面如圖3所示,左側是控制電機的狀態,右側是讀取電機的實時狀態。程序采用雙線程方式,在實時讀取下位機回傳狀態的同時,滿足電機設置狀態的命令下發。需要注意的是在數據讀取的時候,需要對數據幀頭進行判斷,只有幀頭正確的前提下才能讀取并解析數據字節。
Proteus 軟件是英國Labcenter Electronics公司出版的EDA 工具軟件。常用于單片機等數字電路仿真,在編譯方面,支持IAR、Keil和MPLAB 等多種編譯器。
該仿真系統中以單片機AT89S52 為核心控制芯片,ULN2003A 為步進電機的驅動芯片,如圖4所示。其中P1 為Proteus 中的串口模塊,芯片AT89S52 由美國Atmel 公司生產的一款低功耗、高性能的8 位單片機,具有 32個外部雙向I/O 口,以及全雙工串行口等特點。ULN2003A 是一個7 路反向器電路,常用于電機、繼電器、顯示以及照明電路中的驅動部分。
同時運行Proteus 仿真文件與LabVIEW上位機文件。在上位機中設置好圈數后,點擊“正轉”或“反轉”,設置狀態的命令將會通過串口傳遞到下位機,在下位機中可以看到電機開始運轉,指示燈指示相應的狀態,“VIRTUAL TERMINAL”中看到數據的傳遞,同時上位機的右側“讀取狀態”中會有相應的狀態變化。狀態的實際變化與理論上的一致。
本文通過應用LabVIEW編寫上位機軟件,借助串口控制步進電機的過程,驗證工業中串行通信數據交換的傳輸過程,以及實現的方法。其中串口的連接部分是通過虛擬串口,其作用和實際串口一致。為應對現代化設備的高速率更新,以及項目前期的快速推進提供了一種快捷高效的論證結果的方法。