摘 要:針對(duì)傳統(tǒng)的現(xiàn)場(chǎng)儀表無(wú)法與先進(jìn)的現(xiàn)場(chǎng)總線控制系統(tǒng)進(jìn)行通訊問(wèn)題,采用凌陽(yáng)單片機(jī)SPCE061A和西門子SPC3協(xié)議芯片設(shè)計(jì)了一種經(jīng)濟(jì)型PROFIBUS-DP通訊轉(zhuǎn)換接口模塊。給出了主體部分電路原理圖和軟件流程圖。
關(guān)鍵詞:PROFIBUS-DP總線;接口模塊;凌陽(yáng)單片機(jī)
Abstract:Because of the communication transform problem between traditional field instruments and FCS, an economical Profibus-DP communication transform interface module using Sunplus SPCE061A microprocessor and Siemens SPC3 protocol chip was designed in the paper. The schematic of main circuit and flowchart of software were given.
Keywords:PROFIBUS-DP bus;Interface Module;Sunplus Single-chip Microcomputer
0 引言
PROFIBUS(Process Fieldbus的縮寫)是一種國(guó)際化的、開(kāi)放的、不依賴于設(shè)備生產(chǎn)商的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)[1]。根據(jù)應(yīng)用領(lǐng)域分為PROFIBUS-FMS、PA、DP三個(gè)兼容部分。其中,DP是用于裝置級(jí)和現(xiàn)場(chǎng)級(jí)的制造業(yè)自動(dòng)化,技術(shù)相對(duì)成熟,應(yīng)用范圍廣,通用性強(qiáng)[2]。
目前,國(guó)外一些大的儀表制造廠商(如著名的SIEMENS,AEG,ABB公司等)分別推出了自己的PROFIBUS-DP現(xiàn)場(chǎng)總線控制系統(tǒng)及相應(yīng)的現(xiàn)場(chǎng)總線產(chǎn)品,他們的DP開(kāi)發(fā)技術(shù)已經(jīng)相當(dāng)成熟,其產(chǎn)品銷量很好;但這些成績(jī)主要來(lái)源于PLC系統(tǒng)的市場(chǎng)份額,而DP技術(shù)在現(xiàn)場(chǎng)總線智能儀表級(jí)的應(yīng)用方面尚需提高。目前,我國(guó)在PROFIBUS-DP技術(shù)研究及DP產(chǎn)品開(kāi)發(fā)方面起步較晚,一些自動(dòng)化企業(yè)和科研院所主要以系統(tǒng)集成和工程應(yīng)用為主,以SIEMENS的PLC系統(tǒng)為基礎(chǔ),借助于成熟的開(kāi)發(fā)包技術(shù),或者直接利用國(guó)外大公司提供的DP底層設(shè)備和智能儀表來(lái)構(gòu)建自己的控制系統(tǒng)。這樣做的缺點(diǎn)是:開(kāi)發(fā)成本高,系統(tǒng)缺乏靈活性。
為了降低成本并盡可能減少來(lái)自DP開(kāi)發(fā)者在技術(shù)方面的制約和限制,我們采用整體保留,局部改造的設(shè)計(jì)思想來(lái)開(kāi)發(fā)具有PROFIBUS-DP接口的經(jīng)濟(jì)型總線儀表。按照新型DP系統(tǒng)的結(jié)構(gòu)特征來(lái)設(shè)計(jì)滿足用戶需求的局部DP系統(tǒng);依照DP技術(shù)規(guī)范和用戶需求,用比較經(jīng)濟(jì)的開(kāi)發(fā)模式,為原有的現(xiàn)場(chǎng)儀表配備具有接入DP網(wǎng)絡(luò)功能的通訊接口,從而將原有儀表改造成總線儀表。
1 總線儀表接口模塊的硬件設(shè)計(jì)
經(jīng)濟(jì)型總線儀表的硬件結(jié)構(gòu)比較簡(jiǎn)單,主要由傳統(tǒng)儀表和PROFIBUS-DP接口模塊組成。如果將接口模塊放入傳統(tǒng)儀表內(nèi),則需重新設(shè)計(jì)儀表外殼;如果分開(kāi)放置,則只需設(shè)計(jì)DP接口模塊。該接口硬件設(shè)計(jì)采取分塊設(shè)計(jì)模式,即單片機(jī)控制和隔離驅(qū)動(dòng)兩部分電路。下面以普通電壓表為例,來(lái)描述DP接口的設(shè)計(jì)過(guò)程。
1.1 單片機(jī)控制電路
在DP系統(tǒng)中通常是多個(gè)主站和從站的結(jié)構(gòu),這個(gè)從站指的就是帶有DP接口的總線儀表,其經(jīng)濟(jì)性在接口設(shè)計(jì)方面主要體現(xiàn)在:控制電路采用了凌陽(yáng)61開(kāi)發(fā)板。它已經(jīng)包括了最小系統(tǒng)和外圍擴(kuò)展電路,體積小,價(jià)格相對(duì)便宜,功能比較完善。SPCE061A是其核心單片機(jī),16位μ’nSPTM微處理器;內(nèi)置2K字靜態(tài)內(nèi)存(SRAM)和32K字閃存(FLASH);32個(gè)通用I/O口;1個(gè)10位ADC(模擬數(shù)字轉(zhuǎn)換器)mic-in輸入通道,內(nèi)置麥克風(fēng)放大器和自動(dòng)增益(AGC)功能;7個(gè)10位ADC(模擬數(shù)字轉(zhuǎn)換器)line-in輸入通道;2個(gè)10位DAC(數(shù)字模擬轉(zhuǎn)換器)輸出通道;具有watchdog功能;可編程音頻處理[3]。單片機(jī)對(duì)外進(jìn)行數(shù)據(jù)交換就是通過(guò)它的32個(gè)通用I/O端口實(shí)現(xiàn)的。協(xié)議芯片SPC3對(duì)它來(lái)說(shuō)就是其擴(kuò)展的外部RAM。它與SPC3引腳的連接示意圖如圖1所示。
[align=center]

圖1 SPCE061A與SPC3連接示意圖

圖2 SPC3引腳外擴(kuò)示意圖[/align]
1.2 DP協(xié)議芯片SPC3
SPC3是西門子公司研制生產(chǎn)的一種用于開(kāi)發(fā)DP智能從站的用戶專用集成電路芯片,它遵照EN50170標(biāo)準(zhǔn),集成了完整的PROFIBUS-DP協(xié)議[4]。其44個(gè)引腳在DP接口設(shè)計(jì)中的外擴(kuò)方法如圖2所示。
1.3 隔離驅(qū)動(dòng)電路
這部分電路結(jié)構(gòu)與SPC3說(shuō)明書上所推薦的電路結(jié)構(gòu)相似,但其中的隔離芯片用的是一片6N137和兩片HCPL7721。在實(shí)驗(yàn)階段,用直插式芯片要比貼片式芯片方便一些。下面只簡(jiǎn)要敘述其內(nèi)部工作原理。
SPC3的XCTS腳是清除發(fā)送信號(hào),當(dāng)其為“1”時(shí),表示清除發(fā)送信號(hào);當(dāng)其為“0”時(shí),表示發(fā)送使能。SPC3的RTS腳是請(qǐng)求發(fā)送信號(hào),與RS-485的4針腳對(duì)應(yīng);SPC3的TXD腳是串行發(fā)送端口,RXD腳是串行接收端口,這兩個(gè)端口分別與RS-485的3針腳和8針腳對(duì)應(yīng)。第一路是請(qǐng)求發(fā)送信號(hào),所以單獨(dú)走線。當(dāng)高電平送到6N137的A腳時(shí),從VO腳輸出低電平;經(jīng)過(guò)74HC132與非門后變成高電平;這個(gè)信號(hào)送到SN75ALS176的DE端。第二路和第三路是收發(fā)信號(hào),所以走線相反。當(dāng)SPC3的TXD發(fā)出高電平時(shí),送到HCPL7721的VI端,其VO腳輸出高電平,接著送到75176的D腳。這時(shí),75176的A腳輸出高電平,B腳輸出低電平。當(dāng)總線向SPC3發(fā)送信號(hào)時(shí)的原理與之類似,不再敘述。
2 軟件設(shè)計(jì)
DP接口的硬件組成相對(duì)簡(jiǎn)單,這就給軟件設(shè)計(jì)帶來(lái)了一定的困難。因?yàn)橛布芯哂型ㄐ殴δ艿男酒挥蠸PC3,它集成了全部DP協(xié)議,但第二層的軟件功能和管理需要用戶通過(guò)軟件來(lái)實(shí)現(xiàn)。所以軟件設(shè)計(jì)是重點(diǎn)也是難點(diǎn)。我們采用模塊化設(shè)計(jì)思想,使整體結(jié)構(gòu)緊湊,條理清晰,易于調(diào)試和修改。軟件開(kāi)發(fā)環(huán)境是凌陽(yáng)61開(kāi)發(fā)板自帶的IDE。
2.1 SPC3初始化
SPC3的內(nèi)部集成了1.5KB雙端口RAM,地址為000H~5FFH。內(nèi)部RAM以8字節(jié)為1個(gè)單元(段),共分成192段。RAM空間按功能可分為處理器參數(shù)區(qū)、組織參數(shù)區(qū)和DP緩沖區(qū)三個(gè)區(qū)域。SPC3初始化就是在其上電后對(duì)內(nèi)部寄存器各個(gè)地址進(jìn)行對(duì)應(yīng)賦值。這些數(shù)值要根據(jù)用戶對(duì)參數(shù)區(qū)地址的每一位進(jìn)行具體設(shè)置而定。
[align=center]

圖3 SPC3初始化程序流程圖

圖4 DP接口主程序流程圖[/align]
2.2 主程序及中斷處理程序設(shè)計(jì)
SPCE061A的主要任務(wù)是初始化和啟動(dòng)SPC3、采集數(shù)據(jù)和顯示數(shù)值、數(shù)據(jù)的發(fā)送和接收、根據(jù)主站要求處理外部中斷。
當(dāng)上位機(jī)或主站向現(xiàn)場(chǎng)總線儀表發(fā)送命令時(shí),此儀表的DP接口要對(duì)此進(jìn)行響應(yīng)。此時(shí)的主程序就會(huì)跳到中斷程序來(lái)處理這些突然事件。外部中斷程序具體包括:處理新的全局控制命令、新的參數(shù)報(bào)文、新的I/O配置、新的地址、看門狗超時(shí)、用戶時(shí)鐘和查詢波特率等。
2.3 SPC3寄存器讀寫功能測(cè)試
在整體軟件開(kāi)發(fā)完成后,需要編寫一個(gè)測(cè)試程序來(lái)檢驗(yàn)以前的設(shè)計(jì)工作。凌陽(yáng)61開(kāi)發(fā)板與SPC3內(nèi)部寄存器交換數(shù)據(jù)只靠32個(gè)I/O端口。SPC3的初始化就是一個(gè)向其寄存器不斷寫入數(shù)據(jù)的過(guò)程。軟件開(kāi)發(fā)環(huán)境IDE的編程特點(diǎn)是通信數(shù)據(jù)要先通過(guò)I/O端口才能發(fā)送或接收,而且其開(kāi)發(fā)界面里可以看到通用寄存器的變化值。所以,判斷DP接口是否可以通信的一個(gè)重要標(biāo)志就是單片機(jī)是否可以讀、寫SPC3內(nèi)部寄存器的數(shù)據(jù)。
[align=center]

圖5 SPCE061A與SPC3內(nèi)部寄存器數(shù)據(jù)交換測(cè)試程序流程圖[/align]
3 編寫GSD文件
PROFIBUS-DP主站能夠與各種DP從站(從簡(jiǎn)單的I/O從站到復(fù)雜的智能從站)交換數(shù)據(jù),為了能夠安全方便地識(shí)別種類眾多的DP從站,需要得到從站的技術(shù)特性數(shù)據(jù),描述這些數(shù)據(jù)的文件稱為設(shè)備數(shù)據(jù)庫(kù)文件(Device Description Data file,GSD)[5]。
GSD文件用標(biāo)識(shí)符“#Profibus_DP”開(kāi)始,每一句都以符合PROFIBUS GSD文件標(biāo)準(zhǔn)的關(guān)鍵詞開(kāi)始,不區(qū)分大小寫,分號(hào)后面是注釋語(yǔ)句。PROFIBUS-DP智能從站只是包含了DP從站設(shè)備的一些基本功能,如從站支持的波特率、交換的輸入/輸出數(shù)據(jù)長(zhǎng)度和從站所屬的類型等[6]。下面是編寫從站GSD文件的部分內(nèi)容。
#Profibus_DP
;Unit-Definition-List:
GSD_Revision =2 ;GSD格式標(biāo)識(shí)符版本號(hào)
Model_Name =“SPC3_intelligent_slave” ;模塊名(控制器類型)
Protocol_Ident =0 ;DP設(shè)備使用的協(xié)議:PROFIBUS-DP
Station_Type =0 ;DP設(shè)備類型,從站
……
9.6_supp =1 ;支持波特率9.6Kbit/s
……
MaxTxdr_9.6 =60 ;9.6Kbit/s時(shí)最大延遲(響應(yīng))時(shí)間
……
;Slave-Specification:
OrderNumber =“SPC3_intelligent_slave” ;產(chǎn)品訂貨號(hào)
Implementation_Type =“SPC3 solution” ;使用芯片SPC3來(lái)開(kāi)發(fā)DP從站
Max_User_Prm_Data_Len =5 ;最大用戶參數(shù)數(shù)據(jù)長(zhǎng)度
Set_Slave_Add_supp =0 ;從站地址不可設(shè)置
Modular_Station =0 ;緊湊型從站
……
;Module-Definition-List:
Module =“8 Byte in,8 Byte out” ;I/O配置數(shù)據(jù)
EndModule
4 結(jié)束語(yǔ)
凌陽(yáng)61開(kāi)發(fā)板的性價(jià)比高,穩(wěn)定性好,DP總線儀表采用凌陽(yáng)單片機(jī)和協(xié)議芯片SPC3會(huì)使硬件電路簡(jiǎn)單緊湊,從而大大降低開(kāi)發(fā)成本,加快開(kāi)發(fā)進(jìn)程。通過(guò)軟件調(diào)試,智能從站基本功能已實(shí)現(xiàn),但此接口加到電壓表里會(huì)使體積增大,所以要想開(kāi)發(fā)外型美觀并且具有自主知識(shí)產(chǎn)權(quán)的經(jīng)濟(jì)型總線電壓表,需要在傳統(tǒng)儀表基礎(chǔ)上設(shè)計(jì)嵌入式DP接口,分別將其裝進(jìn)現(xiàn)場(chǎng)儀表和上一級(jí)控制設(shè)備中,從而使整個(gè)DP系統(tǒng)結(jié)構(gòu)緊湊,成本低廉,具有很好的市場(chǎng)應(yīng)用前景。
本文作者創(chuàng)新點(diǎn):拋開(kāi)目前比較流行的DP產(chǎn)品開(kāi)發(fā)包和總線橋技術(shù),采用性價(jià)比高的凌陽(yáng)61開(kāi)發(fā)板作為DP接口開(kāi)發(fā)平臺(tái);從經(jīng)濟(jì)性角度出發(fā),為傳統(tǒng)儀表設(shè)計(jì)DP總線接口,并將其改造成經(jīng)濟(jì)型總線儀表;從而降低整個(gè)DP系統(tǒng)的成本,使其具有更廣闊的應(yīng)用前景。
項(xiàng)目經(jīng)濟(jì)效益:如果一個(gè)小型PROFIBUS-DP控制系統(tǒng)的現(xiàn)場(chǎng)層分為10段,每段30個(gè)從站;那么預(yù)計(jì)采用上述設(shè)計(jì)方案比采用開(kāi)發(fā)包設(shè)計(jì)方案大約節(jié)省25萬(wàn)元,比采用嵌入式設(shè)計(jì)方案大約節(jié)省35萬(wàn)元,比直接采用國(guó)外DP儀表大約節(jié)省60萬(wàn)元。
參 考 文 獻(xiàn)
[1] 李正軍.現(xiàn)場(chǎng)總線及其應(yīng)用技術(shù).第一版.北京:機(jī)械工業(yè)出版社,2005.
[2] 陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用.北京:清華大學(xué)出版社,1999.
[3] 羅亞非等.凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ).第一版.北京:北京航空航天大學(xué)出版社,2005.
[4] SIEMENS AG.SPC3 Siemens PROFIBUS Controller User Description.Germany:the Fed.Rep.of Germany,2002.
[5] 夏繼強(qiáng),邢春香.第一版.北京:北京航空航天大學(xué)出版社,2005.
[6] SIEMENS AG.PROFIBUS-DP Device Description Data Files GSD.Version:2.2.Germany:Certification Center of Germany,2003.
[7] 李曉冬,孫鶴旭,云利軍,梁濤.PROFIBUS-DP在網(wǎng)絡(luò)化過(guò)程控制系統(tǒng)中的應(yīng)用.微計(jì)算機(jī)信息(測(cè)控自動(dòng)化),2005,21(5),22~23