吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Xilinx的A7系列FPGA的CAN總線協議開發

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2024-12-21 14:49 ? 次閱讀

一、CAN總線協議介紹

CAN是 Controller Area Network 的縮寫(以下稱為 CAN ),是 ISO 國際標準化的串行通信協議??梢杂脕頋M足“多總線通信時,線束的數量過多”、“通過多個 LAN ,進行大量數據的高速通信”的需要。它的出現為分布式控制系統實現各節點之間實時、可靠的數據通信提供了強有力的技術支持。

CAN控制器根據兩根線上的電位差來判斷總線電平??偩€電平分為顯性電平和隱性電平,二者必居其一。發送方通過使總線電平發生變化,將消息發送給接收方。
CAN協議具有以下特點:

CAN 總線是一種多主總線,總線上任意節點可在任意時刻主動地向網絡上其他節點發送信息而不分主次,因此可在各節點之間實現自由通信。

CAN 總線采用非破壞性總線仲裁技術。當多個節點同時向總線發送信息時,優先級低的節點會主動退出發送,而最高優先級的節點可以不受影響地繼續傳輸數據,從而大大節省總線沖突的仲裁時間。即使在網絡負載很重的情況下也不會發生網絡癱瘓情況。

CAN 總線的通信介質可以是雙絞線、同軸電纜或光導纖維,選擇靈活。

CAN 總線的通信速率可達 1Mbit/s(此時通信距離最長為 40 米),通信距離最遠可達 10km(速率在 5kbit/s 以下)。

CAN 總線上的節點信息分成不同的優先級,可以滿足不同級別的實時要求,高優先級的數據可以在 134μs 內得到傳輸。

CAN 總線通過報文濾波即可實現點對點、一點對多點及全局廣播等幾種方式傳送數據,無需專門的調度。

CAN 總線的數據采用短幀結構,傳輸時間短,受干擾概率低,具有極好的檢錯效果。

CAN 總線采用 CRC 檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。

CAN 總線上的器件可被置于無任何內部活動的睡眠方式,相當于未連接到總線上,可以有效降低系統功耗。

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

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

CAN有四種幀類型:

◆ 數據幀:發送單元向接收單元傳送數據的幀
◆ 遠程幀:總線單元發出遠程幀,請求發送具有同一識別符的數據幀
◆ 錯誤幀:由檢測到錯誤的任何節點發送的幀
◆ 過載幀:在數據或遠程幀之間注入延遲的幀

數據幀是唯一實際傳輸數據的幀,結構上由7個段組成,其中根據仲裁段ID碼長度的不同,分為標準幀(CAN2.0A)和擴展幀(CAN2.0B):
? 標準幀格式:具有11個標識符位
? 擴展幀格式:具有29個標識符位
標準數據幀的構成如下圖所示:

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

數據幀一般由7個段構成,即:
(1)幀起始:表示數據幀開始的段。
(2)仲裁段:表示該幀優先級的段。
(3)控制段:表示數據的字節數及保留位的段。
(4)數據段:數據的內容,一幀可發送0~8個字節的數據。
(5)CRC段:檢查幀的傳輸錯誤的段。
(6)ACK段:表示確認正常接收的段。
(7)幀結束:表示數據幀結束的段。

二、xilinx Artix 7系列FPGA介紹

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

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

三、FPGA的相關設計介紹

設計思路一:在FPGA內部編寫CAN通信控制器

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

CAN 總線的通信協議由 CAN 通信控制器完成。CAN 通信控制器由實現 CAN 總線協議部分和微控制器部分的電路組成。下面將通過一個實例講解如何用 FPGA 實現 CAN 通信控制器的功能。這個實例從功能和結構上完全參照 SJA 1000 CAN 通信控制器。

網址一:基于FPGA的CAN總線控制器的設計(上) - 知乎 (zhihu.com)

網址二:基于FPGA的CAN總線控制器的設計(中) - 知乎 (zhihu.com)

網址三:基于FPGA的CAN總線控制器的設計(下) - 知乎 (zhihu.com)

上述資料是按照SJA1000 CAN通信控制器的內部結構用FPGA進行了重新設計。

設計思路二:用FPGA通過串口或者SPI去配置外部的CAN控制器芯片實現通信。

這個設計方案一般用在單片機作主控的項目中,如果用FPGA作主控,有這么幾個缺點,成本高、硬件設計繁瑣、受限于控制芯片的性能和發揮不出FPGA的性能。

CAN通信控制芯片:

MCP2515(SPI通信)

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

SJA1000

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

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

CAN接口驅動芯片

TJA1050芯片引腳圖

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

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

常用的外設電路設計

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

如上圖所示,CAN_TX和CAN_RX接CAN通信控制芯片,實現對驅動芯片轉換后的信息流的處理。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605983
  • CAN總線
    +關注

    關注

    145

    文章

    1955

    瀏覽量

    131086
  • Xilinx
    +關注

    關注

    71

    文章

    2171

    瀏覽量

    122125

原文標題:基于Xilinx的A7系列FPGA的CAN總線協議開發

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Xilinx 7系列FPGA的時鐘結構解析

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

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

    我有一塊集成了sony的cmos的板子,cmos的圖像數據走的是SLVS-EC協議,數據走的是0.4mm間隔的40針的接口,如圖: 請問這個接口該如何接線到xilinxa7板子,該買什么規格
    發表于 03-28 14:19

    【Artix-7 50T FPGA申請】FPGA由Altera轉Xilinx系列筆記

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

    xilinx A7 200t PCI協議使用問題

    使用PCI協議與上位機進行通信,FPGA使用的是Xilinx A7 200t。使用過程中發現,PCI IP只能使用4.5個小時,之后配置空間仍然可用,而BAR空間不能使用。進行了多次嘗
    發表于 07-26 14:03

    xilinx公司的7系列FPGA應用指南

    本文是關于 xilinx公司的7系列FPGA應用指南。xilinx公司的7
    發表于 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>應用指南

    FPGA實現CAN總線控制器源碼

    Xilinx FPGA工程例子源碼:FPGA實現CAN總線控制器源碼
    發表于 06-07 14:13 ?92次下載

    CAN總線協議是什么?CAN總線協議有哪些?CAN總線協議知識分析

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

    Xilinx 7系列FPGA介紹

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

    Xilinx 7 系列FPGA中的Serdes總結

    本文檔的主要內容詳細介紹的是Xilinx 7 系列FPGA中的Serdes總結。
    發表于 12-31 17:30 ?25次下載

    Xilinx 7系列FPGA簡介--選型參考

    Xilinx-7系列FPGA主要包括:Spartan?-7、Artix?-7、Kintex?-7
    發表于 01-30 06:00 ?21次下載
    <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管腳是如何定義的?

    引言: 我們在進行FPGA原理圖和PCB設計時,都會涉及到FPGA芯片管腳定義和封裝相關信息,本文就Xilinx 7系列
    發表于 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文件下載

    我們在進行FPGA原理圖和PCB設計時,都會涉及到FPGA芯片管腳定義和封裝相關信息,本文就Xilinx 7系列
    的頭像 發表于 04-27 10:45 ?7003次閱讀
    <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的區別

    Xilinx是一家專業的可編程邏輯器件(PLD)廠商,其產品包括FPGA、CPLD、SOC等。XilinxFPGA產品線有多個系列,其中
    發表于 09-15 14:44 ?6195次閱讀
    <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>的區別

    簡述Xilinx 7系列FPGA芯片相關知識

    Xilinx 7系列 芯片 應用非常廣泛,具有成本低、性能強悍、成熟穩定的特點,目前Xilinx( AMD )已延長該系列芯片的生命周期至少
    的頭像 發表于 11-28 10:20 ?1279次閱讀
    簡述<b class='flag-5'>Xilinx</b> <b class='flag-5'>7</b><b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>芯片相關知識

    FPGA核心板 Xilinx Artix-7系列XC7A100T開發平臺,米爾FPGA工業開發

    MYC-J7A100T核心板及開發Xilinx Artix-7系列XC7A100T
    發表于 05-31 15:12 ?11次下載
    查风水24山| 百家乐冯式打法| 大发888在线娱乐游戏| 星期八百家乐官网的玩法技巧和规则| 皇冠在线娱乐城| 百家乐一般的庄闲比例是多少| 百家乐官网视频游戏金币| 大发888游戏平台3403| 波音百家乐现金网| 百家乐官网赌博详解| 赌博娱乐场| 大发888账号| 博彩百家乐字谜总汇| 大发8888娱乐场| 百家乐官网外套| 杭锦后旗| 金宝博188| 大发888合营商| 博之道百家乐的玩法技巧和规则| 九宫飞星2024年的财位| 百家乐官网吹| 金宝博百家乐官网游戏| 金鼎国际娱乐| 德州扑克视频教学| 中骏百家乐的玩法技巧和规则| 百家乐赢钱战略| 百家乐官网平注资讯| 至尊百家乐官网20130301| 百家乐官网三多注码法| 大发888 信用卡| 百家乐游戏开户网址| 百家乐伴侣破解版| 庆云县| 澳门金莎娱乐城| 欧博娱乐| 固始县| 菲律宾百家乐官网游戏| 余庆县| 嘉禾县| 高尔夫| 百家乐官网d博彩论坛|