一种对串口进行分时复用的方法及移动终端的制作方法

文档序号:7687185阅读:235来源:国知局
专利名称:一种对串口进行分时复用的方法及移动终端的制作方法
技术领域
本发明涉及移动终端领域,尤其涉及一种在移动终端的串口控制器上实现 串口分时复用的方法及应用该方法的移动终端。
背景技术
在移动终端的开发过程中,串口驱动是必不可少的一部分,尤其是在由应
用侧子系统(Windowsmobile)和无线侧子系统组成的双系统架构中,串口还 肩负了两个子系统间通信的重要任务。串口驱动功能包括了传输AT命令,传 输GPRS数据,传输蓝牙数据,传输GPS数据(全球卫星定位系统)。此外,串 口经常被用于进行调试信息的输出,执行调试输出功能。 一般来说, 一个应用 处理器中集成的串口控制器不会超过3个,这样一来,串口的使用将会非常紧 张,尤其是在双系统架构中。
图2以串口驱动传输GPS数据为例,简单介绍了现有技术中,串口驱动和 调试输出的流程。
在移动终端开机之后,按照现有技术一般的做法,会对串口进行初始化以 执行驱动功能和调试输出功能。以下,以WindowsMobile操作系统为例,对此 进行介绍。
在执行串口驱动功能时,对串口的操作主要通过调用如下函数来实现
1、 Com—init,开机初始化
2、 Com—open,打开GPS定位功能,即打开串口驱动功能。
3、 Com—read,通过串口读取GPS数据。
4、 Com_close,关闭GPS定位功能,即关闭串口驱动功能。
在执行调试输出功能时,对串口的操作主要通过调用如下函数来实现
1、 InitDebugSerial,初始化调试输出功能。
2、 OEMWriteDebugByte,输出调试数据。
如上所述述,串口驱动和调试输出完全是两套不同的功能,相互没有联系;但现在要实现在同一个串口控制器上,如果不加处理,不可避免的会出现硬件 寄存器的冲突,导致两个功能都不可用,甚至死机等状况。为了解决这个问题, 根据现有技术开发类似产品的时候,有的将串口驱动和调试输出分别实现在两 个不同的串口控制器上,这无疑增加了硬件成本;或者干脆禁用调试输出功能,
为调试带来不便;或者被迫改用其他比较麻烦的方法如写文件,usb输出等来
调试。

发明内容
本专利旨在解决WindowsMobile智能手机上述两个功能复用所造成的串 口硬件寄存器的冲突,提出一种串口驱动和调试信息功能分时复用的方法及手 机,实现稳定的串口驱动和调试信息输出分时复用的目的。
本发明提供了一种用于移动终端实现串口分时复用的方法,所述移动终端 设置有一标志位用以表示需要串口执行的功能,以及所述移动终端的串口通过 一屏蔽开关与一个或多个执行串口驱动功能的模块以及一个或多个执行调试 输出功能的模块相连,在用户需要从一模块切换到另一模块时,执行如下步骤
A、 使标志位表示串口需要执行所述另一模块,并使屏蔽开关掷向所述另 一模块;
B、 若是在串口驱动功能与调试输出功能之间切换,则对串口进行初始化
以使其执行所述另一模块。
所述的串口驱动功能是指传输AT命令、传输GPRS数据、传输蓝牙数据、
传输GPS数据等。
步骤A中,还包括清除串口的寄存器当前设置的步骤。
所述步骤B中,当初始化串口以使其执行串口驱动功能时,对串口寄存器 的设置为FCR二0x0, MCR二0x8, LCR:OxO, IER二Oxd。
所述步骤B中,当初始化串口以使其执行调试输出功能时,对串口寄存器 的设置为FCR二0x7, MCR=OxO, LCR二0x3, IER=0x40。
本发明提供了一种串口分时复用的移动终端,所述移动终端包括中央处理 单元,所述移动终端的串口通过一屏蔽开关与一个或多个执行串口驱动功能的 模块以及一个或多个执行调试输出功能的模块相连,所述移动终端设置有一标 志位用以表示需要串口执行的模块,所述中央处理单元用于在移动终端监测到用户需要执行另一模块的操作时,使标志位表示串口需要执行的所述另一模块 以及使屏蔽开关掷向另一模块,若是在串口驱动功能与调试输出功能之间切 换,则对串口进行初始化以使其执行所述另一模块。
所述的串口驱动功能是指传输AT命令、传输GPRS数据、传输蓝牙数据、 传输GPS数据等的任一项。
所述中央处理器还用于在移动终端检测到用户需要执行另一功能的操作 时,清除当前串口的寄存器的设置。
当中央处理器初始化串口以使其执行串口驱动功能时,对串口寄存器的设
置为FCR=0x0, MCR=0x8, LCR=0x0, IER=0xd。
当中央处理器初始化串口以使其执行调试输出功能时,对串口寄存器的设 置为FCR=0x7, MCR二0x0, LCR=0x3, IER二0x40。
本发明通过增加一硬件开关和软件设置参数,加上对寄存器进行的合理控 制,从而很好地解决了在同一串口上驱动功能和调试输出功能分时复用的问 题,保证了对串口驱动功能和调试输出功能之间顺畅地进行切换。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发
明的实施例一起用于解释本发明,并不构成对本发明的限制,在附图中 图1是示出根据本发明实施例的硬件电路框图; 图2是示出本发明未实施前初始化流程示意图3是示出根据本发明实施例的串口驱动功能和调试信息输出复用流程 示意图4是本发明另一实施例的硬件电路框图。
具体实施例方式
本方法的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明 书中变得显而易见,或者通过实施本方法而了解。本方法的目的和其他优点可 通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获 得。
第一实施例
6下面,以GPS串口驱动为例对本发明进行进一步阐释,应该理解的是,本
发明不仅适用于GPS模块,还适用于蓝牙、AT命令、GPRS等需要串口驱动来 传输数据的模块。
图1硬件电路需要的连接状况
以GPS串口驱动为例,在手机串口与功能模块之间增加一屏蔽开关,当使 用GPS串口驱动功能时,开关掷向GPS芯片;当使用调试输出功能时,开关 掷向调试输出端口。图中RX/TX为数据的接收/发送端口。
图3以WindowsMobile平台下的GPS串口与调试输出串口为例,对本发明 的方法作出详细说明
本发明通过标志位(或共享内存)的方式,实现GPS芯片串口驱动和调试 输出的互斥。当GPS芯片被用户打开的时候,GPSisON变量为l,此时屏蔽调 试输出功能,当用户关闭GPS芯片的时候,GPSisON变量为0,此时使能调试
输出功能。
步骤S302,移动终端开机。
步骤S304,设置GPSisON为l,屏蔽调试输出功能;
此处可以根据用户选择设置默认的功能。当用户较常用到调试输出功能 时,此处可以设置GPSisON为O,屏蔽掉串口驱动功能。
步骤S306,屏蔽开关掷向GPS芯片侧;之后,即可以通过open_com, read—com, close_com等命令对串口进行操作了 。
当默认功能为调试输出功能时,在这一步中屏蔽开关掷向图1中的调试输 出端口侧。
上述S304 S306之间并无时间顺序限制。
步骤S308,调用Com_init函数对串口进行初始化以执行串口驱动功能; 当默认功能为调试输出功能时,在这一步中调用InitDebugSerial函数对 串口进行初始化以执行调试输出功能。
步骤S310,判断用户是否需要在该串口上使用调试输出功能;
当默认功能为调试输出功能时,在这一步中判断用户是否需要在该串口上 使用串口驱动功能。
若不需要,则继续执行原有的功能。
若用户需要执行另一功能,则执行步骤S312,使GPSisON为0。当默认功
7能为调试输出功能时,在这一步中使GPSisON为1。
步骤S314,使屏蔽开关掷向调试输出端口;当默认功能为调试输出功能 时,在这一步中使屏蔽开关掷向GPS芯片侧。
步骤S315,清除串口当前寄存器中的设置;这一步只是一个优选步骤,
可以省略。若不执行这一步,容易出现移动终端死机的情况,但仍然可以实现 本发明的目的。
上述步骤S312 S315之间并无严格的时间顺序。
步骤S316,调用InitDebugSerial函数对串口进行初始化以执行调试输 出功能;之后,即可以通过OE丽riteDebugByte函数输出调试信息。
当默认功能为调试输出功能时,此步骤调用Comjnit函数对串口进行初 始化以执行串口驱动功能。
步骤S318,判断用户是否需要在该串口上使用串口驱动功能;当默认功 能为调试输出功能时,在这一步中判断用户是否需要在该串口上使用调试输出 功能。
若不需要,则继续执行原有功能。
若需要,则执行步骤S320,清除串口当前寄存器中的设置,返回步骤S304。 在此时,S320 S306并无时间顺序限制,步骤S320只是一个优选步骤,可以 省略。若不执行这一步,容易出现移动终端死机的情况,但仍然可以实现本发 明的目的。
在需要串口执行调试输出功能时,对寄存器进行如下设置(即 InitDebugSerial的设置)FCR二0x7, MCR二OxO, LCR二0x3, IER=0x40。
在需要串口执行串口驱动功能时,对寄存器进行如下设置(即Com—init 的设置)FCR=OxO, MCR二0x8, LCR二OxO, IER二Oxd。
第二实施例
以下以WindowsMobile平台下,GPS串口、蓝牙串口以及调试输出复用同 一串口为例,对本发明的方法进行说明。该实施例中,开机后串口默认执行 GPS数据传输功能。
如图4表示了这种情况下移动终端的硬件结构图。此时蓝牙芯片、GPS芯 片以及调试输出端口均通过屏蔽开关与移动终端的串口连接。移动终端内部设
8有一标志位INDEX,当标志位为1时,表示用户需要串口执行输出GPS数据的 功能,屏蔽开关掷向GPS芯片,串口与GPS芯片之间导通;当标志位为2时,
表示用户需要串口执行输出蓝牙数据的功能,屏蔽开关掷向蓝牙芯片,串口与
蓝牙芯片之间导通;当标志位为0时,表示用户需要串口执行调试输出功能, 屏蔽开关掷向调试输出端口,调试输出端口与串口导通。
在检测到用户需要使用另一种功能时,根据用户需要的功能对INDEX进行 设置,并且将屏蔽开关掷向执行该功能的模块侧,如果是在串口驱动功能和调 试输出功能之间进行切换,还要调用相应函数对串口进行初始化,如果在串口 驱动功能间进行切换,则不必重新初始化。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的 技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内, 所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种用于移动终端实现串口分时复用的方法,其特征在于,所述移动终端设置有一标志位用以表示需要串口执行的功能,以及所述移动终端的串口通过一屏蔽开关与一个或多个执行串口驱动功能的模块以及一个或多个执行调试输出功能的模块相连,在用户需要从一模块切换到另一模块时,执行如下步骤A、使标志位表示串口需要执行所述另一模块以及使屏蔽开关掷向另一模块;B、若是在串口驱动功能与调试输出功能之间切换,则对串口进行初始化以使其执行所述另一模块。
2、 如权利要求l所述的方法,其特征在于,所述的串口驱动功能是指传 输AT命令、传输GPRS数据、传输蓝牙数据、传输GPS数据等。
3、 如权利要求1或2所述的方法,其特征在于,步骤A中,还包括清除 串口的寄存器当前设置的步骤。
4、 如权利要求3所述的方法,其特征在于,所述步骤B中,当初始化串 口以使其执行串口驱动功能时,对串口寄存器的设置为FCR二0x0, MCR二0x8, LCR二OxO, IER二Oxd。
5、 如权利要求3所述的方法,其特征在于,所述步骤B中,当初始化串 口以使其执行调试输出功能时,对串口寄存器的设置为FCR二0x7, MCR=OxO, LCR二0x3, IER=0x40。
6、 —种串口分时复用的移动终端,所述移动终端包括中央处理单元,其 特征在于,所述移动终端的串口通过一屏蔽开关与一个或多个执行串口驱动功 能的模块以及一个或多个执行调试输出功能的模块相连,所述移动终端设置有 一标志位用以表示需要串口执行的模块,所述中央处理单元用于在移动终端监 测到用户需要执行另一模块的操作时,使标志位表示串口需要执行的所述另一 模块以及使屏蔽开关掷向另一模块,若是在串口驱动功能与调试输出功能之间 切换,则对串口进行初始化以使其执行所述另一模块。
7、 如权利要求6所述的移动终端,其特征在于,所述的串口驱动功能是 指传输AT命令、传输GPRS数据、传输蓝牙数据、传输GPS数据等的任一项。
8、 如权利要求6或7所述的移动终端,其特征在于,所述中央处理器还 用于在移动终端检测到用户需要执行另一功能的操作时,清除当前串口的寄存 器的设置。
9、 如权利要求8所述的移动终端,其特征在于,当中央处理器初始化串 口以使其执行串口驱动功能时,对串口寄存器的设置为FCR二0x0, MCR二0x8, LCR=OxO, IER=Oxd。
10、 如权利要求8所述的移动终端,其特征在于,当中央处理器初始化串 口以使其执行调试输出功能时,对串口寄存器的设置为FCR二0x7, MCR=OxO, LCR=0x3, IER=0x40。
全文摘要
本发明涉及一种用于移动终端实现串口分时复用的方法,所述移动终端设置有一标志位用以表示需要串口执行的功能,以及所述移动终端的串口通过一屏蔽开关与一个或多个执行串口驱动功能的模块以及一个或多个执行调试输出功能的模块相连,在用户需要从一模块切换到另一模块时,执行如下步骤A.使标志位表示串口需要执行所述另一模块以及使屏蔽开关掷向另一模块;B.若是在串口驱动功能与调试输出功能之间切换,则对串口进行初始化以使其执行所述另一模块。本发明解决了在同一串口上驱动功能和调试输出功能分时复用的问题,保证了对串口驱动功能和调试输出功能之间顺畅地进行切换。
文档编号H04M1/72GK101500331SQ20081005750
公开日2009年8月5日 申请日期2008年2月2日 优先权日2008年2月2日
发明者张光彩 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1