采用SPC3協(xié)議芯片設計PROFIBUS-DP智能從站
引言
國際電工委員會IEC在2000年1月4日投票通過了現(xiàn)場總線IEC61158國際標準,IEC61158包括了7種現(xiàn)場總線標準,PROFIBUS作為類型3正式加入IEC61158。PROFIRUS協(xié)議的結構是以ISO7498國際標準開放式系統(tǒng)互連網(wǎng)絡參考模型OSI為基礎的。
PRO FIBUS由二三部分組成:PROFIBUSFMS、PROFIBus-DP和PROFIBUS―PA。FMS主要用于車間級控制網(wǎng)絡,是一種令牌結構和實時多主網(wǎng)絡,DP是一種高速的低成本通信連接,用于設備級控制系統(tǒng)與分散式通信;PA是專為過程化而設計的,具有本征安全規(guī)范。在這里,主要介紹PROFIBUS-DP(Distributed Process)協(xié)議。 PROFIBUS―DP使用了0SI參考模型的第一層、第二層和用戶接口,第三層到第七層未定義。PROFIBUS―DP主要應用于傳感器和執(zhí)行器級的高速數(shù)據(jù)傳輸.它以DlN 19245的第一部分為基礎,主站周期性地讀取從站的輸入信息并周期地向從站發(fā)送輸出信息。它的響應時何從幾百μ s~幾百m s,數(shù)據(jù)傳輸速率為9 6 k b p s~12Mbps,傳輸?shù)臄?shù)據(jù)容量為每個報文多達244字節(jié).傳輸介質為屏蔽雙絞線或光纖等。
本文主要討論采用slemens的從站協(xié)議芯片開發(fā)智能從站的方法.智能從站的框圖如圖l所示。其中包括微控制器、看門狗及EEPROM、SPC3、光電隔離、驅動器和撥碼開關等。
1 SPC3協(xié)議專用芯片
1.1 SPC3主要技術指標
◇支持PROFIBUS―DP協(xié)議;
◇最大數(shù)據(jù)傳輸速率12Mbps,可自動檢測并調整數(shù) 據(jù)傳輸速率;
◇與80c32、80X86、80C165、80C166、80C167和HCII、HCl6、HC916系列芯片兼容;
◇44引腳的PQFP封裝;
◇可獨立處理PROFIBUS―DP通信協(xié)議.
◇集成的看門狗(WDT).
◇外部時鐘接口24MHz或48MHz;
◇5V直流供電。
1.2 SPC3內部結構介紹
SPC3是用于從站開發(fā)的智能逋信芯片.它支持PROFIBUS-DP協(xié)議。SPC3內部集成了1.5KB的雙口RAM。內部鎖存囂/寄存器位于前21個地址單元。主要包括方式寄存器l、0.中斷控制寄存器.狀態(tài)寄存器以及輸入、輸出緩沖器和診斷緩沖器各宦的狀態(tài)寄存器。
組織參數(shù)位于RAM中從1 6H開始的單元。整個緩沖器結構(屬于DP―sAPs)就是基于這些參數(shù)來寫的。此外,普通參數(shù)在這些單元設置數(shù)據(jù)(包括站地址、地址允許改變、用戶看門狗值和設備標識號等).狀態(tài)顯示存儲在這些單元(通用控制命令等)。
用戶緩沖器區(qū)域位于從40H開始的單元。其中,方式寄存器O設置PROFlBUS―DP的操作方式,如SYNC、FREEZE等。方式寄存器0必須在離線狀態(tài)進行賦值,一旦上電,就不能修改。方式寄存器1在上電后可對每個位進行置位和復位。
SPC3有1 4個中斷源.各個中斷源沒有優(yōu)先級-而是通過中斷屏蔽寄存器和中斷響應寄存器來實現(xiàn)中斷的。但“新參數(shù)數(shù)據(jù)“中斷和“新配置數(shù)據(jù)”中斷可以不用中斷響應寄存器響應。中斷信號的極性由用戶設定。
診斷分為外部診斷和狀態(tài)診斷。若是外部診斷,用戶必須在從第7字節(jié)開始的單元中寫入用戶數(shù)據(jù)。若是狀態(tài)診斷,則只需在第l字節(jié)寫入00H.而不必填寫從第7字節(jié)開始的用戶數(shù)據(jù)。
從站地址號可以是固定的,也可以由主站設置。若設站地址號不能改變,則在初始化階段,令“Real―No―Add―change=0FFH" "R-SSA BUF-PTR=00H”。
用戶看門狗計數(shù)器是l 6位的內部存儲器單元, 初始值由R user Wd_Value單元給定。每接收1個數(shù)據(jù)報文,計數(shù)器減l。當減到0000H時,SPC3就進入“等待參數(shù)化”狀態(tài),DP狀態(tài)機執(zhí)行“離開主站”命令。
另外SPC3內部還集成了1個看門狗計數(shù)器.可工作于3種不同的狀態(tài) 波特率監(jiān)測、波特率控制和DP控制。SPC3能自動標識總線波特率(9.6kbps~12Mbps)。
1.3 SPC3硬件電路設計
CPU使用AT89S52,采用的是INTEL工作方式,CPU與SPC3的接口電路如圖2所示。對AT89S52而言,SPC3相當于它擴展的一個外部RAM。而且,SPC3有內部地址解碼電路.所以,AB8~AB10接地。此時DB7~DB0是數(shù)據(jù)地址復用總線.可以產(chǎn)生低8位的數(shù)據(jù)和地址,高4位地址由AB0~AB3產(chǎn)生,AB4~AB7產(chǎn)生SPC3的片選信號.只有AB4~AB7同時為0時才選中SPC3。在圖2中,SPC3的片選信號是1000H,SPC3的內部RAM位于1000H~l5FFH單元。本從站的開發(fā)采用的是匯編語言編程.占用的內存單元少,不需擴展外部RAM。如果使用C語言編程,則必須擴展足夠的RAM或者使用帶有足夠RAM的CPU。
從圖2中可以看出,RS485總線驅動器一側與9針D型插鷹相連。另一側通過光耦與SPC3相連。目前,能滿足12M bp s波特率的驅動芯片有sN 6 5AL S1 7 6、SN65ALSI 176、SN75ASLl76、ADMl一485、SN65HVDl 176等,采用光電隔離主要是為了消除來自外界的干擾,能滿足12Mbps波特率的光耦有HCPL7 720、HCPL0720HCPL772l、HCPL072l、HCPL7710等。另外要求電源也要采取隔離措施.如加變壓器隔離或采用DC―DC模塊。
2 PROFIBUS―DP的狀態(tài)機
根據(jù)PROFIBUS―DP協(xié)議可知,PROFIBUS―DP的狀態(tài)機描述DP從站在每種情況下的行為以保證它符合一致性.SPC3內部集成了狀態(tài)機.用戶對狀態(tài)機的控制是很有限的。PROFIBUS―DP的狀態(tài)機如圖3所示
在Power_On狀態(tài),從站能從2類主站接收Set Slave-Add報文來改變它的地址,然后從站進入Wail_P rm狀態(tài),等待參數(shù)化.此狀態(tài)從站還可以接收Get_Cfg和Slave_Dlag報文。參數(shù)化完成后.從站進人wait_Cfg狀態(tài),等待Chk_Cfg報文.另外還可以接收Slave_Diag、Set_Prm和Get_Cfg報文。如果Chk_Cfg完成后,從站將進入Data_Exch狀態(tài).進行數(shù)據(jù)通信。此時從站還可接收Writing_Outputs、Reading_lnputs、Global_Control、Slave Diag、Chk_Diag和Get_Cfg報文,若組態(tài)和數(shù)據(jù)交換不成功.就會返回到參數(shù)化階段。Wait_Prm在對從站進行組態(tài)時,必須要編寫它的GSD文件.所謂GSD就是為了將不同的PROFIBUS產(chǎn)品集成在一起而以電子設備數(shù)據(jù)庫文件方式提供的功能函數(shù)(如I/O點數(shù)、診斷信息、波特率、時間監(jiān)視等)。只有GSD文件在COMPROFlBUS組態(tài)軟件下才能對從站組態(tài),否則主站無法識別從站。
3 軟件設計
對SPC3的軟件操作主要包括兩個部分:SPC3的初始化和SPC3的中斷處理。主程序和中斷程序流程圖分別如圖4和圖5所示。
SPC3的初始化程序應放在主程序的前面,而中斷處理程序完成CPU對SPC3中斷輸出的響應。 SPC3上電復位之后.在正常工作之前必須進行初始化,以配置各個寄存器。中斷處理程序用于處理SPC3發(fā)生的各種事件,這些事件包括 新的參數(shù)報文事件:全局控制命令報文事件.進入或退出數(shù)據(jù)交換狀態(tài)事件,新的配置報文事件:新的地址設置報文事件;監(jiān)測到波特率事件和看門狗溢出事件。數(shù)據(jù)輸入和輸出處理(輸入輸出相對于主站而言)及用戶診斷數(shù)據(jù)輸入可以放在應用程序主循環(huán)中。在一個應用循環(huán)申,由應用來刷新輸入BUF中的數(shù)據(jù).保障所有輸入數(shù)據(jù)是最新的更新數(shù)據(jù)。而SPC3在接收到由PROFIBUS主站傳送的不同輸出數(shù)據(jù)時.會產(chǎn)生輸出標志位(同樣位于中斷請求字單元),CPU通過在應用循環(huán)中輪詢標志位來進行接收主站數(shù)據(jù)。對于特定應用的診斷信息.需要實時傳遞到主站。主應用程序在應用循環(huán)中判斷是否有可用的診斷BUF存在一當有空閑BUF時應用程序輸入診斷信息,并請求更新。對于實時性要求嚴格的系統(tǒng),應采用中斷方式進行輸出數(shù)據(jù)和診斷數(shù)據(jù)處理。
4 GSD文件簡介
PRO FlBUS設備具有不同的性能特點,為達到PROFIBUS簡單的即插即用配置.PROFIBUS設備的特性均在電子設備數(shù)據(jù)庫文件(GSD)中具體說明。標準化的GSD數(shù)據(jù)將通信擴大到操作員控制級。使用基于GSD的組態(tài)工具可將不同廠商生產(chǎn)的設備集成在同一總線系統(tǒng)中.既簡單又是對用戶友好的。
4.1 GSD文件的組成
GSD文件可以分為三個部分:
◆一般規(guī)范 這部分包括生產(chǎn)廠商和設備的名稱,硬件和軟件的版本狀況,支持的波特率一可能的監(jiān)視時間問隔以及總線插頭的信號分配;
◆與DP主站有關的規(guī)范這部分包括只運用于DP主站的各項參數(shù)(如連接從站的最多臺數(shù)或上裝和下裝能力)。這一部分對從站沒有規(guī)定;
◆與DP從站有關的規(guī)范 這部分包括與從站有關的一切規(guī)范(如輸入/輸出通道的數(shù)量和類型、中斷測試的規(guī)范以及輸入/輸出數(shù)據(jù)一致性的信息)。
4.2 GSD文件格式
GSD文件是ASCII文件.可以用任何一種ASCII編輯囂編輯 如計事本、UltraEdit等,也可使用PROFIBus用戶組織提供的編輯程序GSDEdit。GSD文件是由若干行組成,每行都用一個關鍵字開頭,包括關鍵字及參數(shù)(無符號數(shù)或字符串)兩部分。GSD文件中的關鍵字可以是標準關鍵字(在PROFIBUS標準中定義)或自定義關鍵字。標準關鍵字可以被PROFIBUS的任何組態(tài)工具所識別,而自定義 關鍵字只能被特定的組態(tài)工具識別。
一個GSD文件的例子如下。
#Pr0fibus DP ;DP設備的GSD文件均以此關鍵存在
GSD Revision=1 ;GSD文件版本
VendorName="Meglev" ;設備制造商
Model Name="DP Slave" ;產(chǎn)品名稱,產(chǎn)品版本
Revision="Version 01" ;產(chǎn)品版本號(可選)
RevisionNtmber=01 ;產(chǎn)品識別號
IdemNumber=0x01 ;協(xié)議類型(表示DP)
ProtocoI Ident=0 ;站類型(0表示從站)
StationType=0 ;不支持FMS.純DP從站
FMS Supp=0 ;硬件版本
Hardware Realease="HW1.0" ;軟件版本
Soltware Realease="SWl.0" ;支持9.6kbps波特率
9.6 supp=1 ;支持19.2kbps波特率
19.2 supp=l ;9.6kbps時最大延遲時間
MaxTsdr 9.6=60 ;19.2kbps時最大延遲時間
MaxTsdrl9.2=60 ;不提供RTS信號
RepeaterCtrl sig=0 ;不提供24V電壓
24VPins=0 ;采用的解決方案
Implementation Type="SPC3" ;不支持鎖定模式
FreezeMode Supp=0 ;不支持同步模式
SyncMode Supp=0 ;支持自動波特率檢測
AutoBaud Supp=l ;不支持改變從站地址
Set SlaveAdd Supp=0 ;故障安全模式類型
Fail Safe=0 ;最大用戶參數(shù)數(shù)據(jù)長度(0-237)
MaxUser PrmDataLen=0 ;用戶參數(shù)長度
Usel prmDataLen=0 ;最小從站響應循環(huán)間隔
Min Slave Imervall=22 ;是否為模塊站
Modular Station=l ;從站最大模塊數(shù)
MaxModule=l ;最大輸入數(shù)據(jù)長度
MaxInput Len=8 ;最大輸出數(shù)據(jù)長度
MaxOutput Len=8 ;最大數(shù)據(jù)的長度(輸入輸出之和)
MaxData Len=16 ;最大診斷數(shù)據(jù)長度(6~244)Slave
MaxDiagData Len=6 ;從站類型
Family=3 ;模塊1,輸入輸出各4字節(jié)
M0dule=“Modulel”0x23,0x13; ;模塊2.輸入輸出各8字節(jié)
EndModule
Module="Module2"0x27,0x17;
EndModule
結語
PROFIBUS.DP現(xiàn)場總線已成為我國機械部的行業(yè)標準.受到越來越多科研機構和廠家的重視t本文從開發(fā)的角度.詳細闡述了PROFIBUS―DP現(xiàn)場總線的軟硬件設計方法。相信能給讀者起到拋磚引玉的作用。我們開發(fā)的帶有PROFIBUS-DP總線接口的設備,能滿足互操作性以及實耐性通信的要求,已在許多行業(yè)得到成功應用。
評論