CANopen 块传输通信详解
1.块上传详解(读取)
这里以图2为例子, 进行说明
假设主节点为01,待读取节点为0x1b
读取的数据是
UNS8g_upgrade_buf_appbin[258]="bbbcccddd111222333444555666777888999AAA\0";
/* Mapped at index 0x2007, subindex 0x01 */
1).主节点:发送读取数据初始化
发送:
A0 07 20 01 10 00 00 00
data[0] = (5 << 5) | SDO_BCS_INITIATE_UPLOAD_REQUEST;
data[1] = index & 0xFF; /* LSB */
data[2] = (index >> 8) & 0xFF; /* MSB */
data[3] = subIndex;
data[4] = SDO_BLOCK_SIZE;
for (i = 5 ; i < 8 ; i++)
data[i] = 0;
2).从节点:服务器端响应”需要读取的总数据包字节数”
接收:
C2 07 20 01 27 00 00 00
da