0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Xilinx的A7系列FPGA的CAN總線協(xié)議開發(fā)

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 2024-12-21 14:49 ? 次閱讀

一、CAN總線協(xié)議介紹

CAN是 Controller Area Network 的縮寫(以下稱為 CAN ),是 ISO 國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議??梢杂脕頋M足“多總線通信時(shí),線束的數(shù)量過多”、“通過多個(gè) LAN ,進(jìn)行大量數(shù)據(jù)的高速通信”的需要。它的出現(xiàn)為分布式控制系統(tǒng)實(shí)現(xiàn)各節(jié)點(diǎn)之間實(shí)時(shí)、可靠的數(shù)據(jù)通信提供了強(qiáng)有力的技術(shù)支持。

CAN控制器根據(jù)兩根線上的電位差來判斷總線電平??偩€電平分為顯性電平和隱性電平,二者必居其一。發(fā)送方通過使總線電平發(fā)生變化,將消息發(fā)送給接收方。
CAN協(xié)議具有以下特點(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 總線通過報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送數(shù)據(jù),無需專門的調(diào)度。

CAN 總線的數(shù)據(jù)采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。

CAN 總線采用 CRC 檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。

CAN 總線上的器件可被置于無任何內(nèi)部活動(dòng)的睡眠方式,相當(dāng)于未連接到總線上,可以有效降低系統(tǒng)功耗。

CAN總線采用差分信號(hào)傳輸,通常情況下只需要兩根信號(hào)線就可以進(jìn)行正常的通信。在差分信號(hào)中,邏輯0和邏輯1是用兩根差分信號(hào)線的電壓差來表示。當(dāng)處于邏輯1,CAN_H和CAN_L的電壓差小于0.5V,稱為隱性電平(Recessive);當(dāng)處于邏輯0,CAN_H和CAN_L的電壓差大于0.9V,稱為顯性電平(Dominant)。

80d15486-be9b-11ef-9310-92fbcf53809c.png

CAN有四種幀類型:

◆ 數(shù)據(jù)幀:發(fā)送單元向接收單元傳送數(shù)據(jù)的幀
◆ 遠(yuǎn)程幀:總線單元發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀
◆ 錯(cuò)誤幀:由檢測(cè)到錯(cuò)誤的任何節(jié)點(diǎn)發(fā)送的幀
◆ 過載幀:在數(shù)據(jù)或遠(yuǎn)程幀之間注入延遲的幀

數(shù)據(jù)幀是唯一實(shí)際傳輸數(shù)據(jù)的幀,結(jié)構(gòu)上由7個(gè)段組成,其中根據(jù)仲裁段ID碼長(zhǎng)度的不同,分為標(biāo)準(zhǔn)幀(CAN2.0A)和擴(kuò)展幀(CAN2.0B):
? 標(biāo)準(zhǔn)幀格式:具有11個(gè)標(biāo)識(shí)符位
? 擴(kuò)展幀格式:具有29個(gè)標(biāo)識(shí)符位
標(biāo)準(zhǔn)數(shù)據(jù)幀的構(gòu)成如下圖所示:

80ed4e7a-be9b-11ef-9310-92fbcf53809c.png

數(shù)據(jù)幀一般由7個(gè)段構(gòu)成,即:
(1)幀起始:表示數(shù)據(jù)幀開始的段。
(2)仲裁段:表示該幀優(yōu)先級(jí)的段。
(3)控制段:表示數(shù)據(jù)的字節(jié)數(shù)及保留位的段。
(4)數(shù)據(jù)段:數(shù)據(jù)的內(nèi)容,一幀可發(fā)送0~8個(gè)字節(jié)的數(shù)據(jù)。
(5)CRC段:檢查幀的傳輸錯(cuò)誤的段。
(6)ACK段:表示確認(rèn)正常接收的段。
(7)幀結(jié)束:表示數(shù)據(jù)幀結(jié)束的段。

二、xilinx Artix 7系列FPGA介紹

Artix7系列是7系列中的普通青年,相對(duì)Spartan7系列則增加了串行收發(fā)器DSP功能,其邏輯容量也更大,適合邏輯一些稍微復(fù)雜的中低端應(yīng)用。

810464a2-be9b-11ef-9310-92fbcf53809c.png

三、FPGA的相關(guān)設(shè)計(jì)介紹

設(shè)計(jì)思路一:在FPGA內(nèi)部編寫CAN通信控制器

采用這個(gè)設(shè)計(jì)方案,本質(zhì)上是在FPGA內(nèi)部設(shè)計(jì)了一款CAN通信控制芯片。技術(shù)門檻較高。下面這個(gè)設(shè)計(jì)實(shí)例仿照的是SJA1000 CAN通信控制器的工作流程,用Verilog語言完成了CAN控制接口的開發(fā)。

CAN 總線的通信協(xié)議由 CAN 通信控制器完成。CAN 通信控制器由實(shí)現(xiàn) CAN 總線協(xié)議部分和微控制器部分的電路組成。下面將通過一個(gè)實(shí)例講解如何用 FPGA 實(shí)現(xiàn) CAN 通信控制器的功能。這個(gè)實(shí)例從功能和結(jié)構(gòu)上完全參照 SJA 1000 CAN 通信控制器。

網(wǎng)址一:基于FPGA的CAN總線控制器的設(shè)計(jì)(上) - 知乎 (zhihu.com)

網(wǎng)址二:基于FPGA的CAN總線控制器的設(shè)計(jì)(中) - 知乎 (zhihu.com)

網(wǎng)址三:基于FPGA的CAN總線控制器的設(shè)計(jì)(下) - 知乎 (zhihu.com)

上述資料是按照SJA1000 CAN通信控制器的內(nèi)部結(jié)構(gòu)用FPGA進(jìn)行了重新設(shè)計(jì)。

設(shè)計(jì)思路二:用FPGA通過串口或者SPI去配置外部的CAN控制器芯片實(shí)現(xiàn)通信。

這個(gè)設(shè)計(jì)方案一般用在單片機(jī)作主控的項(xiàng)目中,如果用FPGA作主控,有這么幾個(gè)缺點(diǎn),成本高、硬件設(shè)計(jì)繁瑣、受限于控制芯片的性能和發(fā)揮不出FPGA的性能。

CAN通信控制芯片:

MCP2515(SPI通信)

8134007c-be9b-11ef-9310-92fbcf53809c.png

SJA1000

81459d14-be9b-11ef-9310-92fbcf53809c.png

8161a6bc-be9b-11ef-9310-92fbcf53809c.png

CAN接口驅(qū)動(dòng)芯片

TJA1050芯片引腳圖

817431a6-be9b-11ef-9310-92fbcf53809c.png

8189cef8-be9b-11ef-9310-92fbcf53809c.png

常用的外設(shè)電路設(shè)計(jì)

8198fe1e-be9b-11ef-9310-92fbcf53809c.png

如上圖所示,CAN_TX和CAN_RX接CAN通信控制芯片,實(shí)現(xiàn)對(duì)驅(qū)動(dòng)芯片轉(zhuǎn)換后的信息流的處理。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603315
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1951

    瀏覽量

    130753
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121398

原文標(biāo)題:基于Xilinx的A7系列FPGA的CAN總線協(xié)議開發(fā)

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx 7系列FPGA的時(shí)鐘結(jié)構(gòu)解析

    通過上一篇文章“時(shí)鐘管理技術(shù)”,我們了解Xilinx 7系列FPGA主要有全局時(shí)鐘、區(qū)域時(shí)鐘、時(shí)鐘管理塊(CMT)。 通過以上時(shí)鐘資源的結(jié)合,Xil
    發(fā)表于 08-31 10:44 ?2630次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>的時(shí)鐘結(jié)構(gòu)解析

    cmos的slvs-ec協(xié)議40針引腳該如何連接到xilinx a7開發(fā)版上?

    我有一塊集成了sony的cmos的板子,cmos的圖像數(shù)據(jù)走的是SLVS-EC協(xié)議,數(shù)據(jù)走的是0.4mm間隔的40針的接口,如圖: 請(qǐng)問這個(gè)接口該如何接線到xilinxa7板子,該買什么規(guī)格
    發(fā)表于 03-28 14:19

    【Artix-7 50T FPGA申請(qǐng)】FPGA由Altera轉(zhuǎn)Xilinx系列筆記

    :1、Xilinx A7系列FPGA芯片與S6系列FPGA芯片的對(duì)比2、Vivado軟件安裝與介
    發(fā)表于 10-11 18:15

    xilinx A7 200t PCI協(xié)議使用問題

    使用PCI協(xié)議與上位機(jī)進(jìn)行通信,FPGA使用的是Xilinx A7 200t。使用過程中發(fā)現(xiàn),PCI IP只能使用4.5個(gè)小時(shí),之后配置空間仍然可用,而BAR空間不能使用。進(jìn)行了多次嘗
    發(fā)表于 07-26 14:03

    xilinx公司的7系列FPGA應(yīng)用指南

    本文是關(guān)于 xilinx公司的7系列FPGA應(yīng)用指南。xilinx公司的7
    發(fā)表于 08-07 17:22 ?201次下載
    <b class='flag-5'>xilinx</b>公司的<b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>應(yīng)用指南

    FPGA實(shí)現(xiàn)CAN總線控制器源碼

    Xilinx FPGA工程例子源碼:FPGA實(shí)現(xiàn)CAN總線控制器源碼
    發(fā)表于 06-07 14:13 ?92次下載

    CAN總線協(xié)議是什么?CAN總線協(xié)議有哪些?CAN總線協(xié)議知識(shí)分析

    本文說的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽見CAN總線,也常聽見CAN
    的頭像 發(fā)表于 10-03 19:53 ?7.5w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>是什么?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>有哪些?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>知識(shí)分析

    Xilinx 7系列FPGA介紹

    Xilinx 7系列FPGA概覽 文章目錄 Xilinx 7
    的頭像 發(fā)表于 11-13 18:03 ?1.5w次閱讀

    Xilinx 7 系列FPGA中的Serdes總結(jié)

    本文檔的主要內(nèi)容詳細(xì)介紹的是Xilinx 7 系列FPGA中的Serdes總結(jié)。
    發(fā)表于 12-31 17:30 ?25次下載

    Xilinx 7系列FPGA簡(jiǎn)介--選型參考

    Xilinx-7系列FPGA主要包括:Spartan?-7、Artix?-7、Kintex?-7
    發(fā)表于 01-30 06:00 ?17次下載
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>簡(jiǎn)介--選型參考

    Xilinx 7系列FPGA管腳是如何定義的?

    引言: 我們?cè)谶M(jìn)行FPGA原理圖和PCB設(shè)計(jì)時(shí),都會(huì)涉及到FPGA芯片管腳定義和封裝相關(guān)信息,本文就Xilinx 7系列
    發(fā)表于 05-01 09:47 ?1.1w次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>管腳是如何定義的?

    Xilinx 7系列FPGA管腳是如何定義與Pinout文件下載

    我們?cè)谶M(jìn)行FPGA原理圖和PCB設(shè)計(jì)時(shí),都會(huì)涉及到FPGA芯片管腳定義和封裝相關(guān)信息,本文就Xilinx 7系列
    的頭像 發(fā)表于 04-27 10:45 ?6827次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>管腳是如何定義與Pinout文件下載

    Xilinx 7系列與Ultrascale系列FPGA的區(qū)別

    Xilinx是一家專業(yè)的可編程邏輯器件(PLD)廠商,其產(chǎn)品包括FPGA、CPLD、SOC等。XilinxFPGA產(chǎn)品線有多個(gè)系列,其中
    發(fā)表于 09-15 14:44 ?5649次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b>與Ultrascale<b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>的區(qū)別

    簡(jiǎn)述Xilinx 7系列FPGA芯片相關(guān)知識(shí)

    Xilinx 7系列 芯片 應(yīng)用非常廣泛,具有成本低、性能強(qiáng)悍、成熟穩(wěn)定的特點(diǎn),目前Xilinx( AMD )已延長(zhǎng)該系列芯片的生命周期至少
    的頭像 發(fā)表于 11-28 10:20 ?1150次閱讀
    簡(jiǎn)述<b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>芯片相關(guān)知識(shí)

    FPGA核心板 Xilinx Artix-7系列XC7A100T開發(fā)平臺(tái),米爾FPGA工業(yè)開發(fā)

    MYC-J7A100T核心板及開發(fā)Xilinx Artix-7系列XC7A100T
    發(fā)表于 05-31 15:12 ?8次下載