1 引 言
Profibus技術(shù)以其卓越的性能在全世界贏得了廣泛的用戶群。Profibus技術(shù)及其產(chǎn)品已經(jīng)進入中國,在我國的制造業(yè)、流程工業(yè)、冶金、電力、交通、水利、食品加工、環(huán)保、樓宇和鐵路自動化領(lǐng)域都有應(yīng)用實例。國外先進技術(shù)和產(chǎn)品進入中國市場在一定程度上帶動了我國儀表技術(shù)的發(fā)展。我國參與 Profibus總線技術(shù)研究開發(fā)應(yīng)用的企業(yè)和科研機構(gòu)有二十多家[3]。研究Profibus總線協(xié)議和開發(fā)技術(shù),開發(fā)Profibus產(chǎn)品,在中國的市場有著較大的發(fā)展前途。
Profibus總線標(biāo)準(zhǔn)包括3個方面內(nèi)容:FMS,DP,PA;適用于不同的應(yīng)用領(lǐng)域。DP是目前歐洲乃至全球應(yīng)用最廣泛的總線系統(tǒng);安裝簡單、拓撲結(jié)構(gòu)多樣、易于實現(xiàn)冗余、通信實時可靠、功能比較完善,卓越的性能使得它適用于各種工業(yè)自動化領(lǐng)域,DP協(xié)議規(guī)定了用戶數(shù)據(jù)怎樣在總線各站之間進行傳遞,而DP行規(guī)具體說明用戶數(shù)據(jù)的含義,并規(guī)定了DP如何在應(yīng)用領(lǐng)域使用。利用行規(guī),設(shè)備操作者和最終用戶可以互換不同生產(chǎn)廠商生產(chǎn)的設(shè)備,甚至還允許互換不同廠商生產(chǎn)的部件,這大大降低了用戶的工程和維護成本。DP從站只使用了DP協(xié)議的很小一部分,開發(fā)起來十分經(jīng)濟。
2 智能從站通信接口芯片SPC3
Profibus的通信協(xié)議比較復(fù)雜。從原則上講,它可以在任何微處理器上由軟件實現(xiàn),只需安裝異步串行收發(fā)器(UART)。但現(xiàn)在開發(fā)人員只要使用專用的通信處理芯片,完全可以將復(fù)雜協(xié)議撇開。Profibus通信協(xié)議芯片已形成廣泛系列,使用這些協(xié)議芯片使Profibus協(xié)議的具體實現(xiàn)簡單、方便、省時、省力,還可達到快速提供產(chǎn)品的目的。適合于智能從站的ASIC種類較多,如IAM公司的PBS,Motorola公司的68302、 68360,SIEMENS公司的SPC4、SPC3,VIPA公司的VPC3+、VPM2L等,其中的SPC3通信協(xié)議芯片比較有代表性。想利用其它芯片的開發(fā)人員可以參考Profibus組織的網(wǎng)站。
SPC3的內(nèi)部結(jié)構(gòu)示意圖見圖2—1。SPC3集成了DP協(xié)議中的FDL層,可以承擔(dān)通信部分的微處線接口是個可參數(shù)化的同步/異步8位接口,適合于Motorola和Intel的微控制器/處理器。內(nèi)部集成了1.5K的雙口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控制。內(nèi)部的UART實現(xiàn)串并數(shù)據(jù)流的相互轉(zhuǎn)變,SPC3可以自動標(biāo)識總線的波特率(9.6K~12M)??臻e定時器控制串行總線電纜上的總線定時。微序列器(MS,Micro Sequencer)控制整個SPC3的工作過程。
在SPC3的內(nèi)部1.5KRAM中,自己用到了64個字節(jié)。這64個字節(jié)大多需要用戶設(shè)定,如中斷屏蔽字、硬件模式寄存器0和1、各種BUF長度和指針、標(biāo)識字等;還有一部分是SPC3的各種狀態(tài)指示用寄存器,如中斷字、輸入BUF狀態(tài)、輸出BUF狀態(tài)、診斷BUF狀態(tài)等。還有些寄存器在寫入時作為工作模式設(shè)定寄存器,而讀出時作為狀態(tài)指示用寄存器,如中斷請求寄存器。RAM的其它1472 個字節(jié)是提供給各種BUF的空間。SPC3具有3個輸入BUF,3個輸出BUF,2個診斷BUF,2個輔助BUF,1個配置BUF,1個參數(shù)BUF和1個地址設(shè)置BUF。當(dāng)SPC3工作前,過程特定的參數(shù)(如站地址、標(biāo)識號、各種控制位等)要輸入到特定的寄存器單元之后SPC3才能正常。(具體的過程見 SPC3初始化程序)
3 通信接口的硬件設(shè)計
SPC3 可以與各種的微處理器連接使用,如Mo-torola的HC11、HC16及HC916,Intel的51、96系列??偩€接口單元形成SPC3到各種微處理器的接口,它是一個有11條地址線的8位數(shù)據(jù)接口,可以通過配置與上述兩種類型的處理器匹配。配置是借助于SPC3的兩個輸入引腳—— XINT/MOT和MODE進行的。XINT/MOT表示Intel和Motorola芯片類別。MODE表示SPC3的工作模式,包括同步和異步。工作于同步模式時,SPC3的XREADY(請求外部等待)引腳無效。
開發(fā)中使用的微處理器是80C196,其與SPC3的接口電路如圖3—1。應(yīng)當(dāng)注意的是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必須為低。此時片選信號輸入引腳不起作用,應(yīng)當(dāng)將其接至高電平。
CPU與SPC3通過SPC3的RAM交換數(shù)據(jù),SPC3的雙口RAM應(yīng)在CPU地址空間中統(tǒng)一分配地址。CPU把這片RAM當(dāng)作自己的外部RAM。CPU采用P3和P4口擴展外部存儲器,P3口作為數(shù)據(jù)和低8位地址線,P4口作為高8位地址線。
SPC3與通信接口的電路示意圖見圖3—2。SPC3用于串行通信的4個管腳分別為XCTS、RTS、TXD和RXD。XCTS的含義為清除發(fā)送,是 SPC3的輸入信號,表示允許SPC3發(fā)送數(shù)據(jù)。此信號低電平有效,應(yīng)一直接低電平。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ā)器光耦配合適當(dāng)?shù)取?
采用的高速光耦為6N137,收發(fā)器為SN75ALS176,通信速率可達6M波特率,可用于大部分的應(yīng)用系統(tǒng)。如果用戶需要更高的通信速率,可以將光耦換作可達25M波特率的HCPL-7720/7721。
4 通信接口的軟件設(shè)計
應(yīng)用程序。程序采用結(jié)構(gòu)化編程思想,以便于以后的功能拓展。SPC3 的初始化程序應(yīng)放在具體IO應(yīng)用的前面;SPC3的中斷輸出作為CPU的中斷輸入,對于C196來說,采用的是外部中斷,中斷入口地址為200EH。
在SPC3正常工作之前,必須進行初始化,以配置各個需要的寄存器。初始化程序功能結(jié)構(gòu)見圖4—1。
中斷處理程序用于完成SPC3發(fā)生的各種事件的處理。主要有新的參數(shù)報文事件,全局控制命令報文事件,進入或退出數(shù)據(jù)交換狀態(tài)事件,新的配置報文事件,新的地址設(shè)置報文事件,監(jiān)測到波特率事件和看門狗溢出事件。
數(shù)據(jù)輸入和輸出處理(輸入輸出相對于主站而言)以及用戶診斷數(shù)據(jù)輸入可以放在應(yīng)用程序循環(huán)中。在一個應(yīng)用循環(huán)中,由應(yīng)用來刷新輸入BUF中的數(shù)據(jù),保障所有輸入數(shù)據(jù)是最新更新的數(shù)據(jù)。而SPC3在接收到由Profibus主站傳送的不同輸出數(shù)據(jù)時,會產(chǎn)生輸出標(biāo)志位(同樣位于中斷請求字單元),CPU通過在應(yīng)用循環(huán)中輪詢標(biāo)志位來接收主站數(shù)據(jù)。相對于特定應(yīng)用的診斷信息,需要實時傳遞到主站;主應(yīng)用程序在應(yīng)用循環(huán)中判斷是否有可用的診斷BUF存在,當(dāng)有空閑BUF時,應(yīng)用程序輸入診斷信息并請求更新。對于實時性要求嚴(yán)格的系統(tǒng),應(yīng)采用中斷方式進行輸出數(shù)據(jù)和診斷數(shù)據(jù)處理。
5 結(jié) 論
為驗證所設(shè)計從站的Profibus功能及系統(tǒng)性能,需要確定實驗方案并組建實驗網(wǎng)絡(luò)。實驗中使用的主站采用SIEMENS的IM180主站模塊和 DPMT主站軟件。IM180附以主站軟件可以實現(xiàn)對從站的狀態(tài)監(jiān)控及控制。實驗還需要建立自定義從站的GSD文件,目的是為了使用開放的組態(tài)工具組態(tài)。使用SIEMENS的GSD-EditorV2.1(可以從Profibus用戶組織的網(wǎng)站下載http:∥www.profibus.com)建立定制從站的GSD文件,可以減少定制GSD的周期,并能保證文件格式的正確性。
實驗中采用的總線波特率為6M,連接器采用SIEMENS提供的接線器和自己設(shè)計的連接器。主站與從站可以保持可靠的通信。主站對從站發(fā)送的“從站地址設(shè)置”命令,從站可以正確的接收并處理,對從站的特別工作模式設(shè)定是通過全局命令完成,包括對從站鎖定和同步的命令。實驗結(jié)果表明這些功能都得到較好實現(xiàn)。
不同波特率下所達到的通信距離也是Profibus規(guī)范的一個重要指標(biāo)。本實驗中采用屏蔽雙絞線驗證從站的這一特性。表5—1為實驗所達到的指標(biāo)。
以上實驗表明,所設(shè)計的從站完全符合Profibus標(biāo)準(zhǔn)。網(wǎng)絡(luò)的數(shù)據(jù)傳送速率可達6Mbps,且運行穩(wěn)定,可以滿足大多數(shù)應(yīng)用的需求。
開發(fā)過程也證明了利用Profibus通信協(xié)議進行Profibus產(chǎn)品開發(fā),可以極大地節(jié)約時間和人力。 SPC3芯片的使用方法簡單,功能相對完善,可以滿足智能DP從站的通信接口設(shè)計。