CAN的中文是控制局域網(Controller Area Network),與1986年由德國Bosch公司為汽車開發的網絡技術,主要用于汽車的檢測和控制,目的是為了適應汽車“減少線束數量”和“通過多個網絡進行大量數據的高速傳輸”的需求。
2.CAN網絡特點
CAN網絡的特點主要有以下幾點:
節點之間采用多主通信的方式
采用短幀結構,數據幀為8個字節,實時性高
報文ID值越小,優先級越高
具有非破壞性的總線仲裁處理機制
有可靠的CRC校驗方式,傳輸過程中出錯率極低
具有自動重發機制
節點嚴重錯誤時,具有自動脫離總線的功能
最遠通信距離可達10km(速率在5kbps一下)
通信速率最高可達1MB/s(此時通訊距離最遠40m)
實際節點數可大110個
成本低
3.CAN物理層結構CAN網絡的物理層組成如圖1所示。CAN總線有兩條傳輸線路,為CAN_H和CAN_L,在總線兩端通常需要連接終端電阻,阻值為100-130 Ω。CAN網絡采用差分電平傳輸數據,在ISO11898(高速CAN)中,CAN_H顯性狀態電壓約為3.5V,隱性狀態電壓約為2.5V,CAN_L在顯性和隱性狀態下的電壓則分別為1.5V和2.5V。在CAN總線上可以有許多個節點(ISO建議最大32個節點,實際最大節點數可根據收發器的負載能力進行調節),每個節點包括Host主機,CAN控制器和CAN收發器。CAN收發器主要實現二進制碼流與差分信號之間的轉換,CAN控制器的作用主要是用于處理來自Host主機的數據并傳給CAN收發器。圖1 CAN網絡物理層結構圖
4.CAN通信原理CAN網絡采用異步通信的方式,因此需要根據波特率進行采樣,采樣原理如圖2所示。紅色箭頭則表示采樣點的位置,圖示采樣得到數據則為“1010 1010”。圖2 CAN通信采樣原理圖
說到采樣點,就需要引入位時間的概念。位時間是指每傳輸一位數據需要的時間,即位時間=1/波特率。一個位時間可以分為同步段、傳播段、相位緩沖段1和相位緩沖段2,某個位時間每個段的時間份額如圖3所示。圖3 某個位時間的時間份額組成
CAN通信中常見的采樣點以及相關的參數如表1所示。不同的波特率時間對應的采樣點以及位時間的份額可能不同。以波特率為500k為例,一個位時間被分成了16個時間份額,采用點在第14個時間份額。表1 CAN通信中常見采樣參數這里有一個問題,為什么CAN通信中,要波特率和采樣點要設置成一樣的呢?畫個圖就能一目了然。如圖4所示,假設采樣點提前20%,那么采樣的數據就會為“0101 1010”,和之前(圖2)的數據第五位就不相同了。因此,如果采樣點不同,就會造成數據傳輸錯誤,傳輸的數據越多,累積的錯誤數據位就越多。所以,在進行CAN通信時,一定要將各節點的波特率和采樣點設置成相同的。圖4 采樣點提前20%的采樣示意圖5.軟件中采樣點的設置5.1在PCAN-View軟件中1、打開PCAN-View軟件便會有如下界面我們可以看到在connect對話框中有連接選項和以下設置界面,在設置界面我們可以設置時鐘頻率、波特率、總線時序等,以及在“Filter setting”欄中我們可以設置過濾器條件,用于過濾報文(標準幀/拓展幀,過濾條件為報文ID范圍)。2、點擊“Bus Timing Register”選項框后面的三角形箭頭,選擇“Manage Bit rates”,進入Manage Bit rates對話框3、選擇“Add”,便可在右端對話框中輸入自己想要的參數,包括標題、預分頻、時間段等參數,根據我們輸入的參數在下方的對話框中會實時顯示對應的波特率、采樣點、時間量等信息,以便于我們完成對采樣點等信息的設置。最后點擊“OK”完成對采樣點的設置。(在之后我們若是想要改變采樣點,我們可以點擊工具欄中的連接按鈕,重新進入連接界面(“connect”界面))。
5.2 在PEAK-Explorer 5中設置采樣點1、打開PEAK-Explorer 5,點擊菜單欄中的“Tool”,在下拉菜單欄中選擇“Nets Configuration”,進入PCAN Nets Configuration對話框2、在PCAN Nets Configuration對話框中USB菜單欄下的Internet選項上單擊鼠標右鍵,選擇“New Net”,進入“Net Properties”對話框,在這你可以設置網絡名稱、時鐘頻率、波特率等信息。3、點擊波特率欄后的三個點,進入Manage Bit rates對話框,后續采樣點的設置操作同PCAN-View中相同,這里便不再贅述。以上便是通過PCAN-View和PEAK Explorer 5兩個軟件完成對采樣點的設置,這兩個軟件對采樣點的設置可以與波特率計算工具配合使用,可以實現更簡潔的工作方式,提高工作效率。6.波特率計算工具的使用6.1選擇你的波特率類型如上圖,可選擇三種波特率類型,其分別為CAN、CAN FD、SJA-1000三種類型。CAN Bit Rate類型是用于實現對用CAN作控制器的FPGA實現的設備的波特率仲裁類型,比如PCAN-miniPCIe。
CAN FD Bit Rate同CAN Bit Rate類似,唯一區別在于CAN FD Bit Rate是針對用CAN FD作控制器,比如PCAN-PCI Express FD。
SJA-1000 Bit Rate類型是被用于產自飛利浦、有著8MHz的時鐘頻率、基于SJA-1000 CAN控制器的設備,比如PCAN-USB。6.2 輸入波特率和偏移量如圖有兩個鍵入框,在第一個鍵入框中輸入要查詢的波特率和它的單位;在第二個鍵入框中輸入允許的偏移量(可選可不選),如若選擇“Allow bit rate deviation”,那么就要考慮輸入一個偏移度(容忍量),并且這近似的值將被列在結果中。如果沒進行勾選,僅有波特率的匹配值被給出,而沒有偏移量。
6.3 選擇輸入頻率、采樣點和位時間如圖,第一欄是讓你選擇一個頻率去限制時鐘頻率,這將被用于計算波特率(至少選擇一個頻率)。第二欄是輸入采樣點范圍(可選可不選),輸入采樣點范圍是用于過濾采樣結果,如果不進行勾選,將得到所有采樣點結果。第三欄是選擇位時間范圍(可選可不選),與第二欄功能類似,區別在于第三欄是基于位時間范圍來過濾所得結果。如果不進行勾選,將得到所有位時間結果。6.4 點擊開始計算,得出所要結果在結果中我們可看到,上面的框中顯示我們已選擇的設置,下面的框中顯示計算結果。另外就是在整個流程中我們并沒用到的按鍵,其對應的功能分別如下不同設備之間要實現準確無誤的通信,波特率匹配是很重要的條件。波特率計算工具將簡化這一計算過程,避免了繁瑣而又復雜的公式計算,熟練掌握這一工具的使用,將大大提高我們的工作效率,降低人工計算的錯誤率。
-
CAN
+關注
關注
57文章
2763瀏覽量
464026
發布評論請先 登錄
相關推薦
評論