?

基于FPGA和控制器MCP2517FD設計的CAN FD總線接口

2020-11-06 10:57張波濤
科學與財富 2020年23期

張波濤

摘要:CAN(Control Area Network,控制器局部網)總線廣泛應用于工業自動化監控網絡中,傳輸速率的應用已經逐漸逼近CAN總線的帶寬,急需更高速率帶寬的總線通訊方式,CAN FD(CAN with Flexible Data-Rate,帶靈活可變數據波特率的CAN總線)總線應運而生,可以實現更高速率和更長有效載荷。本文提出了一種CAN FD總線接口設計技術,通過靈活的FPGA(Field-Programmable Gate Array,即現場可編程門陣列)設計SP(Iserial peripheral inter-face,串行外圍設備接口)接口控制CAN FD芯片MCP2517FD,實現CAN FD總線接口的設計,系統實現后,可以根據現場應用提出的新要求對FPGA進行升級,增加了使用的靈活性。

關鍵詞:FPGA;CAN;FD;MCP2517FD;SPI

CAN總線屬于現場總線的范疇是一種有效支持分布式控制和實時控制的串行通訊網絡,最初是由德國BOSCH公司為汽車的監測和控制而設計的,后來逐漸發展到用于其它工業領域。CAN總線具有低成本、極高的總線利用率、長達10km的數據傳輸距離,高達1Mbps的數據傳輸速率、可根據報文ID進行選擇,可靠的錯誤處理機制、自動重發被破壞的信息、節點在錯誤嚴重的情況下可自動退出總線等特點。

CAN FD總線兼具CAN總線的特點,在其基礎上傳輸速率帶寬由1Mbps提升至10Mbps,采用新的DLC(Data Length code)編碼方式使數據場長度由8 個字節增加至64個字節,更大程度上滿足了工業領域對于高速率傳輸的需求。

為了靈活的使用CAN FD總線,本文提出一種靈活的CAN FD總線接口設計技術,即使用FPGA和控制器MCP2517FD實現CAN FD接口設計的方案,不僅能夠實現CAN總線接口通訊,同時對于后期使用過程中,可以根據不同的要求進行升級,增加使用的靈活性。

1總線控制器MCP2517FD簡介

為了實現CAN FD總線的應用,Microchip公司在CAN總線控制器MCP2515的基礎上推出了MCP2517FD,它既可以滿足CAN總線的技術要求,又可以實現CAN FD總線的使用,帶有符合工業標準的SPI串行接口,具有體積小,易使用及低成本等特點。

MCP2517FD主要功能參數如下:

1.??? 支持CAN2.0B和CAN FD協議;

2.??? 仲裁域速率可達1Mbps,數據域速率可達8Mbps;

3.??? 有標準幀和擴展幀兩種可供選擇,每幀包含的數據長度為0~8個字節(CAN2.0B協議)或0~64個字節(CAN FD協議);

4.??? 支持遠程幀;

5.??? 內含31個FIFO,都可以通過配置作為發送或接收FIFO使用;內含1 個發送隊列;內含具有32位時間戳的發送事件FIFO;

6.??? 有可編程的自動重傳機制:分別為無限次數、3次或禁用;

7.??? 內含32個靈活的過濾器和掩蓋對象,每個對象都可以配置為過濾:標準ID+前 18個數據位或擴展ID;

8.??? 有多達3 個中斷引腳;

9.??? 支持高達20MHz的SPI時鐘速率,支持SPI模式0,0和 1,1;

10.? 帶有CRC的SPI命令以檢測SPI接口上的噪聲,有受糾錯編碼保護的RAM

11.? 40、20或 4MHz晶體、陶瓷諧振器或外部時鐘輸入,帶預分頻的時鐘輸出;

12.工作電壓:2.7V~5.5V;

13.使用5.5V電壓、40MHz時鐘時工作電流最大為12mA,睡眠模式下電流為10μA。

2硬件電路設計

本文設計的是CAN FD總線接口,因此硬件電路設計采用Altera公司的EP1C20F324I7N芯片產生控制時序邏輯;采用Altera公司的EPCS4SI8芯片作為FPGA的配置芯片;采用Microchip公司的控制器MCP2517FD實現CAN FD總線協議;采用NXP公司TJA1044GT芯片作為總線的收發器,將總線控制器產生的數字信號轉換為符合CANFD總線格式的信號;FPGA和MCP2517FD總線控制器使用的時鐘為20MHz。

CAN FD總線硬件電路設計如圖1 所示。

3???? FPGA軟件設計

CAN FD總線接口的軟件設計主要分為邏輯時序控制模塊和SPI接口模塊,其中邏輯時序控制模塊主要實現MCP2517FD總線控制器的初始化、數據處理及輸出和響應CAN FD總線控制指令等功能;SPI接口模塊主要實現FPGA與MCP2517FD的通訊。SPI指令格式見表1,除復位采用16位指令,其余讀寫均采用48位指令(即4 位命令+12位地址+32位數據)。軟件各功能模塊如圖2 所示。

3.1? 邏輯時序控制模塊

注:C= 命令(4 位),A= 地址(12 位),D= 數據(1~n 字節),N= 字節數(1 字節),CRC(2 字節)

3.1.1????? 總線控制器的初始化

總線控制器的初始化主要包括MCP2517FD特定寄存器的初始化和CAN FD控制器模塊寄存器的初始化,分別是對控制器和總線通訊格式進行的初始化。具體內容見下:

a)??? 初始化MCP2517FD特定寄存器

1)??? 復位使芯片進入配置模塊;

2)??? 初始化時鐘、I/O口、校驗及糾錯碼。

b)??? 初始化CAN FD控制器模塊寄存器

1)??? 設置控制模式為配置模式;

2)??? 初始化仲裁域與數據域的傳輸速率及采樣點;

3)??? 初始化發送請求、發送延遲補償及中斷等寄存器;

4)??? 初始化輸出FIFO和輸入FIFO及過濾器;

5)??? 設置控制模式為CAN FD模式。

3.1.2????? 數據處理及輸出

數據處理主要是將輸入的系統數據轉換為符合對外通訊協議的數據格式,將符合通訊協議格式的數據寫入控制器MCP2517FD的輸出FIFO中,然后通過發送請求寄存器控制MCP2517FD將FIFO中的數據輸出。流程圖見圖3。

3.1.3響應總線控制指令

從MCP2517FD的輸入FIFO中讀取接收到的指令進行判斷,若指令符合接口協議,則依據協議執行指令,清除輸入FIFO;若指令不符合接口協議,清除輸入FIFO,不作任何處理。流程見圖4。

3.2? SPI接口模塊

FPGA和控制器MCP2517FD之間通過SPI接口進行通訊,FPGA為主控器,MCP2517FD為從控器,主要有四個信號:SCK-串行時鐘;CS-片選;SDO-MCP2517FD送給FPGA的數據;SDI-FPGA送給MCP2517FD的數據。SPI接口選擇0,0模式傳輸,傳輸時先傳輸數據最高位,在時鐘信號的上升沿讀取數據,傳輸的波特率由FPGA控制實現,滿足不大于20MHz的要求,SPI數據傳輸時序見圖5。

4結束語

本文提出了基于FPGA和控制器MCP2517FD的CAN FD總線接口的設計方案,并詳細論述了硬件電路設計和軟件設計實現方法,滿足了系統對高速率通訊的需求,目前該設計方案已在某型高度表系統中得以成功應用。由于該設計方案采用模塊化設計方法,同時控制器MCP2517FD兼容CANFD和CAN2.0B總線接口,因此通過簡單的修改軟件,就可以實現CAN總線接口。

參考文獻:

[1]?? Microchip.ExternalCANFDControllerwith?????? SPI? Interface

[2]?? Microchip.CAN FD Module(MCP2517FD).2017.

[3]?? 張杰.CAN總線在汽車車身控制方面的設計和應用.中國知網.2007.

[4]?? 柯江民,孫淑霞,曹屹東.MCP2515及CAN通訊驅動設計.計算機應用.2008.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合