摘 要:針對工業控制中存在的不同設備間難以進行通訊轉換的問題,結合PROFIBUS-DP現場總線技術的特點,從開發的角度詳細介紹了采用SPC3通信協議芯片實現PROFIBUS-DP通訊轉換接口的軟件和硬件的方法。通過這種接口,可以將具有RS485接口的儀器儀表設備連接到PROFIBUS-DP網絡上,實現通訊和控制功能。
關鍵詞:PROFIBUS-DP;通信協議芯片SPC3;接口
Abstract: In view of the communication transform problem in the industry control and the characteristics of the PROFIBUS-DP fieldbus technology, the designing method of hardware and software of PROFIBUS-DP communication transform interface with SPC3 are introduced. Through this transform interface, the conventional instrumentation with RS485 interface can be connected to PROFIBUS-DP, and carry out communication and control functions.
Key words: PROFIBUS-DP;Communication protocol chip SPC3;Interface
1 引言
PROFIBUS-DP是目前歐洲乃至全球應用最廣泛的總線系統,安裝簡單、拓撲結構多樣、易于實現冗余、通信實時可靠、功能比較完善,卓越的性能使得它適用于各種工業自動化領域。隨著PROFIBUS-DP控制系統在我國越來越廣泛的應用,將原有的不符合DP標準的設備連接到PROFIBUS-DP現場總線網絡中,就需要開發DP通訊轉換接口。因此,進行DP通訊轉換接口的開發是很有必要的。本文主要討論采用SPC3通信協議芯片實現DP通訊轉換接口的硬件和軟件。
2 PROFIBUS-DP現場總線
2.1 PROFIBUS-DP基本特性
PROFIBUS-DP用于現場級的高速數據傳輸,中央控制器(如PLC/PC)通過串行連接與分散的現場設備(如I/O、驅動器和閥門及測量變送器)進行通信。中央控制器(主站)周期的讀取從站的輸入信息并周期的向從站發送輸出信息,除周期性數據傳輸外,PROFIBUS-DP還提供智能化設備所需的非周期通訊以進行組態、診斷和報警處理。PROFIBUS-DP具有快速、即插即用、高效低成本等優點。
2.2 PROFIBUS-DP總線拓撲
PROFIBUS-DP系統有兩種總線拓撲結構:一種是RS-485,采用屏蔽雙絞線,拓撲結構為總線型,通信速率為9.6Kbps~12Mbps;另一種是采用光纖,用于電磁兼容性要求高和長距離要求的場合。
2.3 PROFIBUS-DP總線協議
PROFIBUS-DP協議根據ISO7498國際標準以開放系統互聯網絡OSI參考模型為基礎,采用了參考模型的第1層物理層,第2層數據鏈路層和用戶自己定義的用戶接口層,第3層到第7層未使用;這種精簡的結構確保了快速、高效的數據傳輸。物理層定義了物理傳輸特性;數據鏈路層定義了總線存取協議,直接數據鏈路映像程序DDLM提供對第2層的訪問;用戶接口規定了PROFIBUS-DP設備的應用功能,以及各種類型的系統和設備的行為特性。
PROFIBUS-DP總線存取協議,主站之間采用令牌傳遞方式,主站與從站之間采用主從方式。令牌傳遞程序保證每個主站在一個確切規定的時間內得到總線存取權(令牌),在PROFIBUS中,令牌傳遞僅在各主站之間進行。主站得到令牌時可與從站通信,每個主站均可向從站發送或讀取信息。因此,有3種系統配置:純主-從系統、純主-主系統、混合系統。系統中相應地使用令牌傳遞方式和主-從方式完成數據通信。
3 PROFIBUS-DP通訊轉換接口的開發
3.1 硬件設計
在接口電路的設計中主要有兩種方法:一是使用微處理器利用軟件來模擬PROFIBUS現場總線協議。此設計的成本很低,但需要充分了解PROFIBUS-DP協議和運行機制,軟件編程工作量大,可靠性不易保證,通信速度也受到限制。二是使用PROFIBUS專用協議芯片ASIC。此設計的成本較高,技術指標高,自主性高,只需了解ASIC的工作原理。在本次通訊接口的設計中采用的是第二種方法,使用的是ASIC結合微處理器來完成設計。
為使PROFIBUS-DP接口實現簡單、方便,達到快速提供產品的目的,采用西門子公司的專用通信協議芯片SPC3完成PROFIBUS-DP總線的協議。SPC3集成了完整的PROFIBUS-DP協議,能自動檢測總線的波特率從9.6Kbps到12Mbps,集成了1.5KB的雙口RAM,它本身具有地址鎖存和片選功能,上電后自動執行PROFIBUS-DP的從站狀態機。
SPC3內部1.5KB 雙口RAM地址空間為00H~5FFH,以8個字節為一個單元(段),分成192段(0~191)。按功能可分為三個區域:00H~15H為處理器參數區,包括工作模式寄存器、從站最小延遲時間寄存器、內部集成看門狗定時器寄存器、用于中斷的寄存器以及狀態寄存器等;16H~3FH為組織參數區, 用于設置DP緩沖區中各個緩沖塊(BUF)的指針(首地址)和長度,并且這些設置必須在SPC3的離線狀態下完成;40H~5FFH為DP緩沖區,是DP數據的緩沖區,包括3個輸入數據BUF、3個輸出數據BUF、2個診斷BUF、2個輔助BUF、設置參數BUF、通信接口配置BUF和可讀通信接口配置BUF等。
SPC3內部集成一個看門狗定時器,操作于三種不同的狀態:波特率監測、波特率控制和DP控制。內部的異步串行收發器(UART)實現串并數據流的相互轉換,空閑定時器控制串行總線電纜上的時序,微序列器(MS,microsequencer)控制整個SPC3的工作過程。
PROFIBUS-DP通訊轉換接口采用89C52微處理器作為中央處理器,DP接口芯片采用SPC3。89C52負責將現場采集的信號進行處理、分析和分類,然后通過SPC3傳送到PROFIBUS-DP總線,同時監測SPC3,接收DP主站送來的指令和數據,并進行相應的操作。電路結構示意圖如圖1所示。
[align=center]

圖1 電路結構示意圖

圖2 PROFIBUS-DP狀態機[/align]
89C52微處理器擴展了32KB的數據存儲器(RAM),時鐘信號是通過SPC3分頻得到的,外圍電路還包括了帶EEPROM的看門狗,模數(A/D)轉換、數模(D/A)轉換、DI/DO接口和數碼顯示電路。其中,EEPROM主要用于存放從站地址、ID號等配置信息;數碼顯示電路主要用于顯示一些從站信息;而模數(A/D)轉換、數模(D/A)轉換、DI/DO接口使通訊轉換接口能夠勝任AI、AO、DI、DO等多方面工作。
PROFIBUS-DP一般采用RS-485傳輸技術,電纜采用屏蔽雙絞線,能夠較好地改善電磁兼容性,傳輸速率為9.6Kbps~12Mbps。連接采用符合PROFIBUS-DP開放標準的9針D型插頭,在不帶中繼時,每分段可以連接32個站;在使用中繼時,可以擴展到127個站,包括中繼站。當信號在總線上傳輸時,若發生阻抗不連續,將形成信號反射,導致傳輸信號畸變,因此在傳輸線的末端,需要加終端電阻來消除這種阻抗不連續,所加電阻阻值應盡量接近傳輸線的特性阻抗。為消除來自零線的干擾,在SPC3和RS-485收發器之間須加光耦隔離,為提高傳輸速率,應盡量選擇高速光耦合RS-485收發器,本設計采用HCPL7720高速光耦和SN75ALS176總線收發器。
3.2 軟件設計
軟件設計是開發PROFIBUS-DP通訊轉換接口的一個重要環節,也是其難點所在。開發者必須了解PROFIBUS-DP協議,熟悉SPC3芯片的工作原理和狀態機原理,熟知SPC3的各種DP服務。
PROFIBUS-DP的狀態機描述DP從站在每種情況下的行為以保證它符合一致性,SPC3內部集成了狀態機,用戶對狀態機的控制是很有限的。PROFIBUS-DP狀態機如圖2所示。各個橢圓表示不同的狀態,帶箭頭的連線表示狀態間的轉換,而連線上的文字表示狀態的轉換所需滿足的條件。
在POWER_ON狀態,從站能從二類主站接收 Set_Slave_Address報文來改變它的地址,然后從站進入Wait_Prm狀態,等待參數化,此狀態從站還可以接受Get_Cfg,Slave_ Diag報文。參數化完成后,從站進入Wait_Cfg狀態,等待Check_Cfg報文,另外還可以接收Slave_Diag,Set_Prm ,Get_Cfg報文。如果Check_Cfg完成后,從站將進入Data_Exch狀態,進行數據通信。此時從站還可接收Writing_Outputs,Reading_Inputs,Gloable_Control,Slave_Diag,Chk_Diag,Get_Cfg報文,若組態和數據交換不成功,就會返回到參數化階段。Wait_Prm在對從站進行組態時,必須要編寫它的GSD文件。GSD文件是設備數據庫文件,描述PROFIBUS設備具有的性能特征。GSD文件包括三個部分:總體說明(廠商和設備名稱、軟硬件版本、支持的波特率等)、DP主設備相關的規范(如可連接從設備的最多臺數或卸載能力)、從設備相關的規范(如I/O通道的數量和類型、診斷測試的規格及I/O數據的一致性信息)。標準化的GSD數據將通信擴大到操作員控制一級,使用基于GSD的組態工具可將不同廠商生產的設備集成在一個總線系統中,簡單,用戶界面友好。
SPC3集成了完整的PROFIBUS-DP協議,能獨立地處理PROFIBUS-DP協議的所有通信任務,從而大大減輕微處理器的負載,保證系統的通信速度和數據交換的可靠性。微處理器的主要任務是根據SPC3產生的中斷,對SPC3接收到的主站發送的輸出數據進行轉存,組織需通過SPC3發送給主站的數據,并根據要求組織外部診斷等。PROFIBUS-DP通信的服務存取點(SAP)由SPC3自動建立,各種報文信息呈現在用戶面前的是不同BUF的內部數據。用戶可以通過此總線接口訪問這些內部數據。
主程序流程圖如圖3所示,其中SPC3的初始化包括設置SPC3允許的中斷,寫入從站識別號和地址,設置SPC3方式寄存器,設置診斷緩沖區、參數緩沖區、配置緩沖區、地址緩沖區、初始長度,并根據以上初始值求出各個緩沖區的指針及輔助緩沖區的指針,根據傳輸的數據長度確定輸出緩沖區及指針(在賦各緩沖區指針變量值時,指針值是段序號)。中斷程序流程圖如圖4所示,主要用來處理PRM報文、CFG報文和SSA報文。
用匯編語言編寫的部分初始化程序如下:
MOV DPTR,#R_DIAG_BUF_PTR1 ; 如果SPC3離線,初始化SPC3
MOV A,#D_DIAG_BUF_PTR1
MOVX @DPTR,A; 診斷緩沖區指針
INC DPTR
MOV A,#D_DIAG_BUF_PTR2
MOVX @DPTR,A
MOV DPTR,#R_CFG_BUF_PTR ; 配置緩沖區指針
MOV A,#D_CFG_BUF_PTR
MOVX @DPTR,A
MOV DPTR,#R_READ_CFG_BUF_PTR
[align=center]

圖3 主程序流程圖

圖4 中斷程序流程圖[/align]
4 結束語
PROFIBUS-DP的協議開放、實時性好,數據傳輸速度快,系統實現簡單,可靠性高,符合現代工業網絡發展的趨勢,必將在未來一段時間內得到廣泛的應用。PROFIBUS-DP通訊轉換接口的開發,解決了具有RS-485 接口不同工控設備間的通訊轉換問題,提高了工業控制的自動化水平。通過實際運行證明了這種通訊轉換接口硬件和軟件設計的合理性,能夠保證數據傳遞過程的安全、快速和穩定。使用本文論述的方案,在自主開發的現場設備/儀表上配置PROFIBUS-DP接口,可以很好地滿足相關行業的需要,在實際中具有廣闊的應用前景。
本文作者創新點:本文針對工業控制中存在的不同設備間難以進行通訊轉換的問題,開發了一種PROFIBUS-DP通訊轉換接口。通過這種接口,可以將具有RS-485接口的儀器儀表設備很方便的連接到PROFIBUS-DP網絡上,實現通訊和控制功能。通過實際運行證明了這種通訊轉換接口硬件和軟件設計的合理性,能夠保證數據傳遞過程的安全、快速和穩定。從而解決了具有RS-485接口不同工控設備間的通訊轉換問題,提高了工業控制的自動化水平。
參考文獻
[1] 夏繼強,邢春香,現場總線工業控制網絡技術[M],北京航空航天大學出版社,2005.
[2] 周曉慧,孟彥京,許德玉,PROFIBUS-DP現場總線通訊轉換接口的開發[J],微計算機信息,2005年第21卷第7-1期31-33頁.
[3] SIEMENS SPC3 and DPS2 User Description[M], 2002.
[4] PROFIBUS Development kits Manuals,SIEMENS,1998.