這里我們先逆推一下CAN總線的一些特點。
第一,CAN總線分層結(jié)構(gòu)
我們根據(jù)can總線具有的一些特性可知:CAN總線肯定具有分層結(jié)構(gòu),而且參考OSI模型(OSI參考模型介紹)是肯定的,我們可以看一下相關(guān)的文檔可知:CAN遵從OSI模型。
上面這一點大部分人都是熟知的。
第二、CAN總線分為哪幾層
根據(jù)《FPGA和USB3.0通信-USB3.0協(xié)議介紹》中總線、協(xié)議、接口關(guān)系可知:
CAN總線內(nèi)容整體比較簡單(相對),肯定沒有USB、PCIe協(xié)議這種復(fù)雜,也就是說CAN總線的分層結(jié)構(gòu)不會超過三層;但是相對UART這種又復(fù)雜些,分層結(jié)構(gòu)肯定大于一層。
我們大致判斷CAN總線差不多是兩層左右的分層結(jié)構(gòu),由于是總線,所以會規(guī)定物理層和數(shù)據(jù)鏈路層。從官方協(xié)議中可知:CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層和物理層。
為什么要介紹分層結(jié)構(gòu)
經(jīng)??次椅恼碌膽?yīng)該知道,不管哪種協(xié)議我都會首先介紹這種結(jié)構(gòu)的分層結(jié)構(gòu),那么很多人都會疑問:裝什么B,好好介紹協(xié)議不行嗎?
從各種協(xié)議的官方而言,他們遵循OSI參考模型是為了方便自己協(xié)議的維護(hù)和擴(kuò)展,不然他們也不會傻到遵循一個參考模型(又不是強(qiáng)制規(guī)定)。對我們而言,這種分層結(jié)構(gòu)更容易理解,不管簡單協(xié)議還是復(fù)雜協(xié)議我們都可以根據(jù)前一個理解的協(xié)議去理解下一個協(xié)議(每一層的功能類似),不會讓我們初識一種接口或者協(xié)議就要抱著協(xié)議或者SPEC啃幾個月才能理解。
最后就是當(dāng)你要用這種總線或者接口時方便制作方案,比如現(xiàn)在我要用FPGA實現(xiàn)CAN通信,我們需要根據(jù)FPGA的特點選擇各種方案,各種方案的區(qū)別就是其他廠商在制作IC時制作了哪一層的芯片,下圖中就是我們實現(xiàn)CAN通信的整體方案:
CAN總線拓?fù)鋱D 改編自官方總線協(xié)議
這張拓?fù)鋱D其實是參考CAN總線的分層結(jié)構(gòu),主要分為數(shù)據(jù)鏈路層和物理層,這種方案主要是分局目前市場上存在的CAN相關(guān)IC(IC的設(shè)計肯定是根據(jù)CAN總線的SPEC,存在的原因也是基于此)。
FPGA實現(xiàn)方案簡介
還是這張拓?fù)鋱D,因為CAN總線的物理層包含模擬電路部分,所以CAN收發(fā)器一般使用外掛;而CAN控制器是可以利用數(shù)字電路實現(xiàn),所以我們在設(shè)計方案時可以根據(jù)上述特點實現(xiàn)我們的方案。
第一種:FPGA+CAN收發(fā)器
控制器使用數(shù)字電路實現(xiàn)即可。
第二種:FPGA+CAN控制器+CAN收發(fā)器(收發(fā)+控制可以放在一起芯片內(nèi))
這種方案最簡單。常見的芯片方案Microchip MCP25625(SPI轉(zhuǎn)CAN)
?
http://www.digilent.com.cn/products/product-pmodcan.html
?
上面就是Digilent出品的PMOD CAN模塊,原理圖可以參考。
CAN總線協(xié)議
關(guān)于協(xié)議這里就不過多介紹了,分享官方文檔的中文翻譯。
鏈接//caiyun.139.com/m/i?1B5C4Ohvz4ICv提取碼:xHzV復(fù)制內(nèi)容打開和彩云PC客戶端,操作更方便哦
上面的內(nèi)容就是今天的內(nèi)容,關(guān)于后期的實現(xiàn)會在后面的文章中介紹。
責(zé)任編輯:haq
-
FPGA
+關(guān)注
關(guān)注
1630文章
21799瀏覽量
606194 -
CAN總線
+關(guān)注
關(guān)注
145文章
1956瀏覽量
131117 -
CAN
+關(guān)注
關(guān)注
57文章
2772瀏覽量
464445
發(fā)布評論請先 登錄
相關(guān)推薦
如何使用Arduino實現(xiàn)CAN總線通信呢
CAN總線通信原理介紹 CAN總線模塊選擇指南
如何使用Arduino實現(xiàn)CAN總線通信
![](https://file1.elecfans.com/web2/M00/0B/0D/wKgZomcse3WAMCkFAAHZ5kcfkGo538.jpg)
![](https://file1.elecfans.com/web2/M00/0B/AF/wKgaomcoXPyAd0BeAAHVXcPTtkk237.jpg)
![](https://file1.elecfans.com/web2/M00/0B/56/wKgaomcgYsCAXo3oAAI0Tzg84-Q157.jpg)
汽車CAN總線的特點和應(yīng)用
CAN總線的接口類型
CAN總線的主要特點和工作原理
CAN總線和EtherCAT的區(qū)別
can總線中斷狀態(tài)什么意思呢?
CAN總線的特點、原理及應(yīng)用
can總線的故障波形有哪些
如何快速實現(xiàn)CAN總線故障定位?
什么是CAN總線通信?CAN總線工作原理
![什么是<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>工作原理](https://file1.elecfans.com/web2/M00/C1/15/wKgaomXS_VeAWWGuAAAeFgRhNro567.jpg)
評論