旅游网站模块分类,营销策划的概念,wordpress pdf缩略图不显示,海口网站建设搜q.4791857001. 概况 MIPI RFFE是一种专门针对当前及未来无线系统在射频(RF)前端控制界面规范。随着手机射频系统日趋复杂#xff0c;业界需要一个单一控制界面解决方案。MIPI联盟的RF前端控制界面(RFFE)规范通过提供一个可连接到收发器或无线电的总线界面解决了这一难题#xff0c;可用于…1. 概况 MIPI RFFE是一种专门针对当前及未来无线系统在射频(RF)前端控制界面规范。随着手机射频系统日趋复杂业界需要一个单一控制界面解决方案。MIPI联盟的RF前端控制界面(RFFE)规范通过提供一个可连接到收发器或无线电的总线界面解决了这一难题可用于给多种射频前端设备如低噪声放大器(LNA)、功率放大器(PA)、天线开关、天线调谐器、DC/DC转换器、滤波器、感测器等。 对5G而言几乎没有什么比RF前端(RFFE)控制基础架构更为重要。任何影片数据、任何应用程序数据(基本上以无线方式传输或接收的任何内容皆然)都仰赖RFFE来控制RF前端模块(FEM)或子系统包含所有功率放大器、天线调谐器、滤波器、低噪声放大器(LNA)、交换器等等这些子系统均链接至调制解调器基频和/或射频集成电路(RFIC)收发机。 MIPI RFFEMIPI RF Front-endMIPI射频前端是MIPI联盟RFFE工作组在2010年推出的用于移动终端射频前端控制的控制接口标准。MIPI RFFE协议总线由一根电源线VIO以及两根控制线SCLK和SDATA共3根线构成实现简单易于部署可实现时序范围要求内的近实时控制。 在MIPI RFFE推出之前射频前端的控制解决方案复杂如果用并行的GPIO口进行控制需要接口过多系统成本无法承载一些厂商开始自定义串口控制不过由于通信协议复杂需要考虑复杂的软件控制和时序控制实现困难并且自定义串口也不利于不同厂商器件的通信。 目前MIPI协议已演进至V3.0版本支持多种Trigger模式适应5G通信系统中更多器件以及更严苛的时序控制要求。各个MIPI版本演进时增加的主要特性如下 2. MIPI RFFE的系统架构 一个MIPI RFFE的架构通常包含 Signal Bus包含SCLK和SDATA两条信号线 RFFE Master Device控制系统MIPI signal bus的器件一般为手机系统中的RFICtransceiver单个MIPI系统最多可支持4个Master device BOMBus Own Master任一时刻只能有一个BOM被激活 RFFE Slave DeviceMIPI受控器件一般为射频前端模组例如PA、LNA、Switch等单个MIPI系统最多可支持15个device 一个Slave器件的MIPI管脚除了SCLK和SDATA还有一个VIO这些管脚功能如下表 一个Slave器件会有三种状态分别为Active、Shutdown和Startup。 VIO控制MIPI系统是否Shutdown 当VIOhigh时MIPI进入Startup状态随后自动进入active状态 如需对MIPI寄存器进行重置可发1C寄存器中PWR_MODE[0]0b1
3. MIPI RFFE控制指令 MIPI通信主要通过控制Slave器件的相关寄存器以达到控制器件的目的。在MIPI RFFE协议中定义了多种寄存器寄存器包含 系统定义寄存器系统规定有特殊应用的寄存器如上文所提到的1C寄存器有PWR_MODE控制等 用户定义寄存器用户可根据具体应用定义寄存器功能 一个操作的控制指令基本会包含以下几部分 SSCSequence Start Condition指令开始标志 Command Frame一般包含SASlave Address、操作类型对应代码、以及奇偶校验码 Data Frame不一定有同时也包含奇偶校验码 BPCBus Park Cycle指令结束标志
3.1 MIPI RFFE传输 两个模块要信息交换我们称行动的发起方为master信息的接收方为slave那肯定有约定不然它们是不知道谁跟谁在交流也不知道信息什么时候开始什么时候结束。那对于RFFE它采用的沟通方式从大的方面来说就两种 a.读命令读地址 b.写命令写地址写数据。 以Register 0 write command 为例。Register 0 write command是一个特殊的命令它的作用是只写slave的地址为0的寄存器。为什么slave寄存器0单独开一个命令呢我想可能是因为一般模块的关键控制开关都放在寄存器0中人们希望发最少的数据就可以控制slave那么就单独为寄存器0开设一个命令了。如果了解了其他命令我们知道这可以用一般的写命令来达到同样效果的。该命令的时序如下 从上面时序图中我们可以看到
RFFE接口只有两根线一根是时钟线一根是数据线。图中注释的SSCsequence start condition表示命令开始。我们SSC其实就是一个CLK按照协议的说法这个高电平要持续一个内部时钟周期低电平也要持续一个内部时钟周期。但是我在设计时高低电平分别持续了SCLK一个周期发现也可以正常工作的。这个SSC是关键点如果设计不对命令下发肯定要失败的。时序中的SA3-SA0表示slave的ID信息。D6-D0就是要想寄存器0写的数据。Parity就是前面的SA1data的奇偶校验信息。RFFE中采用的是奇校验即加上奇偶校验位一帧中包含的1的个数为奇数。Bus Park标志着该帧命令的结束。就像SSC作为帧命令的开始一样帧结束并不是用指令来表示的而是用时钟线和数据线的组合来表示的。在发送完一帧的奇偶校验位后数据线要拉到低电平并保持半个SCLK周期然后master要让出数据线权限。SCLK要再发一个时钟。数据线SDATA是一个双向接口。在master向slave写时master占有SDATA权限。当写的信息完成时要释放SDATA权限这种占有和释放时通过三态门实现的我们只要输出一根使能信号就好。如下图中的SDATA_EN在master向slave写数据时要为高电平。注意图中SDATA_EN拉高的起始点和拉低的接收点。开始点是与SSC一起的结束点在Bus park的前半周期后。
4. MIPI ID配置 MIPI RFFE中定义了多种IDID作为MIPI中Slave器件的识别代号有着非常重要的作用。 MIDManufacturer ID每个厂商在加入MIPI Alliance之后都会被分配一个专门的MID可以从官网https://mid.mipi.org/查询到例如慧智微电子分配到的MID为2E9(hex) PIDProduct ID由厂商自行管理给不同产品配置不同的PID在MIPI RFFE V2.1引入了Extend-PID这样PID就包含16bits供配置 USIDUnique Slave IDMIPI bus主要通过USID对Slave器件进行寻址USID共4bits 16组状态但一个MIPI bus上最多15个Slave器件MIPI RFFE定义SID0b0000时为广播ID即BSIDBroadcast Slave ID MID和PID所对应的寄存器都是read-only而USID一般有一个默认的值同时可以支持可编程。原因是MIPI指令是以USID进行寻址的当一个MIPI bus上的所有Slave器件存在两个或以上的USID是相同的时候会导致无法区分因此可编程的USID至关重要。 更新USID的步骤流程为
通过当前USID写入PID寄存器(0x1D)写入值需要和想要更新器件的PID值相同通过当前USID写入MID寄存器(0x1E) 写入值需要和想要更新器件的MID值相同通过当前USID写入USID寄存器(0x1F)写入要新的USID值当写入PID/MID与想要更新的器件PID/MID值一致时新的USID值即生效反之USID仍维持原来的值 简单来讲就是只有当MID/PID以及默认USID对应上之后才能够对USID进行更新这就要求当一个MIPI bus上挂有多个相同产品MID/PID相同时为了做可编程的区分一般会在此产品增加ID pin脚其接高电平或GND分别对应不同的默认USID。
5. MIPI RFFE Trigger模式 5G将带来涉及上行和下行通讯的RF频带数量的爆炸性成长并相应缩小RF封包间的子载波间距(SCS)。另一项不断发展的需求则是要缩短在各频段和频段组合间切换的延迟时间。传统上RFFE主要是部署在手机中但随着5G的推出无线通信的控制需求也扩展到汽车、物联网和其他使用案例上这也影响了现况。有鉴于此开发MIPI RFFE v3.0的目的在于让使用案例不仅局限于行动设备并针对当今3GPP 5G标准中定义的更高计时精准度和更短延迟时间满足一些前所未有的需求。 为了因应5G的需求在更短时间内完成动态配置更改最新推出的v3.0为接口的触发器提供了多项增强措施。为了实现更快的控制速度MIPI RFFE V2.0中将时钟速度由26MHz提升至52MHz采用52MHz通信后单个寄存器件读写的时间减少一半。但这还不足以满足5G通信系统的时序要求。为此MIPI V3.0中着重升级了Trigger模式功能。不仅Trigger的数量由V1.0的3个、V2.1中的11个增加至V3.0中的18个而且还增加了Timed Trigger和Mappable Trigger功能。各种触发器可用于让RF子系统能够在极严时间控制下配置多部RF设备以及在一部从属设备内或跨多部设备间同步缓存器设定变更。
5.1 Trigger功能的引入 当要控制一个射频芯片时可能需要写入多个寄存器通常可以按照串行方式每个寄存器轮流写入及生效但由于每个寄存器生效存在时间差以52MHz为例每个寄存器写入时间为~0.5μs这期间可能导致芯片工作不正常。为了解决这个问题MIPI协议中针对UDR寄存器引入的Trigger模式即通过Trigger功能触发多个寄存器同时生效。 Trigger作为MIPI RFFE的重要Feature随着5G对更多器件的控制越来越复杂V3.0也引入了更多的Trigger功能下图是简单的Trigger分类本章节将一一做解释。 5.2 Standard Trigger MIPI的Trigger机制如下图为了支持Trigger模式MIPI协议中引入了Shadow寄存器用于存储未经触发的寄存器value 当Trigger0 disable时此时写入寄存器A/B的值直接生效同时A/B寄存器对应的shadow register也同时更新为写入的值 当Trigger1/2 enable时此时寄存器C/D/E/F的写入值首先只能更新在对应的shadow register中只有当Trigger1执行写入操作时寄存器C才能正式生效同理寄存器D/E/F也需要相同Trigger2操作。 每个寄存器只能对应1个或0个Trigger。 在实际操作中MIPI RFFE中共有三个Standard Trigger分别为Trigger0/1/2受Reg0x1C[5:0]寄存器控制 0x1C[5:3]Trigger Mask当Trigger Mask为0时新写入值只更新到shadow register 0x1C[2:0]Trigger Reg当Trigger Mask为0且Trigger Reg1时shadow register的value会转移到destination register
5.3 Extend Trigger 为了支持更多的寄存器Trigger数量MIPI RFFE V2.1/3.0分别各引入了8个Trigger工两组Block A和BlockB统称为Extend Trigger。Extend Trigger的控制和Standard Trigger一样对应的寄存器为0x2D~30。 需要注意的是下文要讲的Timed Trigger和Mappable Trigger只能应用于Extend Trigger不能用于Standard Trigger。
5.4 Timed Trigger Timed Trigger顾名思义是在时间上对Trigger进行操作具体就是提供寄存器在延时一定时间后生效主要机制是对Trigger设置延时计数器生效。对应的延时计数器其实是由一个延时的计数寄存器进行控制。 Timed Trigger的工作机制如下 当counter register的值0则此Extend Trigger属于正常Trigger 当counter register的值为非零时寄存器的数则跟随时钟开始倒计时直到值0Trigger生效
5.5 Mappable Trigger 如上介绍我们了解到每个寄存器有且最多只能配置对应一个固定的Trigger但随着5G的加入射频前端越来越复杂例如以下场景 在5G手机中可能有超过8路接收通路同时工作CA场景此时就需要同时控制8路LNA进行快速的AGC每路LNA至少需要发送一个寄存器(~0.5us)然而5G的AGC切换是在symbol之间进行而symbol与symbol之间只有一个CP的时间长度当SCS60kHz时间为1.17us如下图来完成写入寄存器LNA gain settle时间。因此要同时串行发送以上多路LNA是无法完成的。 Mappable Trigger提供这样一个可能对寄存器不配置固定的Trigger而是可编辑的Trigger这样通过把所要控制的所有寄存器都配置到相同的Trigger那么就可以在正式生效前做pre-setting然后再同时Trigger。 Mappable Trigger具体操作如下
定义一个寄存器叫mTrig set4个bits对应一个BlockA/B Extend Trigger一个UDR寄存器最多只能配置一个mTrig set或一个Fixed Trigger不同同时配置两种Trigger当某个寄存器被配置为mTrig setA且此时mTrig setA被写入成0b0010时查表对应的Extend Trigger是ET05则Extend Trigger05为当前寄存器及所有配置为mTrig setA的寄存器对应的Trigger当mTrig setA的值更新后对应的Trigger也会同时更新mTrig不会影响Timed Trigger二者相互独立。