引言
在眾多的工業(yè)現(xiàn)場總線中,Profibus總線由于有眾多廠商的支持,且產(chǎn)品比較豐富,在制造業(yè)自動(dòng)化、流程工業(yè)自動(dòng)化和樓宇、交通、電力自動(dòng)化等領(lǐng)域有著廣泛的應(yīng)用。而對于很多不具備Profibus接口的傳統(tǒng)設(shè)備,要使其接入總線網(wǎng)絡(luò)、達(dá)到自動(dòng)控制的目的,就必須在該設(shè)備和Profibus總線之間做一個(gè)協(xié)議接口模塊。
本文結(jié)合對傳統(tǒng)電動(dòng)執(zhí)行器升級改造的工程實(shí)踐,介紹了一種基于Profibus-DP的接口模塊的具體設(shè)計(jì)。Profibus-DP作為Profibus現(xiàn)場總線標(biāo)準(zhǔn)的子集,主要用于設(shè)備級控制系統(tǒng)與分散式I/0的通信。它具有傳輸介質(zhì)簡單、安裝維護(hù)方便、安全性高等優(yōu)點(diǎn)。RS485傳輸是最常用的一種傳輸技術(shù),本設(shè)計(jì)也采用這種傳輸方式。整個(gè)系統(tǒng)的傳輸介質(zhì)為屏蔽雙絞線。本文主要討論采用專用協(xié)議芯片VPC3開發(fā)從站接口的方案。該方案需要在深入了解VPC3的工作原理及DP狀態(tài)機(jī)原理的基礎(chǔ)上進(jìn)行開發(fā)。
1 硬件設(shè)計(jì)
系統(tǒng)主要包括指令處理部分和接口部分,如圖1所示。指令處理部分完成協(xié)議轉(zhuǎn)換以及通信處理;接口部分完成模擬到數(shù)字的轉(zhuǎn)換、PROFIBUS-DP接口等。下面簡單介紹主要模塊的功能。
調(diào)試(JTAG):M16C/62P通用通信模塊的設(shè)計(jì)提供一個(gè)JATG仿真器,它可以用來進(jìn)行配置或者是編程。
SRAM模塊:當(dāng)編寫比較大的程序(如操作系統(tǒng))時(shí),M16C的內(nèi)部RAM可能不夠用,此時(shí)就可以用外接的SRAM(128K×16位)。
撥碼開關(guān):撥碼開關(guān)用于通信地址方案的實(shí)施。PROFIBUS-DP支持的站地址為0~126(共127個(gè)),同時(shí)為了防止尋址過程發(fā)生地址的沖突,所以采用一個(gè)8位的撥碼開關(guān),用后7位進(jìn)行128位的尋址。閥門控制器作為PROFIBUS-DP通信的從站,必須有不與其他站沖突的地址。PR-OFIBUS-DP從站通信地址的設(shè)計(jì)方案有兩種:一種是由遠(yuǎn)程的PROFIBUS-DP主站通過特定的數(shù)據(jù)通信設(shè)定或修改從站地址;另一種是禁止PROF-IBUS-DP主站設(shè)定和修改從站地址,從站的地址由從站本地設(shè)定。本設(shè)計(jì)采用的是后一種設(shè)計(jì)方案,通過一個(gè)8位的撥碼開關(guān)手動(dòng)設(shè)定閥門控制器的地址,然后由中央處理器讀入并寫入VPC3特定的存儲(chǔ)位置。
A/D、D/A等模塊:PROFIUBS-DP智能從站通信卡采用4~20 mA/1~5 V模擬信號(hào)傳輸方式,對4~20mA的輸入信號(hào)(閥位反饋信號(hào))進(jìn)行校準(zhǔn)和量程變換后,將其轉(zhuǎn)換為DP總線輸入數(shù)據(jù),DP總線輸出數(shù)據(jù)經(jīng)過校準(zhǔn)和量程變換后轉(zhuǎn)換為1~5 V的輸出信號(hào)(控制輸出信號(hào))。由于PROFIUBS-DP通信卡在工作過程中共有兩個(gè)數(shù)據(jù)需要在DP總線上傳輸,因此需要兩個(gè)數(shù)據(jù)通道,一個(gè)用于16位模擬量輸入(A/D),另一個(gè)用于16位模擬量輸出(D/A)。其中模擬與數(shù)字電路之間采用PC417進(jìn)行光耦隔離。
本設(shè)計(jì)一共有兩個(gè)時(shí)鐘:一個(gè)是M16的時(shí)鐘,M16本身有兩個(gè)時(shí)鐘(分別為主時(shí)鐘和副時(shí)鐘),但是由于VPC3的特殊性使得M16的時(shí)鐘必須由VPC3提供;另一個(gè)是VPC3的時(shí)鐘,直接由48 MHz的有源晶振提供。其中,M16的時(shí)鐘是由VPC3對48 MHz的時(shí)鐘進(jìn)行1/4分頻得到的12 MHz。
總線接口引腳如表1所列,VPC3的數(shù)據(jù)傳輸是在RS485模式下進(jìn)行的。VPC3通過表1中的信號(hào)與光耦隔離驅(qū)動(dòng)相連接。
按鍵復(fù)位:其作用是對M16和VPC3進(jìn)行復(fù)位。該電路用于監(jiān)視M16的核電壓,當(dāng)核電壓低于3.3 V時(shí),該電路產(chǎn)生一個(gè)低脈沖信號(hào)傳送到M16的RESE(10)引腳。除了監(jiān)視的功能以外,還可以通過按鍵的閉合來產(chǎn)生一個(gè)低脈沖的復(fù)位信號(hào)。
2 軟件設(shè)計(jì)
對VPC3的軟件操作主要包括兩個(gè)部分:VPC3的初始化、主程序和VPC3的中斷處理。主程序和中斷處理流程分別如圖2和圖3所示。
VPC3的初始化程序應(yīng)放在主程序的前面,而中斷處理程序完成CPU對VPC3中斷輸出的響應(yīng)。VPC3上電復(fù)位之后,在正常工作之前必須進(jìn)行初始化,以配置各個(gè)寄存器。中斷處理程序用于處理VPC3發(fā)生的各種事件,這些事件包括新的參數(shù)報(bào)文事件、全局控制命令報(bào)文事件、進(jìn)入或退出數(shù)據(jù)交換狀態(tài)事件、新的配置報(bào)文事件、新的地址設(shè)置報(bào)文事件、監(jiān)測到波特率事件和看門狗溢出事件。
數(shù)據(jù)輸入和輸出處理(輸入、輸出相對于主站而言)及用戶診斷數(shù)據(jù)輸入可以放在應(yīng)用程序主循環(huán)中。在一個(gè)應(yīng)用循環(huán)申,由應(yīng)用來刷新輸入BUF中的數(shù)據(jù),保障所有輸入數(shù)據(jù)是最新的更新數(shù)據(jù)。而VPC3在接收到由PROFI-BUS-DP主站傳送的不同輸出數(shù)據(jù)時(shí),會(huì)產(chǎn)生輸出標(biāo)志位(同樣位于中斷請求字單元中),CPU通過在應(yīng)用循環(huán)中輪詢該標(biāo)志位來進(jìn)行接收主站數(shù)據(jù)。對于特定應(yīng)用的診斷信息,需要實(shí)時(shí)地傳遞到主站。主應(yīng)用程序在應(yīng)用循環(huán)中判斷是否有可用的診斷BUF存在,當(dāng)有空閑BUF時(shí)應(yīng)用程序輸入診斷信息,并請求更新。對于實(shí)時(shí)性要求嚴(yán)格的系統(tǒng),應(yīng)采用中斷方式進(jìn)行輸出數(shù)據(jù)和診斷數(shù)據(jù)處理。
結(jié)語
VPC3芯片的使用方法簡單(與SPC3相似),功能比較完善,可以滿足本通信接口設(shè)計(jì)的要求。使用VPC3進(jìn)行PROFIBUS-DP從站接口的開發(fā),能夠降低開發(fā)難度和開發(fā)成本;使用現(xiàn)場設(shè)備/儀表上配置PROFIBUS-DP接口,可以滿足相關(guān)行業(yè)的需要。