CoaXpress downlink数据解析方法
阅读原文时间:2023年08月20日阅读:1

downlink指的是相机传输到host采集卡的高速链路,其中包含了如下类型的数据:

1、Stream Data

2、Trigger Ack, Trigger;

3、Ack (reply data);

4、Event, Heartbeat

和uplink的低速数据一样,都使用packet的方式进行传输,以packet 作为最小单位,其中包含down link的所有数据类型indication

首先,packet会标识当前数据是否传输的是stream data数据,其次需要看stream data的传输方式。

下图标识了stream 图像数据的传输,可以看出,图像数据被截断成了若干个packet 进行传输,具体截断的方式由device 决定

这里2个地方要注意

1、stream ID指示当前packet数据应该缓存到哪一个buffer中去,实际应用中会很少见到,比如一个相机里面有2个传感器,每个传感器传输的数据占用1个stream id,用以区分数据来源;

2、CRC校验试,stream data中的K码 K28.3会用D28.3替代进行CRC校验,具体校验方法,参考我的另外一篇博客 https://www.cnblogs.com/xingce/p/17422472.html

通常的图像传输如下信息

1、header 图像尺寸,ROI区域,像素格式,扫描方式等信息;

2、line 图像数据;

packet中的stream 数据会以K28.3开头,然后加上传输类型信息

以area扫描图像的header为例,格式如下,只列出了部分信息:

根据上述信息,就可以知道当前图像的详细信息;

永远以第一条LANE 为起点,按照如下方式组织数据

这样HOST就可以正确的解析出各种数据了。

由此可见,downlink 接口的数据首先要根据packet类型做区分,然后不同类型的数据送到不同的逻辑完成进一步处理,比如control的ack回应信息,需要送给control channel完成处理,stream 数据则送给stream data channel完成处理,然后输出图像的信息和dma数据给到用户逻辑;