技术开发 频道

优化RIL驱动,巧解WinCE电话漏接难题

    随着3G移动电话热潮的高涨,我公司许多的嵌入式移动产品也正计划加入无线上网和电话功能。近期,公司委派我负责一个在WinCE 6.0平台下集成移动电话、无线上网和收发 SMS功能的项目。但没有想到的是这个项目却让我陷入到反复调试的痛苦之中。

    原因是这个在WinCE 6.0平台下开发的系统经常出现:漏接电话、或有信号但电话无法拨出、或短信收发不正常、或通话自动中断和通话断断续续等问题。初期我怀疑是因为信号质量问题所导致,所以花了大量时间和精力在硬件上,如天线和GSM射频通讯模块上。但后来却发现原来是我在Win CE 下没有进行优化RIL接口驱动所造成的问题。在这里与大家分享一些在此过程中得到的经验和教训。


    一.WinCE系统电话漏接的原因分析
    在无线移动通讯上,漏接的意思是指机器设备接通了,但机器设备却没反应。一般来说,这个故障可能出现在两个层面:一是GSM射频通讯基带部分没有发出有来电的消息;二可能是WinCE系统没有对GSM模块的来电消息做出响应。

    (1)硬件上没有发出有来电消息
第一种漏接的原因可能是GSM射频通讯基带部分没有发出有来电的消息,这部份主要是因为GSM硬件上出现了问题,使到系统根本没有输入信号。例如,在有信号的场合下但电话无法拨出时,很可能就是GSM信号质量出现问题。所谓信号质量问题是指在正常情况下接收到的信号强度明显低于正常标准,这是与GSM射频硬件相关的故障。因此,我把时间和精力都集中在天线接收和GSM射频通讯硬件上,例如更换增强型的天线和使用经测试合格的GSM射频芯片和基带处理芯片。但经过多次硬件调试和更换,却发现此问题一直存在,后来我决定先排除对GSM硬件可能存在故障的怀疑。

    (2)WinCE系统没有对来电消息做出响应
第二种漏接的原因可能是WinCE系统对来电信号没有做出响应。后来,经过多次调试,我发现问题还真是出在WinCE 6.0系统的软件部分。用专业术语的话说,就是在通讯接口层RIL模块(即Radio Interface Layer,无线接口层)和优先级处理上出了问题。这个RIL层主要是用于沟通WinCE系统与GSM通讯模块,并且对GSM通讯模块的行为做出适当的响应与动作,例如启动数据连接、发送 SMS 消息等。换句话说就是,当问题出在WinCE软件模块时,就算GSM信号强度提高了,该漏接的还是会漏接,该挂断的还是会挂断。
 

0
相关文章