基于C167的PROFlBUS-DP智能從站的設(shè)計(jì)
摘要:設(shè)計(jì)了基于C167的PROFIBUS-DP總線協(xié)議的智能從站。依據(jù)系統(tǒng)所要實(shí)現(xiàn)的功能,提出了使用PRO-FIBUS-DP協(xié)議智能接口芯片SPC3和軟件的實(shí)現(xiàn)方案。以C167與SPC3為核心設(shè)計(jì)了其軟硬件系統(tǒng),經(jīng)調(diào)試滿足了設(shè)計(jì)要求,目前已在實(shí)際工程中得到應(yīng)用。
關(guān)鍵詞:PROFIBUS-DP;智能從站;C167;SPC3
現(xiàn)場總線控制系統(tǒng)已逐漸發(fā)展成為繼集散控制系統(tǒng)之后的新一代控制系統(tǒng),在眾多的現(xiàn)場總線標(biāo)準(zhǔn)中,過程現(xiàn)場總線(PROFIBUS)標(biāo)準(zhǔn)以其國際化、開放式、不依賴設(shè)備生產(chǎn)商的種種優(yōu)勢,成為當(dāng)前爭相研究的對象。
PROFIBUS廣泛適用于制造業(yè)自動化、流程工業(yè)自動化和樓宇、交通電力等領(lǐng)域的自動化,是一種用于工廠自動化車間級監(jiān)控和現(xiàn)場設(shè)備層數(shù)據(jù)通信與控制的現(xiàn)場總線技術(shù)??蓪?shí)現(xiàn)現(xiàn)場設(shè)備層到車間級監(jiān)控的分散式數(shù)字控制和現(xiàn)場通信網(wǎng)絡(luò),從而為實(shí)現(xiàn)工廠綜合自動化和現(xiàn)場設(shè)備智能化提供了可行的解決方案。
與其它現(xiàn)場總線系統(tǒng)相比,PROFIBUS的優(yōu)勢在于具有穩(wěn)定的國際標(biāo)準(zhǔn)EN50170作保證,并經(jīng)實(shí)際應(yīng)用驗(yàn)證其具有普遍性。目前已應(yīng)用的領(lǐng)域包括加工制造、過程控制和自動化等。PROFIBUS-DP是開放的,與制造商無關(guān),無知識產(chǎn)權(quán)保護(hù)的標(biāo)準(zhǔn)。任何人都可以獲得這個標(biāo)準(zhǔn)并設(shè)計(jì)各自的軟硬件方案。原則上,PROFIBUS-DP協(xié)議在任何微處理機(jī)器上都可以實(shí)現(xiàn),在微處理器內(nèi)部或外部安裝串行通信接口即可完成。利用PROFIBUS-DP模型中的服務(wù)訪問點(diǎn),通過單片機(jī)編程來實(shí)現(xiàn)PROFIBUS-DP的狀態(tài)機(jī)制。
PROFIBUS協(xié)議結(jié)構(gòu)是根據(jù)IS07498國際標(biāo)準(zhǔn),以開放式系統(tǒng)互聯(lián)網(wǎng)絡(luò)(Open System Interconnection-OSI)作為參考模型的。該模型共有7層,文中所探討的PROFIBUS-DP系統(tǒng)定義了第1,2層和用戶接口。使用單片機(jī)C167和智能通訊芯片SPC3設(shè)計(jì)了PROFIBUS-DP智能從站的硬件電路及其控制軟件,該系統(tǒng)即將在西北電網(wǎng)與華北電網(wǎng)聯(lián)網(wǎng)的靈寶背靠背直流工程中投入使用。
1 PROFIBUS-DP系統(tǒng)配置和設(shè)備類型
PROFIBUS-DP允許構(gòu)成單主站或多主站系統(tǒng)。在同一總線上最多可連接126個站點(diǎn)。系統(tǒng)配置的描述包括:站數(shù)、站地址、輸入/輸出地址、輸入/輸出數(shù)據(jù)格式、診斷信息格式及所使用的總線參數(shù)。每個PROFIBUS-DP系統(tǒng)可包括以下幾種不同類型設(shè)備:
(1)一級DP主站(DPM1):一級DP主站是中央控制器,它在預(yù)定的信息周期內(nèi)與分散的站(如DP從站)交換信息,典型的DPM1如PLC或PC;
(2)二級DP主站(DPM2):二級DP主站是編程器、組態(tài)設(shè)備或操作面板,在DP系統(tǒng)組態(tài)操作時使用,完成系統(tǒng)操作和監(jiān)視目的;
(3)DP從站:DP從站是進(jìn)行輸入和輸出信息采集和發(fā)送的外圍設(shè)備(I/O設(shè)備、驅(qū)動器、HMI、閥門等);
(4)單主站系統(tǒng):在總線系統(tǒng)的運(yùn)行階段,只有一個活動主站;
(5)多主站系統(tǒng):總線上連有多個主站。這些主站與各自從站構(gòu)成相互獨(dú)立的子系統(tǒng)。每個子系統(tǒng)包括一個DPM1、指定的若干從站及可能的DPM2設(shè)備。
任何一個主站均可讀取DP從站的輸入/輸出映象,但只有一個DP主站允許對DP從站寫入數(shù)據(jù)。
DPM1和相關(guān)DP從站之間的用戶數(shù)據(jù)傳輸是由DPM1按照確定的遞歸順序自動進(jìn)行。在對總線系統(tǒng)進(jìn)行組態(tài)時,用戶對DP從站與DPM1的關(guān)系作出規(guī)定,確定哪些DP從站被納入信息交換的循環(huán)周期,哪些被排斥在外。
DPM1和DP從站間的數(shù)據(jù)傳送分3個階段:參數(shù)設(shè)定、組態(tài)、數(shù)據(jù)交換。在參數(shù)設(shè)定階段,每個從站將自己的實(shí)際組態(tài)數(shù)據(jù)與從DPM1接收到的組態(tài)數(shù)據(jù)進(jìn)行比較。只有當(dāng)實(shí)際數(shù)據(jù)與所需的組態(tài)數(shù)據(jù)相匹配時,DP從站才進(jìn)入用戶數(shù)據(jù)傳輸階段。因此,設(shè)備類型、數(shù)據(jù)格式、長度以及輸入輸出數(shù)量必須與實(shí)際組態(tài)一致。
2 電路主要器件介紹
從站的硬件電路采用西門子C167單片機(jī)和智能通訊芯片SPC3。
2.1 C167微控制芯片
C167SR是西門子C16X系列第二代CMOS微處理器。它兼容16位CPU的高性能(高達(dá)1 000萬條指令每秒),并具有智能外圍設(shè)備擴(kuò)展功能。它的主要優(yōu)點(diǎn)體現(xiàn)在:增強(qiáng)了IO口的應(yīng)用,提供了附加的內(nèi)部高速RAM,CAN總線控制器和鎖相環(huán)PLL等功能;繼承了RISC處理器的優(yōu)點(diǎn),而克服了CISC處理器在嵌入式應(yīng)用中的瓶頸;在指令處理上,采用4級指令流水線管道結(jié)構(gòu);在存儲管理上,統(tǒng)一線性地址空間可達(dá)16 MB,具有段代碼、頁數(shù)據(jù)式管理機(jī)制;采用寄存器池,池間的切換時間只要80 ns;16位乘法400 ns,32位除法800 ns,中斷響應(yīng)時間最長400 ns;外部事件控制器PEC服務(wù)具有類似DMA的功能,可實(shí)現(xiàn)存儲器與外設(shè)之間的高速數(shù)據(jù)傳輸;豐富的在片外設(shè):2 kB RAM、10路A/D、111路I/O、5個定時器/計(jì)數(shù)器、16個比較/捕獲單元、2個串行通信接口、在片的Watchdog等。
CPU的內(nèi)核是由一個4級流水線指令管道,一個16位的算術(shù)邏輯單元以及指示作用的SFR構(gòu)成。另外還專有做乘法,除法運(yùn)算的硬件單元,一個位屏蔽器,一個移位器?;谶@些硬件保證,大多數(shù)C167的指令在20 MHz時鐘頻率下,只需要1個時鐘周期,也就是100 ns就能完成。例如,移位和循環(huán)指令通常只要一個時鐘周期,而和移位的數(shù)目沒關(guān)系。被優(yōu)化的乘除法指令使得執(zhí)行速度快了很多,它分成了2個部分:16×16位的乘法需要5個周期,32/16位的除法需要10個周期。另一個管道優(yōu)化,即所謂的跳緩存,它將重復(fù)的循環(huán)跳轉(zhuǎn)指令周期由2個減到1個。CPU可以對位于片上RAM的特殊寄存器進(jìn)行16位的直接處理。CPU每訪問一次寄存器組,其基址由索引指針寄存器指定。寄存器組數(shù)目僅僅受限于內(nèi)部RAM的可用空間。對于簡單的參數(shù)傳遞,一組寄存器可能會覆蓋其它數(shù)據(jù)。最高達(dá)2 kB的系統(tǒng)堆棧用來存儲臨時數(shù)據(jù)。此堆棧也是位于片上RAM,CPU對其通過堆棧指針寄存器進(jìn)行訪問。兩個獨(dú)立的特殊功能寄存器,STKOV以及STKUN,通過比較堆棧內(nèi)的值來檢測被訪問的堆棧是否上溢和下溢,其基本功能模塊,如圖l所示。
2.2 SPC3智能通訊芯片
SPC3是用于從站開發(fā)的智能通訊芯片,它支持PROFIBUS-DP協(xié)議。SPC3內(nèi)部集成了1.5 kB的雙口RAM,其地址空間為00H~5FFH。以功能區(qū)分,可分為3個區(qū)域。
內(nèi)部鎖存器/寄存器位于前21個地址。主要包括:方式寄存器1和寄存器O,中斷控制寄存器,狀態(tài)寄存器,以及輸入緩沖器、輸出緩沖器和診斷緩沖器各自的狀態(tài)寄存器。從016H~03FH為配置參數(shù)區(qū)域,各種BUF的指針與長度(包括本站地址、地址允許改變變量、用戶看門狗值和設(shè)備標(biāo)識號)在此區(qū)域設(shè)置。整個緩沖器結(jié)構(gòu)就是基于這些參數(shù)寫的。用戶緩沖器區(qū)域位于從40H開始的單元,用來接收來自IO應(yīng)用和主站的數(shù)據(jù)。
SPC3有14個中斷源,各個中斷源沒有優(yōu)先級,而是通過中斷屏蔽寄存器和中斷響應(yīng)寄存器實(shí)現(xiàn)中斷。診斷分為外部診斷和狀態(tài)診斷,從站地址可以是固定的,也可以由主站設(shè)置。用戶看門狗計(jì)數(shù)器是一個16位的內(nèi)部存儲器單元。初始值由“RUserWdValue”單元給定,每接收一個數(shù)據(jù)報文,計(jì)數(shù)器減1。當(dāng)減到0000H時,SPC3進(jìn)入“等待參數(shù)化”狀態(tài),DP狀態(tài)機(jī)制執(zhí)行“離開主站”命令。另外,SPC3內(nèi)部還集成了一個看門狗計(jì)數(shù)器,可工作于3種不同的狀態(tài):波特率監(jiān)測、波特率控制和DP控制。SPC3還能自動標(biāo)識總線波特率,范圍為0.009 6~12 MHz。
3 PROFIBUS-DP智能從站設(shè)計(jì)
3.1 系統(tǒng)設(shè)計(jì)
從站與主站之間的通信連接示意圖,如圖2所示。圖2描述了主站與從站的連接。可以看出SPC3作為一個重要的媒介連接主站與從站,其數(shù)據(jù)交換的標(biāo)準(zhǔn)為RS485。
3.2 硬件電路設(shè)計(jì)
圖3為C167與SPC3的接口電路。SPC3通過一塊內(nèi)置1.5 kB雙口RAM與CPU接口,它支持多種CPU。SPC3中雙口RAM的地址為1000H~15FFH。
SPC3的AB7~AB0管腳為地址總線,DB7~DB0管腳為數(shù)據(jù)總線,ALE管腳是地址鎖存使能,XWR管腳為寫信號,XRD管腳為讀信號,XINT管腳用于進(jìn)行中斷控制,RESET管腳的功能是接CPU RESET輸入,CLK管腳為時鐘脈沖輸入,所接的時鐘頻率為48 MHz。SPC3的右側(cè)XCS管腳的作用是進(jìn)行片選,XTEST0和XTEST1管腳必須接5 V電源,DIVIDER管腳是用來設(shè)置CLKOUT的分頻系數(shù),AB8~AB10管腳為地址總線,VDD接5 V電源,VSS接地,CLKOUT管腳為分頻時鐘脈沖輸出,XDATAEXCH管腳為PROFIBUS-DP的數(shù)據(jù)交換狀態(tài),XREADY/XDTACK管腳為外部CPU的準(zhǔn)備好信號,TXD管腳是串行發(fā)送端口,RXD管腳為串行接收端口。
C167的P27~P20管腳為地址總線,P07~P00管腳為數(shù)據(jù)總線,ALE管腳的功能是地址鎖存使能;WR管腳的用途是外部數(shù)據(jù)存儲器寫信號,低電平有效;RD管腳的用途是外部數(shù)據(jù)存儲器讀信號,低電平有效;INT0管腳為外部中斷0,低電平有效;RST管腳的用途是復(fù)位,當(dāng)晶振在運(yùn)行中,只要復(fù)位管腳出現(xiàn)2個機(jī)器周期高電平即可復(fù)位,內(nèi)部有擴(kuò)散電阻連接到VSS,僅需要外接一個電容到VCC即可實(shí)現(xiàn)上電復(fù)位。
圖3中的模塊1為光電隔離,模塊2為驅(qū)動器,SPC3過光電隔離后與總線驅(qū)動器相連,具體的連接電路,如圖4所示。
圖4為PROFIBUS-DP的RS-485傳輸接口電路。其中,M和2M為不同的電源地,P5,2P5為兩組不共地的+5 V電源。74HCl32為施密特與非門。RS485總線驅(qū)動器一側(cè)與9針D型插座相連,另一側(cè)通過光耦與SPC3相連。HCPL-0601和HCPL-7721是能夠滿足12 MB·s-1波特率的光耦,采用光電隔離主要是為了消除來自外界的干擾。
3.3 軟件設(shè)計(jì)
由于SPC3集成了完整的PROFIBUS-DP協(xié)議,因此C167不用參與處理PROFIBUS-DP狀態(tài)機(jī),P89C61X2的主要任務(wù)就是根據(jù)SPC3產(chǎn)生的中斷,對SPC3接受到的主站發(fā)出的輸出數(shù)據(jù)轉(zhuǎn)存,組織要通過SPC3發(fā)給主站的數(shù)據(jù),并根據(jù)要求組織外部診斷等。
主程序和中斷程序的流程圖,分別如圖5和圖6所示。
主程序中的SPC3初始化包括設(shè)置SPC3允許的中斷,寫入從站識別號和地址,設(shè)置SPC3方式寄存器,設(shè)置診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配置緩沖區(qū)、地址緩沖區(qū)和初始長度,并根據(jù)以上初始值求出各個緩沖區(qū)的指針及輔助緩沖區(qū)的指針。根據(jù)傳輸?shù)臄?shù)據(jù)長度,確定輸出緩沖區(qū),輸入緩沖區(qū)和指針。
中斷程序主要用來處理PRM報文,CFG報文和SSA報文。
另外,PROFIBUS設(shè)備具有不同的性能特點(diǎn),為達(dá)到PROFIBUS簡單的即插即用配置,PROFIBUS設(shè)備的特性均在電子設(shè)備數(shù)據(jù)庫文件(GSD)中具體說明。標(biāo)準(zhǔn)化的GSD數(shù)據(jù)將通信擴(kuò)大到操作員控制級,使用基于GSD的組態(tài)工具可將不同廠商生產(chǎn)的設(shè)備集成在同一總線系統(tǒng)中,簡單而且用戶界面友好。
4 結(jié)束語
PROFIBUS-DP開發(fā)器件的選擇比較靈活。在對數(shù)據(jù)傳輸速度有較高要求的應(yīng)用場合,必須根據(jù)應(yīng)用需求選擇器件,尤其是對處理器、RS485接口器件和收發(fā)器芯片更要慎重選擇,這是快速數(shù)據(jù)傳輸?shù)那疤帷?br />