MIPI RFFE接口实战分享

简介

RFFE是RF Front-End Control Interface的简写。具体介绍可以RFFE的标准协议。本文主要介绍一些关键点,为初次设计该接口的同学一些启发或者指导。

如果做过串行接口的,对于RFFE的理解是有帮助的,因为RFFE也是一个串行接口。即使没有做过,把RFFE的关键点理解了,RFFE也是不复杂的。

两个模块有信息交换,(我们称行动的发起方为master,信息的接收方为slave),那肯定有约定,不然它们是不知道谁跟谁在交流,也不知道信息什么时候开始,什么时候结束。那对于RFFE,它采用的沟通方式从大的方面来说就两种:

a.读命令+读地址;

b.写命令+写地址+写数据。

以Register 0 write command 为例

Register 0 write command是一个特殊的命令,它的作用是只写slave的地址为0的寄存器。为什么为slave寄存器0单独开一个命令呢?我想可能是因为一般模块的关键控制开关都放在寄存器0中,人们希望发最少的数据就可以控制slave,那么就单独为寄存器0开设一个命令了。如果了解了其他命令,我们知道这可以用一般的写命令来达到同样效果的。

该命令的时序如下:

从上面时序图中,我们可以看到:

1.RFFE接口只有两根线,一根是时钟线,一根是数据线。

2.图中注释的SSC,sequence start condition,表示命令开始。我们SSC其实就是一个CLK,按照协议的说法,这个高电平要持续一个内部时钟周期,低电平也要持续一个内部时钟周期。但是我在设计时,高低电平分别持续了SCLK一个周期,发现也可以正常工作的。这个SSC是关键点,如果设计不对,命令下发肯定要失败的。

3.时序中的SA3-SA0表示slave的ID信息。

4.D6-D0就是要想寄存器0写的数据。

5.Parity就是前面的SA,1,data的奇偶校验信息。RFFE中采用的是奇校验,即加上奇偶校验位,一帧中包含的1的个数为奇数。

6.Bus Park标志着该帧命令的结束。就像SSC作为帧命令的开始一样,帧结束并不是用指令来表示的,而是用时钟线和数据线的组合来表示的。在发送完一帧的奇偶校验位后,数据线要拉到低电平并保持半个SCLK周期,然后master要让出数据线权限。SCLK要再发一个时钟。

7.数据线SDATA是一个双向接口。在master向slave写时,master占有SDATA权限。当写的信息完成时,要释放SDATA权限,这种占有和释放时,通过三态门实现的,我们只要输出一根使能信号就好。如下图中的SDATA_EN在master向slave写数据时要为高电平。注意图中SDATA_EN拉高的起始点和拉低的接收点。开始点是与SSC一起的,结束点在Bus park的前半周期后。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值