嵌入式产品分析与设计
2013-10
电子工业出版社
无
本书的特点在于鼓励读者亲自动手做,从嵌入式工程的实际需要出发,全面结合了当代嵌入式系统项目开发所必须掌握的要素。这些要素是项目开发不可缺少的组成部分。由于本书以具体项目为主线,使读者有一种融会贯通的感觉。这些基本要素包括了软件和硬件领域最先进的开发思想和方法。当今的嵌入式系统复杂性和以往的单片机是不可比拟的,因此,必须借鉴现代软件工程的方法,使项目的开发可以由多人分工合作完成,从而在最短的时间做出产品,快速占领市场。
目录
前言
第1章 把好两头是关键——输入与输出基础知识 1
1.1 输出 2
1.1.1 最简单的I/O输出 2
1.1.2 感性负载对I/O输出的影响 3
1.1.3 隔离输出 4
1.1.4 输出电压匹配 6
1.2 输入 7
1.2.1 输入上拉电阻的确定 7
1.2.2 模拟输入的问题 9
1.2.3 模拟输入的等效网络 10
1.2.4 模拟小信号处理 11
第2章 最简单的例子——足疗机控制器设计 14
2.1 功能需求分析 15
2.1.1 人机输入分析 15
2.1.2 运行模式分析 16
2.1.3 电路板组成部分分析 18
2.1.4 足疗控制器功能划分 21
2.2 基于成本约束的控制电路板原理图设计 21
2.2.1 成本控制相关的考虑 21
2.2.2 CPU控制板的设计 22
2.3 CPU控制板的PCB设计 23
2.3.1 PCB及贴片的成本考虑 23
2.3.2 焊接要求 24
2.4 价格成本核算 25
2.5 控制器开关电源设计 27
2.5.1 线性电源的设计 27
2.5.2 开关电源设计基本原理 28
2.5.3 用PI Expert设计足疗机的开关电源变压器 31
2.5.4 开关变压器的设计 38
2.5.5 控制集成电路部分 41
2.5.6 开关电源的PCB设计 45
2.6 控制器其他部分设计 46
2.7 给PCB代工厂提交的资料 49
2.8 足疗机软件设计 52
2.8.1 红外通信设计 53
2.8.2 PWM产生 57
2.8.3 定时扫描显示 58
2.8.4 键盘处理程序 62
2.8.5 间断运行模式程序 63
2.8.6 定位程序 65
2.8.7 主控子程序 66
2.8.8 主控程序 71
第3章 更进一步——乒乓发球机产品设计 75
3.1 需求分析 76
3.1.1 遥控器需求分析 77
3.1.2 主板需求分析 78
3.2 硬件功能设计和实现 80
3.2.1 落点的实现 80
3.2.2 发球个数的实现 82
3.2.3 红外接收的实现 84
3.2.4 供球电动机正反转和调速的实现 85
3.3 主控板硬件原理图设计 91
3.4 红外遥控发射硬件设计 95
3.4.1 遥控器硬件要求分析 95
3.4.2 液晶的选择 95
3.4.3 遥控器主板设计 96
3.4.4 遥控器红外发射的调制 98
3.4.5 遥控器的外观 99
3.5 软件设计规划 100
3.5.1 合理安排中断优先级 100
3.5.2 主控程序总体结构 102
第4章 质的飞跃—从单片机到ARM产品开发 111
4.1 嵌入式系统和ARM 112
4.1.1 JTAG接口 113
4.1.2 JTAG标准 113
4.1.3 JTAG硬件控制器 114
4.2 JTAG仿真器制作 115
4.2.1 ARM的调试结构 115
4.2.2 JTAG仿真环境 115
4.2.3 自制简易仿真器 116
4.2.4 JTAG仿真器硬件制作 116
4.2.5 JTAG 仿真器驱动软件 121
4.3 ADS开发套件 125
4.3.1 在ADS 1.2中使用简易JTAG仿真头调试 125
4.4 ARM启动代码和Bootloader 131
4.4.1 启动代码主要构成 132
4.4.2 启动代码实例分析 134
4.5 从ADS 1.2 到Realview MDK 141
4.5.1 工具结构的改进 141
4.5.2 分散加载文件 143
4.5.3 C库函数的差异 144
4.5.4 开发环境迁移实例 144
第5章 ARM常用外设接口 150
5.1 SPI接口 151
5.2 模块式LCD的SPI接口设计 152
5.2.1 128×64点阵显示器 152
5.2.2 模块引脚说明 153
5.2.3 模块式LCD硬件连接 155
5.2.4 模块式LCD内部存储器 156
5.2.5 SPI接口LCD显示程序 159
5.3 SPI Flash Memory编程 165
5.3.1 SPI Flash硬件接口 165
5.2.3 AT45DB041的软件接口函数 167
5.3 I2C接口 171
5.4.1 上拉电阻与传输速率 172
5.4.2 I2C总线三种信号 173
5.4.3 软件仿真I2C示例 175
5.4.4 带I2C硬件控制器的程序 180
第6章 基于STM32的室内导航家用拖地机 182
6.1 对mint5200进行拆解 184
6.2 设计方案 186
6.2.1 外观的修改 186
6.2.2 机械设计 187
6.2.3 室内导航方案的选择 188
6.2.4 导航系统方案设计 189
6.2.5 红外通信方案设计 193
6.2.6 保证直线行走的设计方案 195
6.2.7 方案的合理性分析 196
6.3 总体设计 198
6.4 硬件设计 199
6.5 软件设计 205
6.5.1 关于STM32固件库 205
6.5.2 异常信号的处理 205
6.5.3 电动机控制部分 207
6.5.4 红外和噪声波载波发生 209
6.5.5 PID电动机速度控制 211
6.5.6 MPU6050陀螺仪及姿态解算 215
6.5.7 有关清洁覆盖算法分析 217
6.5.8 规则动作库 221
6.6 拖地机产品样机 222
6.7 拖地机专利撰写举例 223
第7章 基于OS层面ARM必备知识— 嵌入式Linux文件系统 228
7.1 Linux文件系统简介 229
7.1.1 ext2和INODE 230
7.1.2 虚拟文件系统(VFS) 231
7.2 注册文件系统 234
7.3 安装文件系统 234
7.4 在虚拟文件系统中搜寻文件 236
7.5 卸载文件系统 236
7.6 /proc文件系统 236
7.7 设备特殊文件 237
7.8 常见的flash文件系统 237
7.8.1 Flash的特点 237
7.8.2 JFFS2 239
7.8.3 YAFFS文件系统 241
7.9 根文件系统 241
第8章 将设备联网—嵌入式Web Sever的实现 246
8.1 Web基础知识 247
8.1.1 HTTP协议 247
8.1.2 HTTP请求 247
8.1.3 HTTP应答 248
8.2 面向电子商务的B/S结构 249
8.3 Web Server制作网页 250
8.4 CGI工作原理 251
8.4.1 环境变量 252
8.4.2 CGI标题和GET/POST 253
8.4.4 CGI程序的开发 255
8.4.5 几种常用数据库接口 256
8.4.6 几种常用CGI及其Web开发语言 256
8.5 JavaScript脚本 258
8.5.1 JavaScript的语句及语法 260
8.5.2 JavaScript编程举例 263
8.6 Socket通信 265
8.6.1 TCP Socket编程举例 267
8.6.2 UDP Socket编程举例 272
8.6.3 HTTP请求中Client与Server的交互过程 276
8.6.4 一个简单的Web服务器例子 277
8.7 嵌入式Web服务器Boa的特点 281
8.7.1 Boa的功能实现 282
8.7.2 Boa的移植步骤 285
8.7.3 CGIC库的移植 287
8.7.4 HTML模板的制作 288
8.7.5 一个综合的Web测试实验 289
8.8 通过网络远程控制开发板上的灯 302
第9章 基于Linux的家庭网关设计 307
9.1 产品开发背景 308
9.2 功能需求 308
9.3 家庭网关设计 310
9.3.1 网络通信设计 311
9.3.2 网关软件架构 312
9.3.3 关于视频硬件设计 313
9.3.4 系统整体的硬件设计 313
9.3.5 家庭网关系统包含的软件 314
9.4 硬件平台设计 316
9.5 嵌入式Web开发概述 318
9.5.1 Mizi Linux 318
9.5.2 Boa小型Web服务器 318
9.5.3 SQLite轻型数据库 319
9.5.4 网关的软件平台构造 319
9.6 软件环境搭建步骤 320
9.6.1 烧写Mizi Linux 320
9.6.2 搭建交叉编译环境 320
9.6.3 Boa移植 320
9.6.4 SQLite移植 322
9.6.5 SQLite使用方法与常用命令 323
9.6.6 建立数据库 324
9.7 CGI程序设计与实现 327
9.7.1 CGI与客户端的通信机制 327
9.7.2 程序中读写SQLite数据库 331
9.7.3 RS-485串口读写 334
9.7.4 指令格式定义 338
9.7.5 CGI脚本举例 341
9.8 前台网页设计与实现 343
9.8.1 HTML简介 343
9.8.2 CSS简介 345
9.8.3 JavaScript简介 348
9.8.4 Ajax技术 351
9.9 网关使用说明书 356
9.9.1 产品概述 356
9.9.2 用户登录 357
9.9.3 主界面 357
9.9.4 家电控制 358
9.9.5 系统设置 361
9.10 家庭网关产品的知识产权保护问题 366
参考文献 372
无