新四季網

51單片機什麼時候需要擴展總線(單片機外圍模塊漫談之三)

2023-10-15 05:16:17 2

1980年,Bosch的工程師開始研究汽車上高速串行通信的問題,並在1986年發布了CAN(Controller Area Network)總線。CAN以其多主,高速(最高1Mbps),抗幹擾的特性被廣泛應用汽車及各種工業環境。在此我們主要介紹一下CAN總線的特點,幀類型,以及應用中的注意事項。

1. CAN總線特點

1.1 多主控制

跟我們常用的RS485隻有一個主機,從機只能等待主機的輪詢不同,在CAN總線中,當任意一個節點監測到總線空閒時,就可以立即啟動信息的發送,也就是每一個節點都可以當主機。當然,這馬上會引起我們的擔心。如同一個家庭每個人都當家做主,那還不亂了套嗎?不急,我們來看一下。這個問題是如何被巧妙地解決的。

物理層,CAN採用差分總線。單片機引腳的邏輯電平0,被CAN收發器(PHY)轉換為顯性電平(Dominant),邏輯電平1被轉換為隱性電平(Reccesive)。總線上執行的是"線與"邏輯,只要有一個節點輸出顯性電平,那麼總線上就是顯性電平。

仲裁(Arbitration),CAN的發送總是以SOF(Start Of Frame)起始,緊跟器後是ID。在發送ID的同時,節點監聽總線上的顯隱狀態,當監聽到的狀態與自己發送的不一致時,此節點將停止發送,進入只收模式。如下圖所示,每一幀消息所具有的ID決定了此消息的優先級,發送最高優先級消息的節點獲得總線最後的控制權,得以最終完整的發送自己的消息。

接收濾波(Filter)。一個掛在總線上的節點可以監聽到所有的消息(Message),但通常我們只對其中某些消息感興趣,這時怎麼辦呢?CAN模塊一般會提供接收濾波功能(Filter)。通過設置濾波寄存器,我們可以達到接收消息時,比對ID所有位,也可以只比對ID某些位,從而達到只接收ID與自己完全相同的消息,或接收ID與自己部分相同的消息的目的。利用這種機制可以給節點編組,給組成員群發消息。

1.2 速度快,距離遠

CAN總線可以達到1Mbps的速率。總線速度隨著傳輸距離增加而下降,下面是一些典型速率。在一個數據幀內可以傳送8個字節的數據。

1000kbps 40m

500kbps 130m

100kbps 620m

50kbps 1300m

5kbps 10000m

2012年,Bosch又發布了CANFD(CAN with Flexible Data-rate),最高速率可以達到10Mbps,在一個數據幀內可以傳送64位元組的數據。2015 年 ,國際標準化組織(ISO)正式發布支持CAN FD的11898-1協議。

2. 幀類型

CAN協議很簡潔,只包含4種幀類型。

數據幀(Data Frame),用來把數據從發送節點傳送至接收節點。

遠程幀(Remote Frame),一個節點用來請求其它節點發送數據。一個節點發送遠程幀時會把Arbitration Filed最後一位RTR(置1),具有相同ID的節點會把數據發送到總線上。

錯誤幀(Error Frame),當一個節點檢測到錯誤時會向總線發出錯誤幀,以通知其它節點。

過載幀(Overload Frame),用來在數據幀或遠程幀之間插入延時。

幀間隔(Interframe Space),不是一種幀類型。它是幀之間的間隙,由多個連續的隱性電平構成。

在編程時我們直接用到的就是數據幀和遠程幀。軟體編程比較簡單,需要注意的是一般需要設置寄存器中的初始化請求位(Initialization request),使模塊進入初始化狀態,才能開始進行CAN模塊的各種配置,初始化完成後退出初始化狀態,進入運行狀態。

3. CAN總線應用注意事項

3.1 終端匹配電阻

在CAN總線的兩端要用120歐的電阻端接進行阻抗匹配,因為CAN總線長度一般會比較長,傳輸的信號速度快,特別是信號的邊沿跳變部分頻率很高。

傳輸線效應 平常我們總是認為電信號從一個引腳發出,通過導線,瞬間就會到達接收引腳,導線上的電壓處處是相等的。但是當信號的頻率很高,或者導線特別長,總之導線的長度接近傳導信號波長的1/10後,我們就需要轉變一下我們的觀念,此時信號的傳輸主要受電纜特性阻抗的影響。

電纜特性阻抗 = 信號電場強度(伏特/米) / 磁場強度(安培/米)

電纜的特性阻抗與電纜的材質,粗細,線纜之間的距離有關,而與電纜的長度無關。電纜的特性阻抗還和信號的頻率有關,但是當頻率增加到一定數值時,特性阻抗不再變化。常用的帶屏蔽雙絞線的特性阻抗是120歐。

信號在阻抗不連續處會產生反射,所以要保持電纜阻抗的連續性,而且線纜終點需要用等於電纜特性阻抗的電阻進行端接,以消耗掉傳輸至端點的信號,否則信號會反射回去和後續發出的信號產生疊加,引起錯誤。

頻率與波長對應關係

150K 2000m

500K 600m

1M 300m

10M 30m

端接電阻的另一個作用是可以使CAN總線從顯性狀態快速回到隱性狀態。因為在顯性狀態下,兩條線纜CAN_H, CAN_L之間的寄生電容會被充電,如果沒有一個放電迴路,總線不能快速回到隱性狀態。

3.2 EMC防護

CAN常常工作在強幹擾的工業環境中,採用屏蔽雙絞線會極大的提升EMC防護性能。同時如果數字電路部分和CAN收發器之間用高速光耦隔離開,並且對兩部分採用完全隔離的電源供電,那麼可以把總線上的幹擾最大限度地隔離在外部。

需要注意的是屏蔽層只能在一點接入大地。如果在多個點接地,那麼通過大地會形成電流環路,反而會引入噪聲。

3.3 時鐘容差(Oscillator Tolerance)

總線的速度越高,需要的時鐘精度越高。一般在低於125kpbs時可以用低成本的陶瓷震蕩器(ceramic resonators),更高的速度下建議使用晶體振蕩器(Quartz,or Crystal Oscilators)。

3.4 CAN模塊死機現象

CAN模塊內部有監控電路,總線上的異常,如短路等,會引起錯誤計數器增長。TEC(Transmit Error Counter), REC(Receive Error Counter)。當發送錯誤TEC計數超過255後,CAN模塊進入BUS-OFF模式,此節點不能發送也不能接收。這樣做的好處是可以避免由個別模塊的問題引起整個總線不能工作。

晶片一般會提供兩種恢復機制:自動和手動模式。比如在STM32單片機中,如果ABOM位設置為1,CAN模塊將不斷嘗試自動恢復。如果ABOM=0,則需要程序進入CAN初始化模式,重新配置後,再退出初始化進入正常工作模式。

由於CAN總線非常可靠,不易出錯,所以在測試階段建議人為製造一些總線錯誤,比如短路,斷路,強幹擾之類,看程序是否能從異常狀態下恢復。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了