严格来说,下面的东西不算是原创。是前辈们一点一点教出来的,我稍微总结一下中心的东西。
省电,对于终端是至关重要的,好的省电控制,可以降低功耗,增加手机的待机时间。而对于一般用户而言,终端开机后大部分时间处于睡眠状态,所以睡眠流程的设计是终端省电设计的最关键部分。系统可通过CPR模块实现系统的省电控制,通过RFIF计数器实现时隙控制以及睡眠唤醒定时,通过WakeTimer(16M和32K两级时钟接力)实现睡眠定时,并且在WakeTimer发生中断时自动启动RFIF计数器,从而使得睡眠流程可在DSP模块内部控制完成
睡眠流程由MCU和MDM共同配合实现的。其中MCU控制睡眠的发起和睡眠定时,MDM配合MCU实现睡眠唤醒及同步。
当基站需要寻呼终端的时候,会在帧号为PAGE_XX=( UID mod xx)时进行寻呼,所以终端在睡眠过程中应在帧号为PAGE_XX的帧醒来接收基站消息并检查是否有寻呼消息。设睡眠时帧号为XX,那么睡眠时间为(128-XX+PAGE_XX)*0.01s。如果同步未出现偏差,则是1.28s-2帧的时间(即1.26秒,2帧是醒来的区间);如果同步出现偏差,帧号发生改变,则不是这个数。
终端存在三种睡眠方式:普通睡眠、随机睡眠和深睡眠,具体选择哪种睡眠方式由MCU控制。在终端扫到有效频点并成功接入的情况下,如果MCU的MC任务处于Idle状态,MCU就会发起普通睡眠;如果连续三次扫不到有效频点,MCU发起深睡眠;如果扫到有效频点但改频失败(即发现某些频点有信号,却无法正常地接入这些频点,原因可能是因为基站忙,或者基站异常),这样三次后MCU发起随机睡眠。由于基站忙,如果终端还继续盲目接入,可能会导致所有终端都接入不成功的注册风暴状态。所以引入随机睡眠状态。由于终端进入随机睡眠之前,已经脱离与网络的联系,所以随机睡眠实质上是一种不定长的深睡眠。当终端注册失败时,包括用户**、号码被复制和未分配号等情况,MCU也会发起随机睡眠,但之后不再唤醒。
这三种睡眠流程的主要区别是睡眠时间不同,普通睡眠每次睡眠1.28秒,深睡眠的睡眠时间依次是14*1.28秒、26*1.28秒、40*1.28秒、50*1.28秒、160*1.28秒,之后都是160*1.28秒,随机睡眠时间是0~50秒之间的一个随机数。
这三种睡眠方式的唤醒对MCU来说是相同的,都是由WaitTimer中断唤醒,但对MDM来说唤醒略有不同。普通睡眠的MDM唤醒由WaitTimer中断启动RFIF计数器后唤醒,而深睡眠和随机睡眠是由MCU发送DPRAM中断唤醒。在MDM侧,不区分深睡眠和随机睡眠,也就是说这两种睡眠流程在MDM侧相同。普通睡眠唤醒后,MDM严格地与基站同步并接收基站信息,接收MCU命令跳转下一流程;深睡眠/随机睡眠唤醒后MDM与基站不同步,不接收基站和MCU命令直接跳转到Standby状态。
这里以普通睡眠流程描述MCU与MDM的配合:
1. 在满足睡眠条件时,MCU给MDM发送睡眠命令(通过DPRAM),并通过命令包的第一个字指明睡眠类型:0为普通睡眠,1为深睡眠/随机睡眠。
2. MDM收到睡眠命令(MDM_Sleep)后,给MCU打包消息,通信类型(Commu_type)设置为SLEEP_AFTER_NEXT_INT(0x101D)。
3. MDM等待RFIF计数器到0x20D0后,给MCU发送睡眠中断,引发MCU的低级中断。
4. MCU收到睡眠中断后根据帧号计算睡眠时间,设置WaitTimer初值;设置AUX_ON0,AUX_ON1为正常工作模式(使得之后WaitTimer减到AUXx_TIMER后自动启动射频电源和射频时钟);设置timer1初值为1ms,并启动timer1。
5. MDM等待RFIF计数器走到0x2500后(从0x20D0到0x2500时间为653us),使能WaitTimer(AUX_ON0,AUX_ON1自动变低,关闭射频电源和射频时钟),设置RFIF的一个中断控制寄存器为819(RFIF被WaitTimer启动500us后触发一个中断,唤醒MDM),MDM开始睡眠
6. Timer1定时产生中断(1ms后),MCU进一步确认DSP是否已经使能睡眠唤醒计数器,若没有,MCU再次使能它;关闭DSP时钟;检查MC消息队列,若无任务也进入睡眠(ARM Wait)。
7. 当WaitTimer减到预设的AUX0_TIME、AUX1_TIME值时,自动启动射频电源和射频时钟
8. 大约1.26秒后,WaitTimer计时结束,产生高级中断服务子程序,唤醒MCU,同时启动RFIF计数器。
9. MCU被唤醒后,首先启动DSP时钟,保证MDM可以被随后产生的RFIF计数器中断唤醒,然后发送1.28s消息给MMI、MC、BM、SM。
10. 500us后,MDM被RFIF唤醒,独立定时完成“三次”唤醒。
文章评论(0条评论)
登录后参与讨论