這里我們先逆推一下CAN總線的一些特點。
第一,CAN總線分層結構
我們根據(jù)can總線具有的一些特性可知:CAN總線肯定具有分層結構,而且參考OSI模型(OSI參考模型介紹)是肯定的,我們可以看一下相關的文檔可知:CAN遵從OSI模型。
上面這一點大部分人都是熟知的。
第二、CAN總線分為哪幾層
根據(jù)《FPGA和USB3.0通信-USB3.0協(xié)議介紹》中總線、協(xié)議、接口關系可知:
CAN總線內(nèi)容整體比較簡單(相對),肯定沒有USB、PCIe協(xié)議這種復雜,也就是說CAN總線的分層結構不會超過三層;但是相對UART這種又復雜些,分層結構肯定大于一層。
我們大致判斷CAN總線差不多是兩層左右的分層結構,由于是總線,所以會規(guī)定物理層和數(shù)據(jù)鏈路層。從官方協(xié)議中可知:CAN結構劃分為兩層:數(shù)據(jù)鏈路層和物理層。
為什么要介紹分層結構
經(jīng)常看我文章的應該知道,不管哪種協(xié)議我都會首先介紹這種結構的分層結構,那么很多人都會疑問:裝什么B,好好介紹協(xié)議不行嗎?
從各種協(xié)議的官方而言,他們遵循OSI參考模型是為了方便自己協(xié)議的維護和擴展,不然他們也不會傻到遵循一個參考模型(又不是強制規(guī)定)。對我們而言,這種分層結構更容易理解,不管簡單協(xié)議還是復雜協(xié)議我們都可以根據(jù)前一個理解的協(xié)議去理解下一個協(xié)議(每一層的功能類似),不會讓我們初識一種接口或者協(xié)議就要抱著協(xié)議或者SPEC啃幾個月才能理解。
最后就是當你要用這種總線或者接口時方便制作方案,比如現(xiàn)在我要用FPGA實現(xiàn)CAN通信,我們需要根據(jù)FPGA的特點選擇各種方案,各種方案的區(qū)別就是其他廠商在制作IC時制作了哪一層的芯片,下圖中就是我們實現(xiàn)CAN通信的整體方案:
CAN總線拓撲圖 改編自官方總線協(xié)議
這張拓撲圖其實是參考CAN總線的分層結構,主要分為數(shù)據(jù)鏈路層和物理層,這種方案主要是分局目前市場上存在的CAN相關IC(IC的設計肯定是根據(jù)CAN總線的SPEC,存在的原因也是基于此)。
FPGA實現(xiàn)方案簡介
還是這張拓撲圖,因為CAN總線的物理層包含模擬電路部分,所以CAN收發(fā)器一般使用外掛;而CAN控制器是可以利用數(shù)字電路實現(xiàn),所以我們在設計方案時可以根據(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é)議
關于協(xié)議這里就不過多介紹了,分享官方文檔的中文翻譯。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1629文章
21750瀏覽量
604108 -
CAN總線
+關注
關注
145文章
1952瀏覽量
130846 -
接口
+關注
關注
33文章
8625瀏覽量
151350 -
總線協(xié)議
+關注
關注
0文章
116瀏覽量
14861
原文標題:【科普】CAN總線介紹及FPGA實現(xiàn)方案簡介
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論