野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3356|回复: 1

[altera] 【求助】写了一个can控制器,can收发器为什么一点都收不到

[复制链接]
发表于 2023-4-23 22:44:58 | 显示全部楼层 |阅读模式
本帖最后由 Flexiaokai 于 2023-4-23 23:06 编辑


新人,刚学一个月。
发现板子有can芯片,想写一个can控制器玩玩。
根据can的协议,最核心的是接受和发送模块,其次还有过滤、仲裁、错误、位同步等模块,fpga实现can控制器,把最基本的接收can模块和发送can模块都写完了,其他模块暂时没写,因为目前只是两个节点通信,感觉不需要仲裁等模块,仿真波形成功
然后下板子实验,通过can盒向征途pro发送can数据帧,
连接的can发送是这样的:pc→can盒→can收发器→fpga

结果发送软件显示发送失败,本以为写的can控制器代码出现了问题,通过示波器测量can收发器芯片rx引脚,发现rx引脚一点波形都没有!!!
根据学的485收发器原理,难道是没控制can收发器控制引脚才导致的吗?毕竟485收发器有使能控制引脚rs485_re
看原理图,发现can收发器只有两个引脚rx和tx,那应该不需要使能啊,can收发器应该会自动实现接收才对啊??can收发器为什么没有信号收到???

所以我的问题基本以下几点:
  • 为什么can收发器收不到信号?是代码写的不完整?还是什么关键点遗漏了?
  • 看有一些文档说can总线还要检测总线空闲之类的,可是这个只有一个can盒通信征途pro,两个节点,点对点通信,应该不需要检测吧?再说rx信号都收不到,fpga怎么检测总线啊?
  • 还有一些文档说发送can之后,接受端接受完成需要再往总线发送can接受完毕的反转应答位信号,这个应答信号的帧具体什么格式?是只发送1位应答位,还是再重新发一遍数据帧,只是应答位反转了?



回复

使用道具 举报

发表于 2023-5-13 09:20:33 | 显示全部楼层
仿真没有问题,不代表程序一定能运行,可以通过在线调试看看时序是否出现问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-21 22:45 , Processed in 0.027343 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表