美信解串器与串行器调试心得

前言
最近方案从ti换到了美信,又是一波调试,最近整个链路打通了,现在过来记录一下,主要调试的有dvp以及mipi接口,范围覆盖1m 2m 8m相机,不得不说,美信的芯片太多了,头疼。
GMSL分类
(1)GMSL1
GMSL1的sensor大部分是DVP接口,相机在1~2mega像素之内,总带宽不超过1.5Gbps,sensor dvp接口定义:
HSYNC:horizonal synchronization,行同步信号
VSYNC:vertical synchronization,帧同步信号;
DATA:像素数据,视频数据,具体位宽要看ISP是否支持;
XCLK:或者MCLK,ISP芯片输出给驱动sensor的时钟;
DVP的时序图FV为帧同步信号,LV为行同步信号(LV为高时,传输有效的像素数据)。
搭配方案:
一般搭配方案有MAX96701/5等搭配MAX96706,
即DVP->ser->deser->DVP,这种速度一般<=1.5Gbps速度,即GMSL1
当然我们也调试好了DVP->ser->deser->Mipi的接口,一般解串器常用MAX9296
(2)GMSL2
GMSL2的sensor基本都是是mipi接口
MIPI全称Mobile Industry Processor Interface,即移动产业处理器接口。MIPI联盟在2003年由ARM, Nokia, ST ,TI等公司成立,成员包括手机设备制造商、半导体厂商、软件厂商、系统供应商、外围设备制造商、知识产权提供商、其他公司。
MIPI从物理层分为CPHY/MPHY/DPHY,车载目前用的大多数还是dphy,虽然美信芯片目前支持cphy,但soc跟进的较慢,因此使用的较少,但随着车载相机分辨率的提升,cphy必然会逐步使用起来。
DPHY:一般至少有一对CLK lane+一对data lane,最多可以4条data lane
CPHY:每条trio需要三根线组成,每个lane最大可达5.7Gbps,是dphy 2.5Gbps的两倍多
APHY:mipi联盟专门针对车载应用指定的协议,目前了解只有一家以色列公司在做,目前还没大规模普及
搭配方案:
串行器:一般串行器有MAX9295/96717等
解串器:一般解串有MAX9296/96716/max96712等
(3)GMSL3
美信刚上市的东西,速度很快,有效载荷<=10.8Gbps,目前应用较少,后续调试再说吧~
美信的资料都比较保密,先这样吧~
END
欢迎关注我的GZH,ADAS之眼,定时更新ADAS领域相关科普文章!
在这里插入图片描述

### IPC摄像头是否需要使用串行解串器 IPC(网络摄像机)作为现代监控系统的重要组成部分,其数据传输方式依赖于具体的硬件设计和技术需求。在某些情况下,IPC可能需要使用串行解串器来优化号传输性能。 #### 什么是串行解串器串行(Serializer)是一种将并行数据转换为高速串行数据流的集成电路件,而解串器(Deserializer)则负责将接收到的高速串行数据重新转换回并行数据形式。这种技术广泛应用于高带宽、远距离的数据传输场景中[^1]。 #### IPC摄像头的设计架构 IPC通常由多个功能模块构成,包括声音传感、A/D转换、图像处理、控制以及网络服务等部件[^2]。其中,图像数据的采集处理是一个核心环节。为了实现高效的数据传输,特别是在长距离或复杂电磁环境下的应用场合,串行解串器可能会被引入到IPC的设计方案中。 #### 数据传输格式的影响 摄像头的数据输出可以采用多种不同的格式,比如CCIR601/656标准定义的数字化视频号或者是未经处理的RAW RGB原始数据[^4]。当选用基于ITU-R BT.656这样的数字接口标准时,由于它支持通过特定速率(如27MHz/s并口或高达243Mbps串行链路)进行通,因此有可能涉及到串行化操作以满足实际部署条件的要求[^3]。 #### 技术原理分析 - **短距离连接**: 如果IPC内部各组件之间的物理间距较小,并且工作频率处于较低水平,则可以直接利用传统的并行总线结构完成息交换过程,此时无需额外增加串行/解串器单元。 - **长距离或多节点互联情况**: 随着线路长度增长或者存在多点共享同一介质的需求时,传统并行通讯方法容易受到噪声干扰影响而导致误码率上升甚至完全失效。这时就需要借助专门设计用来克服这些问题的技术手段——即运用SerDes (Serializer Deserializer) 设备把原本较宽位宽但速度相对缓慢的息压缩打包成单一通道上传输后再拆包恢复原状的方式来进行有效传递。 综上所述,虽然并非所有的IPC都会必然配备串行解串器装置,但在面对特殊应用场景下确实有必要考虑加入此类元件以便更好地保障整体系统的稳定性和可靠性表现。 ```python # 示例代码展示如何模拟简单的串行反序列化逻辑 def serialize(data_list): serialized_data = ''.join([str(bit) for bit in data_list]) return serialized_data def deserialize(serialized_string, chunk_size=8): deserialized_chunks = [serialized_string[i:i+chunk_size] for i in range(0, len(serialized_string), chunk_size)] return deserialized_chunks original_bits = [1, 0, 1, 1, 0, 0, 1, 0] print("Original Data:", original_bits) serial_output = serialize(original_bits) print("Serialized Output:", serial_output) deserial_result = deserialize(serial_output) print("Deserialized Result:", [[int(x)]*len(y) for y in deserial_result for x in list(y)]) ```
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值