這里我們先逆推一下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é)議的維護和擴展,不然他們也不會傻到遵循一個參考模型(又不是強制規(guī)定)。對我們而言,這種分層結(jié)構(gòu)更容易理解,不管簡單協(xié)議還是復(fù)雜協(xié)議我們都可以根據(jù)前一個理解的協(xié)議去理解下一個協(xié)議(每一層的功能類似),不會讓我們初識一種接口或者協(xié)議就要抱著協(xié)議或者SPEC啃幾個月才能理解。
最后就是當你要用這種總線或者接口時方便制作方案,比如現(xiàn)在我要用FPGA實現(xiàn)CAN通信,我們需要根據(jù)FPGA的特點選擇各種方案,各種方案的區(qū)別就是其他廠商在制作IC時制作了哪一層的芯片,下圖中就是我們實現(xiàn)CAN通信的整體方案:
CAN總線拓撲圖 改編自官方總線協(xié)議
這張拓撲圖其實是參考CAN總線的分層結(jié)構(gòu),主要分為數(shù)據(jù)鏈路層和物理層,這種方案主要是分局目前市場上存在的CAN相關(guān)IC(IC的設(shè)計肯定是根據(jù)CAN總線的SPEC,存在的原因也是基于此)。
FPGA實現(xiàn)方案簡介
還是這張拓撲圖,因為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)
上面就是Digilent出品的PMOD CAN模塊,原理圖可以參考。
CAN總線協(xié)議
關(guān)于協(xié)議這里就不過多介紹了,分享官方文檔的中文翻譯。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1630文章
21799瀏覽量
606194 -
CAN總線
+關(guān)注
關(guān)注
145文章
1956瀏覽量
131116 -
接口
+關(guān)注
關(guān)注
33文章
8706瀏覽量
151971 -
總線協(xié)議
+關(guān)注
關(guān)注
0文章
117瀏覽量
14902
原文標題:【科普】CAN總線介紹及FPGA實現(xiàn)方案簡介
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
基于FPGA的CAN總線通信系統(tǒng)
CAN總線的特點
基于CAN總線的變頻設(shè)備遠程監(jiān)控系統(tǒng)的實現(xiàn)
![基于<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的變頻設(shè)備遠程監(jiān)控系統(tǒng)的<b class='flag-5'>實現(xiàn)</b>](https://file1.elecfans.com//web2/M00/A5/4D/wKgZomUMN9GAIflkAAJv0i6Pxy4089.jpg)
FPGA實現(xiàn)CAN總線通信節(jié)點設(shè)計
![<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信節(jié)點設(shè)計](https://file1.elecfans.com//web2/M00/A6/31/wKgZomUMPDKAd6YfAAAM_3iqBUA464.jpg)
基于FPGA的VME總線和CAN總線之間的傳輸轉(zhuǎn)換方案設(shè)計
![基于<b class='flag-5'>FPGA</b>的VME<b class='flag-5'>總線</b>和<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>之間的傳輸轉(zhuǎn)換方案設(shè)計](https://file1.elecfans.com//web2/M00/A6/F1/wKgZomUMQWOAGbRJAAAbqtRUaVQ380.jpg)
如何使用FPGA和CAN控制器MCP2515實現(xiàn)慣導(dǎo)系統(tǒng)的CAN總線接口的設(shè)計
![如何使用<b class='flag-5'>FPGA</b>和<b class='flag-5'>CAN</b>控制器MCP2515<b class='flag-5'>實現(xiàn)</b>慣導(dǎo)系統(tǒng)的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>接口的設(shè)計](https://file.elecfans.com/web1/M00/DC/BF/o4YBAGARHoyAaZA4AACNsCSIMjY262.png)
評論