CAN 的全称为 Controller Area Network,也就是控制局域网络,简称为 CAN。CAN 最早是 由德国 BOSCH(博世)开发的,目前已经是国际标准(ISO 11898),是当前应用最广泛的现场总线 之一。BOSCH 主要是做汽车电子的,因此 CAN 一开始主要是为汽车电子准备的,事实也是如 此,CAN 协议目前已经是汽车网络的标准协议。当然了,CAN 不仅仅应用于汽车电子,经过 几十年的发展,CAN 协议的高性能和高可靠性已经得到了业界的认可,目前除了汽车电子以外 也广泛应用于工业自动化、医疗、工业和船舶等领域。
AUKUN-UTX-3568JT 主板总共外设2路CAN
板级使能can,配置位置:arch/arm64/boot/dts/rockchip/aukun-utx-rk3568-base.dtsi
&can1 {
assigned-clocks = <&cru clk_can1="">;
assigned-clock-rates =<150000000>;
pinctrl-names = "default";
pinctrl-0 = <&can1m1_pins>;
status = "enable";
};
&can2 {
assigned-clocks = <&cru clk_can2="">;
assigned-clock-rates =<150000000>;
pinctrl-names = "default";
pinctrl-0 = <&can2m1_pins>;
status = "enable";
};
将can1总线的TX与can2总线的TX相连,将can1总线的RX与can2总线RX相连接。
1、can-utils 工具包内含 5 个独立的程序:canconfig、candump、canecho、cansend、cansequence
安装命令:
sudo apt install can-utils
2、工具包含的常用命令
cansend:
向指定的CAN总线接口发送十六进制数据,如:cansend can1 123#AABBCC,向can1接口发送0XAABBCC
candump:
使CAN总线接口保持监听状态。从 CAN 总线接口接收数据并以十六进制形式打印到标准输出
1、设置比特率。当需要修改can模块的属性时,必须先关闭can模块
ip link set can0 down //关闭CAN总线接口 ip link set can0 type can bitrate 500000//设置比特率为500000
2、打开can模块
ip link setcan0 up //打开CAN0模块
3、向指定的CAN总线接口发送数据
cansend can1 123#AABBCC //从总线接口发出数据
can1:表示CAN通道名称,即被发送的CAN数据从该通道发出
发送CAN帧是标准帧; 123表示can帧的帧id。后面6个字节表示具体的CAN帧报文。
4、开启终端的监听打印模式
candump can0
Copyright © 2022-2030 aukun.cn 合肥奥鲲电子科技版权所有 皖ICP备2023002494号-1