這里我們先逆推一下CAN總線的一些特點。
第一,CAN總線分層結構
我們根據can總線具有的一些特性可知:CAN總線肯定具有分層結構,而且參考OSI模型(OSI參考模型介紹)是肯定的,我們可以看一下相關的文檔可知:CAN遵從OSI模型。
上面這一點大部分人都是熟知的。
第二、CAN總線分為哪幾層
根據《FPGA和USB3.0通信-USB3.0協議介紹》中總線、協議、接口關系可知:
CAN總線內容整體比較簡單(相對),肯定沒有USB、PCIe協議這種復雜,也就是說CAN總線的分層結構不會超過三層;但是相對UART這種又復雜些,分層結構肯定大于一層。
我們大致判斷CAN總線差不多是兩層左右的分層結構,由于是總線,所以會規定物理層和數據鏈路層。從官方協議中可知:CAN結構劃分為兩層:數據鏈路層和物理層。
為什么要介紹分層結構
經常看我文章的應該知道,不管哪種協議我都會首先介紹這種結構的分層結構,那么很多人都會疑問:裝什么B,好好介紹協議不行嗎?
從各種協議的官方而言,他們遵循OSI參考模型是為了方便自己協議的維護和擴展,不然他們也不會傻到遵循一個參考模型(又不是強制規定)。對我們而言,這種分層結構更容易理解,不管簡單協議還是復雜協議我們都可以根據前一個理解的協議去理解下一個協議(每一層的功能類似),不會讓我們初識一種接口或者協議就要抱著協議或者SPEC啃幾個月才能理解。
最后就是當你要用這種總線或者接口時方便制作方案,比如現在我要用FPGA實現CAN通信,我們需要根據FPGA的特點選擇各種方案,各種方案的區別就是其他廠商在制作IC時制作了哪一層的芯片,下圖中就是我們實現CAN通信的整體方案:
CAN總線拓撲圖 改編自官方總線協議
這張拓撲圖其實是參考CAN總線的分層結構,主要分為數據鏈路層和物理層,這種方案主要是分局目前市場上存在的CAN相關IC(IC的設計肯定是根據CAN總線的SPEC,存在的原因也是基于此)。
FPGA實現方案簡介
還是這張拓撲圖,因為CAN總線的物理層包含模擬電路部分,所以CAN收發器一般使用外掛;而CAN控制器是可以利用數字電路實現,所以我們在設計方案時可以根據上述特點實現我們的方案。
第一種:FPGA+CAN收發器
控制器使用數字電路實現即可。
第二種:FPGA+CAN控制器+CAN收發器(收發+控制可以放在一起芯片內)
這種方案最簡單。常見的芯片方案Microchip MCP25625(SPI轉CAN)
?
http://www.digilent.com.cn/products/product-pmodcan.html
?
上面就是Digilent出品的PMOD CAN模塊,原理圖可以參考。
CAN總線協議
關于協議這里就不過多介紹了,分享官方文檔的中文翻譯。
鏈接//caiyun.139.com/m/i?1B5C4Ohvz4ICv提取碼:xHzV復制內容打開和彩云PC客戶端,操作更方便哦
上面的內容就是今天的內容,關于后期的實現會在后面的文章中介紹。
責任編輯:haq
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602022 -
CAN總線
+關注
關注
145文章
1937瀏覽量
130640 -
CAN
+關注
關注
57文章
2720瀏覽量
463399
發布評論請先 登錄
相關推薦
評論