一種基于CAN總線的監控系統設計及位定時分析
引言
can(controller area network)即控制器局域網,是國際上應用最廣泛的現場總線之一。與一般的總線通信相比,can的數據通信具有突出的可靠性、實時性和靈活性。本課題設計了一種基于can總線的監控系統,并對位定時這一關鍵問題進行了詳細的闡述。借助該系統,使用者可以實現對can網絡的實時監控,并可對系統參數進行優化。
監控系統整體結構
整個監控系統(如圖1)是一個分布式控制系統,由三部分組成:上位機、轉換模塊、can節點。上位機負責監控整個系統的運行狀況;轉換模塊作為各個節點與上位機的通信中介,實現上位機與節點間的雙向通信;各個can節點均可以在任意時刻,遵循通信協議完成上傳信息和執行控制命令等任務。

can節點接口電路設計
can總線上各節點均采用atmel公司生產的8位單片機為主控器,除完成節點自身的控制功能外,還與can控制器sja1000配合以實現can網絡通信功能。
設計中選擇sja1000控制器并采用其性能優越的pelican擴展模式。can收發器tja1050是philips公司生產的高速can總線驅動器。tja1050具有速率高、低功耗、電磁性能優越等特點。can接口電路如圖2所示。

節點模塊中采用高速光耦來實現收發器與控制器之間的電氣隔離,抗干擾。光耦選擇高速器件tlp113以滿足在最高速率500kbps下的電氣響應。采用dc/dc模塊提供5v電源并實現系統電源與網絡電源之間電氣隔離措施。為了確保該系統的安全,在dc/dc模塊及系統的輸入和輸出端增加tvs保護。
系統通信的實現
can控制器協議
can控制器實現的串口通信網絡遵循osi模型,劃分為兩層:數據鏈路層和物理層。物理層按照ieee802.3lan標準構造,實現將數據發送到傳輸介質上和接收數據流的功能。在數據鏈路層實現比特流的拼裝。can通信協議約定了4種不同的幀格式,本系統中使用標準幀格式,其格式如表1。can首先接收到仲裁場,根據仲裁場的內容判斷所接收到的信號是哪種幀格式,用戶將相應的數據寫入數據場中進行發送,或從數據場中讀取接收到的數據。
can應用層協議
在can 2.0規范中,只對物理層和數據鏈路層作了規定,用戶需要根據自己的需求制定應用層協議。本設計以各個節點為控制對象,設計其應用層通信協議。can總線上傳輸的信息一般可分為2類:
命令信息:包括上位機要數命令、上位機控制命令。每周期上位機經can—rs232轉換模塊下發至各個節點要數命令。上位機接到狀態信息后,根據情況下發控制命令,經由轉換模塊下發至各個節點模塊。
狀態信息。節點接到命令信息后,由各個節點采集現場數據信息,發送到can—rs232轉換模塊,再由其上傳給上位機。信息包括:設備開關狀態,電壓電流量等。
根據系統實際情況,本系統can2.0標準幀格式的基礎上(見表2),制定了一個多幀傳輸的應用層協議。協議中,實用軟件濾波,即屏蔽了驗收濾波器,將除了幀信息外,包括11位標識符的第二、三字節都進行了分配,如表3所示。

其中,幀信息可以根據實際情況而定。
標識符id10~id3代表模塊地址,所以協議理論上可滿足256個控制節點,標識符id2、id0以及該字節后六位定義為幀類型:命令幀或狀態幀,數據信息這樣劃分簡單明了。上位機根據模塊地址收集判斷節點信息,并下發相應命令。協議還規定,按優先權由高到低,從低向高為模塊分配地址,以保證總線競爭中優先權高的節點能更先占有總線。
系統軟件設計
基于總體設計要求和硬件組成,結合can總線協議的模型結構,整個系統的軟件設計可以分為兩部分:節點部分、上位機部分。
節點部分包括:初始化模塊,can通信模塊,串行通信模塊,數據處理模塊。正確的can初始化,可以充分利用can總線的優勢,保證can通信正確可靠工作。對can節點初始化只有在復位模式下才可以進行,初始化主要包括工作方式的設置、接收濾波方式的設置、接收屏蔽寄存器(amr)的設置、接收代碼寄存器(acr)的設置、波特率參數設置和中斷允許寄存器(ier)的設置等。在完成can控制器的初始化設置以后,can控制器就可以回到工作狀態,執行正常的通信任務。其他模塊,不再詳述。
上位機部分:上位機軟件由vc++6.0軟件編寫,應用mfc類庫編寫并生成了具有windows風格的人機交互界面。軟件應用mscomm控件通過串行端口傳輸和接收數據,為應用程序提供了串行通訊功能。microsoft communications control(mscomm)是microsoft公司提供的簡化windows下串行通信編程的activex控件,為應用程序提供了通過串行接口收發數據的簡便方法。具體來說,它提供了兩種處理通信問題的方法:一是事件驅動(event-driven)方法,一是查詢法。我們采用事件驅動方式。使用者可以通過良好的人機界面對整個系統進行實時監控。
位周期參數確定
在初始化can控制器的時候,要考慮配置總線時序寄存器的配置等重要問題。事實上,can通信協議中規定、通信波特率、位周期的取樣點以及取樣個數均可以自主設定,這樣為用戶在網絡通訊性能的優化上提供了空間。如果位周期采樣點偏后,可以接受較大的信號傳輸延遲,相應總線的傳輸距離可以延長;如果周期的取樣點接近中間,則可以容忍系統節點間的參考時鐘誤差。這些矛盾直接影響了網絡系統性能,所以總線位定時非常重要,合理的位定時可以提高系統的整體性能。
can 總線周期由4個部分組成: 同步段(sync_seg) 、傳播延時段、相位緩沖段1 ( phase_seg1) 和相位緩沖段2 (phase_ seg2) ,如表4所示。

同步機制
can是有效支持分布式實時控制的串行通訊網絡。從位定時的同步方式考慮,它實質上屬于異步通訊協議,每傳輸一幀,以幀起始位開始,而以幀結束及隨后的間歇場結束。這就要求收/發雙方從幀起始位開始必須保持幀內信息代碼中的每一位嚴格的同步。從位定時編碼考慮,它采用的是非歸零編碼方式,位流傳輸不像差分碼那樣可以直接用電平的變化來代表同步信號,它屬于自同步方式(接收端設法從收到的信號中提取同步信息的方式),can節點從一個位值到另一個位值的轉變中提取時鐘信息。為保證同步質量,can協議定義了自己的位同步方式:硬同步和重同步。
通過同步機制,可以消除由于相位誤差帶來的影響,保證信息正確解碼。硬同步后,內部的位時間從同步段重新開始。因此,硬同步強迫同步沿處于重新開始的位時間同步段之內。重新同步的結果使相位緩沖段1增長,或使相位緩沖段2縮短。相位緩沖段加長或縮短的數量有上限,此上限由重新同步跳轉寬度給定。
一個沿的相位誤差由相關同步段的沿的位置給出。相位誤差定義如下:
le = 0如果沿處于同步段里;
le 》 0 如果沿處于采集點之前;
le 《 0 如果沿處于前一個位的采集點之后。
當引起重新同步沿的相位誤差的幅值小于或者等于重新同步跳轉寬度的設定值時,重新同步和硬同步的作用相同。當相位錯誤的量級大于重新同步跳轉寬度時有2種情況:
如果相位誤差為正,則相位緩沖段1被增長,增長的范圍與重新同步跳轉寬度相同;
如果相位誤差為負,則相位緩沖段2被縮短,縮短的范圍與重新同步跳轉寬度相同。
硬同步和重新同步是同步的2種形式,遵循以下規則:
在一個位時間里只允許一個同步;
僅當采集點之前探測到的值與緊跟沿之后的總線值不相符合時,才把沿用作于同步;
總線空閑期間,有一“隱性”轉變到“顯性”的沿,無論何時,硬同步都會被執行。
位時間參數計算規則
位時間參數計算規則是為保證系統在極端惡劣條件的兩個節點間,能夠正確接受并解碼網絡上的信息幀。極端惡劣條件是指這兩個節點的鐘振偏差在系統容忍偏差極限的兩端,并且兩個節點間具有最大的傳輸延遲。在沒有噪音干擾的正常通信情況下,相位誤差累計的最壞情況是:重同步邊沿之間間隔有10個位周期(5個顯性位后跟5個隱性位)。實際系統都運行在噪音環境中。由于噪音干擾,可能會導致重同步邊沿之間的間隔超過10個位周期,在這種情況下必須進行嚴格的采用,否則可能進入錯誤處理模式。本監控系統各節點模塊是以sja1000作為can控制器的。所以,考慮各方面的影響,位定時參數在只有1個取樣點時的公式設置如下:
( sjw) min =max{(20×nbt×δf)/(1 - δf) ,((nbt(1-25×δf )- prop max -(1 -δf)+prop min/2))/(1-δf)}
( s j w) max = 4
t(seg2) min = max{2 , s j w}
t(seg2) max =min{8,((n b t (1-25×δf ) - ( pro p) max)/
(1 - δf), (nb t(1 - 25×δf) - ( pro p)
max - (1-δf) + prop min )/ 2) / (1-δf )
以上所述為位時間參數的計算規則,在實際監控系統中,以此規則根據適當的方法進行位定時參數確定和優化,使系統性能達到最優。
結語
現場總線系統用開放的現場總線控制通信網絡將自動化最底層的現場控制器和現場智能儀表設備互連的實時網絡控制系統。是工業控制系統發展的一個新的階段。本文所設計的基于can總線的監控系統設計簡單方便,性能穩定,能很好的滿足控制系統對實時性和可靠性的要求,并在現場運行,效果良好。
文章版權歸西部工控xbgk所有,未經許可不得轉載。