| 作者 |
| [美]凯文·M. 林奇(Kevin M. Lynch) 尼古拉斯·马丘克(Nicholas Marchuk) 马修·L. 艾尔文(Matthew L. Elwin)王贞炎 |
| 丛书名 |
| 电子电气工程师技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781911041718 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------嵌入式计算与机电一体化技术:基于PIC32微控制器--------------------------- 本书是美国西北大学机电一体化系列课程的教材,选择PIC32MX795F512H微控制器 + NU32开发板,基础知识部分重点讲解PIC32的硬件、C语言编程以及与传感器和执行机构的接口,应用部分关注机电一体化技术,包括传感器、传动装置和电机的选择等。各章节全面融合PIC32参考手册、数据表、XC32 C编译器用户指南、Harmony帮助文档等内容,并配有丰富的教辅资源,适合PIC32初学者、Arduino爱好者以及对传感器和嵌入式控制感兴趣的技术人员阅读。 ---------------------------FPGA应用开发和仿真--------------------------- 从现代FPGA设计相关的数字电路基础和Verilog硬件描述语言开始,结合笔者多年的教学和实践经验,本书详细讲述了VerilogHDL及其仿真,业内常用IO规范和各种总线,数字逻辑在数字信号处理、数字通信和控制方向的典型功能单元,FPGA的常规结构,静态时序分析等。 |
| 目录 |
---------------------------嵌入式计算与机电一体化技术:基于PIC32微控制器--------------------------- 前 言 第一部分 快速入门 第1章 快速入门 2 1.1 编程资源 2 1.2 编译bootloader程序 5 1.3 编译第一个程序 6 1.4 加载第一个程序 7 1.5 使用make命令 8 1.6 小结 12 延伸阅读 12 第二部分 基础知识 第2章 硬件 14 2.1 PIC32微控制器 14 2.2 NU32开发板 23 2.3 小结 26 2.4 练习题 26 延伸阅读 28 第3章 软件 29 3.1 虚拟内存映射 29 3.2 示例:simplePIC.c 30 3.3 编译过程 31 3.4 PIC32复位过程 33 3.5 理解simplePIC.c 34 3.6 引导加载程序与独立程序 43 3.7 编译小结 44 3.8 实用命令行工具 46 3.9 小结 47 3.10 练习题 47 延伸阅读 48 第4章 函数库 49 4.1 创建talkingPIC 50 4.2 NU32函数库 51 4.3 引导加载程序 52 4.4 LCD函数库 53 4.5 Microchip函数库 55 4.6 自定义函数库 56 4.7 小结 56 4.8 练习题 57 延伸阅读 57 第5章 执行时间和存储空间 58 5.1 编译器优化 58 5.2 执行时间和反汇编文件 59 5.3 存储空间和映射文件 66 5.4 小结 70 5.5 练习题 71 延伸阅读 75 第6章 中断 76 6.1 概述 76 6.2 详述 77 6.3 配置和使用中断的步骤 84 6.4 示例代码 85 6.5 小结 92 6.6 练习题 93 延伸阅读 95 第三部分 外设参考 第7章 数字输入和输出 98 7.1 概述 98 7.2 详述 100 7.3 示例代码 102 7.4 小结 103 7.5 练习题 104 延伸阅读 104 第8章 计数器/定时器 105 8.1 概述 105 8.2 详述 107 8.3 示例代码 110 8.4 小结 113 8.5 练习题 113 延伸阅读 113 第9章 输出比较 114 9.1 概述 114 9.2 详述 115 9.3 示例代码 118 9.4 小结 121 9.5 练习题 121 延伸阅读 123 第10章 模拟输入 124 10.1 概述 124 10.2 详述 127 10.3 示例代码 130 10.4 小结 135 10.5 练习题 136 延伸阅读 136 第11章 UART 137 11.1 概述 137 11.2 详述 139 11.3 示例代码 141 11.4 使用XBee模块进行无线通信 152 11.5 小结 152 11.6 练习题 153 延伸阅读 153 第12章 SPI通信 154 12.1 概述 154 12.2 详述 155 12.3 示例代码 158 12.4 小结 165 12.5 练习题 166 延伸阅读 166 第13章 I2C通信 167 13.1 概述 167 13.2 详述 169 13.3 示例代码 171 13.4 小结 186 13.5 练习题 186 延伸阅读 186 第14章 并行主端口 187 14.1 概述 187 14.2 详述 188 14.3 示例代码 189 14.4 小结 194 14.5 练习题 194 延伸阅读 194 第15章 输入捕获 195 15.1 概述 195 15.2 详述 196 15.3 示例代码 197 15.4 小结 199 15.5 练习题 199 延伸阅读 199 第16章 比较器 200 16.1 概述 200 16.2 详述 200 16.3 示例代码 202 16.4 小结 204 16.5 练习题 204 延伸阅读 204 第17章 休眠、空闲和看门狗定时器 205 17.1 概述 205 17.2 详述 206 17.3 示例代码 207 17.4 小结 209 17.5 练习题 209 延伸阅读 209 第18章 闪速存储器 210 18.1 概述 210 18.2 详述 211 18.3 示例代码 212 18.4 小结 217 18.5 练习题 217 延伸阅读 217 第19章 控制器局域网络 218 19.1 概述 218 19.2 详述 220 19.3 示例代码 228 19.4 小结 232 19.5 练习题 233 延伸阅读 233 第20章 Harmony模块及其USB接口应用 234 20.1 概述 234 20.2 框架 235 20.3 PLIB函数库 237 20.4 Harmony概念 239 20.5 驱动程序 240 20.6 系统服务程序 251 20.7 程序结构 255 20.8 USB 260 20.9 小结 277 20.10 练习题 277 延伸阅读 277 第四部分 机电一体化应用 第21章 传感器 280 21.1 接触传感器:按钮和开关 280 21.2 光敏传感器 281 21.3 转动关节的角度 284 21.4 移动关节的位置 288 21.5 加速度和角速度:陀螺仪、加速度计和惯性测量装置 289 21.6 磁场感应:霍尔效应传感器 291 21.7 距离 292 21.8 压力 293 21.9 温度 294 21.10 电流 295 21.11 GPS 296 21.12 练习题 296 延伸阅读 297 第22章 数字信号处理 298 22.1 采样信号和混叠 298 22.2 离散傅里叶变换 300 22.3 有限脉冲响应数字滤波器 306 22.4 无限脉冲响应数字滤波器 319 22.5 基于FFT的滤波器 320 22.6 PIC32的DSP函数库 322 22.7 练习题 330 延伸阅读 331 第23章 PID反馈控制 332 23.1 PID控制器 333 23.2 PID控制器的变体 335 23.3 增益调节的经验方法 336 23.4 基于模型的控制 337 23.5 小结 338 23.6 练习题 339 延伸阅读 340 第24章 LED亮度的反馈控制 341 24.1 电路的接线和测试 342 24.2 通过OC1为LED供电 343 24.3 生成开环PWM波形 343 24.4 与MATLAB建立通信 344 24.5 在MATLAB中利用数据绘图 344 24.6 写入LCD屏幕 348 24.7 读取ADC 348 24.8 PI控制 348 24.9 其他特性 349 24.10 小结 349 24.11 练习题 349 第25章 有刷永磁直流电机 350 25.1 电机的物理知识 350 25.2 控制方程 354 25.3 速度-转矩曲线 355 25.4 摩擦力和电机效率 358 25.5 电机绕组和电机常数 360 25.6 其他电机特性 361 25.7 电机数据表 362 25.8 小结 365 25.9 练习题 366 延伸阅读 370 第26章 传动装置和电机选择 371 26.1 传动装置 371 26.2 电机和减速器的选择 375 26.3 小结 377 26.4 练习题 377 延伸阅读 378 第27章 直流电机控制 379 27.1 H桥和脉宽调制 379 27.2 直流电机的运动控制 387 27.3 小结 391 27.4 练习题 391 延伸阅读 393 第28章 电机控制项目 394 28.1 硬件 394 28.2 软件概述 395 28.3 软件开发技巧 400 28.4 基本步骤 403 28.5 扩展设计 419 28.6 小结 420 28.7 练习题 420 第29章 其他执行机构 421 29.1 螺线管 421 29.2 扬声器和音圈执行机构 422 29.3 RC伺服电机 423 29.4 步进电机 424 29.5 无刷直流电机 428 29.6 线性无刷电机 439 29.7 小结 439 29.8 练习题 439 延伸阅读 440 ---------------------------FPGA应用开发和仿真--------------------------- 前言 第1章 数字电路基础1 1.1 模拟电路与数字电路1 1.2 二进制相关知识3 1.2.1 二进制和其他进制3 1.2.2 进制间的相互转换4 1.2.3 二进制的四则运算5 1.3 二进制在电路中的表达6 1.3.1 有限字长和补码6 1.3.2 负数、有符号数和无符号数6 1.4 门电路和基本逻辑运算10 1.4.1 非门、与门和或门11 1.4.2 与非门和或非门12 1.4.3 异或门和同或门12 1.4.4 三种表达形式的转换13 1.4.5 基本门的电路实现14 1.4.6 三态输出和漏极开路输出15 1.4.7 波形图17 1.4.8 门电路的一些非典型应用18 1.5 逻辑代数22 1.5.1 基本定律22 1.5.2 表达式的代数化简法23 1.5.3 卡诺图化简法23 1.6 基本组合逻辑24 1.6.1 编码器和译码器24 1.6.2 未定义的输入状态26 1.6.3 数据选择器27 1.6.4 延迟和竞争冒险27 1.6.5 加法器28 1.6.6 乘法器31 1.6.7 数值比较器32 1.7 锁存器32 1.7.1 SR锁存器32 1.7.2 D锁存器33 1.8 触发器34 1.8.1 D触发器、时钟和使能34 1.8.2 D触发器的异步和同步复位36 1.8.3 D触发器的建立时间、保持时间和传输延迟37 1.8.4 其他触发器38 1.9 时序逻辑40 1.9.1 移位寄存器和串-并互换40 1.9.2 延迟链42 1.9.3 分频器43 1.9.4 计数器44 1.9.5 同步时序逻辑46 1.9.6 累加器48 1.10 存储器49 1.10.1 存储器容量和类型49 1.10.2 SRAM50 1.10.3 双端口SRAM54 1.10.4 同步SRAM54 1.11 小数55 1.11.1 定点小数及其范围和误差55 1.11.2 定点小数的运算56 1.11.3 浮点小数58 第2章 Verilog HDL和SystemVerilog60 2.1 硬件描述语言简介60 2.2 设计方法和流程62 2.3 标识符和关键字63 2.4 值、数和字面量63 2.4.1 整型常数64 2.4.2 浮点常数65 2.4.3 时间常数和字符串常数65 2.5 线网66 2.6 变量67 2.7 参数和常量68 2.8 类型和位宽转换70 2.9 操作符和表达式71 2.9.1 位选取操作符74 2.9.2 位拼接和流运算符74 2.9.3 按位逻辑运算符76 2.9.4 缩减运算符76 2.9.5 移位77 2.9.6 自增赋值和自减赋值77 2.9.7 条件判断相关运算符78 2.9.8 条件运算符79 2.9.9 let语句79 2.10 结构和联合80 2.11 数组82 2.12 赋值、过程和块83 2.12.1 赋值的延迟84 2.12.2 赋值的强度85 2.12.3 流程控制语句86 2.12.4 always过程88 2.12.5 阻塞和非阻塞赋值91 2.13 模块93 2.14 接口97 2.15 生成块100 2.16 任务和函数101 2.17 包102 2.18 系统任务和函数103 2.18.1 显示相关104 2.18.2 文件相关105 2.18.3 存储器相关106 2.18.4 仿真相关107 2.18.5 错误和信息107 2.18.6 类型转换和数学函数107 2.19 编译指令108 第3章 ModelSim和仿真111 3.1 仿真和测试的相关概念111 3.2 测试代码编写112 3.2.1 时钟的产生112 3.2.2 复位的产生114 3.2.3 一般输入的产生115 3.3 ModelSim软件仿真流程118 3.3.1 主界面简介118 3.3.2 创建工程119 3.3.3 向工程中添加文件121 3.3.4 开始仿真122 3.3.5 带有信号和波形的例子124 3.4 波形和格式127 第4章 Verilog基本应用130 4.1 代码风格130 4.2 常用组合逻辑单元的描述132 4.2.1 编码器和译码器132 4.2.2 数据选择器133 4.3 常用时序逻辑单元的描述133 4.3.1 移位寄存器133 4.3.2 延迟链134 4.3.3 计数器134 4.3.4 累加器136 4.4 时钟域和使能137 4.5 跨时钟域问题138 4.5.1 域外慢速跳沿138 4.5.2 域间状态传递140 4.5.3 域间事件传递142 4.5.4 域间数据传递144 4.6 存储器及其初始化144 4.6.1 各种模式的存储器描述145 4.6.2 存储器的初始化148 4.7 用存储器实现延迟链151 4.8 单时钟FIFO152 4.9 双时钟FIFO156 4.10 用户按键和数码LED157 4.10.1 用户按键处理157 4.10.2 数码LED159 4.11 PWM和死区161 4.11.1 单端PWM161 4.11.2 差分PWM162 4.11.3 死区165 4.12 正交增量编码器接口166 4.13 有限状态机170 4.13.1 秒表例子171 4.13.2 数字示波器触发采样例子175 第5章 IO规范与外部总线182 5.1 单端信号和地182 5.2 传输线与端接184 5.3 差分信号185 5.4 高速串行接口188 5.5 UART189 5.5.1 UART规范介绍189 5.5.2 发送器的设计190 5.5.3 接收器的设计193 5.5.4 UART收发仿真195 5.6 SPI197 5.6.1 SPI规范介绍197 5.6.2 通用SPI主机设计199 5.6.3 通用SPI从机设计202 5.6.4 通用SPI主从机仿真205 5.7 I2C207 5.7.1 I2C规范介绍207 5.7.2 通用I2C主机设计211 5.7.3 通用I2C从机设计219 5.7.4 通用I2C主从机仿真224 5.8 I2S227 5.8.1 I2S接口介绍227 5.8.2 I2S收发器设计和仿真229 第6章 片上系统的内部互连232 6.1 简单存储器映射接口232 6.1.1 从接口233 6.1.2 与主机互连238 6.1.3 主接口与仿真241 6.2 流水线与流式数据245 6.3 等待、延迟和握手248 6.3.1 等待和延迟248 6.3.2 握手248 6.4 AXI4-Lite接口250 6.4.1 AXI4-Lite接口介绍250 6.4.2 从机范例252 6.4.3 主机范例255 6.4.4 主从机仿真256 6.5 AXI4接口257 6.6 AXI4-Stream接口263 6.6.1 AXI4-Stream接口介绍263 6.6.2 范例和仿真263 第7章 数字信号处理应用268 7.1 基础知识简介268 7.1.1 信号、系统和传输函数268 7.1.2 基本元件的传输函数270 7.1.3 采样率和采样定律270 7.1.4 离散量化信号的信噪比272 7.2 数值计算273 7.2.1 乘法273 7.2.2 除法275 7.2.3 平方根277 7.2.4 定点小数279 7.3 数字频率合成281 7.3.1 DDS282 7.3.2 坐标旋转机285 7.4 FIR滤波器290 7.5 IIR滤波器293 7.6 采样率变换297 7.6.1 升采样297 7.6.2 降采样298 7.6.3 插零和抽取器299 7.6.4 CIC滤波器300 7.6.5 采样率变换范例304 7.7 快速傅里叶变换308 7.7.1 多周期实现311 7.7.2 流水线实现319 7.8 PID控制器324 第8章 数字通信应用329 8.1 线性反馈移位寄存器329 8.2 循环冗余校验331 8.3 基带编解码333 8.4 基带通道的范例和仿真336 8.5 混频和相干解调339 8.6 AM和ASK340 8.6.1 调制340 8.6.2 解调341 8.6.3 调制解调仿真344 8.7 PM和PSK346 8.7.1 调制346 8.7.2 解调348 8.7.3 调制解调仿真349 8.8 FM和FSK351 8.8.1 调制351 8.8.2 解调353 8.8.3 调制解调仿真354 8.9 QPSK和QAM356 8.9.1 QAM调制357 8.9.2 QAM解调360 8.9.3 位同步和判决361 8.9.4 调制解调仿真363 8.10 载波同步和数字锁相环366 8.10.1 数字锁相环恢复载波367 8.10.2 QAM载波恢复仿真369 附录A SystemVerilog关键字373 附录B 全书模块依赖关系377 |