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