《嵌入式协议栈μCTCP-IP 基于STM32微控制器》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(加拿大)勒加雷著;邝坚等译
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2013
  • ISBN:9787512409644
  • 页数:613 页
图书介绍:本书分为两部分,主要以Micrium公司的μC/TCP-IP协议栈为参考,阐述了TCP/IP协议栈的工作原理。其中,第一部分讲解了因特网协议的基础,涵盖了μC/TCP-IP的实现及应用的多个方面;第二部分以基于ARM Cortex-M3架构的μC/Eval-STM32F107多功能开发板为基础,向读者展示了μC/TCP-IP的应用实例。配合IAR System Embedded Workbench for ARM开发工具,用户可以迅速搭建起开发环境,并以极大的便利投入到寓教于乐的学习和开发中。

第1部分 嵌入式协议栈μC/TCP-IP序言 1

前言 3

第1章 绪论 6

1.1 本书的组织结构 6

1.2 约定 6

1.3 各章节内容 7

第2章 网络简介 10

2.1 网络 10

2.2 什么是TCP/IP协议栈 12

2.3 OSI七层模型 13

2.4 TCP/IP与OSI模型的对应 15

2.5 出发点 18

2.6 第1层——物理层 19

2.7 第2层——数据链路层 19

2.8 第3层——网络层 21

2.9 第4层——传输层 23

2.10 第5~7层——应用层 23

2.11 总结 24

第3章 嵌入式TCP/IP:在实现中面临的挑战 27

3.1 评价指标 27

3.1.1 带宽 27

3.1.2 连通性 28

3.1.3 吞吐量 28

3.2 CPU 28

3.3 以太网控制器接口 29

3.3.1 零拷贝 31

3.3.2 数据校验和 32

3.3.3 占用空间 32

3.3.4 μC/TCP-IP代码占用空间 33

3.3.5 μC/TCP-IP附加选项代码占用空间 34

3.3.6 μC/TCP-IP数据占用空间 35

3.3.7 μC/TCP-IP附加选项代码空间 38

3.3.8 总结 39

第4章 LAN=以太网 41

4.1 拓扑结构 41

4.2 以太网硬件开发的注意事项 42

4.3 以太网控制器 43

4.3.1 自动协商 44

4.3.2 双工不匹配 46

4.4 以太网802.3帧格式 47

4.5 MAC地址 49

4.6 通信方式 50

4.6.1 单播 51

4.6.2 广播 51

4.6.3 组播 52

4.7 地址解析协议(ARP) 53

4.8 ARP数据包 57

4.9 总结 58

第5章 IP网络 60

5.1 协议簇 60

5.2 网际协议(IP) 63

5.3 寻址和路由 64

5.4 子网掩码 65

5.5 保留地址 66

5.6 寻址类型 67

5.6.1 单播地址 67

5.6.2 组播地址 67

5.6.3 广播地址 68

5.7 默认网关 68

5.8 IP配置 70

5.9 私有地址 71

5.10 总结 74

第6章 故障诊断 75

6.1 网络故障诊断 75

6.1.1 因特网信报控制协议(ICMP) 76

6.1.2 ping工具 78

6.1.3 Trace Route工具 80

6.2 协议和应用分析工具 84

6.2.1 网络协议分析仪 85

6.2.2 Wireshark 86

6.2.3 μC/IPerf 93

6.3 总结 96

第7章 传输协议 97

7.1 传输层协议 97

7.2 客户端/服务器架构 99

7.3 端口 100

7.4 UDP 103

7.5 TCP详解 105

7.6 TCP连接阶段 107

7.7 TCP序列化数据 108

7.8 TCP应答数据 110

7.9 TCP传输保证 111

7.10 TCP流量控制机制(拥塞控制) 114

7.10.1 Nagle算法 116

7.10.2 糊涂窗口综合症 117

7.11 TCP性能优化 118

7.11.1 多重连接 120

7.11.2 持续定时器 120

7.11.3 保持存活 122

7.12 总结 122

第8章 套接字 124

8.1 套接字的唯一性 125

8.2 套接字接口 126

8.3 套接字API 127

8.4 阻塞式和非阻塞式套接字 129

8.5 套接字应用 130

8.5.1 数据报套接字(UDP套接字) 130

8.5.2 流套接字(TCP套接字) 132

第9章 服务和应用 135

9.1 网络服务 136

9.1.1 动态主机配置协议(DHCP) 136

9.1.2 域名系统(DNS) 138

9.2 应用 141

9.3 应用性能 142

9.3.1 文件传输 143

9.3.2 超文本传输协议(HTTP) 145

9.3.3 远程登录协议(TELNET) 146

9.3.4 电子邮件 147

9.4 总结 150

第10章 μC/TCP-IP简介 151

10.1 可移植性 151

10.2 可扩展性 151

10.3 编码标准 151

10.4 MISRA C 152

10.5 安全性认证 152

10.6 实时操作系统(RTOS) 152

10.7 网络设备 153

10.8 μC/TCP-IP协议 153

10.9 应用协议 153

第11章 μC/TCP-IP架构 155

11.1 μC/TCP-IP模块关系 155

11.1.1 应用程序 155

11.1.2 μC/LIB库 157

11.1.3 BSD套接字API层 157

11.1.4 TCP/IP层 157

11.1.5 网络接口(IF)层 158

11.1.6 网络设备驱动层 158

11.1.7 物理(PHY)层 158

11.1.8 CPU层 159

11.1.9 实时操作系统(RTOS)层 159

11.2 任务模型 159

11.2.1 μC/TCP-IP任务和优先级 160

11.2.2 接收一个数据包 161

11.2.3 发送一个数据包 162

第12章 目录与文件 165

12.1 框图 165

12.2 应用程序代码 165

12.3 CPU 167

12.4 板级支持包BSP 168

12.5 网络板级支持包(NET_BSP) 169

12.6 μC/OS-III与CPU无关的源代码 170

12.7 μC/OS III与CPU相关的源代码 171

12.8 μC/CPU与CPU无关的源代码 172

12.9 μC/LIB可移植的库函数 173

12.10 μC/TCP-IP网络设备 174

12.11 μC/TCP-IP网络接口 175

12.12 μC/TCP-IP网络操作系统抽象层 176

12.13 μC/TCP-IP网络CPU相关代码 176

12.14 μC/TCP-IP网络CPU无关源代码 177

12.15 μC/TCP-IP网络安全管理的CPU无关源代码 178

12.16 总结 179

第13章 开始使用μC/TCP-IP 184

13.1 安装μC/TCP-IP 184

13.2 μC/TCP-IP示例工程 184

13.3 应用程序代码 185

第14章 网络设备驱动 192

14.1 μC/TCP-IP设备结构 192

14.2 设备驱动模型 192

14.3 MAC层设备驱动API 193

14.4 物理层的设备驱动 194

14.5 中断处理 195

14.5.1 NETDEV_ISR_HANDLER() 196

14.5.2 NETPHY_ISR_HANDLER() 198

14.6 接口、设备、物理层配置 199

14.6.1 回环配置 199

14.6.2 以太网MAC配置 201

14.6.3 以太网物理层配置 205

14.7 网络板级支持包 206

14.7.1 网络设备板级支持包 206

14.7.2 杂项网络BSP函数 208

14.8 内存分配 209

14.9 DMA支持 209

14.9.1 使用DMA接收 211

14.9.2 使用DMA发送 213

第15章 缓冲区管理 216

15.1 网络缓冲区 216

15.1.1 接收缓冲区 216

15.1.2 发送缓冲区 216

15.2 网络缓冲区结构 217

15.3 网络缓冲区大小 218

第16章 网络接口层 222

16.1 网络接口配置 222

16.1.1 添加网络接口 222

16.1.2 配置互联网协议地址 224

16.2 启动和停止网络接口 225

16.2.1 启动网络接口 225

16.2.2 停止网络接口 226

16.3 网络接口最大传输单元 226

16.3.1 获取网络接口最大传输单元 226

16.3.2 设置网络接口最大传输单元 226

16.4 网络接口硬件地址 227

16.4.1 获得网络接口硬件地址 227

16.4.2 设置网络接口硬件地址 228

16.5 获取链路状态 228

第17章 套接字编程 230

17.1 网络套接字数据结构 230

17.2 完整的SEND()操作 232

17.3 套接字应用程序 233

17.3.1 数据报套接字 234

17.3.2 流式套接字(TCP套接字) 238

17.4 加密套接字 244

17.5 2MSL 244

17.6 μC/TCP-IP套接字错误码 245

17.6.1 致命的套接字错误码 245

17.6.2 套接字错误码列表 245

第18章 定时器管理 246

第19章 调试管理 248

19.1 网络调试信息常量 248

19.2 网络调试监控程序 249

第20章 统计和错误计数器 250

20.1 统计 250

20.2 错误计数器 251

附录A μC/TCP-IP设备驱动API 252

A.1 MAC设备驱动函数 252

A.2 PHY设备驱动程序函数 268

A.3 设备驱动程序BSP函数 274

附录B μC/TCP-IP API参考 283

B.1 通用网络函数 283

B.2 网络应用程序接口函数 285

B.3 ARP函数 297

B.4 网络ASCII码函数 305

B.5 网络缓冲区函数 310

B.6 网络连接函数 316

B.7 网络调试函数 318

B.8 ICMP函数NetICMP_CfgTxSrcQuenchTh() 334

B.9 网络接口函数 335

B.10 IGMP函数 355

B.11 IP函数 357

B.12 网络安全函数 376

B.13 网络套接字函数 379

B.14 TCP函数 425

B.15 网络定时函数 435

B.16 UDP函数 436

B.17 通用网络功能函数 441

B.18 BSD函数 446

附录C μC/TCP-IP配置和优化 456

C.1 网络配置 456

C.2 调试配置 459

C.3 参数检查配置 460

C.4 网络计数器配置 461

C.5 网络定时器配置 461

C.6 网络缓冲区配置 462

C.7 网络接口层配置 462

C.8 ARP(地址解析协议)配置 463

C.9 IP配置 464

C.10 ICMP配置 465

C.11 IGMP配置NET_IGMP_CFG_MAX_NBR_HOST_GRP 465

C.12 传输层配置NET_CFG_TRANSPORT_LAYER_SEL 465

C.13 UDP配置 466

C.14 TCP配置 467

C.15 网络套接字配置 468

C.16 网络安全管理配置 471

C.17 BSD套接字配置NET_BSD_CFG_API_EN 473

C.18 网络应用接口配置NET_APP_CFG_API_EN 473

C.19 网络连接管理配置 474

C.20 应用相关配置 474

C.21 μC/TCP-IP优化 476

附录D μC/TCP-IP错误代码 478

D.1 网络错误代码 479

D.2 ARP错误代码 479

D.3 网络ASCⅡ错误代码 479

D.4 网络缓存错误代码 480

D.5 ICMP错误代码 480

D.6 网络接口错误代码 480

D.7 IP错误代码 481

D.8 IGMP错误代码 481

D.9 操作系统错误代码 482

D.10 UDP错误代码 482

D.11 网络套接字错误代码 482

D.12 网络安全管理错误代码 484

D.13 网络安全错误代码 484

附录E μC/TCP-IP典型应用 485

E.1 μC/TCP-IP配置和初始化 485

E.2 网络接口、设备和缓冲区 490

E.3 IP地址配置 498

E.4 套接字编程 500

E.5 μC/TCP-IP统计和调试 503

E.6 使用网络安全管理功能 505

E.7 其他 508

附录F 参考文献 509

附录G μC/TCP-IP许可政策 510

第2部分 基于STM32F107微控制器的应用序言 512

第1章 绪论 513

1.1 准备运行示例 513

1.2 μC/Probe 514

1.3 章节安排 514

第2章 安装 516

2.1 硬件 516

2.2 软件 517

2.3 下载本书所需的μC/TCP-IP工程 518

2.3.1 \EvalBoards 519

2.3.2 μC/CPU 522

2.3.3 μC/LIB 523

2.3.4 μC/OS-III 524

2.3.5 μC-IPerf 525

2.3.6 \μC-DHCPc-v2 525

2.3.7 \μC-HTTPs 525

2.3.8 \μC-TCPIP-v4 526

2.4 下载μC/Probe 526

2.5 下载IAR Embedded Workbench for ARM 527

2.6 下载Tera Term Pro 527

2.7 下载IPerf for Windows 528

2.8 下载Wireshark 528

2.9 下载STM32F107相关手册 529

第3章 μC/TCP-IP基本示例 530

3.1 μC/TCP-IP示例#1 530

3.1.1 示例工程是如何运行的 532

3.1.2 编译并下载应用 539

3.1.3 运行程序 540

3.1.4 使用Wireshark网络协议分析仪 544

3.1.5 使用μC/Probe监视变量 546

3.2 μC/TCP-IP示例#2 551

3.3 运行应用程序 556

3.3.1 显示IP地址参数 556

3.3.2 使用ping命令测试目标板的连通性 558

3.4 使用Wireshark可视化观察DHCP过程 558

3.5 μC/TCP-IP示例#3 560

3.6 运行应用 562

3.7 总结 564

第4章 μC/TCP-IP性能示例 565

4.1 μC/TCP-IP示例#4 565

4.1.1 如何使示例运行起来 566

4.1.2 运行应用 569

4.1.3 IPerf 569

4.1.4 Iperf on the PC 570

4.1.5 在目标板上运行μC/IPERF 571

4.2 使用μC/PROBE监视变量 573

4.3 μC/TCP-IP库的配置 579

4.4 UDP性能 582

4.4.1 将目标板用作服务器 583

4.4.2 将开发板用作客户端 584

4.4.3 UDP测试总结 585

4.5 TCP性能 585

4.5.1 将开发板用作服务器 585

4.5.2 将开发板用作客户端 586

4.6 TCP性能测试总结 587

4.7 使用Wireshark网络协议分析仪 587

4.7.1 TCP三次握手 588

4.7.2 TCP流控 588

4.7.3 错误的TCP接受窗口大小测试 589

4.8 总结 593

第5章 HTTP服务器示例 594

5.1 μC/TCP-IP示例#5 594

5.2 运行应用 602

5.3 总结 603

附录A 以太网驱动 604

附录B μC/TCP-IP许可政策 612