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