摘 要:針對傳統的現場儀表無法與先進的現場總線控制系統進行通訊問題,采用凌陽單片機SPCE061A和西門子SPC3協議芯片設計了一種經濟型PROFIBUS-DP通訊轉換接口模塊。給出了主體部分電路原理圖和軟件流程圖。
關鍵詞:PROFIBUS-DP總線;接口模塊;凌陽單片機
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的縮寫)是一種國際化的、開放的、不依賴于設備生產商的現場總線標準[1]。根據應用領域分為PROFIBUS-FMS、PA、DP三個兼容部分。其中,DP是用于裝置級和現場級的制造業自動化,技術相對成熟,應用范圍廣,通用性強[2]。
目前,國外一些大的儀表制造廠商(如著名的SIEMENS,AEG,ABB公司等)分別推出了自己的PROFIBUS-DP現場總線控制系統及相應的現場總線產品,他們的DP開發技術已經相當成熟,其產品銷量很好;但這些成績主要來源于PLC系統的市場份額,而DP技術在現場總線智能儀表級的應用方面尚需提高。目前,我國在PROFIBUS-DP技術研究及DP產品開發方面起步較晚,一些自動化企業和科研院所主要以系統集成和工程應用為主,以SIEMENS的PLC系統為基礎,借助于成熟的開發包技術,或者直接利用國外大公司提供的DP底層設備和智能儀表來構建自己的控制系統。這樣做的缺點是:開發成本高,系統缺乏靈活性。
為了降低成本并盡可能減少來自DP開發者在技術方面的制約和限制,我們采用整體保留,局部改造的設計思想來開發具有PROFIBUS-DP接口的經濟型總線儀表。按照新型DP系統的結構特征來設計滿足用戶需求的局部DP系統;依照DP技術規范和用戶需求,用比較經濟的開發模式,為原有的現場儀表配備具有接入DP網絡功能的通訊接口,從而將原有儀表改造成總線儀表。
1 總線儀表接口模塊的硬件設計
經濟型總線儀表的硬件結構比較簡單,主要由傳統儀表和PROFIBUS-DP接口模塊組成。如果將接口模塊放入傳統儀表內,則需重新設計儀表外殼;如果分開放置,則只需設計DP接口模塊。該接口硬件設計采取分塊設計模式,即單片機控制和隔離驅動兩部分電路。下面以普通電壓表為例,來描述DP接口的設計過程。
1.1 單片機控制電路
在DP系統中通常是多個主站和從站的結構,這個從站指的就是帶有DP接口的總線儀表,其經濟性在接口設計方面主要體現在:控制電路采用了凌陽61開發板。它已經包括了最小系統和外圍擴展電路,體積小,價格相對便宜,功能比較完善。SPCE061A是其核心單片機,16位μ’nSPTM微處理器;內置2K字靜態內存(SRAM)和32K字閃存(FLASH);32個通用I/O口;1個10位ADC(模擬數字轉換器)mic-in輸入通道,內置麥克風放大器和自動增益(AGC)功能;7個10位ADC(模擬數字轉換器)line-in輸入通道;2個10位DAC(數字模擬轉換器)輸出通道;具有watchdog功能;可編程音頻處理[3]。單片機對外進行數據交換就是通過它的32個通用I/O端口實現的。協議芯片SPC3對它來說就是其擴展的外部RAM。它與SPC3引腳的連接示意圖如圖1所示。
[align=center]

圖1 SPCE061A與SPC3連接示意圖

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

圖3 SPC3初始化程序流程圖

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

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