国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于DSP和FPGA的CANFD通信實(shí)現(xiàn)

2021-02-18 07:43孫樂羊
導(dǎo)航與控制 2021年6期
關(guān)鍵詞:寄存器傳輸速率報(bào)文

楊 波,韓 杰,孫樂羊

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

0 引言

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

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

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

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

1 CAN總線與CANFD總線

由于CAN總線每次只能傳輸8字節(jié)數(shù)據(jù),通信速率較慢,且總線的位填充會(huì)造成干擾,可靠性低。CANFD總線由CAN總線改進(jìn)后優(yōu)勢(shì)明顯,具體體現(xiàn)在以下幾個(gè)方面:

1)數(shù)據(jù)場長度:數(shù)據(jù)場由數(shù)據(jù)幀中傳輸?shù)臄?shù)據(jù)組成,CAN的DLC數(shù)據(jù)位是4bits,數(shù)據(jù)幀中最多包含8字節(jié)傳輸數(shù)據(jù)。CANFD對(duì)數(shù)據(jù)場的長度進(jìn)行了擴(kuò)展,并采用非線性定義的方式定義數(shù)據(jù)字節(jié),每數(shù)據(jù)幀傳輸數(shù)據(jù)長度可達(dá)64字節(jié),避免了數(shù)據(jù)分裂的狀況。

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

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

當(dāng)傳輸數(shù)據(jù)長度為17~64字節(jié)時(shí),CRC長度為21,CRC多項(xiàng)式就表示為

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

4)DLC編碼:CANFD數(shù)據(jù)幀采用了新的DLC編碼,在數(shù)據(jù)場長度為0~8個(gè)字節(jié)時(shí),采用線性規(guī)則,當(dāng)數(shù)據(jù)長度為12~64個(gè)字節(jié)時(shí),采用非線性規(guī)則編碼,具體的編碼規(guī)則如表1所示。

表1 DLC編碼規(guī)則Table 1 Rules of DLC code

2 系統(tǒng)硬件設(shè)計(jì)

系統(tǒng)包括DSP、FPGA、CANFD控制器、收發(fā)器、信號(hào)隔離芯片。

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

DSP+FPGA+MCP2517配合實(shí)現(xiàn)CANFD總線的數(shù)據(jù)傳輸,F(xiàn)PGA作為DSP與外圍接口之間的橋梁,在接收到信號(hào)上升沿時(shí),對(duì)相應(yīng)數(shù)據(jù)進(jìn)行鎖存,完成信號(hào)的采集、濾波、解調(diào),再將數(shù)據(jù)庫存放在制定的內(nèi)存存儲(chǔ)器,DSP通過EMIF總線接口讀取相應(yīng)數(shù)據(jù),并作新數(shù)據(jù)處理和控制指令的執(zhí)行,且并行處理方式的FPGA對(duì)CANFD控制器進(jìn)行數(shù)據(jù)傳輸和使能、中斷控制。

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

圖1 系統(tǒng)硬件框圖Fig.1 Block diagram of system hardware

2.1 CANFD控制器模塊設(shè)計(jì)

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

CANFD控制器模塊設(shè)計(jì)電路如圖2所示。

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

2.2 CANFD總線收發(fā)器模塊設(shè)計(jì)

采用TJA1044GT芯片作為CANFD總線的收發(fā)器,芯片的差分接收端并聯(lián)120Ω的匹配電阻,來克服 “長線效應(yīng)”,收發(fā)器模塊電路如圖3所示。收發(fā)器與CANFD控制器之間選用隔離芯片ISO7242對(duì)輸入輸出總線差分信號(hào)進(jìn)行隔離,隔離電路如圖4所示。

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

圖4 信號(hào)隔離模塊電路圖Fig.4 Circuit diagram of signal isolation module

3 系統(tǒng)軟件設(shè)計(jì)

系統(tǒng)軟件設(shè)計(jì)主要分為模塊初始化、報(bào)文接收、報(bào)文發(fā)送,軟件實(shí)現(xiàn)流程如圖5所示。

圖5 軟件設(shè)計(jì)流程圖Fig.5 Flowchart of software design

模塊初始化是指DSP通過FPGA向CANFD控制器芯片發(fā)送配置信息,對(duì)CANFD控制器進(jìn)行初始化設(shè)置,模塊初始化配置的流程如下:

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

2)配置標(biāo)稱位時(shí)間和數(shù)據(jù)位時(shí)間寄存器,根據(jù)想要設(shè)置的仲裁域和數(shù)據(jù)域的波特率值計(jì)算寄存器設(shè)置值。

3)配置FIFO控制寄存器,設(shè)置FIFO的報(bào)文深度、有效負(fù)載大小、報(bào)文發(fā)送優(yōu)先級(jí)、接收還是發(fā)送FIFO、設(shè)置非空/非滿中斷允許。

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

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

模塊初始化完成后,可進(jìn)行報(bào)文發(fā)送和接收配置,配置流程如下:

1)讀取發(fā)送/接收下一報(bào)文的地址:MCP2517控制器的RAM區(qū)沒有對(duì)每個(gè)FIFO對(duì)象設(shè)置固定的內(nèi)存地址,報(bào)文對(duì)象的地址取決于所選的配置,但是應(yīng)用程序不必計(jì)算地址,用戶需要發(fā)送開始前通過讀取發(fā)送/接收FIFO的用戶地址寄存器值來獲取下一個(gè)報(bào)文對(duì)象的地址。

2)發(fā)送報(bào)文時(shí),DSP通過FPGA向CANFD控制器的FIFO地址(上一步驟讀到的下一發(fā)送報(bào)文對(duì)象的地址)寫入要發(fā)送的報(bào)文;接收?qǐng)?bào)文時(shí),通過配置過濾器對(duì)象和屏蔽器對(duì)象給接收FIFO匹配一個(gè)或多個(gè)過濾器。

3)啟動(dòng)發(fā)送/接收:設(shè)置FIFO控制寄存器中的報(bào)文請(qǐng)求發(fā)送和FIFO頭部遞增。

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

4 實(shí)驗(yàn)驗(yàn)證

4.1 實(shí)驗(yàn)步驟和方法

DSP TMS320C6713的主頻為528MHz,F(xiàn)PGA EP4CE6F17C8的主頻為66MHz,MCP2517FD芯片的時(shí)鐘頻率為 40MHz,SPI接口的時(shí)鐘頻率為20MHz。所以,將實(shí)驗(yàn)條件設(shè)置為通信電纜長3m、接收發(fā)送的報(bào)文長度為最大64字節(jié)。

CAN總線通信最高傳輸速率為1Mbps,正??蓪?shí)現(xiàn)速率只能達(dá)到500kbps,CANFD由于控制域和數(shù)字域采用不同的波特率進(jìn)行數(shù)據(jù)通信,通信速率在理論上大于CAN總線通信。在實(shí)驗(yàn)中驗(yàn)證當(dāng)波 特 率 為 500kbps/2Mbps 和 1Mbps/5Mbps 時(shí)CANFD總線通信的準(zhǔn)確性,實(shí)驗(yàn)步驟為:

1)首先使用Modelsim仿真軟件對(duì)FPGA程序進(jìn)行時(shí)序仿真,仿真結(jié)果預(yù)期一致則證明FPGA與CANFD控制器通信正常。

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

3)編寫DSP程序?qū)崿F(xiàn)CANFD總線的自發(fā)自收功能,提前編輯CANFD總線要收發(fā)的數(shù)據(jù)信息,每次發(fā)送200個(gè)報(bào)文,共發(fā)送10次。

4)利用CANFD通信調(diào)試上位機(jī)對(duì)比發(fā)送數(shù)據(jù)與接收數(shù)據(jù),統(tǒng)計(jì)傳輸時(shí)間、錯(cuò)誤字節(jié)數(shù),計(jì)算誤碼率。

4.2 仿真驗(yàn)證及結(jié)果

使用Modelsim仿真軟件對(duì)FPGA程序進(jìn)行時(shí)序仿真并給定輸入,如果得到預(yù)期輸出,則證明可以實(shí)現(xiàn)對(duì)CANFD控制器的時(shí)序控制,且理論上可以實(shí)現(xiàn)基于DSP+FPGA系統(tǒng)的CANFD通信。

仿真模擬DSP通過FPGA向CANFD總線發(fā)送信息,根據(jù)控制器芯片MCP2517的SPI指令格式,F(xiàn)PGA應(yīng)向MCP2517發(fā)送復(fù)位指令來將控制芯片的內(nèi)部寄存器復(fù)位為默認(rèn)狀態(tài),復(fù)位指令為發(fā)送地址0x0000和數(shù)據(jù)信息0b000,接著向控制芯片地址為 0x0001的寄存器寫入數(shù)據(jù)信息0x02000300,最終得到的仿真時(shí)序圖如圖6所示。

圖6 仿真驗(yàn)證時(shí)序結(jié)果Fig.6 Timing results of simulation verification

由圖6可知,時(shí)序仿真結(jié)果與設(shè)想一致,表現(xiàn)為:當(dāng)DSP控制FPGA的片選拉低且寫使能信號(hào)拉低后,F(xiàn)PGA控制的CANFD的片選被拉低,CANFD的數(shù)據(jù)線上依次傳輸?shù)刂沸畔⒑蛿?shù)據(jù)信息(0x0001和0x02000300), 證明了基于 DSP+FPGA系統(tǒng)的CANFD通信可行性。

4.3 實(shí)驗(yàn)驗(yàn)證及結(jié)果

在DSP+FPGA+CANFD控制器實(shí)驗(yàn)平臺(tái)上對(duì)4.1節(jié)中的步驟2~步驟4進(jìn)行實(shí)驗(yàn)驗(yàn)證,通過CANFD測試盒和上位機(jī)來記錄發(fā)送和接收的數(shù)據(jù),對(duì)發(fā)送和接收的數(shù)據(jù)進(jìn)行比對(duì),實(shí)驗(yàn)結(jié)果如表2所示。

表2 實(shí)驗(yàn)驗(yàn)證結(jié)果Table 2 Results of experiment verification

由表2的實(shí)驗(yàn)結(jié)果可知,在通信電纜長3m、發(fā)送10次數(shù)據(jù)、每次發(fā)送200條報(bào)文、報(bào)文有效長度為64字節(jié)、波特率設(shè)置為500kbps/2Mbps及1Mbps/5Mbps條件下,錯(cuò)誤字節(jié)數(shù)均為0,誤碼率小于1%,證明了該系統(tǒng)可實(shí)現(xiàn)可靠的CANFD通信。

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

5 結(jié)論

隨著汽車、無人機(jī)等領(lǐng)域?qū)νㄐ艛?shù)據(jù)傳輸速率、數(shù)據(jù)吞吐量及可靠性提出了更高的要求,CANFD總線通信方法已逐漸開始取代傳統(tǒng)的CAN總線通信,保證CANFD數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性也逐漸成為學(xué)者及工程師關(guān)注的重點(diǎn)。本文采用DSP+FPGA+MCP2517的方法來實(shí)現(xiàn)CANFD通信,并通過了仿真和實(shí)驗(yàn)驗(yàn)證,結(jié)果表明:該方法降低了軟件調(diào)試難度,減輕了處理器的運(yùn)行負(fù)載,提高了系統(tǒng)的抗干擾能力,實(shí)現(xiàn)了5Mbps數(shù)據(jù)傳輸速率,是CAN總線最高傳輸速率的5倍。實(shí)際應(yīng)用中會(huì)有通信距離、環(huán)境溫度等多種因素影響通信效果,本文提出的方法還需要通過更深入的研究來完善總結(jié)。

猜你喜歡
寄存器傳輸速率報(bào)文
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
以太網(wǎng)QoS技術(shù)研究及實(shí)踐
基于Python的汽車CAN總線報(bào)文格式轉(zhuǎn)換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于報(bào)文類型的限速值動(dòng)態(tài)調(diào)整
三星利用5G毫米波 實(shí)現(xiàn)創(chuàng)紀(jì)錄傳輸速率
飛思卡爾單片機(jī)脈寬調(diào)制模塊用法研究
移位寄存器及算術(shù)運(yùn)算應(yīng)用
夏季濱海濕地互花米草植物甲烷傳輸研究
數(shù)據(jù)傳輸速率
SPCE061A單片機(jī)與USB接口