📷 网络摄像头协议栈移植 实战·30章

🎒 风格 · 硬核嵌入式
01
了解网络摄像头系统架构,熟悉开发板(STM32+LAN8720)与调试工具(USB转TTL、逻辑分析仪)。
02
TCP/IP协议栈分层模型,MAC地址、IP地址、端口号的概念,ARP协议工作原理。
03
LwIP的特点、源码结构、API类型(RAW API vs Netconn API),为什么选择LwIP。
04
基于STM32CubeMX生成基础工程,配置ETH外设与DMA,集成LwIP源码包。
05
pbuf结构详解,内存池(POOL)与内存堆(HEAP)的配置与选择,OOM问题实战。
06
理解底层接口函数(low_level_init/output/input),编写STM32的ETH驱动。
07
调试PHY芯片(LAN8720),实现Link状态检测与自动协商,逻辑分析仪抓取RMII波形。
08
调用lwip_init(),使用netif_add()注册网卡,设置默认网关与DNS。
09
LwIP中ARP表的维护,静态ARP与动态ARP,ARP泛洪坑点记录。
10
IPv4数据包收发流程,LwIP的路由表查找逻辑,多网卡场景下的路由策略。
11
实现ICMP回显应答,用Ping命令验证网络连通性,分析Wireshark抓包。
12
UDP控制块(UDP PCB)的创建与绑定,实现简单的UDP回显服务器。
13
TCP三次握手与四次挥手,LwIP中TCP控制块(TCP PCB)的生命周期。
14
编写TCP客户端代码,连接远程服务器,发送摄像头状态数据。
15
编写TCP服务器代码,监听端口,接受多客户端连接,处理并发请求。
16
Netconn API的使用方法,与RAW API的对比,推荐初学者用Netconn。
17
HTTP请求/响应格式,在LwIP上实现简易HTTP服务器,提供网页配置界面。
18
MJPEG格式解析,JPEG帧边界标记,将JPEG图片封装成MJPEG流。
19
初始化OV2640/OV5640摄像头,配置输出JPEG格式,通过DCMI接口采集图像数据。
20
设计双缓冲区(Ping-Pong Buffer),避免数据覆盖,提高采集效率。
21
将采集到的JPEG图片通过HTTP chunked编码实时推送,实现浏览器直接预览。
22
RTSP协议交互流程(OPTIONS、DESCRIBE、SETUP、PLAY、TEARDOWN),SDP会话描述。
23
RTP头部格式,H.264 NALU单元拆分与打包(FU-A分片),时间戳管理。
24
在LwIP上实现RTSP服务器,响应客户端请求,推送H.264视频流。
25
实现动态获取IP地址,LwIP中DHCP模块的配置与调试,处理IP地址冲突。
26
实现域名解析,通过NTP服务器获取网络时间,为视频流添加时间戳。
27
调整LwIP参数(TCP窗口大小、MSS、内存大小),减少数据拷贝,提高吞吐量。
28
实现WOL(网络唤醒),在无连接时进入低功耗模式,通过中断恢复网络。
29
TLS/SSL基础,mbedTLS的移植,为HTTP服务器添加HTTPS支持。
30
使用iperf测试网络带宽,Wireshark分析协议交互,压力测试与稳定性优化。