第1部分 STM8S系列单片机应用基础 3
第1章 STM8单片机概述 3
1.1 STM8S系列 3
1.1.1 STM8S主要特点 3
1.1.2 STM8S主要应用 4
1.2 STM8L系列 5
1.2.1 STM8L主要特点 5
1.2.2 STM8L主要应用 7
1.3 STM8A系列 7
1.3.1 STM8A主要特点 7
1.3.2 STM8A主要应用 8
1.4 STM8芯片选型 8
1.4.1 芯片选型表 8
1.4.2 STM8单片机网站 9
第2章 STM8单片机开发环境 12
2.1 STM8集成开发环境简介 12
2.1.1 STTOOLSET 12
2.1.2 COSMIC 13
2.1.3 IAR 15
2.2 STM8开发工具 16
2.3 STM8程序设计 17
2.3.1 STVD汇编语言程序设计 18
2.3.2 COSMICC语言程序设计 26
2.3.3 COSMICC语言相关说明 29
2.3.4 IARC语言程序设计 36
2.4 STM8烧录 47
2.4.1 使用STVD烧录 47
2.4.2 使用STVP烧录 49
2.5 STM8S固件库 52
2.5.1 固件库简介 52
2.5.2 压缩包描述 54
2.5.3 文档和库规范 54
2.5.4 使用举例 58
第3章 STM8S硬件基础及实验例程 62
3.1 STM8S产品概述 62
3.1.1 模块框图及功能外设 63
3.1.2 中央处理单元 66
3.1.3 FLASH程序存储器和数据EEPROM 67
3.1.4 单线接口模块和调试模块 68
3.1.5 中断控制器 69
3.1.6 选项字节 76
3.2 STM8S硬件基础 78
3.2.1 STM8S最小系统 78
3.2.2 电源电路 81
3.2.3 GPIO接口电路 81
3.2.4 ADC接口电路 81
3.2.5 串行接口电路 82
3.2.6 STM8系统可靠性设计要点 83
3.3 时钟配置 86
3.3.1 STM8S时钟树 86
3.3.2 时钟配置实现 89
3.4 GPIO应用实验 94
3.4.1 实验要求 94
3.4.2 GPIO内部结构 94
3.4.3 相关寄存器配置 96
3.4.4 参考程序 99
3.5 模/数转换器应用实验 101
3.5.1 实验要求 101
3.5.2 ADC方块图 101
3.5.3 ADC功能描述 104
3.5.4 相关寄存器配置 108
3.5.5 参考程序 114
3.6 定时器应用实验 116
3.6.1 实验要求 116
3.6.2 定时器概述 116
3.6.3 TIM1时基单元 118
3.6.4 相关寄存器配置 126
3.6.5 参考程序 135
3.7 串行接口应用实验 137
3.7.1 实验要求 137
3.7.2 UART框图 137
3.7.3 相关寄存器配置 146
3.7.4 参考程序 153
3.8 数据EEPROM存储器应用实验 155
3.8.1 实验要求 155
3.8.2 存储器组织结构 156
3.8.3 EEPROM编程模式 158
3.8.4 参考程序 160
第2部分 无刷直流电机理论基础 165
第4章 无刷直流电机概述 165
4.1 常用电机分类及结构特点 165
4.1.1 异步电动机 165
4.1.2 直流电机 167
4.1.3 步进电机 171
4.1.4 无刷直流电机 172
4.2 无刷直流电机的工作原理 174
4.2.1 三个基本定则 174
4.2.2 换相原理 177
4.2.3 工作原理 178
4.3 无刷直流电机转子位置传感器 180
4.3.1 霍尔传感器 181
4.3.2 光电编码器 182
4.4 无位置传感器的转子位置检测技术 184
4.4.1 反电动势法 185
4.4.2 其他检测方法 187
4.5 无刷直流电机的数学模型 188
4.6 无刷直流电机的运行特性 188
4.6.1 启动特性 189
4.6.2 工作特性 190
4.6.3 机械特性 190
4.6.4 调速特性 191
4.6.5 转矩转速特性 191
4.7 无刷直流电机应用 192
4.7.1 选择合适的电机参数 192
4.7.2 典型的BLDC电机应用 193
第5章 无刷直流电机控制技术 195
5.1 无刷直流电机换相控制 195
5.1.1 六步梯形换相 195
5.1.2 BLDC换相电路 197
5.1.3 有感BLDC换相控制逻辑 197
5.2 无刷直流电机调压调速策略 201
5.2.1 晶闸管移相调压 201
5.2.2 DC/DC变换器调压 202
5.2.3 PWM换相调压 202
5.3 无感BLDC的转子位置检测 205
5.3.1 无感BLDC换相 205
5.3.2 传统反电动势法 206
5.3.3 全数字反电势法 208
5.4 无感BLDC的“三段式”启动 211
5.5 PID控制原理 212
5.5.1 模拟PID控制原理 213
5.5.2 位置式PID算法 214
5.5.3 增量式PID算法 215
5.5.4 控制器参数整定 216
5.5.5 参数调整规则探索 218
5.6 无刷直流电机转速单闭环控制 218
5.6.1 转速信号的采集和处理 219
5.6.2 电机启动及转速调节策略 219
5.7 无刷直流电机转速电流双闭环控制 220
5.7.1 调节器参数工程设计方法 221
5.7.2 BLDCM双闭环系统计算实例及Simulink仿真 226
第3部分 基于STM8S的BLDG控制应用实例 233
第6章 有感无刷直流电机控制实例 233
6.1 方案设计 233
6.1.1 系统功能 233
6.1.2 整体框架设计 233
6.2 定时器的应用 234
6.2.1 高级定时器输出模式 235
6.2.2 通用定时器输入模式 251
6.3 I/O分配及选项字节配置 260
6.3.1 I/O口功能分配 261
6.3.2 选项字节配置 261
6.4 硬件电路设计 263
6.4.1 主控板电路原理及SCH设计 263
6.4.2 功率板电路原理及SCH设计 264
6.4.3 PCB设计及成品 270
6.5 软件进阶设计实例 272
6.5.1 输出PWM信号实验 272
6.5.2 电机基本运转实验 275
6.5.3 实现电机的启停和调速控制 283
6.5.4 增加人机界面程序 291
6.5.5 实现电流采集与保护 293
6.5.6 实现电机的速度闭环运转 300
第7章 无感无刷直流电机控制实例 309
7.1 基本功能需求 309
7.2 整体方案设计 309
7.3 MCU功能概述 309
7.3.1 MCU特性简介 310
7.3.2 MCU内部功能框图 311
7.3.3 MCU封装及引脚 312
7.4 I/O分配及选项字节配置 312
7.4.1 I/O分配 313
7.4.2 选项字节配置 314
7.5 硬件电路设计 315
7.5.1 整机电路 315
7.5.2 MCU系统电路 318
7.5.3 电源及电压检测电路 318
7.5.4 驱动与功率系统电路 320
7.5.5 反电动势过零点检测电路 323
7.5.6 电流检测与过流保护电路 324
7.5.7 各种接口电路 325
7.6 设计成品 325
7.7 软件进阶实例 327
7.7.1 电机延时运转 327
7.7.2 电机霍尔换相运转 332
7.7.3 反电动势换相 340
7.7.4 三段式启动设计 341
7.7.5 无感方式的电机基本运转 342
7.7.6 电机开环调速及电流采集与保护 348
7.8 无感BLDC电机监控系统 358
7.8.1 监控系统功能设计 358
7.8.2 上位机界面设计 359
7.8.3 上下位机通信设计 359
7.8.4 下位机编程思路 362
7.8.5 参考例程 363
7.8.6 功能测试 363
第4部分 基于STM8MC-KITV1.0电机控制软件的BLDG应用 367
第8章 STM8MC-KI TV1.0电机库运行原理 367
8.1 STM8MC-KITV1.0简介 367
8.1.1 STM8SMC-KITV1.0库概述 367
8.1.2 STM8S系列单片机性能描述 368
8.1.3 BLDC软件库V1.0功能 368
8.2 STM8SBLDC控制入门 369
8.2.1 BLDC电机原理入门 369
8.2.2 转子速度测量 370
8.2.3 换向延时和退磁时间 371
8.2.4 BEMF过零点检测 372
8.2.5 快速退磁 374
8.2.6 指定延时曲线系数 376
8.2.7 无感启动策略 377
8.2.8 主动制动 379
8.3 STM8MC-KIT V1.0人机接口 379
8.3.1 用户界面结构 379
8.3.2 欢迎帮助菜单 380
8.3.3 主菜单中的目标速度和测量速度 381
8.3.4 用户界面子菜单 381
8.4 STM8MC-KIT V1.0固件入门 385
8.4.1 应用状态机 385
8.4.2 库结构 386
8.4.3 低层控制 389
8.4.4 高层控制 396
8.5 定义BLDC软件库参数文件 398
8.5.1 BLDC配置文件(MC_BLDC_conf.h) 399
8.5.2 BLDC电机参数(MC_BLDC_Motor_Param.h) 399
8.5.3 BLDC驱动控制参数(MC_BLDC_Drive_Param.h) 399
8.5.4 HALL传感器参数(MC_hall_param.h) 405
8.5.5 控制级参数(MC_ControlStage_param.h) 406
8.5.6 功率级参数(MC_PowerStage_Param.h) 407
8.5.7 单片机时钟定义(MC_stm8s_clk_param.h) 410
8.5.8 单片机BLDC驱动参数(MC_stm8s_BLDC_param.h) 410
8.5.9 端口引脚定义参数(MC_stm8s_port_param.h) 412
8.5.1 0霍尔参数单片机接口(MC_stm8s_hall_param.h) 413
8.6 库函数描述 414
8.6.1 函数描述格式 414
8.6.2 高层MC模块 414
8.6.3 低层MC模块 419
第9章 基于STM8MC-KIT平台的电机库运行实现 421
9.1 开发平台简介 421
9.2 I/O分配及选项字节配置 423
9.2.1 I/O口功能分配 423
9.2.2 选项字节配置 425
9.3 主控板电路设计 425
9.3.1 核心板电路设计 426
9.3.2 底板电路设计 427
9.3.3 显示接口设计 433
9.4 功率板电路设计 433
9.4.1 电机接口电路 434
9.4.2 控制电源电路 434
9.4.3 电压检测及反电动势处理电路 435
9.4.4 驱动及功率电路 436
9.4.5 电流检测与过流保护电路 439
9.4.6 其他功能电路 440
9.5 电机库软件实现 441
9.5.1 电机库移植 441
9.5.2 霍尔传感器控制 442
9.5.3 无霍尔传感器控制 442
9.5.4 PID运算控制 442
9.5.5 运行演示 442
9.5.6 STM8电机控制库配置软件 442
第10章 电机控制系统开发调试经验谈 444
10.1 安全注意事项 444
10.1.1 确保人身安全 444
10.1.2 安全措施 446
10.2 可靠性设计经验概述 447
10.2.1 自上而下、循序渐进的设计原则 448
10.2.2 电路可靠性设计要点 449
参考文献 451