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