FPGA + SJA1000 实现 <PCIe to CAN> 网卡的设计
生活随笔
收集整理的這篇文章主要介紹了
FPGA + SJA1000 实现 <PCIe to CAN> 网卡的设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qq_46621272/article/details/118242161?
PCIe to CAN 網卡的設計FPGA Verilog/Linux 驅動/源代碼/軟硬件調試/詳細說明
- 采用 本文中的代碼,能很容易的實現 網卡的設計。
- 只是給大家提供一個思路、知識點,嵌入式 CPU 功能越來越強大,PCIE 是一些高端 CPU 的標準配置。用 PCIE + FPGA 擴展 CAN/網卡/串口 等多個多種常用端口很方便。
- 本方案里,只采用 1 片 SJA1000 實現 1 路 CAN 。可以通過簡單的修改 實現多路 CAN 。
- 本方案采用 海思 Hi3531D + FPGA + SJA1000 實現 PCIe to CAN,Vivado 工程,IP 參數設置, Verilog 代碼,約束文件,Linux 內核定制,Linux 驅動,調試記錄、全套代碼。
- 在 Linux 驅動調試說明中介紹一些軟硬件的知識點。
- CSDN 下載需要積分,很討厭,這里的代碼都給大家貼出來,復制粘貼大家都會吧。
- CAN 為什么選 SJA1000 ?其實從硬件設計上看,XILINX 有個 AXI CAN 的 IP , Linux 也有驅動(沒調試驗證過),沒授權也就沒采納該方案。查看市場上 PCIE CAN 卡多數都是用 PCIE 橋片 + SJA1000 芯片 實現,查看當前 Linux CAN 驅動芯片列表 SJA1000 芯片占一大項,芯片好買,參考代碼多,為減少軟件驅動編寫開發的難度決定采用該芯片。
- 在我們做產品設計時,linux 驅動是個很頭疼的事,公司開發人員不是萬能的奧特曼,不是什么驅動都會編寫,總有知識盲點。在做產品方案時,linux 驅動移植編寫能力是首先需要考慮的。有些時候硬件采用成熟的大公司的貴的芯片做產品設計時就是考慮降低軟硬件調試的難度。先做出產品來,在有產品批量、功能已經完善、時再考慮降低產品的成本,有針對的選擇一些性價比高的芯片。
- 有技術問題可以聯系 708907433@qq.com
PCIE_CAN 原理圖
PCIE_CAN FPGA 工程詳細說明
PCIE_CAN Linux 驅動詳細說明
PCIE_CAN 硬件調試過程記錄(好大的坑,還好爬出來了)
源碼 FPGA Verilog: pcie_can_root.sv
源碼 FPGA Verilog: pcie_can_root.xdc
源碼 FPGA Vivado: pcie_can_bd.bd
源碼 Linux drivers: oem_pcie.c
總結
以上是生活随笔為你收集整理的FPGA + SJA1000 实现 <PCIe to CAN> 网卡的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为暂缓校招,解散校招群,冲上热搜,引发
- 下一篇: AI绘画怎么操作