鉴于想将ELF1 的NXP6ull部署于竞技机器人上,那么对于CAN的测试就很关键,目前多数的电机驱动和专业的传感器设备都是使用CAN通信作为协议,由于试用期间基础板子无扩展板,但是我们又想结合代码,测试我们的CAN通信功能,那么本文将介绍使用逻辑分析仪工具来协助测试。
CAN通信是一种异步通讯协议,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。它是一种多主方式的串行通讯协议,被广泛应用于工业自动化、船舶、医疗设备、工业设备等方面。CAN总线协议的物理层只有一对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN通讯是半双工的,收发数据需要分时进行。CAN总线通过ISO11898及ISO11519进行了标准化,在欧洲已是汽车网络的标准协议。CAN的高性能和可靠性已被认同,并被广泛地应用于各种领域。
CAN通信在机器人应用中的结合具有许多优势。首先,CAN总线具有高可靠性和稳定性,适用于恶劣的工作环境,因此在机器人系统中得到广泛应用。CAN总线采用了差分信号传输,具有抗干扰能力强、线间干扰小等特点,能够在机器人系统中实现稳定可靠的数据传输。
其次,CAN总线在机器人系统中能够实现多主方式的串行通讯,具有分时发送的特点。这意味着在机器人系统中,多个节点可以同时发送数据,提高了系统的通讯效率。此外,CAN总线还支持优先级控制,能够根据不同节点的重要性和紧急程度进行优先级的设置,确保重要信息能够优先传输。
在机器人应用中,CAN通信可以用于实现各种功能。例如,机器人控制系统中的传感器、执行器、控制器等各个组件可以通过CAN总线进行连接和通信。机器人可以通过CAN总线接收来自传感器的实时数据,并根据数据进行决策和控制。同时,机器人也可以通过CAN总线向执行器发送指令,实现对机器人的运动、动作等控制。
CAN通信还可以用于实现机器人之间的协作和联网。多个机器人可以通过CAN总线进行连接和通信,实现信息共享和协同工作。
跳过CAN配置阶段,和数据处理阶段;
主函数中的循环,很简洁易懂,就是将我们设置的CAN报文,按照一定CANID通过设置对应的CAN发送出去,然后设置对应的CAN作为接收端接收数据,并把它打印出来,如果数据没有得到完整处理,则会一直执行发送;
数据处理阶段中,就包含了对我们在命令行进行的输入处理,对输入数据进行处理,然后赋值到我们对应的CAN配置
使用仪器:DSlogic Plus 个人版
是一种基础USB端口的逻辑分析仪
接线演示:
熟悉CAN差分信号原理就知道,接CAN_L,和地线 就行:
测试阶段,在命令行进行如下操作:
ifconfig can0 down //先关闭CAN0/*
ip link set can0 up type can bitrate 100000 triple-sampling on //设置CAN0 波特率/*
ifconfig can0 up //打开CAN0/*
cansenfd can0 123#1234567891234567 //设置CAN0 发送内容/*
开始发送CAN数据,使用逻辑分析仪的PC端软件进行查看:
查看分析仪,可知开发板按照我们的设置需求进行了发送
CAN测试完成,这样我们就可以自由根据电机驱动和传感器要求的CAN协议格式,进行封装,对电机进行控制,和完成传感器之间的通信
更多回帖