1数据类型:
1 BOARD_INFO 设备信息
2 CAN_OBJ 数据帧对象
3 CAN_STATUS CAN通道状态
4 ERR_INFO 错误信息
5 INIT_CONFIG 设备配置参数
6 FILTER_RECORD 过滤帧配置参数
1 设备信息public struct BOARD_INFO
{public ushort hw_Version;public ushort fw_Version;public ushort dr_Version;public ushort in_Version;public ushort irq_Num;public byte can_Num;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]public byte[] str_Serial_Num;[MarshalAs(UnmanagedType.ByValArray, SizeConst =40)]public byte[] str_hw_Type;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]public ushort[] Reserved;
}2 数据帧对象public struct CAN_OBJ{public uint ID;public uint TimeStamp;public byte TimeFlag;public byte SendType;public byte RemoteFlag;public byte ExternFlag;public byte DataLen;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]public byte[] data;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]public byte[] Reserved;
}3 CAN通道状态
public struct CAN_STATUS
{ public uchar ErrInterrupt; //中断记录,读操作会清除。public uchar regMode; //CAN控制器模式寄存器。public uchar regStatus; //CAN控制器状态寄存器。public uchar regALCapture; //CAN控制器仲裁丢失寄存器。public uchar regECCapture; //CAN控制器错误寄存器。public uchar regEWLimit; //CAN控制器错误警告限制寄存器。public uchar regRECounter; //CAN控制器接收错误寄存器。public uchar regTECounter; //CAN控制器发送错误寄存器。public int Reserved;
}4 错误信息
public struct ERR_INFO
{ public UINT32 ErrCode; //错误码。public byte Passive_ErrData[3];//消极错误public byte ArLost_ErrData; //仲裁丢失错误
}5 设备配置参数
public struct INIT_CONFIG
{public uint AccCode; //【左对齐】帧id的bit完全匹配才接收public uint AccMask; //【左对齐】帧id的bit【1】为失效AccCodepublic uint Reserved; //保留public byte Filter; //滤帧使能。【0】不使能,【1】使能。public byte Timing0; //波特率 1MHz【t0=0x00,t1=0x14】public byte Timing1; //波特率public byte Mode; //模式。【0】正常收发【1】只收【2】环回
}6 FILTER_RECORD
public struct FILTER_RECORD
{ public UInt32 ExtFrame; //过滤的帧类型【0】只收标准帧【1】只收扩展帧public UInt32 Start; //帧起始idpublic UInt32 End; //帧结束id
}
2接口函数:
1 OpenDevice ......................................打开设备
1.5.2 CloseDevice ................................关闭设备
1.5.3 InitCan .........................................初始化CAN通道
1.5.4 ReadBoardInfo ............................读设备信息
1.5.5 ReadErrInfo .................................读错误信息
1.5.6 ReadCanStatus ...........................读设备状态
1.5.7 GetReference ..............................获取过滤帧配置参数。【PVOID *pData】
1.5.8 SetReference ..............................设置过滤帧配置参数。【VCI_FILTER_RECORD】
1.5.9 GetReceiveNum ..........................读接收缓冲区中帧数。
1.5.10 ClearBuffer ................................清空CAN通道的缓冲区。
1.5.11 StartCAN ...................................启动某一个CAN通道。
1.5.12 Transmit ....................................返回实际发送成功的帧数。
1.5.13 Receive .....................................读CAN通道的缓冲区里帧数据。
1.5.14 ResetCAN .................................复位CAN通道。