
树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,由英国的慈善组织“Raspberry Pi 基金会”开发,是为学生计算机编程教育而设计,别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。
网站服务树莓派在2006年树莓派早期概念是基于Atmel的 ATmega644单片机,2012年3月,英国剑桥大学埃本·阿普顿(Eben Epton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名"树莓派"。
2015年2月,树莓派基金会发布了第二代产品——树莓派2,售价35美元。树莓派2采用4核Broadcom BCM2836 (ARMv7-A)芯片、双核VideoCore IV GPU和1GB内存,其余配置与树莓派B+型一致,除了支持第一代树莓派支持的操作系统外,树莓派2将能够运行Windows 10以及Snappy Ubuntu Core。
精通Raspberry Pi
《精通Raspberry Pi》是2015年出版的图书,作者是Warren Gay 。
精通Raspberry Pi基本信息
作者:Warren Gay 著 张龙杰,陈青华,刘勇 译
定价:79.80元
印次:1-1
ISBN:9787302418870
出版日期:2015.11.01
精通Raspberry Pi内容简介
Raspberry Pi完全参考指南催生你的项目创意! Raspberry Pi是一款优秀教学工具,如果你打算讲授Linux基础原理或Python程序设计课程,该工具将是一个良好开端。但如果你是一名电子工程师、Linux系统管理员或经验丰富的制造商,你不仅要了解基础理论和入门知识,还必须掌握Raspberry Pi的内部工作原理来完成设计。 如果你打算学习Raspberry Pi专业知识、完成电路图、详细了解硬件、报告电压和温度以及重新编译内核,那么 精通Raspberry Pi 一书无疑是你的最佳之选。本书不仅透彻阐释硬件和操作系统,还列举各种可供调整后用于实际项目的示例。
精通Raspberry Pi目录
第1章为什么学习本书? 1
1.1本书读者对象 1
1.2本书主要内容 2
1.3学习方法 2
1.4本书的组织结构 3
1.5本书中的软件 4
1.6结束语 5
第2章RaspberryPi 7
2.1型号 7
2.2共有的硬件 9
2.3选择哪一种型号? 9
第3章准备 11
3.1静态IP地址 11
3.2使用SSH 12
3.3虚拟网络计算机 13
3.3.1显示器编号 13
3.3.2几何尺寸 13
3.3.3深度 14
3.3.4像素格式 14
3.3.5密码设置 14
3.3.6服务器的启动 14
3.3.7VNC查看器 14
3.3.8停止VNC服务器 15
3.4原型站 15
3.5AdafruitPiCobbler 16
3.6Gertboard 17
3.7裸机 17
第4章电源 19
4.1计算功率 19
4.2电流需求 20
4.3外围设备电源 20
4.4B型输入电源 21
4.5A型输入电源 22
4.63.3V电源 22
4.7供电的USB集线器 22
4.8电源适配器 22
4.8.1一款不合适的电源 23
4.8.2电子书适配器 23
4.8.3最好的电源 23
4.8.4电压测试 24
4.9蓄电池电源 25
4.9.1要求 25
4.9.2余量 25
4.9.3LM7805调节 25
4.9.4DC-DC降压变换器 26
4.10供电不足的征兆 28
4.11断电 28
第5章头带、LED和复位 29
5.1状态指示LED灯 29
5.1.1OK或ACTLED 29
5.1.2PWRLED 29
5.1.3FDXLED 30
5.1.4LNKLED 30
5.1.510M或10/100LED 30
5.2P1头 30
5.2.1安全模式 32
5.2.2逻辑电平 33
5.2.3复位时GPIO的配置 33
5.2.4单总线驱动器 33
5.3P5头 33
5.4复位 34
第6章SDRAM 37
6.1/proc/meminfo 37
6.1.1MemTotal(总存储器) 39
6.1.2MemFree(空闲存储器) 39
6.1.3Buffers(缓冲区) 40
6.1.4Cached(高速缓存的) 40
6.1.5SwapCached(交换的缓冲区) 40
6.1.6Active(活跃的存储器空间) 40
6.1.7Inactive(不活跃的存储器空间) 40
6.1.8Active(anon) 41
6.1.9Inactive(anon) 41
6.1.10Active(file) 41
6.1.11Inactive(file) 41
6.1.12Unevictable(不可回收的) 42
6.1.13Mlocked(被锁定的) 42
6.1.14SwapTotal(交换的总数) 42
6.1.15SwapFree(自由交换的数量) 42
6.1.16Dirty 42
6.1.17Writeback 43
6.1.18AnonPages 43
6.1.19Mapped 43
6.1.20Shmem 43
6.1.21Slab 43
6.1.22SReclaimable 44
6.1.23SUnreclaim 44
6.1.24KernelStack 44
6.1.25PageTables 44
6.1.26NFS_Unstable 44
6.1.27Bounce 45
6.1.28WritebackTmp 45
6.1.29CommitLimit 45
6.1.30Committed_AS 46
6.1.31VmallocTotal 47
6.1.32VmallocUsed 47
6.1.33VmallocChunk 47
6.2物理存储器 47
6.3存储器映射 48
6.3.1地址 50
6.3.2长度 50
6.3.3保护 50
6.3.4标志 50
6.3.5文件描述符 50
6.3.6偏移 51
6.3.7返回值 51
6.3.8volatile关键字 51
6.4虚拟存储器 52
6.5关于SDRAM的最后一点看法 52
第7章CPU 53
7.1鉴别 53
7.2超频 54
7.3执行 56
7.4线程 57
7.4.1pthread头文件 57
7.4.2pthread错误处理 57
7.4.3pthread_create(3) 58
7.4.4pthread_attr_t 59
7.4.5pthread_join(3) 60
7.4.6pthread_detach(3) 61
7.4.7pthread_self(3) 62
7.4.8pthread_kill(3) 62
7.5mutex 63
7.5.1pthread_mutex_create(3) 63
7.5.2pthread_mutex_destroy(3) 63
7.5.3pthread_mutex_lock(3) 64
7.5.4pthread_mutex_unlock(3) 64
7.6条件变量 65
7.6.1pthread_cond_init(3) 66
7.6.2pthread_cond_destroy(3) 67
7.6.3pthread_cond_wait(3) 67
7.6.4pthread_cond_signal(3) 68
7.6.5pthread_cond_broadcast(3) 68
第8章USB 69
8.1电源 70
8.2供电集线器 70
8.3USBAPI支持 71
8.3.1libusb 71
8.3.2Include文件 71
第9章以太网 75
9.1有线以太网 75
9.1.1/etc/network/interfaces 76
9.1.2改变到静态IP 76
9.1.3测试静态IP地址 77
9.1.4USB适配器 78
9.1.5/etc/hosts文件 78
9.2无线以太网 78
第10章SD卡存储 83
10.1SD卡媒介 83
10.2SD卡接口 83
10.3SD卡基础 84
10.4Raspbian区块尺寸 84
10.5容量和性能 86
10.6传送模式 86
10.6.1SPI总线模式 86
10.6.21位SD模式 87
10.6.34位SD模式 88
10.7耗损均衡 88
第11章UART 91
11.1RS-232转换器 91
11.2RS-232 93
11.2.1起始位 93
11.2.2数据位 94
11.2.3奇偶位 94
11.2.4停止位 94
11.2.5波特率 95
11.2.6中断 96
11.2.7流控制 96
11.3RaspberryPiUART 98
11.4ARMPL011UART 98
11.4.1RTS/CTS访问 98
11.4.2PL011UART特性 99
11.5独占串行线路的使用 100
11.5.1步骤 100
11.5.2验证 101
11.6串行API 101
11.6.1头文件 101
11.6.2open(2) 101
11.6.3结构体termios 102
11.6.4tcgetattr(3) 104
11.6.5tcsetattr(3) 105
11.6.6tcsendbreak(3) 105
11.6.7tcdrain(3) 106
11.6.8tcflush(3) 106
11.6.9tcflow(3) 107
11.6.10cfmakeraw(3) 107
11.6.11cfgetispeed(3) 110
11.6.12cfgetospeed(3) 110
11.6.13cfsetispeed(3) 111
11.6.14cfsetospeed(3) 111
11.6.15cfsetspeed(3) 111
11.6.16read(2) 112
11.6.17write(2) 113
11.6.18readv(2)和writev(2) 114
11.6.19EINTR错误 115
第12章GPIO 117
12.1引脚和名称 117
12.2复位后的配置 118
12.3上拉电阻 120
12.3.1配置上拉电阻 120
12.3.2测试上拉状态 124
12.4逻辑电平 125
12.5驱动能力 125
12.5.1输入引脚 126
12.5.2输出引脚 126
12.5.3驱动LED 128
12.5.4测试驱动能力 130
12.6GPIO电流预算 132
12.7配置 132
12.7.1交替功能选择 132
12.7.2输出引脚 133
12.7.3输入引脚 133
12.7.4交替功能 133
12.8SysfsGPIO访问 134
12.8.1export 134
12.8.2unexport 135
12.8.3gpioX 135
12.8.4芯片级 137
12.9GPIO测试器 137
12.10GPIO输入测试 138
12.11可能的波动 140
12.12读取事件 140
12.13直接寄存器访问 145
12.13.1gpio_init() 146
12.13.2gpio_config() 146
12.13.3gpio_write() 146
12.13.4gpio_read() 147
12.13.5gpio_io.c 147
12.14GPIO晶体管驱动器 149
12.14.1驱动器设计 149
12.14.2替代品 151
12.14.3电感负载 151
12.14.4驱动器小结 152
12.15GPIO实用程序 152
12.15.1显示GPIO设置 153
12.15.2读GPIO 154
12.15.3写GPIO 154
12.15.4修改驱动层 154
第13章单总线驱动器 155
13.1单总线与供电 155
13.2线上供电 155
13.3主机和从机 156
13.4协议 156
13.4.1复位 157
13.4.2数据输入/输出 157
13.5从机支持 158
13.6读取温度 158
13.6.1总线主机 160
13.6.2从机设备 160
13.6.3读取温度 162
13.7单总线GPIO引脚 162
第14章I2C总线 165
14.1I2C概述 165
14.2SDA和SCL 166
14.3多主机和仲裁 166
14.4总线信号传输 167
14.5数据位 167
14.6消息格式 168
14.7哪些I2C总线? 169
14.8I2C总线速度 169
14.9工具 170
14.10I2CAPI 170
14.10.1内核模块支持 170
14.10.2头文件 171
14.10.3open(2) 171
14.10.4ioctl(2,I2C_FUNC) 172
14.10.5ioctl(2,I2C_RDWR) 172
第15章SPI总线 175
15.1SPI基础 175
15.2SPI模式 176
15.3信号传输 176
15.4从机选择 177
15.5驱动支持 178
15.6SPIAPI 179
15.6.1头文件 179
15.6.2打开设备 180
15.6.3SPI模式宏 180
15.6.4字的每一位 181
15.6.5时钟频率 182
15.6.6数据输入/输出 182
15.6.7关闭 185
15.6.8写 185
15.6.9读 185
15.7SPI测试 185
第16章引导 189
16.1引导ARMLinux 189
16.2启动顺序 190
16.3引导文件 190
16.4config.txt 191
16.4.1复合视频设置 191
16.4.2高精度视频 192
16.4.3过扫描视频 198
16.4.4帧缓冲器设置 198
16.4.5通用视频选项 199
16.4.6授权的多媒体数字编解码器 200
16.4.7测试 200
16.4.8存储器 200
16.4.9启动引导选项 201
16.4.10超频 205
16.4.11保单与超频 206
16.4.12电压设置 210
16.5cmdline.txt 212
16.5.1Serialconsole= 213
16.5.2Virtualconsole= 214
16.5.3kgdboc= 214
16.5.4root= 214
16.5.5rootfstype= 215
16.5.6elevator= 215
16.5.7rootwait= 215
16.5.8nfsroot= 216
16.5.9ip= 217
16.6应急内核 217
第17章初始化 219
17.1运行等级 219
17.2/etc/inittab 220
17.2.1inittab的行为initdefault 220
17.2.2常规启动顺序 221
17.2.3inittab的行为wait 223
17.2.4inittab的行为once 223
17.2.5inittab的行为respawn 224
17.3改变运行等级 224
17.3.1telinit 224
17.3.2运行等级的修改 225
17.3.3单用户模式 225
17.3.4关机和重启 225
17.4创建新的服务 225
第18章vcgencmd 227
18.1vcgencmd命令 227
18.2选项measure_clock 228
18.3选项measure_volts 229
18.4选项measure_temp 230
18.5选项codec_enabled 230
18.6选项version 231
18.7选项get_lcd_info 231
18.8选项get_config 231
第19章Linux控制台 233
19.1可用的控制台 233
19.2串行控制台 234
第20章交叉编译 235
20.1术语 235
20.2操作系统 236
20.3宿主、客户、本地和目标 236
20.3.1平台的限制 237
20.3.2没有VirtualBox(本机) 237
20.3.3使用VirtualBox(Ubuntu/Linux) 237
20.4规划你的交叉开发环境 237
20.5构建交叉编译环境 238
20.5.1下载crosstool-NG 238
20.5.2暂存目录 239
20.5.3解压源码文件(tarball) 239
20.5.4创建/opt/x-tools目录 239
20.5.5安装软件包依赖 239
20.5.6配置crosstool-NG(源代码安装的第一步) 240
20.6编译crosstool-ng 240
20.7将程序安装至系统中 240
20.8路径 240
20.9交叉编译配置 241
20.9.1路径和其他选项 241
20.9.2目标选项 243
20.9.3操作系统 243
20.9.4二进制实用程序 244
20.9.5C语言编译器 244
20.9.6保存配置 245
20.10构建交叉编译器 246
第21章交叉编译内核 249
21.1镜像工具 249
21.2下载内核 250
21.3编辑Makefile 251
21.4makemrproper指令 252
21.5内核配置 252
21.6makemenuconfig指令(图形化的内核配置) 253
21.7make指令 253
21.8准备内核镜像 253
21.9安装内核镜像 254
21.10模块 255
21.11固件 256
21.12SD卡VirtualBox(虚拟机)的安装 257
第22章DHT11传感器 259
22.1特征 259
22.2电路 260
22.3协议 260
22.3.1通用协议 260
22.3.2数据位数 261
22.3.3数据格式 261
22.3.4软件 262
22.3.5选择的方法 263
22.4运行示例 264
22.5源代码 265
第23章MCP23017GPIO扩展器 271
23.1DC特征 271
23.1.1GPIO输出电流 272
23.1.2GPIO输入 272
23.1.3待机电流 273
23.1.4输入逻辑电平 273
23.1.5输出逻辑电平 273
23.2复位时序 274
23.3电路 274
23.4I2C总线 275
23.5接线和测试 275
23.6软件配置 277
23.7主程序 283
23.8i2c_funcs.c模块 288
23.9sysgpio.c模块 291
23.10运行示例 294
23.11响应时间 296
第24章Nunchuk手柄 299
24.1项目概况 299
24.2Nunchuk手柄的特点 299
24.3连接器引脚输出 300
24.4测试连接 301
24.5NunchukI2C协议 302
24.5.1加密 302
24.5.2读取传感器的数据 302
24.6Linuxuinput界面 303
24.6.1使用头文件 304
24.6.2打开设备节点 304
24.6.3配置事件 304
24.6.4创建节点 308
24.6.5发布EV_KEY事件 309
24.6.6发布EV_REL事件 310
24.6.7发布EV_SYN事件 310
24.6.8关闭uinput 311
24.7X-Windows(图形用户界面) 311
24.8输入实用程序 312
24.9测试Nunchuk 312
24.9.1测试./Nunchuk 313
24.9.2Lsinput实用程序 314
24.9.3input-events实用程序 314
24.10程序 315
第25章实时时钟 325
25.1DS1307概述 325
25.1.1X1和X2引脚 326
25.1.2SQW/OUT引脚 326
25.2电源 327
25.33伏特兼容性 328
25.4微小的RTC修改 328
25.5DS1307总线速度 331
25.6RTC和RAM地址映射 331
25.7阅读日期和时间 332
25.8I2C通信 333
25.9接线 334
25.10运行示例 334
25.11最终测试 335
25.12启动脚本 335
第26章VS1838B红外接收器 345
26.1操作参数 345
26.2VS1838B电路 346
26.3软件 347
26.3.1信号元件 348
26.3.2组织机构代码 349
26.3.3命令行选项 349
第27章步进电机 363
27.1软盘步进电机 363
27.2驱动器电路 365
27.3驱动驱动器 368
27.3.1输入电平 368
27.3.2复位/启动电源 369
27.4操作模式 370
27.4.1波驱动(0模式) 370
27.4.2全步进驱动(1模式) 370
27.4.3半步进驱动(2模式) 370
27.5软件 371
第28章H桥驱动器 381
28.1L298驱动器 381
28.1.1传感电阻 382
28.1.2使能A和B 382
28.1.3In1和In2输入 382
28.1.4保护二极管 382
28.2L298PCB 383
28.3从GPIO驱动 384
28.4双极步进模式 386
28.4.1单相波模式 386
28.4.2双相波模式 386
28.4.3半步模式 387
28.5选择驱动GPIO 388
28.6项目示意图 388
28.7程序运行 389
第29章远程控制面板 399
29.1切换输入 399
29.2CD4013 400
29.3触发器测试 401
29.4LED灯 402
29.5?MQ 402
29.5.1执行安装 402
29.5.2编译和链接 403
29.6感测站的设计 403
29.7感测站程序 404
29.8控制台程序 404
29.9传感器源代码 405
29.10控制台源代码 413
第30章脉冲宽度调制 419
30.1PWM介绍 419
30.2PWM参数 420
30.3PWM硬件外设 420
30.4PWM软件 420
30.5仪表电路 420
30.6pwm程序 421
30.6.1PWM硬件设置命令 423
30.6.2基于硬件显示CPU使用百分比(率) 424
30.6.3PWM程序软件 430
30.6.4有多少PWM? 432
30.6.5运行PWM软件命令 433
30.6.6基于软件显示CPU使用百分比 433
附录A术语表 437
附录B电源标准 443
附录C电子学参考 445
附录DRaspbianapt命令 447
附录EARM编译选项 451
附录FMacOSX技巧 453
参考文献 455