全球移动通信系统手机实现精确计时的方法

文档序号:7902334阅读:584来源:国知局
专利名称:全球移动通信系统手机实现精确计时的方法
技术领域
本发明有关于GSM(全球移动通信系统Global System for MobilCommunication)手机的计时功能系统,且特别有关于改善传统GSM手机系统资源有限以致于影响时间准确度的缺点。
背景技术
手机的发展愈来愈趋向多功能化,不论是强调娱乐性或商务性,功能日趋丰富且愈来愈PDA(个人数字助理器Personal Digital Assistant)化,除了基本的通讯功能外,还包含了游戏、记事、备忘、计时、时间显示、电话簿等功能,而其中计时功能已成为大多数手机的必备功能之一。手机上的计时程序一般基于定时器定时中断而实现,而GSM手机是一种即时嵌入式系统(Real Time Embedded System),系统的资源有限,定时中断响应受系统性能的影响存在误差,因而导致计时不准确。


为让本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合附图,作详细说明如下图1显示了本发明的系统框架图,说明GSM手机嵌入式系统的架构,其中A1、A2为MMI(人机界面Man Machine Interface)层的应用程序。
图2显示了本发明在GSM手机操作系统中利用TDMA数据帧,以建置计时时钟的流程图。
图3显示了本发明的计时应用程序流程图。

发明内容
基于上述缺点,本发明利用了GSM手机TDMA(分时多工存取Time DivisionMultiple Access)固定时隙的特性,在手机系统平台支援下,藉由取得一段时间内的GSM TDMA总数据帧(frame)数来计算精确时间。以这样的方法可不使用系统的定时器,如此可节省系统资源,也可使计时更精确。
具体实施例方式
计时功能通常是由时钟完成的,在手机或PDA等嵌入式系统中也是如此。但时钟在嵌入式系统属于有限资源,通过时钟中断计时受到系统性能影响,对硬件性能不太高或者负荷较重的嵌入式系统来说很容易产生比较大的误差,图1说明了手机嵌入式系统的框架图。手机透过操作系统来运作,并透过GSM协议层和基站间做沟通。而人机界面&应用层的应用程序A1、A2藉由界面函数B向操作系统取得所需资讯。
对于实现了GSM协议栈(protocol stack)的手机,可以利用手机与基站间TDMA通讯的固定时隙特性(GSM手机处理一个TDMA数据帧的固定时隙为4.6152ms),只要得到一定时间内的TDMA数据帧数,即可精确地计算出这段时间量。
图2为操作系统处理GSM TDMA数据帧的流程图。在步骤1中,首先,在实现GSM协议手机的底层OS平台设立一个计数变数,在每次手机开机后,即操作系统开始运作时,将计数变数归零。在步骤2中,操作系统开始处理一个GSM TDMA数据帧,而处理一个GSM TDMA数据帧后,即于步骤3中将计数变数值加1。然后于步骤4结束处理一个GSM TDMA数据帧。若某段时间内系统处理了100个TDMA数据帧,则该段时间为4.6152×100=461.52ms,以此记录系统中目前TDMA总框数。在每一个TDMA数据帧时间间隙与基站通讯时将该计数变数加1,相当于在系统中建立以一个TDMA数据帧时间间隙为单位的时钟,这个操作流程自手机开机且连上网络时即开始运作,一直到手机关机为止。
接着,在图3中显示出应用程序如何取得所需资讯以达到计时功能的流程图。在操作系统运行时,可以随时获得当前系统至开机时所经过的TDMA总数据帧数。当我们启动手机的计时功能时,即表示图1所示的人机界面&应用层的计时应用程序A1、A2(如图1所示)开始运作,即步骤5所示。在步骤6中,计时应用程序先做初始化的动作,将相关变数值归零。接着在步骤7中,若要启开始计时则按下开始钮启动计时功能。然后在步骤8中,计时应用程序即会透过界面函数B,向实现GSM协议手机的底层OS平台,取得当前的计数变数值。在步骤9中判断是否要结束计时,若要结束计时则按下停止钮,跳至步骤10,否则不要按下停止钮,计时应用程序会继续执行。若决定停止计时,同样地,在步骤10中,计时应用程序会透过界面函数B,向实现GSM协议手机的底层OS平台,再次取得当前的计数变数值。接着于步骤11中求得前后两次取得的计数变数差值,然后乘以上述的时间常量(传送TDMA数据帧的固定时隙=4.6152ms),即可得到精确的时间值,然后结束计时应用程序(步骤12)。
关于实现此计时功能的程序码运作流程如下手机在开机之后,操作系统即开始运作,操作系统呼叫InitGSMTicksCount()函数将tickcount计数变数初始化,令tickcount计数变数=0。然后手机和基站之间即开始沟通传送TDMA数据帧,当传送第一个TDMA数据帧时,操作系统呼叫GSMTicksCountInc()函数,使得tickcount计数变数自动加1,之后即一直重复同样的动作,tickcount计数变数也一直不断地累加上去。这时启动计时功能(TDMA数据帧仍然持续传送),当按下“开始键”时,操作系统呼叫GSMGetTicksCount()函数将tickcount计数变数值传回,假设这时候tickcount计数变数值=1000,这个值会被存入tickscnt_a计数变数。经过一段时间,当计时结束时,按下“停止键”,操作系统再次呼叫GSMGetTicksCount()函数,将tickcount计数变数值传回,假设这时候tickcount计数变数值=1800,这个值会被存入tickscnt_b计数变数。将tickscnt_b计数变数-tickscnt_a计数变数=1800-1000=800,这段时间即为800×4.6152ms=3692.16ms。
计时功能具体实施的程序码表示如下<pre listing-type="program-listing">  //包含计数值的32比特(4字节)整数型变数  INT32 tickcount;  //系统初始化时执行的函数  VOID InitGSMTicksCount()  {  tickcount=0;;  }  //系统每处理一个TDMA数据帧时调用此函数  //使计数变数值加1  VOID GSMTicksCountInc()  {  tickcount++;  }  //提供给手机及应用程序开发者的界面函数&lt;!-- SIPO &lt;DP n="3"&gt; --&gt;&lt;dp n="d3"/&gt;  //传回计数值  INT32 GSMGetTicksCount()  {  return tickcount;  }</pre>具体代码应用说明//tick计数值计算毫秒#define TICKS_TO_MS(tickcnt)((tickcnt)*60L/13L)//开始计时点INT32 tickscnt_a=GSMGetTicksCount();//结束计时点INT32 tickscnt_b=GSMGetTicksCount();//计算时间(单位毫秒)INT32 ms=TICKS_TO_MS(tickscnt_b-tickscnt_a);虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视后附的权利要求范围所界定为准。
权利要求
1.一种GSM手机计时的方法,包括下列步骤在一GSM手机操作系统中设立一计数变数;在该GSM手机操作系统每次初始化时,将该计数变数归零;该GSM手机操作系统每处理一通讯数据帧时,令该计数变数值自动加1;开始计时的时候,取得该计数变数的第一计数变数值;结束计时的时候,再取得该计数变数第二计数变数值;以及求得该前计数变数与该后计数变数的差值,并乘以一时间常量,即可得到精确的计时时间值。
2.如权利要求1所述的方法,其特征在于,该GSM手机操作系统为一即时嵌入式系统。
3.如权利要求1所述的方法,其特征在于,该计数变数为一整数型别的变数,且至少为32比特。
4.如权利要求3所述的方法,其特征在于,该计数变数设置于GSM手机的GSM协议栈软件层。
5.如权利要求1所述的方法,其特征在于,该时间常量为传送该通讯数据帧的固定时间间隙。
6.如权利要求5所述的方法,其特征在于,该通讯数据帧为一分时多工存取数据帧。
7.如权利要求5所述的方法,其特征在于,该固定时间间隙为4.6152ms。
8.如权利要求6所述的方法,其特征在于,该分时多工存取数据帧透过GSM协议栈手机与基站间的沟通传送而取得。
9.如权利要求1所述的方法,其特征在于,该计数变数的第一计数变数值可以是任意大于零的值。
10.如权利要求1所述的方法,其特征在于,该计数变数的第二计数变数值可以是任意大于零的值,且恒大于该前计数变数值。
11.如权利要求1所述的方法,其特征在于,该计数变数值的自动增加,停止于GSM手机操作系统终止时。
12.如权利要求1所述的方法,其特征在于,该计数变数差值由一计时应用程序透过一界面函数取得。
13.如权利要求10所述的方法,其特征在于,该界面函数建立于该GSM手机操作系统之上。
14.如权利要求10所述的方法,其特征在于,该计时应用程序为一人机界面应用层的应用程序。
全文摘要
本发明提供一种GSM(全球移动通信系统Global System for Mobil Communication)手机计时的方法,在目标手机的GSM协议栈(protocol stack)软件层(Software Layer)设立一个整数型别的变数,在系统每次初始化时,将变数归零,GSM协议栈每处理一个TDMA(分时多工存取Time Division Multiple Access)数据帧(frame)时,变数值自动加1,然后建立一个界面函数(interface function),以取得该计数变数的差值,并将此界面提供给人机界面〔Man Machine Interface(MMI)〕应用层(Application Layer)。
文档编号H04M1/725GK1535052SQ0311611
公开日2004年10月6日 申请日期2003年4月1日 优先权日2003年4月1日
发明者左蔚, 何代水, 蔡世光, 蔚 左 申请人:英华达(上海)电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1