基于SPC3的PROFIBUS現(xiàn)場總線智能從站的設(shè)計
摘要:介紹了PWM控制電路的基本構(gòu)成及工作原理,給出了美國Silicon General公司生產(chǎn)的高性能集成PWM控制器SG3524的引腳排列和功能說明,同時給出了其在不間斷電源中的應用電路。
關(guān)鍵詞:PWM SG3524 控制器
1 概述
PROFIBUS是Process Fieldbus的縮寫,是一種國際性的開放式現(xiàn)場總線標準,即EN50170歐洲標準。目前世界上許多自動化技術(shù)生產(chǎn)廠家都為它們生產(chǎn)的設(shè)備提供了PROFIBUS接口。PROFIBUS已經(jīng)廣泛應用于加工制造、過程和樓宇自動化,目前已發(fā)展成為一種成熟技術(shù)。
PROFIBUS根據(jù)應用特點分為PROFIBUS-DP、PROFIBUS-FMS、PROFIBUS-PA三個兼容版本。PROFIBUS協(xié)議定向根據(jù)ISO7498國際標準以開放系統(tǒng)互聯(lián)網(wǎng)絡(luò)OSI為參考模型。PROFIBUS的DP、FMS和PA均使用單一的總線存取協(xié)議,可通過OSI參考模型的第2層實現(xiàn),包括數(shù)據(jù)的可靠性以及傳輸協(xié)議和報文的處理。其中PROFIBUS-FMS用于解決車間級通用性通信任務(wù),能提供大量的通信服務(wù),并可完成中等傳輸速度的循環(huán)和非循環(huán)通信任務(wù);PROFIBUS-PA則專為過程自動化設(shè)計,它采用標準的本質(zhì)安全傳輸技術(shù)來實現(xiàn)IEC1158-2中規(guī)定的通信規(guī)程,適用于對安全性要求較高的場合及由總線供電的站點;而PROFIBUS-DP在經(jīng)過優(yōu)化的高速、廉價的通信連接后,可專用于自動控制系統(tǒng)和設(shè)備級分散I/O之間的通信設(shè)計。使用PROFIBUS-DP模塊可取代價格昂貴的24V或0~20mA并行信號線,用于分散式控制系統(tǒng)的高速數(shù)據(jù)傳輸。PROFIBUS-DP使用ISO/OSI參考模型的第1層、第2層和用戶接口,而第3層到第7層未加描述,這種流水線型結(jié)構(gòu)確保了數(shù)據(jù)傳輸?shù)目焖俸陀行?。它的直接?shù)據(jù)鏈路映像(DDLM,data link mapper)提供有進入第2層的用戶接口。該用戶接口規(guī)定了用戶及系統(tǒng)以及不同設(shè)備的調(diào)用功能,同時說明了各種不同PROFIBUS-DP設(shè)備的設(shè)備行為,此外,還提供了傳輸用的RS-485傳輸技術(shù)或光纖。
2 SPC3芯片介紹
PROFIBUS的通信協(xié)議比較復雜。原則上講,只要安裝了異步串行收發(fā)器(UART),它就可以在任何微處理器上由軟件實現(xiàn)。但現(xiàn)在,開發(fā)人員卻常常使用專用的通信處理芯片來將復雜的協(xié)議完全撇開。PROFIBUS通信協(xié)議芯片已形成廣泛系列。使用這些芯片可使PROFIBUS協(xié)議的實現(xiàn)更加簡單、方便、省時、省力,從而達到快速提供產(chǎn)品的目的。適合于智能從站的ASIC種類較多,其中西門子的SPC3 通信協(xié)議芯片比較具有代表性。SPC3的內(nèi)部結(jié)構(gòu)示意圖如圖1所示。
SPC3集成了DP協(xié)議中的FDL層?它可以承擔通信部分的微處理器負載?從而實現(xiàn)DP從站的通信處理。微處理器操作SPC3 芯片就像操作它的內(nèi)部RAM一樣。SPC3能保障報文的有效性?并可滿足整個報文的一致性數(shù)據(jù)交換??偩€接口是個可參數(shù)化的同步/異步8位接口,適合于Motorola 和Intel 微控制器/ 處理器。SPC3內(nèi)部集成了1.5kB的雙口RAM,整個RAM 采用8字節(jié)的段結(jié)構(gòu)方式,共分成192段,所有需要分配地址的BUF指針必須指向段的開頭。DP通信的服務(wù)存取點由SPC3自動建立,呈現(xiàn)在用戶面前的各種報文信息就是不同BUF的內(nèi)部數(shù)據(jù)。用戶可以通過總線接口訪問SPC3的內(nèi)部RAM。
SPC3的內(nèi)部看門狗定時器可工作于3 種不同狀態(tài)?波特率監(jiān)測、波特率控制和DP控制狀態(tài)。內(nèi)部的UART可實現(xiàn)串并數(shù)據(jù)流的相互轉(zhuǎn)變。SPC3可自動標識總線的波特率(范圍為9.6k~12Mbps) ??臻e定時器用于控制串行總線電纜上的總線定時,微序列器(MS ?Micro Sequencer) 則控制整個SPC3的工作過程。
SPC3內(nèi)部的1.5kB雙口RAM的地址空間從00H到5FFH,以8字節(jié)為一個單元,共分成192段,按其功能可分為以下三個區(qū)域:
(1)從00H到015H為方式設(shè)定和狀態(tài)指示寄存器區(qū)域。其中中斷請求寄存器可讀可寫?寫時主要用于調(diào)試。必須配置的還有中斷屏蔽寄存器、工作模式寄存器0和1、用于波特率控制的看門狗定時寄存器以及從站最小延遲時間寄存器。用于指示SPC3工作情況的寄存器有中斷請求和中斷發(fā)生寄存器、狀態(tài)寄存器、輸入BUF、輸出BUF 和診斷BUF的狀態(tài)寄存器。
(2)從016H到03FH為配置參數(shù)區(qū)域。各種BUF的指針與長度(包括本站地址、地址允許改變變量、用戶看門狗值和設(shè)備標識號)均在此區(qū)域設(shè)置。這些BUF包括三個輸入BUF、三個輸出BUF、兩個診斷BUF、兩個輔助BUF、一個配置BUF、一個參數(shù)BUF 和一個地址設(shè)置BUF。這里的輸入輸出是相對于主站而言。需注意各個BUF的指針定義,此處的指針指的是段序號。由于各個BUF 的長度必須是8字節(jié)的整數(shù)倍?即各BUF的起始地址能被8整除?所以可以用段序號?0~191?標識出具體的BUF 起始地址?例如參數(shù)BUF的起始地址3E0H可以用指針7CH 表示。這種方法不僅可節(jié)約存儲空間?而且簡潔明了。
(3)從040H到5FFH的1472字節(jié)為用戶區(qū)域,可用于接收來自I/O應用和主站的數(shù)據(jù)。這些BUF的配置(包括BUF的長度和初始地址)必須在SPC3的“離線(offline) ”狀態(tài)下完成。用戶可以采用中斷或者輪循方式通過I/O與SPC3交互數(shù)據(jù)。
3 SPC3與AT89C51的接口設(shè)計
SPC3有8根數(shù)據(jù)線和11根地址線,其中低8位地址線與數(shù)據(jù)線復用,可以接80C32 、80C166、80C165、HC11、HC16、HC196等單片機,SPC3本身具有地址鎖存功能?不需另加鎖存器,自身可以產(chǎn)生片選信號。芯片配置是借助SPC3的兩個輸入引腳XINT/MOT和MODE 進行的。XINT/MOT表示Intel和Motorola等芯片類別。MODE表示SPC3的工作模式,其中包括同步和異步。當其工作在同步模式時,SPC3的XREADY(請求外部等待)引腳無效。
本設(shè)計中使用的單片機是AT89C51,其與SPC3的接口電路如圖2所示。應當注意的是,當SPC3采用Intel芯片工作于同步模式時?內(nèi)部有自己的地址鎖存及解碼電路?所以,CPU的低8位地址線可不經(jīng)過573鎖存器,而是直接與SPC3連接?低8位地址線與8位數(shù)據(jù)線分時共用傳輸線?。而CPU 的高8位地址線則直接與SPC3的AB0~AB7相連?且必須為00000XXX?X表示0、1信號都行?,同時AB8-AB10必須為低。此時片選信號輸入引腳不起作用?應將其接高電平。
SPC3 用于進行串行通信的4個管腳分別為XCTS、RTS、TXD和RXD。XCTS的含義為清除發(fā)送?是SPC3的輸入信號?表示允許SPC3發(fā)送數(shù)據(jù)。此信號為低電平有效?且應一直維持低電平。RTS為SPC3 的請求發(fā)送信號?通常接到收發(fā)器的輸出使能端。RXD 和TXD分別為串行接收和發(fā)送端口。
為提高系統(tǒng)的抗干擾性?SPC3內(nèi)部線路必須與物理接口在電氣上隔離。輸入輸出通道上的電氣隔離采用的是6N137高速光耦。電源的電氣隔離則采用DCP0505,這是一種5V到5V的隔離轉(zhuǎn)換電源。PROFIBUS通信協(xié)議可保障通信的高可靠性?但應以硬件和軟件設(shè)計為基礎(chǔ)。在通信接口設(shè)計時?必須遵循一定的規(guī)范?如信號的隔離、總線接口與收發(fā)間應避免線路過長、電源的濾波處理、收發(fā)器和光耦的限流電阻及負載電阻必須與收發(fā)器光耦配合適當?shù)取1驹O(shè)計選用6N137的高速光耦,SN75ALS176的收發(fā)器,通信速率可達6Mbps,可用于大部分應用系統(tǒng)。如果用戶需要更高的通信速率,可以將光耦換成可達25M波特率的HCPL-7720/7721。SPC3與收發(fā)器的連接圖見圖3所示。
4 軟件實現(xiàn)
在進行軟件設(shè)計時,首先要對SPC3內(nèi)部RAM的000H~03DH進行初始化。在為指針變量賦值時要注意:指針是段序號,且應能被8整除。SPC3不允許地址溢出。也就是說,如果用戶讀寫超過了存儲范圍,就要減掉400H,從而訪問一個新地址。這樣可節(jié)省存儲空間,但禁止覆 過程參數(shù)。如果由于緩沖器初始化錯誤而使微處理器溢出?也要執(zhí)行同樣的過程。初始化時?進行第一次數(shù)據(jù)配置的數(shù)據(jù)格式如下?
17H=8字節(jié)輸入,無連續(xù)性?
27H=8字節(jié)輸出,無連續(xù)性。
該數(shù)據(jù)格式定義了輸入和輸出數(shù)據(jù)的長度。而診斷則分為狀態(tài)診斷和外部診斷,其中狀態(tài)診斷由SPC3自動執(zhí)行?無需用戶考慮。用戶只需編寫外部診斷程序即可。
5 結(jié)束語
本文主要從研發(fā)的角度介紹了PROFIBUS-DP 智能從站通信接口的硬件和軟件設(shè)計。其中硬件基本上屬于標準線路?只是由于速度的要求?對有些芯片要求較高。如果用戶對通信速度沒有過高的要求?完全可以選用較普通的芯片。而軟件則是開發(fā)DP接口的難點?應在深入了解SPC3芯片機理及PROFIBUS-DP狀態(tài)機的基礎(chǔ)上進行開發(fā)。
評論