<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > ArCan > ArCanSetBitTimingRegisters() |
设置CAN设备中的位定时寄存器。
因为它是异步处理的,这个功能块必须被调用,直到 "Busy "等于FALSE。
这个功能块只能 在某些情况下被用于冗余!
适用的限制将在以下章节中描述。
关于冗余的更多信息,请看 冗余部分 。
输入参数 Register0 和 Register1 是CAN定时配置寄存器,其使用方式与系统频率为8MHz的Intel 82527的配置寄存器相同。
输入/输出 |
参数 |
数据类型 |
描述 |
IN |
Execute |
BOOL |
功能块的执行在该输入的上升沿开始。 |
IN |
DeviceName |
STRING[127] |
CAN接口的名称,例如:SS1.IF1 |
IN |
Register0 |
BYTE |
位定时寄存器0 |
IN |
Register1 |
BYTE |
位定时寄存器1 |
OUT |
Done |
BOOL |
执行成功。该功能块已经完成。 |
OUT |
Busy |
BOOL |
该功能块处于活动状态,必须继续被调用。 |
OUT |
Error |
BOOL |
在执行功能块时发生错误。 |
OUT |
StatusID |
DINT |
错误编号 |
这些错误号码可以被返回:
名称 |
值 |
描述 |
arCAN_ERR_DEVICE_NAME |
-1070584148 |
检查CAN接口名称。 |
arCAN_ERR_INVALID_PARAMETER |
-1070584147 |
检查参数。 |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
SJW |
编码 |
名称 |
值的范围 |
描述 |
计量单位:SJW |
0..3 |
同步跳变宽度 |
BRP |
0..63 |
波特率预分频器 |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
劈叉 |
TSEG2 |
TSEG1 |
名称 |
值的范围 |
描述 |
Spl |
0..1 |
采样模式(不是所有的CAN控制器都支持)。 0 每位三个样本 1 每位一个样本 |
TSEG1 |
2..15 |
时间段1 |
TSEG2 |
1..7 |
时间段2 |
CAN比特率的计算方法如下。CAN_Bitrate = 8 MHz / [(BRP+1) + (TSEG1+1) + (TSEG2+1)],其中一些数值的范围是有限的!
寄存器0 |
寄存器1 |
波特率 [比特/秒] |
0x00 |
0x23 |
1000000 |
0x00 |
0x16 |
800000 |
0x00 |
0x1C |
500000 |
0x01 |
0x1C |
250000 |
0x03 |
0x1C |
125000 |
0x04 |
0x1C |
100000 |
0x09 |
0x1C |
50000 |
0x18 |
0x1C |
20000 |
0x31 |
0x1C |
10000 |