張 星 張建國 周 暢 付道俊
(武漢第二船舶設(shè)計(jì)研究所 武漢 430064)
?
一種用于電磁閥控制的CAN總線數(shù)據(jù)傳輸協(xié)議設(shè)計(jì)*
張星張建國周暢付道俊
(武漢第二船舶設(shè)計(jì)研究所武漢430064)
CAN總線憑借其優(yōu)越性已成為應(yīng)用最為廣泛的現(xiàn)場總線之一。針對(duì)電磁閥控制系統(tǒng),論文提出一種CAN總線數(shù)據(jù)傳輸協(xié)議,詳細(xì)描述了協(xié)議實(shí)現(xiàn),經(jīng)過測(cè)試驗(yàn)證了其良好效果。
CAN總線; 數(shù)據(jù)傳輸協(xié)議; 電磁閥控制
Class NumberTP393.04
CAN總線,即控制器局域網(wǎng)總線(Controller Area Network,CAN),是一種用于實(shí)時(shí)應(yīng)用的串行通訊協(xié)議總線。憑借其實(shí)時(shí)性強(qiáng)、傳輸距離較遠(yuǎn)、抗電磁干擾能力強(qiáng)、成本低等優(yōu)勢(shì),CAN總線成為世界上應(yīng)用最廣泛的現(xiàn)場總線之一,應(yīng)用領(lǐng)域包括航空航天、船舶、汽車控制、醫(yī)療設(shè)備、工業(yè)控制等各方面[1~3]。
電磁閥適用于各種液體、氣體等管路的自動(dòng)控制,廣泛應(yīng)用于軍工、航天、船舶重工、核工業(yè)、石化等領(lǐng)域,是極其關(guān)鍵的執(zhí)行機(jī)件,閥件控制的實(shí)時(shí)性、準(zhǔn)確性、可靠性影響整個(gè)系統(tǒng)的性能[4]。
本文針對(duì)電磁閥控制系統(tǒng),提出一種CAN總線數(shù)據(jù)傳輸協(xié)議,下面給出其詳細(xì)設(shè)計(jì)。
本協(xié)議采用CAN2.0B擴(kuò)展幀格式[5~10],采用數(shù)據(jù)幀通信,通信速率設(shè)置為250kbps,29位ID分配見表1。
表1 ID分配說明
本文設(shè)計(jì)總線命令包括控制開關(guān)、群控、讀取
閥件狀態(tài)、讀取詳細(xì)信息,滿足閥件控制的所有需求??偩€命令描述見表2。
表2 總線命令描述
假設(shè)負(fù)載輸出為16路固態(tài)配電開關(guān)和4路繼電器觸點(diǎn),均用CAN總線控制其通斷。采用ID_DOWN(節(jié)點(diǎn)號(hào),通道號(hào),總線命令)的形式來描述上位機(jī)發(fā)送ID,并采用ID_UP(節(jié)點(diǎn)號(hào),通道號(hào),總線命令)的形式來描述節(jié)點(diǎn)回復(fù)ID,數(shù)據(jù)域長度與實(shí)際列出數(shù)據(jù)對(duì)應(yīng)。以下詳細(xì)說明各命令的協(xié)議格式。
3.1控制開通(TURN_ON)
控制開通為上位機(jī)發(fā)送命令,ID中包含設(shè)備地址、通道號(hào)和命令碼,在后續(xù)數(shù)據(jù)中設(shè)置確認(rèn)位以避免誤操作。其協(xié)議格式如表3。
表3 控制開通協(xié)議格式
回復(fù)
IDID_UP(設(shè)備地址,通道號(hào)0~19,0x02)無數(shù)據(jù)域
3.2控制關(guān)斷(TURN_ON)
控制關(guān)斷為上位機(jī)發(fā)送命令,ID中包含設(shè)備地址、通道號(hào)和命令碼,在后續(xù)數(shù)據(jù)中設(shè)置確認(rèn)位以避免誤操作。其協(xié)議格式如表4。
表4 控制關(guān)斷協(xié)議格式
回復(fù)
IDID_UP(設(shè)備地址,通道號(hào)0~19,0x04)無數(shù)據(jù)域
3.3群控(WHOLE_CONTROL)
群控為上位機(jī)發(fā)送命令,ID中包含設(shè)備地址、通道號(hào)和命令碼。其協(xié)議格式如表5。群控功能能同時(shí)控制多個(gè)電磁閥的開關(guān)狀態(tài),并自動(dòng)回復(fù)各電磁閥開關(guān)狀態(tài),不用單獨(dú)發(fā)送獲取狀態(tài)命令,極大提升電磁閥控制效率。為保證控制的抗干擾性,設(shè)計(jì)Data3為校驗(yàn)和位。
表5 群控協(xié)議格式
回復(fù)
IDID_UP(設(shè)備地址,通道號(hào)63,0x08)Data0Bit7~Bit0依次與通道號(hào)7~0固態(tài)配電開關(guān)的開關(guān)狀態(tài)對(duì)應(yīng)1:開0:關(guān)Data1Bit7~Bit0依次與通道號(hào)15~8固態(tài)配電開關(guān)的開關(guān)狀態(tài)對(duì)應(yīng)1:開0:關(guān)Data2Bit7~Bit4對(duì)應(yīng)繼電器檢測(cè)3~0路狀態(tài)Bit3~Bit0對(duì)應(yīng)通道號(hào)19~16繼電器開關(guān)狀態(tài)1:吸合0:釋放Data3Bit7~Bit0對(duì)應(yīng)電磁閥7~0路狀態(tài)1:吸合0:釋放Data4Bit7~Bit0對(duì)應(yīng)電磁閥15~8路狀態(tài)1:吸合0:釋放Data5Bit7~Bit0對(duì)應(yīng)電磁閥23~16路狀態(tài)1:吸合0:釋放Data6Bit7~Bit0對(duì)應(yīng)電磁閥31~24路狀態(tài)1:吸合0:釋放
3.4讀取閥件狀態(tài)(GET_STATUS)
讀取閥件狀態(tài)為上位機(jī)發(fā)送命令,ID中包含設(shè)備地址、通道號(hào)和命令碼。其協(xié)議格式如表6。命令回復(fù)內(nèi)容與群控回復(fù)內(nèi)容一致。
表6 讀取閥件狀態(tài)協(xié)議格式
回復(fù)
IDID_UP(設(shè)備地址,通道號(hào)63,0x08)Data0Bit7~Bit0依次與通道號(hào)7~0固態(tài)配電開關(guān)的開關(guān)狀態(tài)對(duì)應(yīng)1:開0:關(guān)Data1Bit7~Bit0依次與通道號(hào)15~8固態(tài)配電開關(guān)的開關(guān)狀態(tài)對(duì)應(yīng)1:開0:關(guān)
IDID_UP(設(shè)備地址,通道號(hào)63,0x08)Data2Bit7~Bit4對(duì)應(yīng)繼電器檢測(cè)3~0路狀態(tài)Bit3~Bit0對(duì)應(yīng)通道號(hào)19~16繼電器開關(guān)狀態(tài)1:吸合0:釋放Data3Bit7~Bit0對(duì)應(yīng)電磁閥7~0路狀態(tài)1:吸合0:釋放Data4Bit7~Bit0對(duì)應(yīng)電磁閥15~8路狀態(tài)1:吸合0:釋放Data5Bit7~Bit0對(duì)應(yīng)電磁閥23~16路狀態(tài)1:吸合0:釋放Data6Bit7~Bit0對(duì)應(yīng)電磁閥31~24路狀態(tài)1:吸合0:釋放
3.5讀取詳細(xì)信息(GET_MESSAGE)
讀取詳細(xì)信息為上位機(jī)發(fā)送命令,ID中包含設(shè)備地址、通道號(hào)和命令碼,其協(xié)議格式如表7。
表7 讀取詳細(xì)信息協(xié)議格式
回復(fù)
IDID_UP(設(shè)備地址,通道號(hào)(0~14取偶數(shù)),0x20)Data0Data1當(dāng)前通道電流I=Data0+Data1/256(A)Data2當(dāng)前通道狀態(tài)Bit7~Bit4備用Bit3:過流標(biāo)志1:過流0:無過流Bit2:短路標(biāo)志1:短路0:無短路Bit1:開路標(biāo)志1:開路0:無開路Bit0:異常標(biāo)志1:異常0:無異常Data3當(dāng)Data3在0~100范圍內(nèi),表示當(dāng)前通道熱量相對(duì)保護(hù)門限的百分比;否則,當(dāng)Data3大于100,表示當(dāng)前通道狀態(tài)更新中,無意義。Data4Data5下一通道電流I=Data4+Data5/256(A)Data6下一通道狀態(tài),與Data內(nèi)容一致Data7當(dāng)Data7在0~100范圍內(nèi),表示下一通道熱量相對(duì)保護(hù)門限的百分比;否則,當(dāng)Data7大于100,表示下一通道狀態(tài)更新中,無意義。
結(jié)合硬件電路,本協(xié)議設(shè)計(jì)了電流檢測(cè)功能以及通道狀態(tài)檢查功能,用戶可以據(jù)此及時(shí)判斷電磁閥工作性能優(yōu)劣,能極大提高電磁閥控制系統(tǒng)的可靠性和安全性。讀取詳細(xì)信息命令會(huì)同時(shí)恢復(fù)兩個(gè)通道的狀態(tài)信息,所以通道號(hào)取0~14的偶數(shù)即可,若在次范圍內(nèi)不慎填入奇數(shù),自動(dòng)-1變成偶數(shù),這樣也大幅提升了檢測(cè)效率。
實(shí)際系統(tǒng)測(cè)試結(jié)果表明,對(duì)于電磁閥控制系統(tǒng),本協(xié)議簡潔實(shí)用、功能完備、可靠性強(qiáng)、通用性強(qiáng),尤其實(shí)現(xiàn)了群控功能和通道詳細(xì)信息檢查功能,大幅提升電磁閥控制效率和可靠性。
[1] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2002:1-5.
[2] 陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,2001:1-6.
[3] 王蘇敬,王立德.列車用CAN總線應(yīng)用層協(xié)議研究與實(shí)現(xiàn)[J].北京交通大學(xué)學(xué)報(bào),2008:20-22.
[4] 胡志強(qiáng).油、氣工業(yè)對(duì)閥門市場的影響[J].通用機(jī)械,2005:23-25.
[5] Advantech Co., Ltd. Advantech CAN Card Driver Manual [EB/OL]. 2004:22-24.
[6] 韓炬,柯進(jìn),金江.一種CAN總線冗余方法[J].電子工藝技術(shù),2002,19(4): 32-34.
[7] 王蘇敬,王立德,申萍,等.列車用CAN總線應(yīng)用層協(xié)議研究與實(shí)現(xiàn)[J].北京交通大學(xué)學(xué)報(bào),2008(10):32-34.
[8] 肖存龍,卜樂平,王黎明,等.CAN總線實(shí)時(shí)性分析[J].微計(jì)算機(jī)信息,2009(25):64-65.
[9] 夏繼強(qiáng),邢春香.現(xiàn)場總線工業(yè)控制網(wǎng)絡(luò)技術(shù)[M]. 北京:北京航空航天大學(xué)出版設(shè),2005(10):181-190.
[10] ISO-IS11898, Road vehicles-Interchange of digital information-Controller Area Network (CAN) for high speed communication[S]. 1993:5-10.
Design of A CAN Bus Data Transfer Protocol for Solenoid Valve Control
ZHANG XingZHANG JianguoZHOU ChangFU Daojun
(Wuhan Second Ship Design and Research Institute, Wuhan430064)
CAN bus has become one of the most widely used field bus with its advantages. For solenoid valve control system, this paper proposes a CAN bus data transfer protocol, and describes its implementation in detail. The result of tests verifies the protocol’s good benefits.
CAN bus, data transfer protocol, solenoid valve control
2016年4月10日,
2016年5月15日
張星,男,博士,工程師,研究方向:艦船電子武備技術(shù)。張建國,男,博士,工程師,研究方向:艦船電磁兼容技術(shù)與試驗(yàn)。周暢,男,博士,工程師,研究方向:艦船電磁兼容技術(shù)與試驗(yàn)。付道俊,男,碩士,高級(jí)工程師,研究方向:艦船電子武備技術(shù)。
TP393.04
10.3969/j.issn.1672-9730.2016.10.015