目录
前言
CAN是ControllerArea Network(控制器局域网)的缩写。CAN通信协议在1986年由德国电气商博世公司所开发,主要面向汽车的通信系统。现已是ISO国际标准化的串行通信协议。根据不同的距离、不同的网络,可配置不同的速度,最高速度为1MBit/s。can总线协议的内容相对来说比较多,在此不做详细介绍,本文主要介绍socket can的使用方法。
一、socket can创建
Socket CAN采用的即是原始套接字,我们通过采用AF_CAN协议来创建一个socket can原始套接字,创建代码如下所示:
struct sockaddr_can tCanAddr;
struct ifreq ifr;
iCanFd = socket(PF_CAN, SOCK_RAW, CAN_RAW);
strcpy(ifr.ifr_name, pcCanName);
/* 获取网络接口 */
iRet = ioctl(iCanFd, SIOCGIFINDEX, &ifr);
if (i