黃育和 佘鵬 張立平
(廣東省科學院自動化工程研制中心)
控制器局域網(Control Area Network,CAN)現場總線具有優(yōu)先搶占總線仲裁的優(yōu)勢。其可靠性高、開放性強、組網靈活、成本較低、具有良好的實時性及傳輸防錯能力,真正實現了全數字化的雙向傳輸。利用CAN總線更容易實現“集中監(jiān)控,分散控制”這一現代工業(yè)的新型控制方式[1]。
CAN總線具有許多突出的性能優(yōu)點[2,3]。CAN協(xié)議建立在 ISO開放系統(tǒng)互聯(lián)模型的基礎上,但只取OSI模型結構的物理層、數據鏈路層和應用層。通常,CAN控制器負責物理層和數據鏈路層,而應用較廣泛的應用層協(xié)議有CANopen、DeviceNet等。CANopen由CiA(CAN in Automation)組織制定和發(fā)布,是一個基于CAL的子協(xié)議。其采用面向對象的思想設計,具有很好的模塊化特性和很強的適應性,不僅定義了應用層和通信子協(xié)議,而且為可編程系統(tǒng)、不同設備、接口、應用子協(xié)議定義了大量的規(guī)范,遵循該規(guī)范開發(fā)的設備能夠實現不同產品間的互連、互操作[4~6]。另外,CANopen協(xié)議是完全免費開放的,用戶開發(fā)此類產品,無需支付版稅。隨著對CANopen協(xié)議研究的深入,其應用越來越廣泛[7]。依據CiA規(guī)范,國內廠家開發(fā)了基于 CANopen協(xié)議的伺服驅動器、PLC、變頻器等產品,如:深圳步進科技有限公司的KINCO ED系列伺服驅動器;和利時公司的PLC產品 HOLLiAS-LEC G3系列可編程控制器;臺達VFD-E-C系列變頻器。
溫度既是自然界中一個重要的模擬量,又是科學研究中一個重要的基本物理量。同時溫度又是一個與人們生活環(huán)境、生產活動密切相關的量,在很多情況下都需要對溫度進行準確測量,以滿足各種要求[8]。溫度監(jiān)測在土木建筑施工、儲糧倉庫、智能樓宇、空調系統(tǒng)及其它工農業(yè)生產中有著廣泛的應用。隨著CANopen技術的普及應用,研制基于CANopen協(xié)議的多通道溫度測量模塊有利于提高自動化領域國產設備的占有率,為應用CAN總線的系統(tǒng)提供必備的硬件基礎設備。同時隨著CANopen總線系統(tǒng)廣泛應用于工業(yè)控制系統(tǒng),該類設備具有一定的市場前景。
多通道溫度測量模塊是嵌入式系統(tǒng)的一個典型應用,其硬件電路主要包括:人機接口、溫度測量接口、CAN接口、聯(lián)動輸出、電源變換、單片機及其外圍輔助電路,如圖1所示。
圖1 多通道溫度測量模塊硬件結構
人機接口實現的主要功能包括:各測量點溫度值顯示、模塊系統(tǒng)參數配置操作與顯示及CANopen節(jié)點工作狀態(tài)指示。如圖1所示,模塊的人機接口電路由按鍵、液晶顯示屏(CM19264)和發(fā)光二極管組成。
聯(lián)動輸出由繼電器及其驅動電路組成,主要實現模塊所測溫度超出用戶預設范圍時輸出報警。電源變換電路則為各功能電路提供電源,具體包括支持MCU、數字溫度傳感器、液晶顯示屏的5V電源、CAN總線側隔離電源、繼電器24V工作電源等。
2.2.1 嵌入式微控制器的選型
圖1的硬件結構中,除CAN通訊以外,其它應用(如溫度傳感器接口、LCD接口等)對嵌入式微處理器的端口均無特殊要求。文獻[9]、[10]指出:CAN嵌入式節(jié)點電路設計中,可采用獨立控制器+MCU或者直接使用內嵌CAN控制器的微處理器這兩種設計方案。同時,文獻[9]認為內嵌CAN控制器的微控制器設計方案是CAN智能節(jié)點設計的首選方案。
綜合分析多通道溫度測量模塊的功能需求,結合以往開發(fā)和應用經驗,設計中嵌入式微控制器選用Atmel公司的單片機AT90CAN128。關于該微處理器性能、功能及相關應用,文獻[10]~[13]有詳細描述。
2.2.2 溫度測量器件的選用
按照輸出信號的模式,集成溫度傳感器可大致劃分為三大類:模擬式、邏輯輸出式和數字式[8]。模擬式集成溫度傳感器即傳統(tǒng)的模擬溫度傳感器(如熱電偶),在一定溫度范圍內線性不好,需進行冷端或引線補償,熱慣性大且響應時間長;邏輯輸出式集成溫度傳感器適用于無需嚴格測量溫度值,只注重溫度是否超出設定范圍的場合;而數字式集成溫度傳感器在20世紀90年代中期出現,是微電子技術、計算機技術和自動測試技術的結晶。目前市場上有多種數字溫度傳感器系列產品可供選擇。
模塊采用1-Wire總線器件DS18B20實現多點溫度測量功能。DS18B20是美國DALLAS公司生產的數字溫度傳感器,測溫范圍為-55℃~125℃,在-10℃~85℃范圍時精度達±0.5℃;轉換時間為750ms[14]。據文獻[15]~[19]的報導,DS18B20在國內許多設備和場合得到廣泛應用。盡管一條線上允許并接多個DS18B20,但在開發(fā)中,設計了4路DS18B20數字溫度傳感器接口(每路允許接入4只傳感器),以適用不同應用的需求。
CAN接口與驅動電路設計的關鍵是CAN總線驅動芯片選型和隔離電路設計。設計中選用恩智浦(NXP)公司的TJA1040T芯片作為CAN驅動器。隔離電路方面,文獻[12]、[13]與[22]介紹了以光電耦合器為核心的電路,此類電路存在元器件較多、光耦電流傳輸比離散大、電路匹配電阻調整困難等缺點。
模塊設計采用Analog Devices公司的iCoupler磁耦隔離技術的雙通道數字隔離器ADuM1201。與光電耦合器比較,ADuM1201具有更高的數據傳輸速率、時序精度和瞬態(tài)共模抑制能力,更低的功耗和更小的體積,并消除了光電耦合器不穩(wěn)定的電流傳輸比、非線性傳輸、溫度和使用壽命等方面的問題[23]。CAN接口驅動電路如圖2 所示。
嵌入式程序開發(fā)在AVR Studio V4.18集成環(huán)境下進行,由LCD顯示處理、按鍵操作處理、數字溫度傳感器處理、CANopen協(xié)議實現程序、LED指示程序和繼電器輸出處理模塊組成,其結構如圖3 所示。
LCD顯示和按鍵處理程序實現的功能包括:參數設置/查詢、工作狀態(tài)、各傳感器溫度顯示、顯示界面切換等。其中模塊參數包含 CANopen工作參數、DS18B20邏輯編號、繼電器輸出鏈接關系設定等。
圖2 CAN接口驅動電路
數字溫度傳感器處理程序實現 DS18B20驅動和數據處理。其中 DS18B20驅動程序在文獻[16]~[21]均有介紹。設計中,針對4路端口使用同一MCU定時器來產生DS18B20通信所需的時序波形。數字傳感器轉換時間為 750ms,若 MCU順序依次與DS18B20進行通信,則整個周期達十多秒,顯然滿足不了模塊對溫度動態(tài)刷新的要求。因此,在程序設計時采用了如下策略:利用傳感器提供的搜索(Skip ROM)指令,先依次啟動4路端口所有DS18B20進行溫度轉換,延時750ms后,通過匹配ROM指令再逐一地讀回每個傳感器的溫度數據。這樣,模塊每一個溫度測量刷新時間都小于1秒。
圖3 多通道溫度測量模塊軟件結構
LED狀態(tài)顯示程序:依據CiA DR 303規(guī)范,將CANopen節(jié)點的狀態(tài)在運行、狀態(tài)和錯誤指示燈上以常亮、常滅或不同頻率閃爍的方式顯示。
聯(lián)動繼電器輸出處理程序:依據參數配置,某組(或某個)溫度傳感器邏輯編號及其溫度范圍關系驅動對應的繼電器,如繼電器A和邏輯1#、2#傳感器建立鏈接關系,且設定溫度超過50℃時報警,則1#或2#傳感器溫度超過50℃時,繼電器A線圈得電。
如圖3 所示,CANopen協(xié)議處理程序包括:CAN底層驅動、網絡管理(Network Management,NMT)、服務對象數據(Service Data Object,SDO)和過程數據對象(Process Data Object,PDO)處理程序。
實現CANopen協(xié)議嵌入式系統(tǒng)軟件的方法有:① 根據嵌入式控制器選型購買商品化的軟件協(xié)議棧;② 利用支持CAN的通訊處理器自行開發(fā)應用軟件。采用購買“商業(yè)CANopen協(xié)議?!钡姆桨干写嬖诓簧偃秉c。原則上,商業(yè)解決方案的開發(fā)目標之一是可移植性,所提供的協(xié)議棧通常能在很寬的目標系統(tǒng)平臺上運行,包括高端的PC到低端的8位單片機。因此,軟件在接口和資源上進行一些妥協(xié),增加了不少額外的開銷。從技術積累角度出發(fā),多通道溫度測量模塊研發(fā)中采用自行開發(fā)CANopen協(xié)議從節(jié)點軟件的方案。協(xié)議軟件實現采用分層法,將程序模塊分為協(xié)議層、通信層和應用層;并將這一思想貫穿于設計、測試和驗證的每一個階段。
CANopen協(xié)議節(jié)點嵌入式軟件設計主要依據CiA DS301(V4.02)和DSP 302(V3.3)來實現。對于 NMT、SPD 和 PDO 等概念,文獻[6]、[7]、[22]與[25]均有介紹。采用USBCAN-Ⅱ雙路智能CAN接口模塊與ZLG CANTEST通用測試軟件進行測試,實現并驗證的CANopen通訊功能包括:① NMT管理功能:最小引導功能,節(jié)點處于NMT從節(jié)點角色,根據配置確定是否上電自引導、是否啟動心跳幀等;② SDO通訊:1個接收服務數據對象(RSDO)、1個發(fā)送服務對象(TSDO),實現主節(jié)點對本模塊的集成配置功能;③ PDO通訊:1個接收過程數據對象(RPDO)用于模塊聯(lián)動輸出的復位或強制輸出;4個發(fā)送過程數據對象(TPDO)分別用于傳送模塊 4路端口測量的溫度值。
多通道溫度測量模塊以AVR微控制器為核心器件,設計具有CAN接口的嵌入式硬件系統(tǒng);依據CiA規(guī)范設計嵌入式軟件,實現了CANopen協(xié)議從節(jié)點通訊功能。雖然模塊研發(fā)過程中對CANopen通訊進行了多角度的測試,但依據CiA規(guī)范:CANopen節(jié)點通訊功能需要委托 CiA認可的第三方檢驗機構驗證,其檢驗費用昂貴。下一步的工作是:在若干場合,多通道溫度測量模塊與其它基于CANopen協(xié)議的智能設備或儀表(如變頻器、流量計等)集成于一個總線系統(tǒng),從而在應用現場綜合檢驗其功能和性能。
[1]潘明,張密,余臣,等.基于 CAN 總線的分布式紅外測量系統(tǒng)[J].中國測試技術,2008,34(5):49-51.
[2]史久根,張培仁,陳真勇.CAN 現場總線系統(tǒng)設計技術[M].北京:國防工業(yè)出版社,2004:20-22.
[3]Robert Bosch GmbH. CAN Specification Version 2.0[EB/OL].1991:www.gaw.ru/data/Interface/CAN_BUS.PDF.
[4]CAN in Automation. CANopen Application Layer and communication Profile [EB/OL]. CiA Draft Standard 301,Version 4.02,2002: http://www.can-cia.org/index.php?id=specifications.
[5]Kuang Fuhua,Xu Bugong. An Implementation of CANopen at Water Electrolysis Hydrogen Generation Station[J].Proceedings of 2010 International Colloquium on Computing,Comunication,Control,and Management (CCCM2010)2010,(3):738-741.
[6]鄧遵義,寧祎.CANopen協(xié)議剖析及其在伺服電機控制中的實現[J].機電工程,2007,(24)8:39-41.
[7]蔣智康,宋春寧,宋紹劍.PIC18單片機的CANopen通信協(xié)議[J].單片機與嵌入式系統(tǒng)應用,2008,(9):24-27.
[8]張萌,和湘,等.單片機應用系統(tǒng)開發(fā)綜合實例[M].北京:清華大學出版社,2007.
[9]黃育和,張立平,徐永謙.CAN總線智能節(jié)點設計硬件選型問題的探討[J].儀器儀表標準化與計量,2007,(2):29-32.
[10]王治國,高玉峰,劉亞龍,等.AVR單片機集成CAN總線控制器分析與應用[J].電子產品世界,2011,18(6):34-37.
[11]江杰,范宇.基于單片機的某車型CAN總線系統(tǒng)設計[J].微計算機信息,2006,22(11-2):34-35.
[12]李積英.基于AT90CAN128單片機CAN總線實現方案的研究[J].蘭州交通大學學報(自然科學版),2007,26(1):32-34.
[13]魏敬宣,劉立,高鵬,等.基于AT90CAN128的車用CAN網絡節(jié)點的研究與實現[J].測控技術,2007,26(2):57-59.
[14]Dallas Semiconductor. DS18B20 Programmable Resolution 1-Wire Digital Thermometer. [EB/OL]. http: / /datasheets.maxim-ic.com/en /ds /DS18B20.pdf.
[15]黃育和,程韜波.基于Modbus RTU協(xié)議的數字智能模塊的設計[J].工程技術,2007,36(5):38-40.
[16]龔志勇,程遠,勾勇華,等.采用DS18B20作溫度補償的超聲波液位計[J].測控技術,2004,23(11),6-7.
[17]沙占友.傳感器原理與應用[M].北京:機械工業(yè)出版社,2002.
[18]宋炳雨,高松,鐘磊,等.DS12B20溫度傳感器在電動汽車電池管理系統(tǒng)中的應用[J].山東理工大學學報(自然科學版),2010,24(5):82-85.
[19]宋亞偉,李恒宗.基于 DS18B20的溫度采集控制系統(tǒng)[J].機電工程技術,2008,37(9):89-91.
[20]江太輝,鄧展威.DS18B20數字式溫度傳感器的特性與應用[J].電子技術,2003,30(12):46-49.
[21]王經卓.單總線溫度監(jiān)測網絡的設計與實現[J].微計算機信息,2006,22(3-1):156-158.
[22]劉冬梅,王清陽,胥布工.CANopen在工業(yè)流水線控制系統(tǒng)仿真的研究[J].計算機測量與控制,2007,15(2):195-197.
[23]魏煒,黃成軍,沈昊,等.數字隔離器及其在高速數據采集系統(tǒng)中的應用[J].工業(yè)控制計算機,2007,20(2):17-18.
[24]李英,徐釗.采用ADuM1201的CAN總線隔離方法[J].單片機與嵌入式系統(tǒng)應用,2006,(4):45-47.
[25]鄧遵義,寧祎.基于 CANopen協(xié)議的主節(jié)點通訊實現[J].微計算機信息,2008,24(8-2):62-63.