基于PROFIBUS的智能接口芯片SPC3及其應用
關鍵詞:AT89C52;PROFIBUS;SPC3;RS-485;DP協議
1 引言
SPC3是一種可以廣泛應用于工業現場總線PROFIBUS-DP的智能接口芯片。現場總線技術是一種實現現場級設備數字化通信的工業現場層網絡通信技術,它可用一條電纜將現場設備連接起來以完成現場設備控制、監測和遠程參數化等功能。
煙草行業的數據采集與監控系統的數據傳輸量大,實時性強,并要求在較短的時間內完成各種參數的設置和數據更新。如一個卷接機組生產速度每分鐘可達16000支,這樣,在高速運行過程中,機組要對生產的煙支重量、質量等進行實時在線檢測、計算判斷與控制,并采集整個機組的運行狀態、各傳感器執行器的工作狀況以及各分控制系統的實時數據,要求其控制系統必須具有較高的實時性、精確性、可靠性。因此,在卷接機組電控系統的設計中,筆者采用了PROFIBUS現場總線技術,其總控系統與各分系統的接口芯片采用了SPC3。
2 PROFIBUS總線和SPC3芯片簡介
2.1 PROFIBUS總線
PROFIBUS-DP是歐洲首屈一指的開放式現場總線系統,它的應用領域包括加工制造自動化、過程自動化和樓宇自動化。數據通訊采用標準RS-485接口,傳輸速率可達12Mbps,傳輸距離可達23.8km,而且響應時間短、抗干擾能力強。通過雙絞線或光纜進行數據傳輸,極易擴展,它不但能與執行器、傳感器接口進行連接,也可以通過各種專用集成電路(ASIC)和接口模塊來簡化設備的連接,最多可以連接125個節點。
2.2 智能芯片SPC3
根據傳輸數據量的大小和智能化程度,SIMENS公司提供了SPC2、SPC3、LSPM2等不同種類的芯片來連接PROFIBUS-DP主站與從站。這里筆者選用SPC3來完成本系統的設計。SPC3(SIMENS PROFIBUS CONTROLER )集成了完整的DP協議,其中包括方式寄存器、狀態寄存器、中斷寄存器、各種緩沖器指針和緩沖區等。該芯片內部含有1.5kB的 RAM,帶有11位地址線的并行8位接口,全部存儲器分為192段,每段8個字節,用戶可以立即尋址。SPC3支持所有8位處理機和微處理器。也可以自動完成“字節轉換”,這使得摩托羅拉處理器可以直接正確讀取16位值,通常讀和寫可通過兩個口(8位數據總線)來完成。
SPC3中集成有一個保護監視定時器(WATCHDOG),應用處理器出現故障時,PROFIBUS-DP 通信將被禁止,這樣就不至于危及外圍設備。作為SPC3的心臟,微處理器(MICRO SEQUENCER)控制著系統整個工作過程。在UART中,并行數據流和串行數據流完成互換。SPC3在發送第一個字符前會產生RTS(REQUEST-TO-SEND)信號,即請求發送信號。另外,SPC3還具有自動辨識波特率(9.6k~12Mbps)的功能。
3 在ZJ19E電控系統中的應用
ZJ19E卷接機組電控系統選擇西門子公司工控機作為主站,與觸摸屏組成人機界面?采用PROFIBUS總線技術和美國Wonderware公司的In-Touch7.0工業組態軟件實現與重量控制系統、質量檢測系統等從站的通訊與數據交換。在每個DP從站中都有SPC3芯片及其相關的硬件電路。主站上可以設置各種參數,如:機器運行速度、進料情況、煙支數量、煙支稀釋度上下限、煙支重量上下限等。從站參照這些設定值來控制機器的正常運轉;而機器動態、靜態的各種參數則由每個從站進行搜集整理并可在主站上一覽無余。中間的數據傳輸就是PROFIBUS的功勞了。每一個模塊(主、從站)的功能實施均可依靠軟件來完成。整個電控系統的框圖如圖1所示。
3.1 硬件設計
圖2所示是本系統的硬件框圖。AT89C52是采用先進的CMOS工藝制造的8位微控制器。它具有并行可編程功能的非易失性FLASH存儲器,是80C51的派生器件。該控制器具有運算速度快、兼容MCS51指令集的特點,可以閃速可編程、可擦除。它有三個16位定時/計數器。由于AT89C52內部集成有8kB Flash,因此本設計不需另外擴展ROM即可進行內部加密。
外接看門狗電路MAX705用于為微控制器提供保護,它能在單片機上電時可靠復位,并能在斷電時防止程序跑飛,從而避免SPC3中的數據被修改。另外,本系統也可采用手動復位,以便在調試或出現故障時使整套系統同時復位。
圖3
為了防止外界干擾對系統產生影響,單片機與下位機的通訊采用RS-485接口電路來進行光耦隔離。其收發接口采用HCPL2601、DHCPL7721及SN75176等進行隔離,以保證數據可靠傳輸,消除干擾。
SPC3有8根數據線和11根地址線,其中低8位地址線與數據線復用。外接不同的單片機會使SPC3一些管腳上的電平出現差異,其相應的意義也不同。這一點與別的接口片子有很大區別,SPC3與外接AT89C52 的連線見圖3所示。
3.2 軟件設計
SPC3的軟件設計主要包括AT89C52微控制器的軟件設計以及SPC3的初始化程序設計。通訊協議主要由上位機的客戶服務程序來完成,單片機AT89C52主要實現智能終端與協議識別,以及與下位機的通訊和數據轉存,同時完成下位機與雙口RAM的連接控制,保證數據轉換安全可靠的進行,避免通訊沖突。
a.單片機控制程序設計
單片機的控制程序由三部分組成:初始化部分用于完成單片機和所有外圍電路的初始化以及終端和協議的識別;主循環部分用于讀寫雙口RAM,同時對上位機進行檢查和計算以完成數據采集,進而實現數據的轉存和交換;而中斷服務程序則完成相應的中斷處理并執行雙口RAM的共同協議。
SPC3內部含有1.5kB的RAM(即000H―5FFH),利用外接單片機可以確定該RAM的確切地址。同時,根據SPC3產生的中斷,單片機還可對SPC3接收到的主站輸出數據進行轉存,以便從站讀取,此外也可以處理從站通過SPC3發給主站的數據等。SPC3實質上是主站與從站間的“通訊站”,即就是將主站發來的數據包解開送給從站,并將從站送來的數據打包給主站。詳見圖4的程序框圖(其中“輸入、輸出”是相對主站而言的)。
SPC3的初始化程序包括設置SPC3允許的中斷、寫入從站號碼和地址、設置SPC3中的各種寄存器和緩沖器等;而中斷程序主要處理PRM報文、CFG報文、SSA報文。由于這些報文來自主站,所以,SPC3的初始化需要主站的支持才能進行。不同的主站有不同的數據存取空間,因而分到每個從站的數據量也不同。這樣,在初始化SPC3時,配置的數據字節數也將相應改變。只有每個從站地址在同一個系統中是唯一的,主站與每一個從站才能準確無誤地通訊。
b. 上位機程序簡介
上位機的管理軟件主要通過客戶服務程序來完成協議轉換和存儲,以及數據的分析和顯示。單片機上傳的數據信息經過相應的協議校驗確認后,可用來完成各種參數的設置和數據的交換。在對傳輸數據進行識別時,單片機首先接收上位機客戶服務程序軟件下傳的校驗和,在經過確認是協議識別指令后,再上傳一個表示就緒的狀態幀,然后接收識別用的數據幀。在經過檢驗后,如果確認數據幀有錯,那么,系統將返回相應的狀態幀并等待上位機重新發送數據,而如果數據正確,則返回狀態幀,然后開始對終端單元進行識別。
由于每個PROFIBUS 總線上的主站、從站完全有可能是不同廠商的產品,因此,在組建系統時需要有設備描述文件,即GSD文件。GSD文件是用特定格式描述現場設備技術參數的ASCII文件,它是在專門軟件環境下編輯生成的,詳情可參見參考文獻。使用根據GSD文件生成的組態工具可以將不同廠商的設備集成在同一總線系統中。這就是智能型芯片正常工作的“環境”。一旦對含有SPC3的DP 從站生成GSD文件,就相當于該從站持有了一個通用“身份證”,這樣,這個從站就可以在任何DP主站下組建總線系統了。
4 結束語
本文詳盡地敘述了基于AT89C52的智能芯片SPC3的設計使用方法,由于AT89C52沒有外擴ROM和RAM,而將程序直接放在其內部閃存中,因此,該方法具有外圍電路簡單、與處理器并口兼容性好、時序控制簡單易懂、可靠性和性價比都比較高等優點。但應注意:SPC3的初始化是一個難點,也是一個比較重要的環節。
評論