车载以太网Openavb

1 AVB软件架构
Figure 1-1 AVB软件架构

车载以太网Openavb_第1张图片

2 SDK API
@ lib/avtp_pipeline/tl/openavb_tl_pub.h
@ lib/avtp_pipeline/platform/Linux/avb_host/openavb_host.c
@ lib/avtp_pipeline/platform/Linux/avb_host/openavb_harness.c
@ lib/avtp_pipeline/avtp_pipeline.mk

3 发送和接收数据
3.1 线程原理
SDK中的talker或者listener线程(一个stream一个线程)根据时间调度(125us或250us,也就是回调函数每秒被调用8000次或者4000次)不停的调度初始化填充的map和intf的函数做发送和接收数据。
例如:
@ lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_file/openavb_intf_mpeg2ts_file.c
磁盘File -> intf -> media queue -> map -> /dev/igb_avb node

3.2 发送数据处理流程
@ lib/avtp_pipeline/tl/openavb_talker.c
openavbTLRunTalker()
talkerDoStream()
该函数最终调用igb_xmit()通过/dev/igb_avb来发送

3.3 接收数据处理流程
@ lib/avtp_pipeline/tl/openavb_listener.c
openavbTLRunListener()
listenerDoStream()
该函数通过raw socket来接受数据

4 AVB抓包方法
- 使用AVB switch的port mirror功能抓包,镜像一个port口到另外一个capture口,连接capture口到Windows网卡,在Windows上使用Wireshark捕获包
- LAN tap

Figure 4-1 VN5610A双通道port mirror抓包

车载以太网Openavb_第2张图片

5 URLs
EAVB SDK Overview
http://avnu.github.io/OpenAvnu/avtp-pipeline/html/sdk_overview.html

AVnu/OpenAvnu
https://github.com/AVnu/OpenAvnu/issues

6 Abbreviations
MVIF:Memory Video Interface
pcap:packet capture
RJ45:Registered Jack
SOAD:AUTOSAR Socket Adaptor
UFIPC:Intel Ultra-Fast Inter Process Communication

你可能感兴趣的:(Network,Openavb)