引言
隨著棉花采摘機械化程度的逐年提高,2012 年新疆兵團機采棉種植面積已到 33. 3 萬 hm2,跨區作業使得采用自動測產系統進行棉花產量監測已具有可行性和必要性。通過自動測產系統獲得棉花產量數據的空間分布情況以指導變量作業,是實現棉花精準作業中至關重要的一個環節。采棉機產量監測系統作為在線數據采集和處理系統,系統設計的可靠性和實時性至關重要,CAN 總線和 WinCE 作為高可靠性和實時性的現場通信技術和嵌入式系統是采棉機產量監測系統研發的較佳選擇。
1 系統組成及通信架構
采棉機產量監測系統是基于 CAN 總線技術搭建的數字式模塊化的綜合信息采集與處理平臺。整個系統由棉花流量傳感器、GPS 接收機、采摘頭高度傳感器、風機轉速傳感器、地速傳感器、智能終端及相應 CAN 通信控制單元組成,如圖 1 所示?!緢D1】
在基于 CAN 總線技術、嵌入式技術、GPS 技術研發的采棉機產量監測系統中,智能終端\\( 即中央控制器\\) 作為主控節點通過 CAN 總線不僅可以接收底層各 CAN 節點發來的數據,而且還可以向各從節點發送命令。系統運行時,主控節點向傳感器節點、GPS 節點和 4 個棉花流量節點發送控制命令,以確定各從節點的工作狀態。當主控節點成功接收到某個從節點的返回信息時,開始接收該節點發送的數據信息; 否則,在終端上報錯相應從節點的工作狀態以通知用戶及時排除故障。
2 CAN 應用層協議制定
根據采棉機產量監測系統通信設計的需要,在CAN 總線上傳輸的信息幀類型有數據幀和遠程控制幀,再加上多節點間通信以及產量監測系統的高實時性要求,且數據傳送量較大,因此必須合理定義 CAN總線應用層協議,以確保主控節點與各從節點之間可靠、實時通信。
在 CAN 應用層協議的定義中,標識符的分配至關重要。本協議基于 CAN2. 0,采用預定義分配方式對標準幀 11 位標識符 ID 進行定義,如表 1 所示。11 位標識符定義了各 CAN 報文的優先級: 數值越小,優先級越高; 數值越大,優先級越低。CAN 總線上信息類型均為專有信息,主控節點與各從節點的通信采用點對點的傳輸模式,各從節點間無數據通信。采棉機工作時,系統各模塊上電工作,控制終端向各個從節點發送遠程幀\\( 啟動幀\\) ,各從節點接收到命令后開始向控制終端發送數據信息\\( 數據幀\\) ; 當系統需要停止工作時,控制終端再次向各從節點發送遠程幀\\( 結束幀\\) ,以告知各從節點停止向控制終端發送數據?!颈?】
11 位標識符按照 ID10 到 ID0 的順序從高位到低位依次發送。ID10-ID8 定義為報文的優先級段; 000、001 兩個優先級空缺,留作擴展用。啟動發送幀和停止發送幀的優先級分別定義為 010、011 兩個較高優先級,以便實現對整個 CAN 總線通信系統的控制。棉花流量節點、GPS 節點、傳感器節點向終端發送數據信息的優先級分別設置為 100、101、110。ID7-ID6 兩位定義為報文的幀類型段,00 定義為數據幀,01 定義為遠程幀,10、11 留作擴展用。ID5-ID3 和 ID2-ID0分別定義為報文的目標節點段和源節點段。根據系統標識符 ID 分配及定義,可得到本系統 CAN 總線通信的信息明細表,如表 2 所示?!颈?】
3 CAN 通信網絡建模與仿真
OPNET Modeler 作為主流的網絡仿真工具,其強大的系統建模和仿真分析功能為工程技術人員提供良好的網絡技術和產品開發平臺。筆者采用該工具對所研發的采棉機產量監測系統 CAN 通信網絡進行了建模,并對通信網絡的性能進行了仿真分析。
3. 1 通信建模
圖 2 為根據 CAN 協議設計的三層網絡節點模型,自上而下依次為應用層、數據鏈路層、物理層。應用層由 src 和 sink 兩個處理機進程模塊組成: src 模塊負責產生數據報文并向總線發送; sink 模塊負責處理從總線上其它節點接收到的報文。數據鏈路層通過隊列進程模塊實現優先級仲裁、偵錯功能,并與物理層和應用層交換數據。物理層由一組收發信機組成,完成收發 CAN 報文的基本功能?!緢D2】
mac 進程模塊采用載波監聽多路訪問 / 沖突檢測\\( CSMA/CD\\) 協議訪問 CAN 總線,以實現 CAN2. 0 的協議,其模型如圖 3 所示\\( 圖中數字代表轉換條件\\) 。
mac 模塊數據處理進程主要有兩個通信過程組成,模型運行時,首先進入 init 狀態讀入模型參數和總線傳輸速率,而后進入空閑狀態 idle。當應用層有發送數據請求時,則由 idle—tx_packet\\( 發送狀態\\) —idle 構成一個發送環,完成數據發送功能; 當物理層有接收數據請求時,則由 idle—rx_packet\\( 接收狀態\\) —arbi-tration\\( 仲裁狀態\\) —resolution\\( 決策狀態\\) —rcv\\( 接收完畢狀態\\) —wait\\( 等待狀態\\) —idle 構成一個接收環,完成數據接收功能。在通信進程中,仲裁狀態\\( arbi-tration\\) 根據 CAN 報文 ID 標識符決定要接收的數據。
如果仲裁超時,則由決策狀態進行錯誤檢測和處理,并向錯誤幀狀態\\( tx-error\\) 發送錯誤請求。接收完畢狀態根據模型運行狀態和消息請求決定進入仲裁狀態、只聽狀態\\( suspend-trans\\) 、等待狀態、接收狀態或者發送狀態?!緢D3】
3. 2 仿真結果分析
筆者分別在 250kb/s、500kb/s、1Mb/s 的傳輸速率下,仿真分析了采棉機產量監測系統 CAN 通信網絡優先級、誤碼率與消息端對端\\( ETE\\) 平均延時、網絡負載的關系,仿真結果如圖 4、圖 5 所示?!緢D4-5】
圖 4 結果表明: 在同一傳輸速率下,網絡中消息的 ETE 平均延時隨著優先級的降低而增大,網絡的實時性也隨之變差; 在同一優先級下,總線傳輸速率越高,網絡中消息的 ETE 平均延時越小,網絡的實時性越好。
圖 5 結果表明: 在 500kb/s 的傳輸速率下,當網絡中的誤碼率低于 0. 001 時,網絡負載會隨仿真時間而增大; 當誤碼率達到 0. 01 時,負載率先快速增大而后又急劇減小,最后穩定在 10% 左右,遠低于正常值15. 5% 左右,此時總線網絡已無法正常傳輸數據。這是由于誤碼率在一定范圍內增加會導致總線上錯誤數據幀增多,需重發的數據幀數量增大,當誤碼率大于一定值時,導致相應錯誤節點轉換到關閉狀態而退出總線網絡,使總線上的網絡負載急劇下降。因此,為保障采棉機產量監測系統 CAN 通信網絡的可靠性,誤碼率應保持在 0. 001 以下。
4 試驗測試
根據采棉機產量監測系統 CAN 總線通信設計和應用層協議定義,將圖 1 所示的各 CAN 節點采用ARM5749 單片機分別設計成基于 CAN 總線的電路模塊,并通過 CAN 總線實現 WinCE 智能控制終端與各電路模塊的信息通信。
基于 VS2005 MFC WinCE 智能設備開發,終端監控系統將 CAN 報文發送、接收和處理分別放在不同的線程中完成,充分利用 WinCE 所支持的多線程技術,以實現 CAN 總線快速、可靠通信,保證系統通信的實時性和穩定性。試驗結果表明: 基于該 CAN 應用層協議的采棉機產量監測系統可以在 500kb/s 速率下實現各模塊與終端之間的實時無誤通信。
將采棉機產量監測系統安裝在 John Deer 9970 采棉機上\\( 如圖 6 所示\\) ,于 2012 年 10 月 20 日 ~ 23 日在新疆農八師 122 團試驗田內進行試驗?!緢D6】
由于田間試驗棉花流量較大,采棉機正常工作時行走速度為 3. 5km/h,風機轉速為 3 800 ~ 4 120r/min。此次實驗共計 6 組,收獲面積約 1. 7hm2,實驗結果如表 4 所示。田間測試結果表明: 該棉花產量監測系統通信可靠,運行穩定; 系統相對測量誤差的絕對平均值為 5. 93% ,可以滿足設計要求?!颈?】
5 結論
采棉機產量監測系統 CAN 通信網絡采用模塊化設計,可靠性高,維護便利。其應用層協議定義清晰,采用標準幀實現了短幀 CAN 報文的快速響應與處理,符合 產 量 監 測 系 統 的 實 時 性 要 求?;?于 嵌 入 式WinCE 多線程處理機制的 CAN 總線通信為終端實現大量信息的實時監測與處理提供了支持,保障了整個通信系統的穩定性。試驗測試結果表明: 該通信設計不僅能夠滿足采棉機產量監測系統的需要,而且具有一定的擴展性、移植性和通用性,可推廣至其他智能測控通信領域。
參考文獻:
[1] 戚亞平. 新疆兵團機采棉面積逐年增加 今年達到 500 萬畝[EB/OL]. \\( 2012-10-16\\) .
[2] 張彥娥,張漫,張文革,等. 采棉機測產系統數據采集與處理的試驗研究[J]. 農業機械學報,2005,36 \\( 4\\) : 95-98.
[3] 陳偉,馬蓉,蘆帥,等. 機采棉在線測產技術及其關鍵裝備[J]. 農機化研究,2011,33\\( 10\\) : 216-219.
[4] 林鑫潔,馬蓉,安光輝,等. 基于 CAN 總線的棉花在線測產系統設計[J]. 農機化研究,2013,35\\( 4\\) : 179-182.
[5] 苗中華,褚劍鋼,劉成良,等. 采棉機智能監控系統 CAN 應用層協議設計[J]. 農業機械學報,2012,43\\( 1\\) : 180 -184.
[6] 彭權威. 基于 OPNET 的列車通信網絡仿真研究[D]. 成都: 西南交通大學,2010.