基于NVIDIA Xavier的Socket Can项目开发

基于NVIDIA Jetson AGX Xavier的Socket Can开发

(CSDN太恶心,已迁移到博客园)

1.焊接外接的收发器

参考博客:
配置can接口寄存器以及CAN收发器的焊接
配置can接口寄存器以及CAN收发器的焊接与测试代码以及gitlab示例代码参考(CSDN)
用的收发器是TJA1042
用的寄存器
大佬帮我焊的,最终的成品如下
用了DB9头子接上USBCAN-2E-U测试的

2.测试Xavier两路CAN

在Xavier的ubuntu上安装can-utills测试两路CAN的收发是否正常,如果焊好了的话正常是两路can都可以收发的(建议多买几个收发器TJA1042,毕竟大佬给我焊的时候也是不小心焊烧了一路can)

3.部分工程代码

开发过程中参考了以下内容:socket can官方文档的中文翻译
vehicle_socket
注:我是把/etc/rc.local脚本中部分bash移植到了代码中,以便于从代码中设置波特率
废话不多说,整代码
#include<socket_can.h>

#include <pthread.h>

#include <stdint.h>
#include <net/if.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>

#include <string>

#include <linux/can.h>
#include <linux/can/raw.h>
#include <linux/can/error.h>
#include <linux/net_tstamp.h>

#define SET_CAN0_BAUDRATE "sudo ip link set can0 type can bitrate "
#define SET_CAN1_BAUDRATE "sudo ip link set can1 type can bitrate "
#define CAN_FD_ON " dbitrate 2000000 berr-reporting on fd on"
#define CAN0_OPEN "sudo ip link set up can0"
#define CAN1_OPEN "sudo ip link set up can1"
/* set transmit queue length: small value for slower device with a high latency, hight value is recommended for server connected with high-speed internet connections the perform large data transfers */
#define CAN0_LENGTH "sudo ip link set can0 txqueuelen 1000" 
#define CAN1_LENGTH "sudo ip link set can1 txqueuelen 1000"
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值