讀CAN總線的書時,都會涉及到總線電平的問題,CAN總線的電平分為顯性電平與隱性電平,這是CAN總線物理層的核心部分,也是總線仲裁的基礎。那何為顯性,何為隱性呢?
根據孔丙火(微信公眾號:孔丙火)的理解,最直接的解釋就是波形,用示波器測量CANH和CANL上的差分波形,可以清晰的看到有高低電平,在短距離通信中,高電平在2-4V之間(實測),低電平為0V。那么,從波形上看,最顯眼的肯定是高電平,不顯眼的是低電平,那么高電平就是顯性電平,低電平就是隱性電平。如圖1所示。
圖1
那么,另外一個問題來了,我們在看CAN總線資料的時候,總會看到一個線與的概念,顯性電平的邏輯為0,隱性電平的邏輯為1,所以在仲裁的時候ID越小的幀優先級越高。顯性電平為什么邏輯為0呢,其實,這都是CAN收發器芯片完成的工作,在收到顯性電平的時候,芯片會在Rx腳輸出低電平,即0,這樣就實現了CAN差分電平與TTL電平的轉換。孔丙火(微信公眾號:孔丙火)認為,我們在使用中,只要知道顯性電平的差分電平為高,邏輯電平(TTL電平)為低,就可以了,否則在測試CAN波形時可能會有疑惑。