RS232串行口CAN总线转换器:CAN232使用手册.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PCI非智能卡函数使用说明
--for Windows 95/98/2000
Pcicandrv.LIB - CAN总线函数库(适用于Windows 95/98/2000):1.自定义数据结构说明
1.1 PORT_STRUCT 结构定义
PORT_STRUCT结构:定义读取的PCI板卡
typedef struct _tagPORT_STRUCT
{
BYTE card; // index of card(start from 0)
BYTE value; // for some particular use
} PORT_STRUCT;
成员变量说明:
card:表示读取哪一个PCI非智能卡,基值必须从0开始;
value:为将来功能的扩展预留;
1.2 PORT_CONFIG 结构定义
PORT_CONFIG结构: 配置PCI非智能卡的工作方式、ID和波特率
typedef struct _tag PORT_CONFIG
{
WORD workMode; // 0 for 11-bit;
// 1 for 29-bit
WORD filterMode; // 0 for single filter mode,
// 1 for dual filter mode;
DWORD accCode; // accept code
DWORD accMask; // accept mask
BYTE timer0; // timer0 register (set baudrate)
BYTE timer1; // timer1 register
BYTE control; // enable interrupt
}PORT_CONFIG;
成员变量说明:
workMode : 0 - 使用 11位 CAN_ID;
1- 使用 29位 CAN_ID;
filterMode: 0 -CAN控制器采用单滤波方式;
1 -CAN控制器采用双
滤波方式;
accCode:设定的CAN控制器节点ID;
accMask:设定的与CAN_ID对应的屏蔽码;
timer0:设定的CAN控制器 time0寄存器内容(用
于设定波特率);
timer1:设定的CAN控制器 time1寄存器内容(用于设定波特率);
control:用于设定允许开放的中断 0-禁止中断 1-开放中断
control.7 control.0
BEIE: bus error interrupt enable
ALIE : arbitration lost interrupt enable
EPIE: error passive interrupt enable
WUIE: wake-up interrupt enable
DOID: data overrun interrupt enable
EIE: error warning interrupt enable
TIE: transmit interrupt enable
RIE: receive interrupt enable
波特率与Time0、Time1寄存器设定对照表
1.3 PORT_REG 结构定义
PORT_REG结构: 用于读/写CAN控制器内的寄存器的数据结构。
typedef struct _tagPORT_REG
{
BYTE card; // index of card(start from 0)
BYTE reg; // one of register in SJA1000
BYTE value; // for Reading: value read from one register
// for writting: value want to write to one register
}PORT_REG;
成员变量说明:
card:表示读取哪一个PCI非智能卡,基值必须从0开始;
reg:设定读取的CAN控制器的寄存器;
value: 读/写的寄存器内容
读操作:保存从寄存器读取的数据
写操作:保存写到寄存器的数据
1.4 CAN_PACKET 结构定义
PORT_ PACKET结构: CAN数据帧结构,用于发送和接收函数。
typedef struct _tagCAN_PACKET
{
DWORD CAN_ID; // CAN ID field (32-bit unsigned integer)
BYTE rtr; // CAN RTR bit.
BYTE length; // Length of data field.
BYTE data[8]; // Data (8 bytes maximum)
DWORD time; // Reserved for future use
BYTE reserved; // Reserved byte
} CAN_PACKET;
成员变量说明:
CAN_ID; CAN_ID(无符号32位数)
rtr: CAN RTR 位 0-数据帧 1-远程帧
length:数据长度(以字节为单位,最多8个字节)
data[8]: 数据(最多8个字节);
time:为将来功能扩展预留;
reserved:为将来功能扩展预留;
1.5 CAN_PACKET1000 结构定义
PORT_ PACKET1000结构: 定义此数据结构用于一次性全部读取数据缓冲区内容;
typedef struct _tagCAN_PACKET1000
{
WORD num;
CAN_PACKET packet[1000];
} CAN_PACKET1000;
成员变量说明:
num: 实际从数据缓冲区内读取的CAN数据帧数量
(0~1000)
packet[1000]:保存从数据缓冲区内读取的CAN数据帧内