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