采棉機智能監(jiān)控系統(tǒng)CAN應用層協(xié)議設計
引言
隨著我國大型農(nóng)業(yè)機械裝備現(xiàn)代化進程的不斷推進,農(nóng)業(yè)機械作業(yè)信息滯后、時效性差,機收的組織者和參與者對信息快捷、準確、詳細的要求難以滿足等問題日益突顯,同時目前大型農(nóng)業(yè)機械本身缺少有效的工作狀態(tài)關鍵信息采集與故障診斷報警手段,致使無法及時掌握其工作狀態(tài)與壽命狀況,降低了農(nóng)業(yè)機械工作效率和作業(yè)質(zhì)量,影響了農(nóng)業(yè)機械裝備的發(fā)展。
CAN(controller area network)總線憑其可靠的數(shù)據(jù)通信和良好的錯誤檢測能力,在控制和檢測領域備受重視,被廣泛應用在環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境。CAN為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術支持。
目前,CAN總線協(xié)議已經(jīng)成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標準總線,但在大型農(nóng)業(yè)機械裝備領域鮮有成功應用報道。
本文以4MZ一6A型六行采棉機智能監(jiān)控系統(tǒng)為例,通過解析報文標識符幀ID和數(shù)據(jù)幀含義,研究基于CAN總線應用層協(xié)議的制定原則和方法。
1 智能監(jiān)控系統(tǒng)架構及通信
采棉機智能監(jiān)控系統(tǒng)是基于CAN總線技術搭建的數(shù)字式模塊化的綜合信息管理與控制平臺。監(jiān)控系統(tǒng)整體架構(圖1)由6個子系統(tǒng)構成,分別為監(jiān)控器子系統(tǒng)、自動對行子系統(tǒng)、參數(shù)檢測子系統(tǒng)、狀態(tài)監(jiān)測子系統(tǒng)、棉花測產(chǎn)子系統(tǒng)和巡航速度自調(diào)節(jié)子系統(tǒng)。在基于CAN總線的采棉機智能監(jiān)控系統(tǒng)中,各子系統(tǒng)之間以及子系統(tǒng)內(nèi)各模塊間均通過總線進行信息交換,包括采棉機的啟動、停止、速度給定以及參數(shù)測量、狀態(tài)監(jiān)測、棉花產(chǎn)量測定等。
監(jiān)控器于系統(tǒng)置于采棉機駕駛室內(nèi)部,是整個監(jiān)控系統(tǒng)的核心,即中央控制器。監(jiān)控器不僅可以接收底層各CAN節(jié)點發(fā)來的參數(shù)信息和工作狀態(tài)信息,并且通過CAN總線向各控制節(jié)點發(fā)送命令和數(shù)據(jù)信息。由6組近紅外棉花流量智能傳感器組成的棉花測產(chǎn)子系統(tǒng)負責把棉花實時產(chǎn)量轉(zhuǎn)換為數(shù)字量,并經(jīng)模型校正,通過CAN總線發(fā)送給監(jiān)控器和巡航速度自調(diào)節(jié)子系統(tǒng)。另外,采棉機智能監(jiān)控系統(tǒng)還包含若干基于CAN總線的各類功能模塊。例如:自動對行模塊(CanModule.A)用來實現(xiàn)采棉機巡航作業(yè)時的自動對行功能;脈沖采集模塊(CanModub-B)用來獲取行走速度、發(fā)動機轉(zhuǎn)速、風機轉(zhuǎn)速、滾筒轉(zhuǎn)速以及水壓、油溫等參數(shù)信息,并經(jīng)過CAN總線發(fā)送給監(jiān)控器用來顯示和處理;監(jiān)測報警模塊(CanModule—C)負責監(jiān)測各被測點的開關量信息和模擬電壓量信息,比如各路吸人門狀態(tài)、離合器狀態(tài)、棉花輸送帶狀態(tài)等。
采棉機智能監(jiān)控系統(tǒng)通信信息分為命令和數(shù)據(jù)2類。命令信息,如速度設定、巡航切換、卸棉、自動對行啟動等,其優(yōu)先級比數(shù)據(jù)信息高。數(shù)據(jù)信息,如棉花實時產(chǎn)量、發(fā)動機轉(zhuǎn)速、采棉頭滾筒轉(zhuǎn)速、水箱壓力、開關量報警信息等,其優(yōu)先級相應低一點。不同的子系統(tǒng)發(fā)送的數(shù)據(jù)信息也有優(yōu)先級之分,如采棉機本身的參數(shù)信息和工作狀態(tài)報警信息就比近紅外棉花流量傳感器發(fā)送的產(chǎn)量信息優(yōu)先級高;監(jiān)控器即中央控制器節(jié)點的優(yōu)先級最高,而底層輔助節(jié)點優(yōu)先級最低。
監(jiān)控系統(tǒng)中有的信息要求周期性傳送,如發(fā)動機轉(zhuǎn)速、風機轉(zhuǎn)速等機器參數(shù)信息。有的信息屬于事件觸發(fā)發(fā)送,如吸入門、離合器等報警信息以及啟動、巡航切換等控制命令信息。監(jiān)控系統(tǒng)中各子系統(tǒng)的通信任務各有輕重,相對而言,中央控制器節(jié)點的通信最繁忙,而自動對行子系統(tǒng)的通信很少,一旦自動對行任務啟動,子系統(tǒng)自身就可完成自動對行任務。另外,各子系統(tǒng)發(fā)送指令和數(shù)據(jù)信息的字節(jié)數(shù)都很少,大部分為1至2個字節(jié),很適合CAN總線短幀快速的傳送方式。
2 通信協(xié)議的制定與實現(xiàn)
采棉機智能監(jiān)控系統(tǒng)采用模塊化、總線化設計,層次清晰,便于維護,具有良好的互換性。根據(jù)大型六行采棉機實際需要,智能監(jiān)控系統(tǒng)共需1只CanModule—A模塊、8只CanModule.B模塊、4只CanModule—C模塊、6對近紅外棉花流量智能傳感器和1套基于CAN總線接口的行走速度控制模塊。因為監(jiān)控平臺涉及的控制模塊較多,數(shù)據(jù)傳送量大,因此必須清晰定義CAN總線應用層協(xié)議,以確保監(jiān)控系統(tǒng)各模塊之間正確、實時通信。
2.1 總體情況
本系統(tǒng)協(xié)議采用CAN 2.0B支持29位標識符的擴展幀。通信速率可根據(jù)實際調(diào)試情況設置成125、250、500 kb/s等多種總線波特率,暫定采用250 kb/s進行通信。各節(jié)點的信息交換只使用數(shù)據(jù)幀,遠程幀不用于數(shù)據(jù)請求,僅限于節(jié)點的自行調(diào)試。29位擴展幀包括11位基本ID(即標準幀)和18位擴展ID?;?1位ID按照ID28到IDl8的順序發(fā)送,它定義了擴展幀的基本優(yōu)先權,其值越小代表優(yōu)先級越高,其值越大代表優(yōu)先級越低;18位擴展ID按照IDl7到ID0的順序發(fā)送。
CAN總線協(xié)議將通信信息分為2種基本類型:專有信息和廣播信息。專有信息是由某一節(jié)點發(fā)送且僅供某一指定節(jié)點接收的點對點信息;廣播信息可由任意節(jié)點發(fā)出,其他所有節(jié)點都接收或只有局部多個節(jié)點選擇性地接收。廣播信息的優(yōu)先級要高于專有信息,且根據(jù)其發(fā)送節(jié)點的不同具備不同的優(yōu)先級(即優(yōu)先級是基于節(jié)點的)。同樣,節(jié)點的專有信息也根據(jù)信息內(nèi)容的重要程度分為不同的優(yōu)先級。
當采棉機開啟,監(jiān)控器上電啟動,經(jīng)時間繼電器延時一定時間后,近紅外棉花流量傳感器、自動對行模塊(CanModule—A)、脈沖信號采集模塊(CanModule—B)、多路監(jiān)測報警模塊(CanModule—C)
等節(jié)點同時啟動。監(jiān)控器首先向棉花流量傳感器發(fā)送命令和數(shù)據(jù),同時接收來自傳感器節(jié)點的數(shù)據(jù)信息,完成對近紅外流量傳感器的校準標定,然后不斷地獲取來自流量傳感器的數(shù)據(jù)信息。監(jiān)控器和傳感器之間的通信是面向連接的,相當于客戶機/服務器,傳感器連續(xù)地產(chǎn)生產(chǎn)量數(shù)據(jù),監(jiān)控器不停地確認收到的數(shù)據(jù)信息,發(fā)送和接收之間建立點對點的通信,流量傳感器不再與系統(tǒng)內(nèi)其他CAN節(jié)點進行信息交換。
在監(jiān)控器與流量傳感器點對點通信時,其他檢測和監(jiān)測模塊(如CanModule—A、CanModule.B、CanModule—C等)也與監(jiān)控器進行實時通信。它們向監(jiān)控器發(fā)送的都是廣播幀,進行無確認模式的信息傳輸,其通信方式相當于生產(chǎn)者/消費者關系,各模塊不停地廣播數(shù)據(jù)信息,監(jiān)控器或者系統(tǒng)各節(jié)點通過識別總線上信息的標識符來完成信息通信。
2.2 報文結(jié)構
CAN應用層協(xié)議制定有較大的靈活性。本協(xié)議以CAN 2.0B為基礎,在此基礎上對29位標識符進行定義。標識符的分配采用了預定義分配方式(表1)。
(1)優(yōu)先級:由ID28一ID24組成。為便于擴展,將00000、00001兩個優(yōu)先級空缺,留作備用。監(jiān)控器與行走速度控制模塊之間的通信優(yōu)先級定義為00010,為最高優(yōu)先級,因一旦出現(xiàn)異常情況,手動駕駛切換和速度控制必須得到及時響應;監(jiān)控器與CanModule—A類模塊發(fā)送命令設置為0001 I,為次高優(yōu)先級,當啟動巡航采棉模式時,監(jiān)控器必須對CanModule.A模塊發(fā)出控制命令,同理,CanModule.A模塊向監(jiān)控器發(fā)送的數(shù)據(jù)信息也設置同樣的優(yōu)先級;CanModule-C類模塊向監(jiān)控器發(fā)送數(shù)據(jù)的優(yōu)先級設置成00100,該類模塊發(fā)送的是故障報警信息,也需要較高的優(yōu)先級,以確保采棉機出現(xiàn)故障報警時及時響應;CanModule—B類模塊向監(jiān)控器發(fā)送信號的優(yōu)先級為00101,該類模塊發(fā)送的是采棉機工作參數(shù)信息,如發(fā)動機轉(zhuǎn)速、風機轉(zhuǎn)速、滾筒轉(zhuǎn)速、潤滑液注入量等參數(shù);近紅外棉花流量智能傳感器的優(yōu)先級設置為001 10,為最低優(yōu)先級。
(2)目標節(jié)點與源節(jié)點:IDl5一ID8為目標節(jié)點地址,ID7一ID0定義為源節(jié)點地址。在本系統(tǒng)中,監(jiān)控器的節(jié)點地址定義為F5,CanModule-A模塊的節(jié)點地址為A0,CanModule—B的8只模塊節(jié)點地址分別為BO—B7,CanModule—C的4只模塊分別定義為CO、C1、C2、C3,6只棉花流量智能傳感器的節(jié)點分別定義為DO—D5(以上均為十六進制地址)。
評論