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> 网卡的设计相关推荐
- FPGA实战操作(2) -- PCIe总线(协议简述)
目录 1. PCIe基础知识 2. 事务层协议 2.1 数据包结构 2.2 帧头含义详述 3. 报文举例 3.1 寄存器读报文 3.2 完成报文 4. 机制简述 4.1 Non-Posted和Post ...
- FPGA调试笔记~PCIE之XDMA(一):一些概念性介绍
目录 XDMA引荐 PCIE介绍 历史渊源 通信拓扑结构 地址映射与管理 加载与初始化过程 总结 XDMA引荐 XDMA是Xilinx系列FPGA中官方自带的PCIE"高级"IP, ...
- 基于FPGA实现PCI-E接口和DMA控制器设计
随着网络的飞速发展,人们可获取的信息量日益增长,数据的处理及存储速率的要求也越来越高.万兆网(10Gb以太网)的普及,高速存储设备的应用(如DDR2,传输速率可达800M)对系统带宽带来极大的挑战. ...
- 计算机组成原理认识fpga,计算机组成原理课程设计-基于EDA和FPGA技术的8位模型计算机的设计与实现_精品.doc...
计算机组成原理课程设计-基于EDA和FPGA技术的8位模型计算机的设计与实现_精品 目录 前言2 第一章 课程设计内容2 1.1 实验要求2 1.2 实验目的2 第二章 实验原理及方案2 2.1 实验 ...
- 《FPGA入门教程》看书随笔——RTL设计
1.使用verilog进行RTL设计一般可归纳为3种基本的描述方式: (1)数据流描述:采用assign连续赋值语句 (2)行为描述:使用always语句或initial语句块的过程赋值语句 (3)结 ...
- (35)FPGA打两拍、打三拍设计(第7天)
(35)FPGA打两拍.打三拍设计(第7天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA打两拍.打三拍设计(第7天) 5)技术交流 6)参考资料 2 ...
- FPGA零基础学习:IIC协议驱动设计
FPGA零基础学习:IIC协议驱动设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子.信息.通信类 ...
- FPGA零基础学习:LED流水灯设计
FPGA零基础学习:LED流水灯设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子.信息.通信类专 ...
- Linux网卡驱动设计
Linux网卡驱动设计 Linux网络体系结构 Linux的优点之一在于它丰富而稳定的网络协议栈.其范围从协议无关层到各种具体的网络协议实现. 协议层次对比图 网络接口层提供访问物理设备的驱动程序,对 ...
最新文章
- opencv-python图像处理之轮廓算法
- appium ios 真机自动化环境搭建
- python open ascii codec cant_解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误...
- httpClient post方法 解析json数据(向服务器传递,接受服务器传递)
- @Select注解的使用
- Android Studio中R报错(cnanot resolve symbol R)
- matlab中input输入多个数_python怎么一次输入两个数
- 网络安全Bypass网卡详细讲解
- Altium Designer 17 安装破解版详细教程
- 京东商城java笔试_京东java笔试
- HTML期末大作业~海贼王大学生HTML网页制作10个页面作品(HTML+CSS+JavaScript)
- Endnote将文献插入在指定位置
- iPhoneX停产?对此不敢苟同
- “交通·未来”第17期:深度出行感知,从出行需求预测到出行目的地预测
- WordPress更新文章实时推送到百度
- 江南Style之---西塘
- 机房环境监控系统机房守护者!
- Python 之体重指数( BMI )
- 全国各省368个地级市河流密度数据(工具变量)
- 基于iBeacon技术智慧社区医院解决方案