0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀的Verilog/FPGA开源项目开发-CAN通信篇

FPGA威廉希尔官方网站 江湖 来源:OpenFPGA 2024-02-22 09:32 次阅读

0、CAN总线介绍

《【科普】CAN总线介绍及FPGA实现方案简介》

d4ac115a-d110-11ee-a297-92fbcf53809c.png

1、CAN权威文档

CAN总线有两个ISO国际标准:ISO11898 和 ISO11519。其中:

ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。

ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。

3、【小梅哥FPGA】使用FPGA实现CAN通信的例子(NIOS+CAN IP)

https://bbs.elecfans.com/jishu_1385802_1_1.html

这是小梅哥FPGA开发板上的实例,之所以放到第一个是因为这是目前FPGA实现CAN通信的比较完美的解决方案,单纯使用硬件描述语言的IP,会有一些不可预知的BUG,但是使用软核处理器是比较完美的。

d4d6fe38-d110-11ee-a297-92fbcf53809c.png

上图就是整个项目的系统方案,也很好理解,就不过多赘述了。

SJA100就是CAN控制器

VP230就是CAN收发器

PS:代码在上诉链接中。

4、liteCAN

https://github.com/WangXuan95/liteCAN

基于 FPGA 的轻量级CAN总线控制器

d4e600b8-d110-11ee-a297-92fbcf53809c.png

此项目实现的是CAN控制器,CAN收发器还是需要外挂。

简介

CAN总线作为工业和汽车领域最常用的通信总线,具有拓扑结构简洁、可靠性高、传输距离长等优点。CAN总线的非破坏性仲裁机制依赖于帧ID,CAN2.0A和CAN2.0B分别规定了11bit-ID(短ID) 的标准帧和29bit-ID(长ID) 的扩展帧,另外,还有远程帧这种数据请求机制。关于CAN总线的更多知识可以参考这个科普文章。

CAN总线的复杂机制决定了控制器设计的复杂性。本库实现了一个轻量化但完备的CAN控制器,特点如下:

本地ID可固定配置为任意短ID。

发送 : 仅支持以本地ID发送数据长度为4Byte的帧。

接收 : 支持接收短ID或长ID的帧,接收帧的数据长度没有限制 (即支持 0~8Byte ) 。

接收帧过滤 : 可针对短ID和长ID独立设置过滤器,只接收和过滤器匹配的数据帧。

自动响应远程帧 : 当收到的远程帧与本地ID匹配时,自动将发送缓存中的下一个数据发送出去。若缓存为空,则重复发送上次发过的数据。

平台无关 :纯 RTL 编写 (SystemVerilog),可以在 Altera 和 Xilinx 等各种 FPGA 上运行。

设计文件说明

设计相关的4个文件在 RTL 文件夹中,各文件功能如下表。你只需将以上4个文件包含进工程,就可以调用can_top.sv进行更高层次的CAN通信业务的二次开发。

d4ef6aae-d110-11ee-a297-92fbcf53809c.png

此项目非常完整,项目由中文说明,完备的TB及测试方案。

5、CAN-fpga

https://github.com/AlxyF/CAN-fpga

项目没有任何介绍,看文件结构,是基于Quartus II建立的,结构和上一项目完全没什么区别。整个项目应该是完备的,有兴趣可以看看。

6、sja1000

https://github.com/zhaotliang/sja1000

这个就是Verilog编写的外挂SJA100的驱动程序,这里就不过多介绍了。

7、Click_MCP25625

https://github.com/MikroElektronika/Click_MCP25625

这是MCP25625(控制器+收发器集合)的SPI驱动(ARM单片机的)。

d5078f6c-d110-11ee-a297-92fbcf53809c.png

https://github.com/UberLambda/CANnuccia

这个项目和这个功能一样,就不展开描述了。

USB-CAN(调试利器)

因为本期没几个开源项目,所以这里在推荐几个开源的USB-CAN方案,大部分都是可以直接打板使用的。

一、stm32f0 + CAN收发器TJA1051/3

https://canable.io/

https://codechina.csdn.net/mirrors/HubertD/candleLight?utm_source=csdn_github_accelerator

https://github.com/HubertD/candleLight/blob/master/export/v1.1/pdf/candleLight-v1.1.pdf

ta有完全开源的软硬件及上位机支持,支持windos和linux Stock can并且都免驱哦。且支持Python

d514481a-d110-11ee-a297-92fbcf53809c.pngd528b552-d110-11ee-a297-92fbcf53809c.png

上述的方案某宝上也有成品。

d543a876-d110-11ee-a297-92fbcf53809c.png

二、KS22方案

http://bbs.eeworld.com.cn/thread-491860-1-1.html

d558dea8-d110-11ee-a297-92fbcf53809c.png

d57157b2-d110-11ee-a297-92fbcf53809c.png

相关文档及上位机:

三、open-usb-can

https://github.com/fabiobaltieri/open-usb-can

d588efd0-d110-11ee-a297-92fbcf53809c.png

文档很完备。

该项目是基于 ATMega32U2 和 MCP2515 SPI CANBus 控制器的 USB 转 CANBus 接口

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

d5956ab2-d110-11ee-a297-92fbcf53809c.jpg





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    3428

    浏览量

    105991
  • CAN总线
    +关注

    关注

    145

    文章

    1951

    浏览量

    130752
  • CAN通信
    +关注

    关注

    5

    文章

    93

    浏览量

    17835
  • 上位机
    +关注

    关注

    27

    文章

    942

    浏览量

    54806
  • STM32F0
    +关注

    关注

    0

    文章

    61

    浏览量

    17106

原文标题:优秀的 Verilog/FPGA开源项目- CAN通信

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA威廉希尔官方网站 江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Verilog vhdl fpga

    岗位职责 1.负责FPGA的架构设计、代码编写、仿真等; 2.协同软、硬件工程师完成系统联调和测试; 3.负责项目FPGA设计的相关文档编写及维护;任职要求 1.硕士及以上学历,电子、通信
    发表于 11-12 16:40

    FPGA开发Verilog HDL例程说明

    开发板适合零基础在校的学生,同时也能够为工程师的项目提供帮助,里面丰富的Verilog HDL例程同时具有工程参考价值,从工程中总结得到。从基础到高级
    发表于 02-27 22:34

    【小梅哥FPGA】使用FPGA实现CAN通信的例子和详细使用说明(NIOS+CAN IP)

    附件为使用FPGA实现两路CAN接口进行回环通信的工程文件。包含详细的工程使用说明文档。在小梅哥的Starter FPGA开发板上验证通过,
    发表于 09-22 22:42

    AD936x+ZYNQ搭建OpenWIFI 精选资料分享

    之前推荐过GitHub上优秀开源项目《Github 上有哪些优秀的 VHDL/Verilog/FPGA
    发表于 07-20 07:03

    FPGA实现CAN总线通信节点设计

    基于对CAN 总线控制器的功能分析, 并应用Verilog语言进行软件设计, 从而实现CAN节点之间的通信功能。
    发表于 04-28 09:56 1.5w次阅读
    <b class='flag-5'>FPGA</b>实现<b class='flag-5'>CAN</b>总线<b class='flag-5'>通信</b>节点设计

    基于FPGACAN总线通信系统

    基于FPGACAN总线通信系统,下来看看。
    发表于 05-10 11:47 35次下载

    优秀Verilog/FPGA开源项目介绍(一)

    优秀Verilog/FPGA开源项目介绍(一)-PCIe通信 今天开始会陆续介绍一些
    的头像 发表于 10-11 15:31 9310次阅读
    <b class='flag-5'>优秀</b>的 <b class='flag-5'>Verilog</b>/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>介绍(一)

    优秀Verilog/FPGA开源项目之 USB通信

    优秀Verilog/FPGA开源项目介绍(五)- USB通信 USB是我们生活中非常非常常见
    的头像 发表于 11-02 14:54 8795次阅读
    <b class='flag-5'>优秀</b>的 <b class='flag-5'>Verilog</b>/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>之 USB<b class='flag-5'>通信</b>

    Verilog/FPGA开源项目介绍

    优秀Verilog/FPGA开源项目介绍(七)- CAN0、
    的头像 发表于 11-17 11:19 3084次阅读

    AD936x+ZYNQ搭建OpenWIFI

    之前推荐过GitHub上优秀开源项目《Github 上有哪些优秀的 VHDL/Verilog/FPGA
    发表于 12-04 12:21 13次下载
    AD936x+ZYNQ搭建OpenWIFI

    TTL FPGA开源项目

    电子发烧友网站提供《TTL FPGA开源项目.zip》资料免费下载
    发表于 07-28 10:18 3次下载
    TTL <b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>

    CAN BUS分线器开源项目

    电子发烧友网站提供《CAN BUS分线器开源项目.zip》资料免费下载
    发表于 08-04 15:17 4次下载
    <b class='flag-5'>CAN</b> BUS分线器<b class='flag-5'>开源</b><b class='flag-5'>项目</b>

    优秀的IC/FPGA开源项目:伪红外图像处理

    优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《优秀
    的头像 发表于 06-09 09:42 2227次阅读
    <b class='flag-5'>优秀</b>的IC/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>:伪红外图像处理

    基于FPGACAN总线通信节点设计

    点击上方 蓝字 关注我们 摘要:以FPGA 代替传统的单片机和外围扩展芯片, 给出了CAN 总线通信节点的详细设计方案。其中以SJA1000为CAN 总线控制器、
    的头像 发表于 06-18 11:15 2984次阅读

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法是Verilog FPGA开发中的重要环节,它用于验证Verilog设计的正确性和性能。以下是一个详细的
    的头像 发表于 12-17 09:50 196次阅读