大俠好,歡迎來(lái)到FPGA技術(shù)江湖,江湖偌大,相見(jiàn)即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。
今天給大俠帶來(lái)基于FPGA的CAN總線控制器的設(shè)計(jì),由于篇幅較長(zhǎng),分三篇。今天帶來(lái)第一篇,上篇,CAN 總線協(xié)議解析以及CAN 通信控制器程序基本框架。話不多說(shuō),上貨。
為了方便參考學(xué)習(xí),后兩篇這里也放上超鏈接:
基于FPGA的CAN總線控制器的設(shè)計(jì)(中)
基于FPGA的CAN總線控制器的設(shè)計(jì)(下)
導(dǎo)讀
CAN 總線(Controller Area Network)是控制器局域網(wǎng)的簡(jiǎn)稱,是 20 世紀(jì) 80 年代初德國(guó) BOSCH 公司為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議。目前,CAN 總線已經(jīng)被列入 ISO 國(guó)際標(biāo)準(zhǔn),稱為 ISO11898。CAN 總線已經(jīng)成為工業(yè)數(shù)據(jù)通信的主流技術(shù)之一。
CAN 總線作為數(shù)字式串行通信技術(shù),與其他同類技術(shù)相比,在可靠性、實(shí)時(shí)性和靈活性方面具有獨(dú)特的技術(shù)優(yōu)勢(shì),主要特點(diǎn)如下:
CAN 總線是一種多主總線,總線上任意節(jié)點(diǎn)可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息而不分主次,因此可在各節(jié)點(diǎn)之間實(shí)現(xiàn)自由通信。
CAN 總線采用非破壞性總線仲裁技術(shù)。當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)會(huì)主動(dòng)退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可以不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省總線沖突的仲裁時(shí)間。即使在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)發(fā)生網(wǎng)絡(luò)癱瘓情況。
CAN 總線的通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,選擇靈活。
CAN 總線的通信速率可達(dá) 1Mbit/s(此時(shí)通信距離最長(zhǎng)為 40 米),通信距離最遠(yuǎn)可達(dá) 10km(速率在 5kbit/s 以下)。
CAN 總線上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可以滿足不同級(jí)別的實(shí)時(shí)要求,高優(yōu)先級(jí)的數(shù)據(jù)可以在 134μs 內(nèi)得到傳輸。
CAN 總線通過(guò)報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送數(shù)據(jù),無(wú)需專門的調(diào)度。
CAN 總線的數(shù)據(jù)采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。
CAN 總線采用 CRC 檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。
CAN 總線上的器件可被置于無(wú)任何內(nèi)部活動(dòng)的睡眠方式,相當(dāng)于未連接到總線上,可以有效降低系統(tǒng)功耗。
CAN 總線上的節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出的功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。CAN 總線卓越的特性、極高的可靠性和獨(dú)特的設(shè)計(jì),特別適合工業(yè)過(guò)程中監(jiān)控設(shè)備的互連,因此,越來(lái)越受到工業(yè)界的重視,并被公認(rèn)為是最有前途的現(xiàn)場(chǎng)總線之一。另外,CAN 總線協(xié)議已被國(guó)際標(biāo)準(zhǔn)化組織認(rèn)可,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性價(jià)比高,特別適用于分布式測(cè)控系統(tǒng)之間的數(shù)通訊。
CAN 總線插卡可以任意插在 PC AT XT 兼容機(jī)上,方便地構(gòu)成分布式監(jiān)控系統(tǒng)。因此,用 FPGA 實(shí)現(xiàn) CAN 總線通信控制器具有非常重要的應(yīng)用價(jià)值。本篇將通過(guò)一個(gè)實(shí)例講解利用 FPGA 實(shí)現(xiàn) CAN 總線通信控制器的實(shí)現(xiàn)方法。
第一篇內(nèi)容摘要:本篇會(huì)介紹CAN 總線協(xié)議解析,包括CAN 總線通信模型、CAN 總線協(xié)議中的基本概念、報(bào)文的數(shù)據(jù)結(jié)構(gòu)、位時(shí)序(Bit Timing)、同步(Synchronization)等相關(guān)內(nèi)容。還會(huì)介紹CAN 通信控制器程序基本框架,包括SJA1000CAN 通信控制器、CAN 通信控制器程序框架等相關(guān)內(nèi)容。
一、CAN 總線協(xié)議解析
在講解實(shí)現(xiàn) CAN 總線的實(shí)例以前,讀者需要具備有關(guān) CAN 總線的基本知識(shí)。為此,將在這里簡(jiǎn)要介紹與實(shí)例相關(guān)的基礎(chǔ)知識(shí)。
1.1 CAN 總線通信模型
參照 ISO/OSI 標(biāo)準(zhǔn)模型,CAN 總線的通信參考模型如圖 1 所示。
圖 1 CAN 總線通信模型
這 4 層結(jié)構(gòu)的功能如下:
? 物理層規(guī)定了節(jié)點(diǎn)的全部電氣特性,在一個(gè)網(wǎng)絡(luò)里,要實(shí)現(xiàn)不同節(jié)點(diǎn)間的數(shù)據(jù)傳輸,所有節(jié)點(diǎn)的物理層必須是相同的。
? 傳輸層描述了 CAN 總線協(xié)議的內(nèi)核,它負(fù)責(zé)位時(shí)序(bit timing)、同步、仲裁、應(yīng)答、錯(cuò)誤探測(cè)等。
? 對(duì)象層負(fù)責(zé)報(bào)文的過(guò)濾、狀態(tài)和控制。
? 應(yīng)用層完成用戶指定的數(shù)據(jù)傳輸任務(wù)。
CAN 總線的物理層為數(shù)據(jù)通信提供了物理連接,而實(shí)際的數(shù)據(jù)通信在其他 3 層中完成。
1.2 CAN 總線協(xié)議中的基本概念
在講解 CAN 總線協(xié)議之前,需要介紹有關(guān)協(xié)議中的基本概念。
1.報(bào)文(Messages)
在 CAN 總線傳輸?shù)臄?shù)據(jù)具有固定的格式和有限的長(zhǎng)度,稱為報(bào)文。
2.發(fā)送器(Transmitter)和接收器(Receiver)
在 CAN 總線的數(shù)據(jù)傳輸過(guò)程中,發(fā)出報(bào)文的節(jié)點(diǎn)稱為發(fā)送器。節(jié)點(diǎn)在總線進(jìn)入空閑狀態(tài)前或丟失仲裁前為發(fā)送器。如果一個(gè)節(jié)點(diǎn)不是報(bào)文發(fā)送器,并且總線不處于空閑狀態(tài),則該節(jié)點(diǎn)為接收器。
3.比特率(bit rate)
CAN 總線的輸出速度以單位時(shí)間內(nèi)傳輸?shù)奈粊?lái)衡量,稱為比特率。CAN 總線在不同的系統(tǒng)中可以有不同的比特率。但是在給定的系統(tǒng)中,比特率是統(tǒng)一的和固定的。
4.優(yōu)先級(jí)(Priorities)
優(yōu)先級(jí)表示總線傳輸中一個(gè)報(bào)文的優(yōu)先級(jí)別。
5.遠(yuǎn)程數(shù)據(jù)請(qǐng)求(Remote Data Request)
當(dāng)一個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)時(shí),需要首先發(fā)送一個(gè)遠(yuǎn)程幀(Remote Frame),然后發(fā)送一個(gè)和遠(yuǎn)程幀相符的數(shù)據(jù)幀(Data Frame)。遠(yuǎn)程幀和數(shù)據(jù)幀具有相同的標(biāo)識(shí)符。
6.位流(Bit Stream)
CAN 總線通信過(guò)程中的數(shù)據(jù)流。
7.編碼方式CAN 總線通信協(xié)議規(guī)定,報(bào)文中的位流按照非歸零(Non-Return to Zero)碼的方法編碼,一個(gè)完整的電平要么是顯性,要么是隱性。
8.非歸零編碼(Non-Return to Zero encoding,簡(jiǎn)稱 NRZ)
非歸零編碼是一種用在低速通信接口中的編碼方式,同時(shí)提供同步和非同步兩種方式。在非歸零編碼方式中,邏輯“1”在傳輸過(guò)程中用一位高電平表示,邏輯“0”用一位低電平表示。非歸零編碼方式如圖 2 所示。
圖 2 非歸零編碼方式
9.總線數(shù)值
在數(shù)據(jù)傳輸時(shí),CAN 總線有兩種邏輯值:顯性值(dominant)和隱性值(recessive)。如果同時(shí)傳輸顯性值和隱性值時(shí),總線上的最終結(jié)果是顯性值。在線與(wired-AND)總線連接方式中,顯性值用邏輯“0”表示,隱性值用邏輯“1”表示。
1.3報(bào)文的數(shù)據(jù)結(jié)構(gòu)
CAN 總線的報(bào)文傳輸是通過(guò) 4 種不同類型的幀(Frame)來(lái)表示和控制的:
? 數(shù)據(jù)幀(Data Frame) 用來(lái)在數(shù)據(jù)傳輸過(guò)程中攜帶數(shù)據(jù)。
? 遠(yuǎn)程幀(Remoter Frame) 接收器發(fā)送遠(yuǎn)程幀來(lái)請(qǐng)求發(fā)送器發(fā)送數(shù)據(jù),具有和數(shù)據(jù)幀同樣的標(biāo)識(shí)符。
? 出錯(cuò)幀(Error Frame) 用來(lái)檢測(cè) CAN 總線數(shù)據(jù)傳輸過(guò)程中的錯(cuò)誤。
? 超載幀(Overload Frame) 用于提供當(dāng)前和后續(xù)數(shù)據(jù)幀或遠(yuǎn)程幀之間的附加延遲。
a.?dāng)?shù)據(jù)幀
數(shù)據(jù)幀的具體組成如圖 3 所示。
圖 3 數(shù)據(jù)幀的具體組成
數(shù)據(jù)幀由幀起始(Start of Frame,SOF)、仲裁字段、控制字段、數(shù)據(jù)字段、CRC 字段、ACK 字段(應(yīng)答字段)和幀尾組成。
幀起始標(biāo)志數(shù)據(jù)幀的開(kāi)始(遠(yuǎn)程幀同樣具有幀起始),它僅由一個(gè)顯性值組成。只有在總線處于空閑時(shí),才允許節(jié)點(diǎn)開(kāi)始發(fā)送。所有節(jié)點(diǎn)必須與首先開(kāi)始發(fā)送的那個(gè)節(jié)點(diǎn)的幀起始位前沿同步。
仲裁字段由標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR 位)組成,如圖 4 所示。標(biāo)識(shí)符的長(zhǎng)度為 11位。遠(yuǎn)程發(fā)送請(qǐng)求位在數(shù)據(jù)幀中必須是顯性值,在遠(yuǎn)程幀中必須是隱性值。
圖 4 仲裁字段的組成
控制字段由保留位和數(shù)據(jù)長(zhǎng)度碼組成,如圖 5 所示。數(shù)據(jù)長(zhǎng)度碼表示數(shù)據(jù)字段的長(zhǎng)度。
圖 5 控制字段的組成
數(shù)據(jù)字段由數(shù)據(jù)幀中被發(fā)送的數(shù)據(jù)組成,它可以包括 0~8 個(gè)字節(jié),每個(gè)字節(jié) 8 位。首先發(fā)送的是最高有效位。
CRC 字段包括 CRC 序列和 CRC 界定符。CRC 序列用來(lái)實(shí)現(xiàn) CRC 計(jì)算,CRC 界定符只包括一個(gè)隱性值。應(yīng)答字段為兩位,包括應(yīng)答間隙和應(yīng)答界定符。幀尾由 7 個(gè)連續(xù)的隱性值組成,作為數(shù)據(jù)幀和遠(yuǎn)程幀的結(jié)束標(biāo)志。
b.遠(yuǎn)程幀
作為接收器的節(jié)點(diǎn)可以通過(guò)向相應(yīng)的數(shù)據(jù)源節(jié)點(diǎn)發(fā)送一個(gè)遠(yuǎn)程幀來(lái)激活該節(jié)點(diǎn),讓它把數(shù)據(jù)發(fā)送給接收器。遠(yuǎn)程幀由幀起始、仲裁字段、控制字段、CRC 字段、應(yīng)答字段和幀尾 6 個(gè)不同的字段組成。遠(yuǎn)程幀的組成如圖 6 所示。
圖 6 遠(yuǎn)程幀的組成
c.出錯(cuò)幀
出錯(cuò)幀由出錯(cuò)疊加標(biāo)志和錯(cuò)誤界定符組成。出錯(cuò)疊加標(biāo)志包括了多個(gè)出錯(cuò)信息的標(biāo)志。
d.超載幀
超載幀包括超載標(biāo)志和超載界定符。超載發(fā)生在兩種情況下:一個(gè)是接收器因內(nèi)部條件要求推遲下一個(gè)數(shù)據(jù)幀或者遠(yuǎn)程幀的發(fā)送;另一個(gè)是在間歇字段檢測(cè)到顯性值時(shí)。
e.幀間空間
數(shù)據(jù)幀或遠(yuǎn)程幀通過(guò)幀間空間與前一幀隔開(kāi),而不管前一幀是何種類型的幀。而在超載幀與出錯(cuò)幀前面不需要幀間空間,多個(gè)超載幀之間也不需要幀間空間來(lái)作分隔。
1.4位時(shí)序(Bit Timing)
CAN 總線協(xié)議規(guī)定,報(bào)文傳輸?shù)耐交蛘叻峭椒绞降倪x擇通過(guò)位時(shí)序來(lái)實(shí)現(xiàn)。CAN 總線中位時(shí)序包括正常位速率和正常位時(shí)間兩個(gè)參數(shù)。
? 正常位速率(Nominal Bit Rate):在非重同步情況下,借助理想發(fā)送器每秒發(fā)送的位數(shù)。
? 正常位時(shí)間(Nominal Bit Time):正常位速率的倒數(shù)。正常位時(shí)間由幾個(gè)不同的時(shí)間段組成,它們是同步段(SYNC_SEG)、傳播段(PROP_SEG)、相位緩沖段 1(PHASE_SEG1)、相位緩沖段 2(PHASE_SEG2),如圖 7 所示。
圖 7 正常位時(shí)間的組成
? 同步段:在這段時(shí)間內(nèi),完成總線上各個(gè)節(jié)點(diǎn)的同步,需要一個(gè)跳變沿。
? 傳播段:這個(gè)時(shí)間段是指網(wǎng)絡(luò)上傳輸?shù)难舆t時(shí)間,它是信號(hào)在總線上傳播時(shí)間、輸入比較器延遲和輸出驅(qū)動(dòng)器延遲之和的兩倍。
? 相位緩沖段 1 和相位緩沖段 2:它們用于彌補(bǔ)跳變沿的相位誤差造成的影響。通過(guò)重同步,這兩個(gè)時(shí)間段可以被延長(zhǎng)或縮短。
? 采樣點(diǎn):這是讀取總線電平并理解該位數(shù)值的時(shí)刻,它位于相位緩沖段 1 的終點(diǎn)。
1.5同步(Synchronization)
a.硬同步(Hard Synchronization)
硬同步后,內(nèi)部位時(shí)間從同步段(SYNC_SEG)重新開(kāi)始,它迫使觸發(fā)該硬同步的跳變沿處于新的位時(shí)間的同步段(SYNC_SEG)之內(nèi)。
b.重同步(Resynchronization)
當(dāng)引起重同步沿的相位誤差小于或等于重同步跳轉(zhuǎn)寬度編程值時(shí),重同步的作用和硬同步相同。若相位誤差大于重同步跳轉(zhuǎn)寬度且相位誤差為正時(shí),則相位緩沖段 1(PHASE_SEG1)延長(zhǎng)總數(shù)為重同步跳轉(zhuǎn)寬度。若相位誤差大于重同步跳轉(zhuǎn)寬度且相位誤差為負(fù)時(shí),則相位緩沖段2(PHASE_SEG2)縮短總數(shù)為重同步跳轉(zhuǎn)寬度。
c.重同步跳轉(zhuǎn)寬度(Resynchronization Jump Width)
由于重同步的結(jié)果,PHASE_SEG1 可被延長(zhǎng)或 PHASE_SEG2 可被縮短。相位緩沖段長(zhǎng)度的改變量不應(yīng)大于重同步跳轉(zhuǎn)寬度。
d.同步的規(guī)則CAN
通信協(xié)議規(guī)定,同步包括硬同步和重同步兩種形式。它們遵從下列幾條規(guī)則:
在一個(gè)位時(shí)間內(nèi)僅允許一種同步。
對(duì)于一個(gè)跳變沿,僅當(dāng)它前面的第一個(gè)采樣點(diǎn)數(shù)值與緊跟該跳變沿之后的總線值不相同時(shí),才把該跳變沿用于同步。
在總線空閑期間,若出現(xiàn)一個(gè)從隱性值到顯性值的跳變沿,則執(zhí)行一次硬同步。
符合規(guī)則前兩條規(guī)則的從隱性值到顯性值的跳變沿都被用于重同步(在低比特率時(shí)也可選擇從顯性值到隱性值的跳變沿),例外的情況是具有正相位誤差的隱性值到顯性值的跳變沿將不會(huì)導(dǎo)致重同步。
二、CAN 通信控制器程序基本框架
CAN 總線的通信協(xié)議由 CAN 通信控制器完成。CAN 通信控制器由實(shí)現(xiàn) CAN 總線協(xié)議部分和微控制器部分的電路組成。下面將通過(guò)一個(gè)實(shí)例講解如何用 FPGA 實(shí)現(xiàn) CAN 通信控制器的功能。這個(gè)實(shí)例從功能和結(jié)構(gòu)上完全參照 SJA 1000 CAN 通信控制器。
2.1 SJA1000CAN 通信控制器
SJA1000 是 Philips 公司于 1997 年推出的一種獨(dú)立 CAN 總線控制器。它實(shí)現(xiàn)了 CAN 總線物理層和數(shù)據(jù)鏈路層的所有功能。SJA 1000 通信控制器的功能框圖如圖 8 所示。
SJA 1000 主要由以下幾部分構(gòu)成:
? 接口管理邏輯 處理來(lái)自主 CPU 的命令,控制 CAN 寄存器的尋址,并為主 CPU 提供中斷和狀態(tài)信息。
? 發(fā)送緩沖器 它是 CPU 和位數(shù)據(jù)流處理器(BSP)之間的接口,能存儲(chǔ)一條可發(fā)送到 CAN總線上的完整報(bào)文。報(bào)文由 CPU 寫入,由位數(shù)據(jù)流處理器讀出。
圖 8 SJA1000 通信控制器功能框圖
? 接收緩沖器 它是接收 FIFO 的一個(gè)可被 CPU 訪問(wèn)的窗口。在接收 FIFO 的支持下,CPU可以在處理當(dāng)前信息的同時(shí)接收總線上的其他信息。
? 接收濾波器 它把收到的報(bào)文標(biāo)識(shí)符和接收濾波器寄存器中的內(nèi)容進(jìn)行比較,以判斷該報(bào)文是否應(yīng)該被接收。如果符合接收條件,則報(bào)文被存入接收 FIFO 中。
? 位數(shù)據(jù)流處理器 它是一個(gè)序列發(fā)生器,控制發(fā)送緩沖器、接收 FIFO 和 CAN 總線之間的數(shù)據(jù)流,同時(shí)它也執(zhí)行錯(cuò)誤檢測(cè)、仲裁、位填充和 CAN 總線錯(cuò)誤處理功能。
? 位時(shí)序邏輯 它監(jiān)視串行 CAN 總線并處理與總線相關(guān)的位時(shí)序。它在報(bào)文開(kāi)始發(fā)送,總線電平從隱性值跳變到顯性值時(shí)同步于 CAN 總線上的位數(shù)據(jù)流(硬同步),并在該報(bào)文的傳送過(guò)程中,每遇到一次從隱性值到顯性值的跳變沿就進(jìn)行一次重同步(軟同步)。位時(shí)序邏輯還提供可編程的時(shí)間段來(lái)補(bǔ)償傳播延遲時(shí)間和相位漂移(如晶振導(dǎo)致的漂移),還能定義采樣點(diǎn)以及每一個(gè)位時(shí)間內(nèi)的采樣次數(shù)。
? 錯(cuò)誤管理邏輯 它按照 CAN 協(xié)議完成傳輸錯(cuò)誤界定。它接收來(lái)自位數(shù)據(jù)流處理器 BSP 的出錯(cuò)通知,并向位數(shù)據(jù)流處理器 BSP 和接口管理邏輯提供出錯(cuò)統(tǒng)計(jì)。
2.2 CAN 通信控制器程序框架
實(shí)現(xiàn)的 CAN 通信控制器參照 SJA1000 CAN 通信控制器的結(jié)構(gòu),程序基本框架如圖 9 所示。
圖 9 CAN 通信控制器結(jié)構(gòu)框圖
本篇到此結(jié)束,下一篇帶來(lái)基于FPGA的CAN總線控制器的設(shè)計(jì)(中),會(huì)介紹CAN 通信控制器的具體實(shí)現(xiàn),包括頂層控制程序、寄存器控制、位時(shí)序邏輯(Bit Timing Logic)、位數(shù)據(jù)流處理器(BitStream Processor)、CRC 校驗(yàn) 、FIFO等相關(guān)內(nèi)容。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1643文章
21954瀏覽量
613986 -
控制器
+關(guān)注
關(guān)注
114文章
16959瀏覽量
182870 -
CAN總線
+關(guān)注
關(guān)注
145文章
1973瀏覽量
132222 -
CAN
+關(guān)注
關(guān)注
57文章
2884瀏覽量
466710 -
局域網(wǎng)
+關(guān)注
關(guān)注
5文章
770瀏覽量
46790
原文標(biāo)題:基于FPGA的CAN總線控制器的設(shè)計(jì)
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于FPGA的CAN總線控制器的設(shè)計(jì)(附代碼)
如何設(shè)計(jì)基于FPGA的CAN總線控制器SJA1000軟核?
基于STM32和FPGA的CAN總線運(yùn)動(dòng)控制器的設(shè)計(jì)

FPGA實(shí)現(xiàn)CAN總線控制器源碼
基于FPGA和CAN控制器MCP2515設(shè)計(jì)慣導(dǎo)系統(tǒng)的CAN總線
基于FPGA的CAN總線控制器SJA1000軟核的設(shè)計(jì)方案解析

基于FPGA與CAN總線控制器的自適應(yīng)汽車前照燈系統(tǒng)的設(shè)計(jì)

如何使用FPGA進(jìn)行CAN控制器軟核的設(shè)計(jì)與實(shí)現(xiàn)

如何使用FPGA和CAN控制器MCP2515實(shí)現(xiàn)慣導(dǎo)系統(tǒng)的CAN總線接口的設(shè)計(jì)

評(píng)論