黃育和 佘鵬 張立平
(廣東省科學院自動化工程研制中心)
控制器局域網(Control Area Network,CAN)現場總線具有優先搶占總線仲裁的優勢。其可靠性高、開放性強、組網靈活、成本較低、具有良好的實時性及傳輸防錯能力,真正實現了全數字化的雙向傳輸。利用CAN總線更容易實現“集中監控,分散控制”這一現代工業的新型控制方式[1]。
CAN總線具有許多突出的性能優點[2,3]。CAN協議建立在 ISO開放系統互聯模型的基礎上,但只取OSI模型結構的物理層、數據鏈路層和應用層。通常,CAN控制器負責物理層和數據鏈路層,而應用較廣泛的應用層協議有CANopen、DeviceNet等。CANopen由CiA(CAN in Automation)組織制定和發布,是一個基于CAL的子協議。其采用面向對象的思想設計,具有很好的模塊化特性和很強的適應性,不僅定義了應用層和通信子協議,而且為可編程系統、不同設備、接口、應用子協議定義了大量的規范,遵循該規范開發的設備能夠實現不同產品間的互連、互操作[4~6]。另外,CANopen協議是完全免費開放的,用戶開發此類產品,無需支付版稅。隨著對CANopen協議研究的深入,其應用越來越廣泛[7]。依據CiA規范,國內廠家開發了基于 CANopen協議的伺服驅動器、PLC、變頻器等產品,如:深圳步進科技有限公司的KINCO ED系列伺服驅動器;和利時公司的PLC產品 HOLLiAS-LEC G3系列可編程控制器;臺達VFD-E-C系列變頻器。
溫度既是自然界中一個重要的模擬量,又是科學研究中一個重要的基本物理量。同時溫度又是一個與人們生活環境、生產活動密切相關的量,在很多情況下都需要對溫度進行準確測量,以滿足各種要求[8]。溫度監測在土木建筑施工、儲糧倉庫、智能樓宇、空調系統及其它工農業生產中有著廣泛的應用。隨著CANopen技術的普及應用,研制基于CANopen協議的多通道溫度測量模塊有利于提高自動化領域國產設備的占有率,為應用CAN總線的系統提供必備的硬件基礎設備。同時隨著CANopen總線系統廣泛應用于工業控制系統,該類設備具有一定的市場前景。
多通道溫度測量模塊是嵌入式系統的一個典型應用,其硬件電路主要包括:人機接口、溫度測量接口、CAN接口、聯動輸出、電源變換、單片機及其外圍輔助電路,如圖1所示。

圖1 多通道溫度測量模塊硬件結構
人機接口實現的主要功能包括:各測量點溫度值顯示、模塊系統參數配置操作與顯示及CANopen節點工作狀態指示。如圖1所示,模塊的人機接口電路由按鍵、液晶顯示屏(CM19264)和發光二極管組成。
聯動輸出由繼電器及其驅動電路組成,主要實現模塊所測溫度超出用戶預設范圍時輸出報警。電源變換電路則為各功能電路提供電源,具體包括支持MCU、數字溫度傳感器、液晶顯示屏的5V電源、CAN總線側隔離電源、繼電器24V工作電源等。
2.2.1 嵌入式微控制器的選型
圖1的硬件結構中,除CAN通訊以外,其它應用(如溫度傳感器接口、LCD接口等)對嵌入式微處理器的端口均無特殊要求。文獻[9]、[10]指出:CAN嵌入式節點電路設計中,可采用獨立控制器+MCU或者直接使用內嵌CAN控制器的微處理器這兩種設計方案。同時,文獻[9]認為內嵌CAN控制器的微控制器設計方案是CAN智能節點設計的首選方案。
綜合分析多通道溫度測量模塊的功能需求,結合以往開發和應用經驗,設計中嵌入式微控制器選用Atmel公司的單片機AT90CAN128。關于該微處理器性能、功能及相關應用,文獻[10]~[13]有詳細描述。
2.2.2 溫度測量器件的選用
按照輸出信號的模式,集成溫度傳感器可大致劃分為三大類:模擬式、邏輯輸出式和數字式[8]。模擬式集成溫度傳感器即傳統的模擬溫度傳感器(如熱電偶),在一定溫度范圍內線性不好,需進行冷端或引線補償,熱慣性大且響應時間長;邏輯輸出式集成溫度傳感器適用于無需嚴格測量溫度值,只注重溫度是否超出設定范圍的場合;而數字式集成溫度傳感器在20世紀90年代中期出現,是微電子技術、計算機技術和自動測試技術的結晶。目前市場上有多種數字溫度傳感器系列產品可供選擇。
模塊采用1-Wire總線器件DS18B20實現多點溫度測量功能。DS18B20是美國DALLAS公司生產的數字溫度傳感器,測溫范圍為-55℃~125℃,在-10℃~85℃范圍時精度達±0.5℃;轉換時間為750ms[14]。據文獻[15]~[19]的報導,DS18B20在國內許多設備和場合得到廣泛應用。盡管一條線上允許并接多個DS18B20,但在開發中,設計了4路DS18B20數字溫度傳感器接口(每路允許接入4只傳感器),以適用不同應用的需求。
CAN接口與驅動電路設計的關鍵是CAN總線驅動芯片選型和隔離電路設計。設計中選用恩智浦(NXP)公司的TJA1040T芯片作為CAN驅動器。隔離電路方面,文獻[12]、[13]與[22]介紹了以光電耦合器為核心的電路,此類電路存在元器件較多、光耦電流傳輸比離散大、電路匹配電阻調整困難等缺點。
模塊設計采用Analog Devices公司的iCoupler磁耦隔離技術的雙通道數字隔離器ADuM1201。與光電耦合器比較,ADuM1201具有更高的數據傳輸速率、時序精度和瞬態共模抑制能力,更低的功耗和更小的體積,并消除了光電耦合器不穩定的電流傳輸比、非線性傳輸、溫度和使用壽命等方面的問題[23]。CAN接口驅動電路如圖2 所示。
嵌入式程序開發在AVR Studio V4.18集成環境下進行,由LCD顯示處理、按鍵操作處理、數字溫度傳感器處理、CANopen協議實現程序、LED指示程序和繼電器輸出處理模塊組成,其結構如圖3 所示。
LCD顯示和按鍵處理程序實現的功能包括:參數設置/查詢、工作狀態、各傳感器溫度顯示、顯示界面切換等。其中模塊參數包含 CANopen工作參數、DS18B20邏輯編號、繼電器輸出鏈接關系設定等。

圖2 CAN接口驅動電路
數字溫度傳感器處理程序實現 DS18B20驅動和數據處理。其中 DS18B20驅動程序在文獻[16]~[21]均有介紹。設計中,針對4路端口使用同一MCU定時器來產生DS18B20通信所需的時序波形。數字傳感器轉換時間為 750ms,若 MCU順序依次與DS18B20進行通信,則整個周期達十多秒,顯然滿足不了模塊對溫度動態刷新的要求。因此,在程序設計時采用了如下策略:利用傳感器提供的搜索(Skip ROM)指令,先依次啟動4路端口所有DS18B20進行溫度轉換,延時750ms后,通過匹配ROM指令再逐一地讀回每個傳感器的溫度數據。這樣,模塊每一個溫度測量刷新時間都小于1秒。

圖3 多通道溫度測量模塊軟件結構
LED狀態顯示程序:依據CiA DR 303規范,將CANopen節點的狀態在運行、狀態和錯誤指示燈上以常亮、常滅或不同頻率閃爍的方式顯示。
聯動繼電器輸出處理程序:依據參數配置,某組(或某個)溫度傳感器邏輯編號及其溫度范圍關系驅動對應的繼電器,如繼電器A和邏輯1#、2#傳感器建立鏈接關系,且設定溫度超過50℃時報警,則1#或2#傳感器溫度超過50℃時,繼電器A線圈得電。
如圖3 所示,CANopen協議處理程序包括:CAN底層驅動、網絡管理(Network Management,NMT)、服務對象數據(Service Data Object,SDO)和過程數據對象(Process Data Object,PDO)處理程序。
實現CANopen協議嵌入式系統軟件的方法有:① 根據嵌入式控制器選型購買商品化的軟件協議棧;② 利用支持CAN的通訊處理器自行開發應用軟件。采用購買“商業CANopen協議棧”的方案尚存在不少缺點。原則上,商業解決方案的開發目標之一是可移植性,所提供的協議棧通常能在很寬的目標系統平臺上運行,包括高端的PC到低端的8位單片機。因此,軟件在接口和資源上進行一些妥協,增加了不少額外的開銷。從技術積累角度出發,多通道溫度測量模塊研發中采用自行開發CANopen協議從節點軟件的方案。協議軟件實現采用分層法,將程序模塊分為協議層、通信層和應用層;并將這一思想貫穿于設計、測試和驗證的每一個階段。
CANopen協議節點嵌入式軟件設計主要依據CiA DS301(V4.02)和DSP 302(V3.3)來實現。對于 NMT、SPD 和 PDO 等概念,文獻[6]、[7]、[22]與[25]均有介紹。采用USBCAN-Ⅱ雙路智能CAN接口模塊與ZLG CANTEST通用測試軟件進行測試,實現并驗證的CANopen通訊功能包括:① NMT管理功能:最小引導功能,節點處于NMT從節點角色,根據配置確定是否上電自引導、是否啟動心跳幀等;② SDO通訊:1個接收服務數據對象(RSDO)、1個發送服務對象(TSDO),實現主節點對本模塊的集成配置功能;③ PDO通訊:1個接收過程數據對象(RPDO)用于模塊聯動輸出的復位或強制輸出;4個發送過程數據對象(TPDO)分別用于傳送模塊 4路端口測量的溫度值。
多通道溫度測量模塊以AVR微控制器為核心器件,設計具有CAN接口的嵌入式硬件系統;依據CiA規范設計嵌入式軟件,實現了CANopen協議從節點通訊功能。雖然模塊研發過程中對CANopen通訊進行了多角度的測試,但依據CiA規范:CANopen節點通訊功能需要委托 CiA認可的第三方檢驗機構驗證,其檢驗費用昂貴。下一步的工作是:在若干場合,多通道溫度測量模塊與其它基于CANopen協議的智能設備或儀表(如變頻器、流量計等)集成于一個總線系統,從而在應用現場綜合檢驗其功能和性能。
[1]潘明,張密,余臣,等.基于 CAN 總線的分布式紅外測量系統[J].中國測試技術,2008,34(5):49-51.
[2]史久根,張培仁,陳真勇.CAN 現場總線系統設計技術[M].北京:國防工業出版社,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協議剖析及其在伺服電機控制中的實現[J].機電工程,2007,(24)8:39-41.
[7]蔣智康,宋春寧,宋紹劍.PIC18單片機的CANopen通信協議[J].單片機與嵌入式系統應用,2008,(9):24-27.
[8]張萌,和湘,等.單片機應用系統開發綜合實例[M].北京:清華大學出版社,2007.
[9]黃育和,張立平,徐永謙.CAN總線智能節點設計硬件選型問題的探討[J].儀器儀表標準化與計量,2007,(2):29-32.
[10]王治國,高玉峰,劉亞龍,等.AVR單片機集成CAN總線控制器分析與應用[J].電子產品世界,2011,18(6):34-37.
[11]江杰,范宇.基于單片機的某車型CAN總線系統設計[J].微計算機信息,2006,22(11-2):34-35.
[12]李積英.基于AT90CAN128單片機CAN總線實現方案的研究[J].蘭州交通大學學報(自然科學版),2007,26(1):32-34.
[13]魏敬宣,劉立,高鵬,等.基于AT90CAN128的車用CAN網絡節點的研究與實現[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協議的數字智能模塊的設計[J].工程技術,2007,36(5):38-40.
[16]龔志勇,程遠,勾勇華,等.采用DS18B20作溫度補償的超聲波液位計[J].測控技術,2004,23(11),6-7.
[17]沙占友.傳感器原理與應用[M].北京:機械工業出版社,2002.
[18]宋炳雨,高松,鐘磊,等.DS12B20溫度傳感器在電動汽車電池管理系統中的應用[J].山東理工大學學報(自然科學版),2010,24(5):82-85.
[19]宋亞偉,李恒宗.基于 DS18B20的溫度采集控制系統[J].機電工程技術,2008,37(9):89-91.
[20]江太輝,鄧展威.DS18B20數字式溫度傳感器的特性與應用[J].電子技術,2003,30(12):46-49.
[21]王經卓.單總線溫度監測網絡的設計與實現[J].微計算機信息,2006,22(3-1):156-158.
[22]劉冬梅,王清陽,胥布工.CANopen在工業流水線控制系統仿真的研究[J].計算機測量與控制,2007,15(2):195-197.
[23]魏煒,黃成軍,沈昊,等.數字隔離器及其在高速數據采集系統中的應用[J].工業控制計算機,2007,20(2):17-18.
[24]李英,徐釗.采用ADuM1201的CAN總線隔離方法[J].單片機與嵌入式系統應用,2006,(4):45-47.
[25]鄧遵義,寧祎.基于 CANopen協議的主節點通訊實現[J].微計算機信息,2008,24(8-2):62-63.