OpenIPC开发文档
跟踪日志
2024/1/9
通过 TFTP 和 UART 逐步安装 OpenIPC 固件。
2024//
2024//
参考文章
说明
核心就是利用网络摄像头,而且网络监控的市场很大,网络摄像头可选择的范围很大,可以根据主控芯片、图像传感器的型号,以及板载的串口(刷鞋固件、通信),USB(连接WIFI网卡)的情况自由选择
我这里选择的是 SigmaStar SsC338Q 分辨率4K@20FPS 内置2Gb DDR3
固件安装
这里是利用的TFTP和UART来安装固件
SoC识别
SoC(系统级芯片)包括相机的 CPU 内核以及所有必要的外围设备,例如相机和网络接口。这部分由摄像头厂商确定,需要看IC标记丝印来查看,或者使用ipctool软件识别SoC型号
闪存芯片大小
通常是摄像头8引脚的一个芯片,可以通过U-boot启动过程确认,也可以查看丝印(丝印包含64,即是8M,包含128,即16M)
TFTP服务器
TFTP(Trivial File Transfer Protocol)服务器是一种简单的文件传输协议服务器,用于在网络设备之间传输文件。与FTP(File Transfer Protocol)相比,TFTP更轻量级,通常用于在局域网(LAN)中传输小文件,如配置文件、固件更新等。
说白了就是用它来传固件的
连接相机的UART端口
最好是看摄像头手册 好用的就是一个usb转ttl的串口适配器
将适配器上的引脚连接到 UART 端口的可能触点。使用标准电源适配器为相机供电。如果幸运,就可以在终端窗口中看到 Booting log。在某些情况下,如果在屏幕上看到乱码文本而不是引导内核,需要将连接速度更改为 57600 bps,然后重试。RX、TX
访问bootloader
通过按计算机键盘上的组合键来引导加载程序控制台, 在 bootloader 启动和 Linux 内核启动之前。
保存原始固件
固件烧写
串口登录设置
网络配置及远程登录
连接wifi网卡
检查WiFi模块的识别情况
生成和安装 WFB-NG 的密钥配对
编辑 wfb.conf 以设置正确的 wifi 频道
在相机上配置 majestic.yaml 文件
视频延时组成
视频链路:摄像头==》编码==》传输==》解码==》显示,大体上可以分为以下几个延时:
- 摄像头数据采集延时(camera)
- 编码器编码延时(H264 codec)
- 无线网络延时(wfb_ng): ~ 5ms
- 解码器解码延时(H264 decoder)
- 显示器刷新延时(monitor refresh rate)
地面站
接收端网卡
目前开发的地面站支持的大多是rtl8812au这一款网卡(主要是网卡驱动问题)
并支持monitor 模式
monitor模式
什么是monitor模式
WiFi Monitor模式需要WiFi芯片本身支持,并且驱动要支持相应的接口。
在非Monitor模式 (平时正常使用的状态)下,内核会将802.11帧封装成普通网络帧传递给上层; 而在Monitor模式 下,内核则会直接将802.11帧传给上层,不会进行封装,用户层就通过接口拿到RAW包,可以按802.11帧格式进行包解析处理。
在Linux内核中,hostap_80211_rx 函数是IEEE 802.11接收无线skb的tasklet函数,其作用是处理802.11网卡传递过来的数据包。倘若网卡被设置成monitor模式,该函数中会调用如下分支:
if (local->iw_mode == IW_MODE_MONITOR) { |
在monitor_rx 函数中,主要是prism2_rx_80211 函数,将带有802.11头的skb直接发送给netif。netif为linux内核网络数据包的标准框架。在prism2_rx_80211中,在skb里补充了一个抓包的头,给用户提供更多的包信息。这个头对应的数据结构为linux_wlan_ng_cap_hdr ,具体声明如下:
struct linux_wlan_ng_cap_hdr { |
如何开启
使用如下命令可以实现:
iwconfig wlan0 mode Monitor
其调用了如下ioctl来配置:
ret = ioctl(skfd, SIOCSIWMODE, &wrq);
对应的配置模式,通过wrq参数来定义。而上面的skfd则由下面操作获取:
skfd = socket(AF_INET, SOCK_DGRAM, 0);
网卡选择
网卡官方支持:
RTL8812AU、ar9271、rtl8812eu
https://forums.developer.nvidia.com/t/rtl8822ce-access-point-mode/288083
板载算力板上的网卡型号为rtl8812CE,不支持monitor mode
地面站选择
OpenIPC地面站
1、使用海思HI3536ERBCV100、DRBCV100芯片的 nvr网络监控主板,价格便宜dv100价20~35,二手数量大。
-解析显示最高1080P@60FPS。
-dv100主板需留意挑16M闪存(25q128)、256M内存(xxxx2Gxxx)
#指南https://github.com/OpenIPC/wiki/blob/master/en/fpv-nvr.md
2、使用ubuntu系统的笔记本电脑,无需额外投资,电脑性能强劲
-缺点是体积大和户外显示亮度不够。
#指南https://github.com/OpenIPC/wiki/blob/master/en/fpv-gs-ubuntu.md
3、Orange pi5(rk3588s),499元,解析力超强1080P120。
#指南https://github.com/OpenIPC/sbc-groundstations/releases/
4、Radxa zero 3w(rk3566),4G+32G 370元,2G测试中169,解析力够1080p90。
#指南https://github.com/OpenIPC/sbc-groundstations/releases/
Ubuntu查看和接收OpenIPC
方法一:直连,ubuntu主机安装wfb-ng,直接连接USB网卡(8812au、8812eu、8812cu等)
方法二:转发接收,接收 (安装有 wfb-ng)的电视盒子、zero 3W 、树莓派 等转发过来的 视频和mavlink信息