目录 1
第1章 概述 1
1.1 发展历程与现状 1
1.2 基本特性 2
第2章 SERCOS协议 5
2.1 物理层 5
2.1.1 拓扑结构 5
2.1.2 数据传输线的组成 6
2.2 报文基本结构 7
2.1.3 信号编码格式 7
2.2.1 电报定界符 8
2.2.2 地址域 8
2.2.3 数据域 9
2.2.4 帧校验序列域 10
2.3 MST报文结构 10
2.4 MDT报文结构 11
2.5 AT报文结构 13
2.6 工作时序 15
2.6.1 CP0阶段的工作时序 15
2.6.2 CP1和CP2阶段的工作时序 16
2.6.3 CP3和CP4阶段的工作时序 17
2.7 非周期性数据传输 19
2.7.1 概述 19
2.7.2 数据块结构 19
2.7.3 服务通道数据传输机制 19
2.7.3.1 握手位 21
2.7.3.2 繁忙位 22
2.7.3.3 服务通道错误消息 23
2.7.5.2 过程命令变化位 25
2.7.5.1 过程命令控制和过程命令应答 25
2.7.5 过程命令功能 25
2.7.4 服务通道初始化 25
2.7.5.3 过程命令的执行 27
2.8 SERCOS接口初始化 29
2.8.1 通讯阶段0(CP0) 29
2.8.2 通讯阶段1(CP1) 30
2.8.3 通讯阶段2(CP2) 31
2.8.4 通讯阶段3(CP3) 32
2.8.5 通讯阶段4(CP4)——初始化结束 33
2.9 周期数据的配置 33
2.9.2 标准电报1 34
2.9.3 标准电报2 34
2.9.1 标准电报0 34
2.9.4 标准电报3 35
2.9.5 标准电报4 35
2.9.6 标准电报5 35
2.9.7 标准电报6 36
2.9.8 用户自定义电报类型7 36
2.10 伺服装置运行模式设置 37
2.11 故障诊断信息 38
3.1 SERCON410B 41
3.1.1 概述 41
第3章 SERCOS协议器件 41
3.1.2 引脚定义 43
3.1.3 连接微处理器的总线接口 45
3.1.3.1 地址/数据总线复用 46
3.1.3.2 片选控制 46
3.1.3.3 总线控制信号 47
3.1.3.4 数据总线宽度选择 47
3.1.3.5 双端口RAM的访问仲裁 48
3.1.3.6 控制寄存器 48
3.1.3.7 中断 54
3.1.3.8 复位和低能耗 57
3.1.3.9 时钟 58
3.1.4 连接外部设备的串行接口 59
3.1.4.1 时钟和数据再生 59
3.1.4.2 中继器 60
3.1.4.3 串行发送 60
3.1.4.4 串行接收 61
3.1.4.5 检测信号发生器和信号监视 62
3.1.5 电报处理 62
3.1.5.1 存储在双端口RAM中的数据 64
3.1.5.2 定时控制 70
3.1.5.3 数据电报的发送与接收 75
3.1.5.4 服务通道数据传输 79
3.1.5.5 DMA模式 82
3.2 SERCON816 82
3.2.1 概述 82
3.2.2 引脚定义 82
3.2.3 串行接口 83
3.2.3.1 串行时钟 83
3.2.3.2 SERCON410B兼容模式 84
3.2.3.3 中继器 84
3.2.4 电报处理 84
3.2.4.1 时钟信号MCLK 84
3.2.4.2 控制寄存器 85
3.2.4.4 看门狗Watchdog 87
3.2.4.3 双端口RAM 87
3.2.4.5 输出信号DIV_CLK 88
3.3 收发器 89
3.3.1 发送器规范 89
3.3.2 接收器规范 90
3.3.3 常用收发器产品介绍 90
3.4 ISA总线SERCOS接口卡设计实例 91
3.4.1 SRC-EASY卡的组成 91
3.4.2 SERCON410B的接线 92
3.4.2.2 地址总线 94
3.4.2.1 数据总线 94
3.4.2.3 控制线和状态线 95
3.4.2.4 电源线 97
3.4.3 译码电路 97
3.4.4 总线驱动电路 99
3.4.5 收发器的接线 100
3.4.6 ISA总线的接线 101
第4章 SERCOS驱动程序设计 102
4.1 重要的驱动程序头文件 103
4.1.1 主站和从站驱动程序共用的头文件scm-scs.h 103
4.1.2 主站驱动程序专用的头文件scm-drv.h 118
4.1.3 从站驱动程序专用的头文件scs-drv.h 125
4.2 组成驱动程序的最基本操作 130
4.2.1 控制寄存器的读/写操作 130
4.2.2 双端口RAM的读/写操作 133
4.3 主站非周期性数据传输 135
4.3.1 四种基本操作 136
4.3.1.1 定长元素的写操作 136
4.3.1.2 定长元素的读操作 145
4.3.1.3 列表元素的写操作 149
4.3.1.4 列表元素的读操作 153
4.3.2 打开服务通道 156
4.3.3 关闭服务通道 161
4.3.4 写定长数据 163
4.3.5 读定长数据 166
4.3.6 写列表数据 170
4.3.7 读列表数据 175
4.3.8 过程命令传输 181
4.4 从站非周期性数据传输 188
4.5 主站初始化程序示例 209
4.5.1 参数加载与校验 209
4.5.2 控制寄存器初始化 211
4.5.3 双端口RAM区初始化 213
4.5.4 通讯初始化 216
4.5.5 伺服装置使能与启动 217
4.6 从站初始化程序示例 218
4.6.1 参数加载与校验 219
4.6.2 控制寄存器初始化 220
4.6.3 双端口RAM区初始化 222
4.6.4 通讯初始化 223
4.7 周期性数据传输 228
4.7.1 主站周期性数据传输 228
4.7.2 从站周期性数据传输 228
第5章 基于WDM的SERCOS主站驱动程序设计 229
5.1 WDM驱动程序概述 229
5.1.1 运行机制 230
5.1.2 基本框架函数 232
5.1.2.1 驱动程序初始化例程DriverEntry 233
5.1.2.2 设备对象初始化例程AddDevice 234
5.1.2.3 即插即用PnP消息分发例程DispatchPnp 237
5.1.2.4 电源管理消息分发例程DispatchPower 239
5.1.2.5 驱动程序卸载例程Unload 240
5.1.3 与外界的通讯方式 240
5.1.3.1 与应用程序的通讯方式 241
5.1.3.2 与其他驱动程序的通讯方式 244
5.1.4 安装与卸载 244
5.2.1 设备扩展域 245
5.2 重要的数据结构和变量定义 245
5.2.2 服务请求包 246
5.2.3 全局变量 247
5.3 核心态SERCOS主站驱动程序设计 247
5.3.1 申请SERCOS设备内存和中断请求号IRQ 248
5.3.2 映射SERCOS设备内存和挂接中断服务程序 251
5.3.3 解除SERCOS设备内存映射和断开中断服务程序 259
5.4 用户态初始化程序设计 260
5.4.1 映射SERCOS设备内存 260
5.4.2 解除SERCOS设备内存映射 264
6.1.1 SRC-HARD卡的组成 266
6.1 硬件设计 266
第6章 ISA总线SERCOS主站固化协议卡设计 266
6.1.2 资源配置 267
6.1.3 性能指标 268
6.2 精简协议指令与固化程序设计 269
6.2.1 DPRAM的分区 269
6.2.2 工作时序 275
6.2.3 固化程序设计 276
6.2.4 上位PC计算机控制程序设计 277
附录 SERCOS协议参数表 278
参考文献 290