
| 基于Cortex-M4 Kinetis微控制器讲述嵌入式系统 深入分析学习嵌入式系统的误区,给出正确的学习方法 配有网上光盘,内含底层驱动构件源程序、测试实例如、辅助阅读材料、教学课件、相关芯片资料及常用工具 |
| 《嵌入式系统原理与实践:arm cortex-m4 kinetis微控制器》 第1章 概 述1 1.1 嵌入式系统定义、由来及特点1 1.1.1 嵌入式系统的定义1 1.1.2 嵌入式系统的由来及其与微控制器的关系2 1.1.3 嵌入式系统的特点3 1.2 嵌入式系统的知识体系、学习误区及学习建议4 1.2.1 嵌入式系统的知识体系4 1.2.2 嵌入式系统的学习误区5 1.2.3 基础阶段的学习建议7 1.2.4 嵌入式系统开发所遇到的若干问题8 1.3 嵌入式硬件构件的基本思想与应用方法9 1.4 基于硬件构件的嵌入式系统硬件电路设计9 1.4.1 设计时需要考虑的基本问题9 1.4.2 硬件构件化电路原理图绘制的简明规则11 1.4.3 实验pcb板设计的简明规则13 1.5 基于硬件构件的嵌入式底层软件构件的编程方法16 1.5.1 嵌入式硬件构件和软件构件的层次模型16 1.5.2 底层构件的实现方法与编程思想17 1.5.3 硬件构件及底层软件构件的重用与移植方法18 .1.6 嵌入式系统的常用术语19 1.6.1 与硬件相关的术语19 1.6.2 与通信相关的术语21 1.6.3 与功能模块及软件相关的术语21 1.7 本章小结22 习题23 第2章 kinetis微控制器概述与k60硬件最小系统24 2.1 学习一个新mcu芯片的基本要素24 2.2 arm背景知识简介25 2.2.1 arm简介25 2.2.2 cortex-m4处理器特性简介28 2.3 kinetis系列微控制器概述及型号标识29 2.3.1 kinetis系列微控制器概述29 2.3.2 kinetis系列微控制器型号标识31 2.4 k60系列微控制器的存储器映像与编程结构31 2.4.1 k60系列mcu性能概述与内部结构简图31 2.4.2 k60系列存储器映像33 2.5 k60的引脚功能与硬件最小系统34 2.5.1 k60的引脚功能35 2.5.2 k60的硬件最小系统原理图37 2.5.3 kinetis器写入器与k60核心板39 2.5.4 硬件最小系统测试方法40 2.6 arm cortex-m4的寄存器及指令简介41 2.6.1 arm cortex-m4的寄存器简介41 2.6.2 arm cortex-m4的指令系统简介43 2.7 本章小结44 习题44 第3章 第一个样例程序及工程组织45 3.1 gpio模块的驱动构件设计45 3.1.1 gpio的基础知识45 3.1.2 gpio模块概要与编程要点46 3.1.3 gpio驱动构件设计48 3.2 codewarrior开发环境简介54 3.3 嵌入式设计编码基本规范55 3.3.1 硬件驱动构件文件56 3.3.2 数据类型56 3.3.3 函数57 3.3.4 源码文件夹结构58 3.4 第一个c语言工程:控制小灯闪烁59 3.4.1 light构件设计59 3.4.2 light构件测试工程主程序62 3.4.3 在cw环境下导入样例工程63 3.5 理解第一个c工程63 3.5.1 cw开发环境下工程文件组织框架64 3.5.2 文件说明65 3.5.3 芯片上电启动执行过程72 3.6 在cw环境下创建一个新的工程72 3.7 本章小结73 习题74 第4章 异步串行通信75 4.1 异步串行通信的基础知识75 4.1.1 基本概念75 4.1.2 rs-232c总线标准77 4.1.3 电平转换电路原理78 4.2 uart模块功能概述79 4.3 uart模块的编程结构80 4.4 uart模块的底层驱动构件设计85 4.4.1 uart构件的函数原型设计85 4.4.2 uart构件的头文件(hw_uart.h)85 4.4.3 uart构件的源程序文件(hw_uart.c)88 4.5 以查询方式接收的uart模块测试实例92 4.6 以中断方式接收的uart模块测试实例94 4.7 本章小结96 习题97 第5章 gpio的应用实例:键盘、led与lcd98 5.1 键盘模块的驱动构件设计98 5.1.1 键盘模型及接口98 5.1.2 键盘驱动构件设计100 5.1.3 键盘驱动构件测试实例107 5.2 led模块的驱动构件设计109 5.2.1 led的基础知识109 5.2.2 led驱动构件设计110 5.2.3 led驱动构件测试实例113 5.3 lcd模块的驱动构件设计115 5.3.1 lcd的基础知识115 5.3.2 lcd驱动构件设计120 5.3.3 lcd驱动构件测试实例125 5.4 本章小结126 习题127 第6章 定时器相关模块128 6.1 计数器/定时器的基本工作原理128 6.2 可编程延迟模块pdb129 6.2.1 pdb的基础知识129 6.2.2 pdb模块概要与编程要点129 6.2.3 pdb构件设计及测试实例130 6.3 flex定时器ftm135 6.3.1 ftm的基础知识135 6.3.2 ftm模块概要与编程要点135 6.3.3 ftm构件设计及测试实例138 6.4 周期中断定时器pit142 6.4.1 pit的基础知识142 6.4.2 pit模块概要与编程要点143 6.4.3 pit构件设计及测试实例144 6.5 低功耗定时器lptmr148 6.5.1 lptmr的基础知识148 6.5.2 lptmr模块概要与编程要点148 6.5.3 lptmr构件设计及测试实例148 6.6 载波调制发射器(cmt)155 6.6.1 cmt的基础知识155 6.6.2 cmt模块概要与编程要点156 6.6.3 cmt构件设计及测试实例157 6.7 实时时钟160 6.7.1 rtc基础知识160 6.7.2 rtc模块概要与编程要点161 6.7.3 rtc构件设计及测试实例162 6.8 本章小结166 习题167 第7章 a/d、d/a、cmp和tsi模块168 7.1 16位a/d转换模块的驱动构件设计168 7.1.1 a/d转换的基础知识168 7.1.2 a/d转换常用传感器简介169 7.1.3 a/d转换模块概要与编程要点170 7.1.4 a/d转换驱动构件设计171 7.1.5 a/d转换驱动构件测试实例175 7.2 12位d/a转换模块的驱动构件设计177 7.2.1 d/a转换的基础知识177 7.2.2 d/a转换模块概要178 7.2.3 d/a转换驱动构件设计179 7.2.4 d/a转换驱动设计构件测试实例180 7.3 k60的比较器模块的驱动构件设计182 7.3.1 cmp基础知识182 7.3.2 cmp模块概要与编程要点182 7.3.3 cmp驱动构件设计184 7.3.4 cmp驱动构件测试实例187 7.4 触摸感应接口189 7.4.1 tsi基础知识189 7.4.2 tsi模块概要与编程要点190 7.4.3 tsi驱动构件设计190 7.4.4 tsi驱动构件测试实例194 7.5 本章小结196 习题197 第8章 spi、i2c与i2s198 8.1 spi模块的驱动构件设计198 8.1.1 spi基础知识198 8.1.2 k60的spi模块概要与编程要点202 8.1.3 spi驱动构件设计204 8.1.4 spi驱动构件测试实例210 8.2 i2c模块的驱动构件设计211 8.2.1 i2c基础知识211 8.2.2 k60的i2c模块概要与编程要点215 8.2.3 i2c驱动构件设计217 8.2.4 i2c驱动构件测试实例224 8.3 i2s模块的驱动构件设计227 8.3.1 i2s基础知识227 8.3.2 k60的i2s模块概要与编程要点229 8.3.3 i2s驱动构件设计232 8.3.4 i2s驱动构件测试实例235 8.4 本章小结236 习题237 第9章 flash在线编程238 9.1 flash基础知识238 9.2 flash模块概要与编程要点239 9.2.1 k60的flash模块239 9.2.2 flash存储器主要寄存器说明241 9.2.3 flash存储器编程要素243 9.3 flash在线编程驱动构件设计247 9.3.1 flash在线编程驱动构件头文件247 9.3.2 flash模块驱动构件源文件248 9.4 flash在线编程驱动构件测试实例251 9.5 flash模块保护与加密功能255 9.5.1 flash模块的保护功能255 9.5.2 flash模块的加密功能255 9.6 本章小结257 习题257 第10章 k60的can总线开发方法258 10.1 can总线基础知识258 10.1.1 can总线协议的历史概况258 10.1.2 can硬件系统的典型电路258 10.1.3 can总线的有关基本概念260 10.1.4 帧结构263 10.1.5 位时间266 10.2 flexcan模块概述与编程要点267 10.2.1 flexcan模块特征267 10.2.2 操作模式268 10.2.3 内存映射/寄存器简介269 10.2.4 报文缓冲区结构270 10.2.5 仲裁处理、匹配处理及报文缓冲区管理273 10.2.6 flexcan驱动构件设计274 10.3 can驱动构件测试实例283 10.3.1 回环测试283 10.3.2 非回环测试286 10.4 本章小结287 习题288 第11章 高容量sd存储卡sdhc289 11.1 sdhc基本概念及硬件特性289 11.1.1 sd概述289 11.1.2 sd历史与发展289 11.1.3 sd的物理特性290 11.2 sd存储卡系统概念292 11.2.1 sd总线拓扑结构292 11.2.2 总线协议293 11.3 sdhc模块基本编程方法296 11.3.1 sdhc模块功能简介296 11.3.2 sd模块编程概要298 11.4 sd读写驱动构件设计298 11.4.1 sdhc构件驱动设计299 11.4.2 diskio驱动构件设计304 11.4.3 sd卡读写测试主程序313 11.5 本章小结315 习题316 第12章 usb 2.0编程317 12.1 usb基本概念及硬件特性317 12.1.1 usb概述317 12.1.2 usb相关基本概念319 12.1.3 usb的物理特性323 12.2 usb的通信协议325 12.2.1 usb基本通信单元:包325 12.2.2 usb通信中的事务处理327 12.2.3 从设备的枚举看usb数据传输328 12.3 usb模块功能简介332 12.3.1 k60的usb模块功能简介332 12.3.2 k60的usb模块主要寄存器介绍333 12.4 k60作为usb从机的开发方法337 12.4.1 pc方usb设备驱动程序的选择及基本原理337 12.4.2 pc作为usb主机的程序设计340 12.4.3 k60作为usb从机的构件化设计341 12.4.4 k60的usb模块测试实例348 12.5 本章小结350 习题350 第13章 基于k60的嵌入式以太网351 13.1 嵌入式以太网相关基础知识351 13.1.1 以太网的由来与协议模型351 13.1.2 以太网中主要物理设备353 13.1.3 相关名词解释355 13.2 k60以太网模块概要与编程要点358 13.2.1 以太网模块引脚及硬件连接358 13.2.2 以太网物理层收发器ephy的编程基础359 13.3 以太网驱动构件设计360 13.3.1 物理层构件360 13.3.2 链路层构件363 13.4 以太网测试实例373 13.4.1 第一个构件实例:网络连接373 13.4.2 第二个测试实例:以太帧的发送和接收375 13.4.3 第三个测试实例:链路层arp协议编程378 13.4.4 第四个测试实例:使用icmp协议响应ping请求380 13.4.5 第五个测试实例:udp报文的发送和接收383 13.4.6 第六个测试实例:tcp报文的发送和接收384 13.4.7 第七个测试实例:http协议静态页面的实现388 13.5 本章小结390 习题391 第14章 系统时钟与其他功能模块392 14.1 时钟系统392 14.1.1 时钟系统概述392 14.1.2 时钟设置方法及实例代码分析395 14.2 芯片配置模块397 14.3 电源管理模块398 14.3.1 电源模式399 14.3.2 低功耗唤醒单元400 14.4 端口控制与中断模块401 14.4.1 端口控制与中断模块简介401 14.4.2 功能说明402 14.5 复位与启动模块403 14.5.1 复位403 14.5.2 启动模块404 14.6 杂项控制模块与交叉开关404 14.6.1 杂项控制模块404 14.6.2 交叉开关404 14.7 看门狗405 14.7.1 看门狗定时器405 14.7.2 外部看门狗411 14.8 本章小结411 习题412 第15章 进一步学习指导413 15.1 关于更为详细的技术资料413 15.2 关于实时操作系统rtos413 15.3 关于嵌入式系统稳定性问题414 参考文献416 |
商品评论(0条)