万本电子书0元读

万本电子书0元读

顶部广告

LwIP应用开发实战指南:基于STM32电子书

售       价:¥

纸质售价:¥85.90购买纸书

27人正在读 | 0人评论 6.6

作       者:刘火良,杨森

出  版  社:机械工业出版社

出版时间:2019-09-01

字       数:39.5万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书以LwIP源码为核心,讲解TCP/IP协议栈的实现,讲解常见的网络协议,讲解LwIP各层之间的数据传递,*终辅以实战案例,教你如何连各大云平台,配套野火STM32 M4/M7系列发板,提供完整源代码,极具操作性。<br/>
目录展开

前言

第1章 网络协议概述

1.1 常用网络协议

1.2 网络协议的分层模型

1.3 协议层报文间的封装与拆封

第2章 LwIP概述

2.1 LwIP的优缺点

2.2 LwIP的文件说明

2.2.1 获取LwIP源码文件

2.2.2 LwIP文件说明

2.3 LwIP的说明文档

2.4 使用vs code查看源码

2.4.1 查看文件中的符号列表和函数列表

2.4.2 函数定义跳转

2.5 LwIP源码里的示例

2.6 LwIP的3种编程接口

2.6.1 RAW/Callback API

2.6.2 Netconn API

2.6.3 Socket API

第3章 开发平台

3.1 以太网概述

3.1.1 PHY层

3.1.2 MAC子层

3.2 STM32的ETH外设

3.3 MII和RMII接口

3.4 PHY:LAN8720A

3.5 硬件设计

3.6 软件设计

3.6.1 获取STM32的裸机工程模板

3.6.2 添加bsp_eth.c与bsp_eth.h

3.6.3 修改stm32f4xx_hal_conf.h文件

第4章 LwIP的网络接口管理

4.1 netif结构体

4.2 netif的使用

4.3 与netif相关的底层函数

4.4 ethernetif.c文件内容

4.4.1 ethernetif数据结构

4.4.2 ethernetif_init()

4.4.3 low_level_init()

第5章 LwIP的内存管理

5.1 几种内存分配策略

5.1.1 固定大小的内存块

5.1.2 可变长度分配

5.2 动态内存池

5.2.1 内存池的预处理

5.2.2 内存池的初始化

5.2.3 内存分配

5.2.4 内存释放

5.3 动态内存堆

5.3.1 内存堆的组织结构

5.3.2 内存堆初始化

5.3.3 内存分配

5.3.4 内存释放

5.4 使用C库的malloc和free函数来管理内存

5.5 LwIP中的配置

第6章 网络数据包

6.1 TCP/IP的分层思想

6.2 LwIP的线程模型

6.3 pbuf结构体说明

6.4 pbuf的类型

6.4.1 PBUF_RAM类型的pbuf

6.4.2 PBUF_POOL类型的pbuf

6.4.3 PBUF_ROM和PBUF_REF类型的pbuf

6.5 pbuf_alloc()

6.6 pbuf_free()

6.7 其他pbuf操作函数

6.7.1 pbuf_realloc()

6.7.2 pbuf_header()

6.7.3 pbuf_take()、pbuf_copy()、pbuf_chain()和pbuf_ref()

6.8 网卡中使用的pbuf

6.8.1 low_level_output()

6.8.2 low_level_input()

6.8.3 ethernetif_input()

第7章 无操作系统移植LwIP

7.1 将LwIP添加到裸机工程

7.2 移植头文件

7.3 移植网卡驱动

7.4 LwIP时基

7.5 协议栈初始化

7.6 获取数据包

7.6.1 查询方式

7.6.2 ping命令详解

7.6.3 中断方式

第8章 有操作系统移植LwIP

8.1 向LwIP中添加操作系统

8.1.1 复制FreeRTOS源码到工程文件夹

8.1.2 添加FreeRTOS源码到工程组文件夹

8.1.3 指定FreeRTOS头文件的路径

8.1.4 修改stm32f10x_it.c

8.2 lwipopts.h文件需要加入的配置

8.3 sys_arch.c/h文件的编写

8.4 网卡底层的编写

8.5 协议栈初始化

8.6 移植后使用ping命令测试基本响应

第9章 LwIP一探究竟

9.1 网卡数据传入LwIP内核的流程

9.2 内核超时处理

9.2.1 sys_timeo结构体与超时链表

9.2.2 注册超时事件

9.2.3 超时检查

9.3 tcpip_thread线程

9.4 LwIP中的消息

9.4.1 消息结构

9.4.2 数据包消息

9.4.3 API消息

9.5 揭开LwIP的神秘面纱

第10章 ARP

10.1 数据链路层概述

10.2 MAC地址的基本概念

10.3 初识ARP

10.4 以太网帧结构

10.5 IP地址映射为物理地址

10.6 ARP缓存表

10.7 ARP缓存表的超时处理

10.8 ARP报文

10.9 发送ARP请求包

10.10 数据包接收流程

10.10.1 以太网中数据包的接收

10.10.2 ARP数据包处理

10.10.3 更新ARP缓存表

10.11 数据包发送流程

10.11.1 etharp_output()

10.11.2 etharp_output_to_arp_index()

10.11.3 etharp_query()

第11章 IP

11.1 IP地址

11.1.1 概述

11.1.2 IP地址编址

11.1.3 特殊IP地址

11.2 局域网和广域网的概念

11.2.1 局域网

11.2.2 广域网

11.3 网络地址转换

11.4 IP数据报

11.5 IP数据报的数据结构

11.6 IP数据报分片

11.7 IP数据报发送

11.8 IP数据报接收

第12章 ICMP

12.1 ICMP功能简介

12.2 ICMP报文结构

12.3 ICMP报文类型

12.3.1 ICMP差错报告报文

12.3.2 ICMP查询报文

12.4 LwIP中的ICMP实现

12.4.1 ICMP报文数据结构

12.4.2 发送ICMP差错报文

12.4.3 处理ICMP报文

第13章 TCP

13.1 TCP服务概述

13.2 TCP的特性

13.2.1 连接机制

13.2.2 确认与重传

13.2.3 缓冲机制

13.2.4 全双工通信

13.2.5 流量控制

13.2.6 差错控制

13.2.7 拥塞控制

13.3 端口号的概念

13.4 TCP报文段结构

13.4.1 TCP报文段的封装

13.4.2 TCP报文段格式

13.5 TCP连接

13.5.1 “三次握手”建立连接

13.5.2 “四次挥手”终止连接

13.6 TCP状态

13.6.1 LwIP中定义的TCP状态

13.6.2 TCP状态转移

13.7 TCP中的数据结构

13.8 窗口的概念

13.8.1 接收窗口

13.8.2 发送窗口

13.9 TCP报文段处理

13.9.1 报文段缓冲队列

13.9.2 TCP报文段发送

13.9.3 TCP报文段接收

第14章 UDP

14.1 UDP概述

14.2 UDP常用端口号

14.3 UDP报文

14.4 UDP报文的数据结构

14.4.1 UDP报文首部结构体

14.4.2 UDP控制块

14.5 UDP报文发送

14.6 UDP报文接收

第15章 使用Netconn接口编程

15.1 netbuf结构体

15.2 netbuf相关函数说明

15.2.1 netbuf_new()

15.2.2 netbuf_delete()

15.2.3 netbuf_alloc()

15.2.4 netbuf_free()

15.2.5 netbuf_ref()

15.2.6 netbuf_chain()

15.2.7 netbuf_data()

15.2.8 netbuf_next()与netbuf_first()

15.2.9 netbuf_copy()

15.2.10 netbuf_take()

15.2.11 其他操作netbuf的宏定义

15.3 netconn结构体

15.4 netconn函数接口说明

15.4.1 netconn_new()

15.4.2 netconn_delete()

15.4.3 netconn_getaddr()

15.4.4 netconn_bind()

15.4.5 netconn_connect()

15.4.6 netconn_disconnect()

15.4.7 netconn_listen()

15.4.8 netconn_accept()

15.4.9 netconn_recv()

15.4.10 netconn_send()

15.4.11 netconn_sendto()

15.4.12 netconn_write()

15.4.13 netconn_close()

15.5 实验

15.5.1 TCP Client实验

15.5.2 TCP Client实验现象

15.5.3 TCP Server实验

15.5.4 TCP Server实验现象

15.5.5 UDP实验

15.5.6 UDP实验现象

第16章 使用Socket接口编程

16.1 什么是Socket

16.2 LwIP中的Socket

16.3 Socket API

16.3.1 socket()

16.3.2 bind()

16.3.3 connect()

16.3.4 listen()

16.3.5 accept()

16.3.6 read()、recv()、recvfrom()

16.3.7 sendto()

16.3.8 send()

16.3.9 write()

16.3.10 close()

16.3.11 ioctl()、ioctlsocket()

16.3.12 setsockopt()

16.3.13 getsockopt()

16.4 实验

16.4.1 TCP Client实验

16.4.2 TCP Server实验

16.4.3 UDP实验

第17章 使用RAW API接口编程

17.1 RAW API的UDP编程

17.1.1 新建控制块:udp_new()

17.1.2 绑定控制块:udp_bind()

17.1.3 建立会话:udp_connect()

17.1.4 断开会话:udp_disconnect()

17.1.5 接收数据:udp_recv()

17.1.6 发送数据:udp_send()与udp_sendto()

17.1.7 删除UDP控制块:udp_remove()

17.2 RAW API的TCP编程

17.2.1 新建控制块:tcp_new()

17.2.2 绑定控制块:tcp_bind()

17.2.3 控制块监听:tcp_listen()

17.2.4 处理连接:tcp_accept()

17.2.5 建立连接:tcp_connect()

17.2.6 终止连接:tcp_close()

17.2.7 接收数据:tcp_recv()

17.2.8 发送数据:tcp_sent()

17.2.9 异常处理:tcp_err()

17.2.10 周期性回调:tcp_poll()

17.2.11 构建报文段:tcp_write()

17.2.12 更新接收窗口:tcp_recved()

17.3 实验

17.3.1 TCP Client实验

17.3.2 TCP Server实验

17.3.3 UDP实验

第18章 使用JPerf工具测试网速

18.1 iPerf与JPerf

18.2 测试网络速度

18.2.1 获取JPerf网络测速工具

18.2.2 测试开发板接收速度(Netconn API)

18.2.3 测试开发板接收速度(Socket API)

18.2.4 测试开发板发送速度(Netconn API)

18.2.5 测试开发板发送速度(Socket API)

18.3 提高LwIP网络传输的速度

第19章 HTTP

19.1 什么是HTTP

19.2 URL与资源

19.3 HTTP报文

19.4 使用Postman获取论坛数据

19.5 使用开发板获取论坛数据

第20章 HTTP服务器

20.1 Hello World网页demo

20.2 提供网页控制LED开关的功能

第21章 MQTT协议

21.1 MQTT协议概述

21.2 MQTT通信模型

21.3 消息主题与服务质量

21.4 MQTT控制报文

21.4.1 固定报头

21.4.2 可变报头

21.4.3 有效载荷

21.5 移植MQTT协议

21.6 cJSON移植

第22章 连接到百度天工物接入

22.1 物接入概述

22.2 使用IoT Hub

22.2.1 创建计费套餐

22.2.2 创建项目

22.2.3 创建策略

22.2.4 创建身份与创建用户

22.2.5 MQTT软件测试连接

22.3 开发板连接IoT Hub

22.4 IoT Hub的规则引擎

22.4.1 什么是规则引擎

22.4.2 使用规则引擎

22.5 数据可视化

22.5.1 IoT Hub的时序数据库

22.5.2 IoT Hub的物可视

第23章 连接到阿里云物联

23.1 使用阿里云物联

23.2 MQTT软件测试连接

23.3 开发板连接阿里云物联

23.4 阿里云物联的规则引擎

第24章 连接到OneNET

24.1 使用OneNET

24.2 测试连接

24.3 开发板连接OneNET

24.4 添加数据流

24.5 系统主题的发布格式

24.6 使用开发板发布数据点

24.7 数据可视化

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部