999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DSP和FPGA的CANFD通信實現

2021-02-18 07:43:44孫樂羊
導航與控制 2021年6期

楊 波,韓 杰,孫樂羊

(北京航天時代光電科技有限公司,北京 100094)

0 引言

控制器局域網(Controller Area Network,CAN)為德國Bosch公司20世紀80年代開發的一種串行數據通信協議,最初是為了解決汽車中大量控制與測試儀器之間的數據交換,由于其接口通信簡單實用、成本合理,已在各個工業領域得到廣泛應用,成為國際上應用最廣泛的開放式現場總線之一。

但是隨著工業水平的提高,控制系統越來越復雜,對數據傳輸速率、數據吞吐量及通信可靠性提出了更高的要求。傳統的CAN總線通信已經不能滿足市場需求,CAN總線的升級總線——波特率可變控制器局域網(CAN with Flexible Data?rate,CANFD)應運而生。從2012年第十三屆ICC大會上Bosch公司發布CANFD協議,到2015年提交國際標準化ISO11898系列,CANFD技術正在飛速發展[1]。

CAN總線通信的最高傳輸速率為1Mbps,實際可實現速率只能達到 500kbps[2?3]。 CANFD 繼承了CAN總線的絕大多數特性,如雙絞線串行通信協議、仲裁技術、糾錯機制等,但在總線帶寬和可傳送數據長度方面進行了改善,并通過改變幀結構和提高位速率成功的將數據傳輸速率提高到了5Mbps,實現了速度與穩定的兩者兼得。目前在車載通信領域,CANFD已逐漸取代CAN總線,成為主流總線通信之一[4?7]。但車載領域的CANFD總線通信多采用單片機控制以達到節省成本、實現簡單的目的,不能應用于對可靠性能和抗干擾能力要求更高的無人機等武器領域中。

CANFD控制器 MCP2517芯片為 SPI通信方式,支持SPI通信的微處理器有很多,如單片機、數字信號處理(Digital Signal Processing,DSP)等,本文提出采用DSP+現場可編程門陣列(Field Pro?grammable Gate Array,FPGA)來實現CANFD通信。DSP通過外部存儲器接口(External Memory Interface,EMIF)與 FPGA相連,使 FPGA作為DSP的高速數據傳輸接口對CANFD控制器進行讀寫操作。本文提出的基于 DSP+FPGA控制的CANFD總線通信方法能夠克服單片機抗干擾能力差、數據讀寫速度慢的缺陷,更能夠滿足對可靠性有更高要求的航天航空控制的需求。

1 CAN總線與CANFD總線

由于CAN總線每次只能傳輸8字節數據,通信速率較慢,且總線的位填充會造成干擾,可靠性低。CANFD總線由CAN總線改進后優勢明顯,具體體現在以下幾個方面:

1)數據場長度:數據場由數據幀中傳輸的數據組成,CAN的DLC數據位是4bits,數據幀中最多包含8字節傳輸數據。CANFD對數據場的長度進行了擴展,并采用非線性定義的方式定義數據字節,每數據幀傳輸數據長度可達64字節,避免了數據分裂的狀況。

2)可變比特率:CANFD總線在仲裁段和數據段可采用不同的波特率傳輸,通過控制場的比特率轉換(BRS)位來控制是否切換比特率,隱性表示轉換可變速率,顯性表示不可轉變速率,CANFD的波特率表示為500kbps/2Mbps。其中,500kbps為仲裁段的傳輸速率,2Mbps為數據段的傳輸速率。

3)新CRC格式:由于CAN總線位填充規則對CRC的干擾,使得錯幀漏檢率沒能達到設計預期。CANFD總線對CRC算法做出了改變,將填充位納入到CRC計算中,即CRC以含填充位的位流進行計算,以一個填充位開始并且序列每4位插入一個填充位加以分割,且填充位的值是上一位的反碼。格式檢查時,如果不是反碼就做報錯處理,且CRC長度是由傳輸數據長度決定的,當傳輸數據為0~16字節時,CRC長度就為17,CRC多項式可表示為

當傳輸數據長度為17~64字節時,CRC長度為21,CRC多項式就表示為

CANFD的CRC算法新的CRC段糾錯方式可以改善錯誤幀漏檢率。

4)DLC編碼:CANFD數據幀采用了新的DLC編碼,在數據場長度為0~8個字節時,采用線性規則,當數據長度為12~64個字節時,采用非線性規則編碼,具體的編碼規則如表1所示。

表1 DLC編碼規則Table 1 Rules of DLC code

2 系統硬件設計

系統包括DSP、FPGA、CANFD控制器、收發器、信號隔離芯片。

DSP、CANFD控制器與FPGA通過SPI接口通信,DSP選用TI公司的TMS320C6713,FPGA選用Cyclone公司的EP4CE6F17C8。DSP作為數據解算核心和控制核心,自身更擅長數據處理而非邏輯控制,且自身接口有限,沒有良好的通用性。FPGA接口多且大多可通用,邏輯控制簡單,能夠滿足大數據量高速的傳輸控制,且可實現譯碼、外圍接口及接口電路的集成[8]。

DSP+FPGA+MCP2517配合實現CANFD總線的數據傳輸,FPGA作為DSP與外圍接口之間的橋梁,在接收到信號上升沿時,對相應數據進行鎖存,完成信號的采集、濾波、解調,再將數據庫存放在制定的內存存儲器,DSP通過EMIF總線接口讀取相應數據,并作新數據處理和控制指令的執行,且并行處理方式的FPGA對CANFD控制器進行數據傳輸和使能、中斷控制。

支持SPI的微處理器有ARM、STM32、DSP、FPGA,采用DSP+FPGA模式來實現CANFD通信,能夠克服單片機固有的缺陷,更能夠滿足對可靠性有更高要求的航天航空控制的需求。單片機處理速度低、接口少、資源有限,遇到強干擾程序容易跑飛[9?12]。系統的硬件設計框圖如圖1所示。

圖1 系統硬件框圖Fig.1 Block diagram of system hardware

2.1 CANFD控制器模塊設計

CANFD控制器采用 MCP2517,MCP2517是Microchip公司開發的一款帶 SPI接口的外部CANFD控制器,微處理器只需要支持SPI通信即可擴展CANFD。MCP2517控制器支持CAN 2.0B和CANFD模式,時鐘頻率可達40MHz,通過SPI可與控制器進行通信,SPI的時鐘頻率可達20MHz;31個FIFO可配置為接收或發送;32個過濾器和屏蔽器對象可設置來對接受報文的ID屏蔽;仲裁域比特率高達1Mbps,數據段波特率高達1Mbps;發送報文可設置發送優先級。

CANFD控制器模塊設計電路如圖2所示。

圖2 CANFD控制器模塊原理圖Fig.2 Schematic diagram of CANFD controller module

2.2 CANFD總線收發器模塊設計

采用TJA1044GT芯片作為CANFD總線的收發器,芯片的差分接收端并聯120Ω的匹配電阻,來克服 “長線效應”,收發器模塊電路如圖3所示。收發器與CANFD控制器之間選用隔離芯片ISO7242對輸入輸出總線差分信號進行隔離,隔離電路如圖4所示。

圖3 CANFD總線收發器模塊電路圖Fig.3 Circuit diagram of CANFD bus transceiver module

圖4 信號隔離模塊電路圖Fig.4 Circuit diagram of signal isolation module

3 系統軟件設計

系統軟件設計主要分為模塊初始化、報文接收、報文發送,軟件實現流程如圖5所示。

圖5 軟件設計流程圖Fig.5 Flowchart of software design

模塊初始化是指DSP通過FPGA向CANFD控制器芯片發送配置信息,對CANFD控制器進行初始化設置,模塊初始化配置的流程如下:

1)選擇工作模式為配置模式,設置波特率可變。

2)配置標稱位時間和數據位時間寄存器,根據想要設置的仲裁域和數據域的波特率值計算寄存器設置值。

3)配置FIFO控制寄存器,設置FIFO的報文深度、有效負載大小、報文發送優先級、接收還是發送FIFO、設置非空/非滿中斷允許。

4)設置接收過濾器和屏蔽寄存器。

5)配置CANFD控制寄存器,選擇工作模式為CANFD工作模式。

模塊初始化完成后,可進行報文發送和接收配置,配置流程如下:

1)讀取發送/接收下一報文的地址:MCP2517控制器的RAM區沒有對每個FIFO對象設置固定的內存地址,報文對象的地址取決于所選的配置,但是應用程序不必計算地址,用戶需要發送開始前通過讀取發送/接收FIFO的用戶地址寄存器值來獲取下一個報文對象的地址。

2)發送報文時,DSP通過FPGA向CANFD控制器的FIFO地址(上一步驟讀到的下一發送報文對象的地址)寫入要發送的報文;接收報文時,通過配置過濾器對象和屏蔽器對象給接收FIFO匹配一個或多個過濾器。

3)啟動發送/接收:設置FIFO控制寄存器中的報文請求發送和FIFO頭部遞增。

4)報文發送/接收過程中可觀察FIFO狀態寄存器中的報文索引標志及發送/接收FIFO的用戶地址位是否正確遞增。

4 實驗驗證

4.1 實驗步驟和方法

DSP TMS320C6713的主頻為528MHz,FPGA EP4CE6F17C8的主頻為66MHz,MCP2517FD芯片的時鐘頻率為 40MHz,SPI接口的時鐘頻率為20MHz。所以,將實驗條件設置為通信電纜長3m、接收發送的報文長度為最大64字節。

CAN總線通信最高傳輸速率為1Mbps,正??蓪崿F速率只能達到500kbps,CANFD由于控制域和數字域采用不同的波特率進行數據通信,通信速率在理論上大于CAN總線通信。在實驗中驗證當波 特 率 為 500kbps/2Mbps 和 1Mbps/5Mbps 時CANFD總線通信的準確性,實驗步驟為:

1)首先使用Modelsim仿真軟件對FPGA程序進行時序仿真,仿真結果預期一致則證明FPGA與CANFD控制器通信正常。

2)DSP通過FPGA來配置MCP2517控制寄存器的值,將控制器設置為CANFD模式,設置波特率、ID號和報文深度,有效數據長度為64字節。

3)編寫DSP程序實現CANFD總線的自發自收功能,提前編輯CANFD總線要收發的數據信息,每次發送200個報文,共發送10次。

4)利用CANFD通信調試上位機對比發送數據與接收數據,統計傳輸時間、錯誤字節數,計算誤碼率。

4.2 仿真驗證及結果

使用Modelsim仿真軟件對FPGA程序進行時序仿真并給定輸入,如果得到預期輸出,則證明可以實現對CANFD控制器的時序控制,且理論上可以實現基于DSP+FPGA系統的CANFD通信。

仿真模擬DSP通過FPGA向CANFD總線發送信息,根據控制器芯片MCP2517的SPI指令格式,FPGA應向MCP2517發送復位指令來將控制芯片的內部寄存器復位為默認狀態,復位指令為發送地址0x0000和數據信息0b000,接著向控制芯片地址為 0x0001的寄存器寫入數據信息0x02000300,最終得到的仿真時序圖如圖6所示。

圖6 仿真驗證時序結果Fig.6 Timing results of simulation verification

由圖6可知,時序仿真結果與設想一致,表現為:當DSP控制FPGA的片選拉低且寫使能信號拉低后,FPGA控制的CANFD的片選被拉低,CANFD的數據線上依次傳輸地址信息和數據信息(0x0001和0x02000300), 證明了基于 DSP+FPGA系統的CANFD通信可行性。

4.3 實驗驗證及結果

在DSP+FPGA+CANFD控制器實驗平臺上對4.1節中的步驟2~步驟4進行實驗驗證,通過CANFD測試盒和上位機來記錄發送和接收的數據,對發送和接收的數據進行比對,實驗結果如表2所示。

表2 實驗驗證結果Table 2 Results of experiment verification

由表2的實驗結果可知,在通信電纜長3m、發送10次數據、每次發送200條報文、報文有效長度為64字節、波特率設置為500kbps/2Mbps及1Mbps/5Mbps條件下,錯誤字節數均為0,誤碼率小于1%,證明了該系統可實現可靠的CANFD通信。

由于實驗條件有限,不能充分驗證在不同工作環境下的CANFD通信情況,如極限溫度對通信數據準確性的影響、不同波特率的有效通信距離變化等,所以本文提出的方法仍需要加入考慮環境溫度和通信距離等更多因素的對比實驗來驗證。

5 結論

隨著汽車、無人機等領域對通信數據傳輸速率、數據吞吐量及可靠性提出了更高的要求,CANFD總線通信方法已逐漸開始取代傳統的CAN總線通信,保證CANFD數據傳輸的穩定性和可靠性也逐漸成為學者及工程師關注的重點。本文采用DSP+FPGA+MCP2517的方法來實現CANFD通信,并通過了仿真和實驗驗證,結果表明:該方法降低了軟件調試難度,減輕了處理器的運行負載,提高了系統的抗干擾能力,實現了5Mbps數據傳輸速率,是CAN總線最高傳輸速率的5倍。實際應用中會有通信距離、環境溫度等多種因素影響通信效果,本文提出的方法還需要通過更深入的研究來完善總結。

主站蜘蛛池模板: 精品亚洲欧美中文字幕在线看 | 中文国产成人久久精品小说| 国产麻豆精品手机在线观看| 亚洲天堂精品在线观看| 亚洲欧州色色免费AV| 黄片在线永久| 久久人与动人物A级毛片| 国产精品视频免费网站| h网站在线播放| 欧美a在线视频| 国产在线自乱拍播放| 亚洲大尺度在线| 中文字幕中文字字幕码一二区| 中文字幕在线欧美| 日韩av在线直播| 伊在人亞洲香蕉精品區| 一级看片免费视频| 一区二区三区四区日韩| 19国产精品麻豆免费观看| 亚洲人成色在线观看| 亚洲中文无码av永久伊人| 不卡网亚洲无码| 成年人国产视频| 久久男人资源站| 一级毛片网| 国产精品自在拍首页视频8| 亚洲综合日韩精品| 久久精品电影| 亚洲无码高清视频在线观看| 无码AV高清毛片中国一级毛片| 在线另类稀缺国产呦| 国产97视频在线观看| 福利一区三区| 午夜国产精品视频黄| 午夜爽爽视频| 久久6免费视频| 午夜精品一区二区蜜桃| 人妻熟妇日韩AV在线播放| 日本人妻一区二区三区不卡影院| 午夜精品区| 久久久久无码国产精品不卡| 午夜激情福利视频| 小说 亚洲 无码 精品| 国产视频入口| 亚洲免费人成影院| 久久这里只精品国产99热8| 亚洲成a人片77777在线播放| 日本人妻丰满熟妇区| 亚洲AV一二三区无码AV蜜桃| 制服丝袜无码每日更新| 久久这里只有精品23| 无码有码中文字幕| 国产欧美日韩综合在线第一| 99精品在线视频观看| 国产精品任我爽爆在线播放6080| 毛片卡一卡二| 国产国拍精品视频免费看| 91在线精品免费免费播放| 欧美一区二区三区国产精品| 久久久精品国产SM调教网站| 欧美一级高清片欧美国产欧美| 亚洲天堂视频在线播放| 亚洲视频在线观看免费视频| 亚洲va在线观看| 在线播放真实国产乱子伦| 无码福利视频| 在线观看国产精品第一区免费| 日韩免费中文字幕| 新SSS无码手机在线观看| 欧美精品在线观看视频| 国产亚洲视频免费播放| 青青青国产精品国产精品美女| 九色最新网址| 福利片91| 国产成人精品免费视频大全五级| 沈阳少妇高潮在线| a级毛片视频免费观看| 中文字幕人妻av一区二区| 91毛片网| 亚洲综合专区| AV老司机AV天堂| 97视频在线观看免费视频|