翁子寒
(上海兒童醫(yī)學中心,上海 200127)
信息科技的不斷進步帶動著工業(yè)制造領域的轉型升級。表現(xiàn)為日趨擴大的有關測量的領域,更多的工業(yè)制造可以進行自動控制、動態(tài)監(jiān)控。單片機在汽車機車、光伏發(fā)電、柴油發(fā)電機、液壓支架、直升機自動飛行等多領域起到了重要作用[1-5]。這樣的態(tài)勢之下,原有的單個單片機芯片以及較小范圍內的芯片整合所構成的功能不能應對機械制造業(yè)內的發(fā)展需求。為滿足上述領域對工業(yè)控制的需求,進而實現(xiàn)大面積的過程監(jiān)控、數(shù)據(jù)采集和測算任務,有必要在各設備內形成一種通用的信號傳輸共享機制,構建靈活實用的分布式系統(tǒng)。此外,還需考慮規(guī)模化工業(yè)設備的復雜性、即時性特點,這些均需要物與物、物與PC之間的網(wǎng)絡相連以保障控制及監(jiān)控的穩(wěn)定高效。現(xiàn)有文獻較為分散,僅闡述其單個領域運用單片機所進行的實用探究,未能從理論上闡述在工業(yè)制造內有關控制、測量、監(jiān)控功能的通信機理[6-7]。據(jù)此本文構建連接到以太網(wǎng)、PC互連、單片機聯(lián)通的全方位的控制系統(tǒng),探究利用單片機芯片完成的通信模型的分析,在歸納概括相應總線協(xié)議標準、架構流程內容的基礎上,完成相應的硬件設計和軟件測試。
分布式控制系統(tǒng)的主要結構,如圖1所示。

圖1 網(wǎng)絡設備分層結構
由下往上分別是設備控制、操作監(jiān)控、信息管理功能[8]。上述功能的載體為經過概括整合的網(wǎng)絡設備或軟件功能的抽象,具體分配劃分如下。單片機分布在底端的位置,承擔對設備直接操控任務,依據(jù)上層PC發(fā)出的指令對下面的設備進行操作;處于中間位置聯(lián)通上下兩結構的是一些監(jiān)控軟件,對下將單片機反饋回來的信息進行傳遞,使上層客戶能對整體的運轉有準確的把控,同時通過對單片機的各類指令,能夠及時的調整下層管控的運行狀態(tài);最上面的信息管理是整個監(jiān)控機制的關鍵所在。借助于對由下往上逐級傳遞而來的參數(shù)、數(shù)據(jù)、反饋信息的處理,確保客戶能夠進行下一階段的指令發(fā)布。對應構建的通信電路圖,其通過特定的接口模塊連接到某個監(jiān)控PC上,如圖2所示。

圖2 通信模型
對于尋求特定狀態(tài)下與主動向上層設備發(fā)起通訊連接的狀況,需要利用CAN總線標準的多主通信模式。上述模式在控制系統(tǒng)內體現(xiàn)的較為明顯。可依據(jù)規(guī)則讓單片機最先向監(jiān)PC傳遞數(shù)據(jù)信息,進一步優(yōu)化監(jiān)控PC巡檢任務。涉及到軟件、測量單元、適配器等實體的監(jiān)控系統(tǒng)的協(xié)議層次結構,其中列出通信幀傳遞的方向和路徑[9],如圖3所示。

圖3 協(xié)議層次結構
監(jiān)控層和設備層傳輸信息所用數(shù)據(jù)幀格式與總線標準相關。RS-232協(xié)議調和上述兩層串行通信。圖4為RS-232協(xié)議幀結構[10],如圖4所示。

圖4 RS-232協(xié)議幀結構
給出了數(shù)據(jù)幀的字段說明,OPT與CTL編碼共同表征數(shù)據(jù)幀定義,體現(xiàn)串行通信協(xié)議各項功能。DATA字段大部分時間是通過CAN數(shù)據(jù)幀起作用,如表1所示。

表1 幀字段說明
上述串行通信協(xié)議具有五類功能,除去SEND以及EVENT之外的均是在調試過程中所需要的[11]。由此CAN總線網(wǎng)絡適配器可通過OPT、CTL字段不同的編碼方式明確預先設置好的動作,詳細的編碼細節(jié)不再敘述,如表2所示。

表2 串行通信協(xié)議功能
CAN應用層協(xié)議用于數(shù)據(jù)內容的共享與交互傳輸,保證遠程測量單元與監(jiān)控軟件能通過定義的專用設定控制與傳輸規(guī)則的接口,對應幀結構,如圖5所示。

圖5 CAN應用層協(xié)議幀結構
其較之RS-232多了基于拓撲結構和通信模式而增添的尋址功能,對應幀字段解釋,表現(xiàn)為參數(shù)和編碼相結合的命令形式[12],如表3所示。

表3 幀字段說明
主從式通信模式的基本特點是待連接的下層單片機收到來自于監(jiān)控PC的數(shù)據(jù)幀,對照收到數(shù)據(jù)內容所帶標識與本身所帶是否一致,以確定是否進行應答、執(zhí)行、丟棄重發(fā)等操作。在設備層和監(jiān)控層之間進行數(shù)據(jù)和信息的交互以完成上下行所用的數(shù)據(jù)幀。其通信時序圖如圖6所示。
RS-485接口利用Modbus總線協(xié)議進行控制器的信息傳輸,完成數(shù)目較多儀器的監(jiān)視和控制[13]。本文將TIA/EIA-485 充當物理接口通過RTU模式實現(xiàn)Modbus協(xié)議下的串口通信。RTU模式在波特率一定的情況下的吞吐量高于ASCII模式下的吞吐量[14]。如圖7所示。
接口電路作為設計,如圖8所示。
其中芯片SN75LBC 184[15]是RS-485類型的且單電源供電。為避免外圍電路干擾,同時隔斷接口芯片與單片機可能存在的點連接,利用芯片TLP521起到隔離作用[16]。RS-485中程序作用的機理是處理主PC發(fā)來的請求幀,從機應答重點在其中的請求功能碼、從機地址的辨別。
Modbus協(xié)議主從機通信流程如圖9所示。

圖6 主從機通信時序圖

圖7 RTU模式字符序列
所設通信系統(tǒng)與服務器進行信息交換中的程序是與協(xié)議功能和串口接收相關的兩部分,主要步驟如下所示。主機發(fā)送請求報文幀。從機獲取到該信息,開始逐步篩選幀內的字段,判別是否與本機地址一致,若對比不一致則即刻丟棄;對比一致檢驗判斷主機請求功能碼,在確保能提供該功能的情況下執(zhí)行動作,否則顯示錯誤信號;在這之后,調用CRC 16檢驗函數(shù),執(zhí)行差錯校驗任務,擬定差錯校驗值置于響應報文幀最后部分,將結果發(fā)送到主機。

圖8 RS-485接口電路設計

圖9 主從機通信流程圖
通過單片機通信接口1、2分別對應的RS-232、RS-485進行連接,以異步方式與儀器設備聯(lián)通,上述模塊為進行測試的串口模塊,本測試主要是驗證該接口的性能進而驗證所設計的通信模型的準確穩(wěn)定運行。在本測試中,其他設備處于在線聯(lián)通狀態(tài)下,相關設置如下:RS-232與PC直接聯(lián)通,RS-485經過轉換器格式變化后再輸入到單片機內。在PC顯示的界面上,依據(jù)串口調試工具來完成測試。測試中的串口設置和最終收到數(shù)據(jù)的結果顯示,如圖10所示。
說明單片機收到了模擬工具所傳輸?shù)臄?shù)據(jù)且將之轉發(fā)。單片機借助于RS-232、RS-485得到的調試工具發(fā)來的信息后,原封不動的返回獲取到的信息。串口調試工具接收結果處內容和發(fā)送操作框內的內容相同。檢測單片機內串口緩存區(qū)域,也可獲得與上述發(fā)送接收具一致的內容。這說明所構成的控制系統(tǒng)的通信模塊部分數(shù)據(jù)傳輸正常穩(wěn)定。
本文構建的通信模型內的傳輸功能大多分布在從機內,由從機向PC或服務器傳輸信息內容。根據(jù)上述設置,需驗證Modbus數(shù)據(jù)幀依據(jù)所設規(guī)范獲取信息。具體操作步驟如下,選取數(shù)量為2的RS-485總線的進行測試驗證,標記從機地址依次為01、02。流程第一步為檢驗從機是否與主機有效互連,確保轉換器的效力,同時保證其相互之間串行相接距離五米。第二步為在主PC上開啟Modscan32,設置為波特率為5200bps的串口功能,對02從機傳輸字符為“02 03 00 00 00 02 "的請求幀,隨后收到字符串為“02 03 20 14 10 25 08 13 49 07 00 10"。在上述動作發(fā)生后,向01從機傳輸如上述一致的請求幀,從機收到后回復主PC字符串“01 03 20 1410 26 123056010220”。上述流程進行完畢之后測試工具Modbuscan32內狀態(tài),確認相應信息的格式和接收狀況完好。如圖11所示。

圖10 發(fā)送和接收界面

圖11 Modbus測試情況
結果顯示,Modbus協(xié)議下數(shù)據(jù)傳輸未出現(xiàn)遺漏或差錯,且從機得到的信息格式和預先設置的相同,通信模塊內的RS-485總線通信性能穩(wěn)定性較高。
主要探究單片機在工業(yè)測量和監(jiān)控內的應用,對這一控制系統(tǒng)進行分析。在對應通信模型的基礎上從多主通信和主從通信兩類模式進行RS-232、RS - 485 和CAN 總線標準及協(xié)議的研究。重點對RS-485總線通信的硬件模塊和軟件流程進行設計,包括相關主從機的中斷子程序和單片機功能程序。最后,在此基礎上進行了Modbus RTU、串口功能測試,驗證了單片機在結合上述功能模塊構造出的通信模型的穩(wěn)定性和有效性。