附图说明
结合附图对本发明的具体实施方式进行详细描述,本发明的目的,特点和益处将更为清楚。在附图中:
图1是本发明的PIM卡功能的软件实施方式中软件架构示意图;
图2是本发明的PIM卡功能的软件实施方式中软件实现的消息流图;
图3是本发明的PIM卡功能的软件实施方式中应用层软件主控处理流程图;
图4是本发明的PIM卡功能的软件实施方式中应用层子过程处理流程图;
图5是本发明的PIM卡功能的软件实施方式中驱动层软件处理流程图;
图6是本发明的PHS系统中手机(PS)与PIM卡接口的示意框图;
图7是本发明的PHS系统中手机(PS)与PIM卡接口的硬件连线示意图。
具体实施方式
下面将结合各附图对本发明的PHS手机PIM卡功能的实现方法及其装置进行具体描述。
请注意,虽然在本发明的该实施例中,PIM卡的功能由相应的软件实现。但是,本领域技术人员可以理解,PIM卡的各种功能显然也可以由本领域各种公知的硬件来实现,如LTC1555L可用于完成手机与PIM卡之间的接口的功能。(以下将具体描述)。
下面将结合图1-5描述PIM卡协议软件的实现。
图1示意性地示出了PIM卡协议功能实现的总体软件分层结构图。如图1所示,PIM卡协议实现软件采用分层结构,共分三个层次,分别是应用层,传输命令层和硬件驱动层,硬件驱动层又细分任务和驱动两个子层。
应用层负责整个协议栈软件的控制和调度,从协议和MMI(人机接口)层接受请求,对该请求进行解析,然后交给传输命令层。同样地,应用层把驱动层来的消息进行解析,然后发送给协议和人机接口层。传输命令层根据PIM技术标准处理数据以形成相应的传输数据单元,然后将所形成的传输数据单元发送给硬件驱动层。硬件驱动层配合硬件根据ISO7816-3传输协议实现和PIM卡之间的可靠数据交换。
图2示意性地示出了PHS手机PIM卡功能实现的详细消息流图。如图2所示,在L1,协议和人机接口层向应用层发送请求消息,请求PIM卡执行相应的操作。在L2,应用层根据所接收的发送请求消息进行接口调用,根据ISO7816协议数据格式及PIM卡软件接口要求对数据进行处理、封装。接着,在L3,传输层将经由相应接口获得的该发送消息传递给硬件驱动层,完成消息向下层软件的传递。在L4,硬件驱动层向应用层发送指示消息,该消息是用来指示底层驱动或PIM卡执行应用层单步请求的结果,内容包含成功或失败指示,PIM卡返回的数据等,在L1中请求消息内容是更上层的请求,只是对PIM卡的业务请求,如请求鉴权,这个请求将在应用层被解析,分解为具体的执行步骤来完成。然后,在L5,应用层向协议和人机接口层发送通知消息,应用层对底层来的消息进行解析,根据定义的软件接口把执行结果消息传递给相应的上层软件。至此,完成请求PIM卡执行某项功能的操作。
下面结合图3-图5的流程图,以从SIM卡读取一条短消息为例,对如图2所示的软件的各个功能块实现进行详细说明
图3示意性地示出了应用层软件主控处理流程。如图3所示,在步骤S10,对事件进行接收,在该实施例中,该事件即要求从SIM卡中读取一条短消息。在步骤S11,对所接收的该事件进行解析。在步骤S12,判断该事件的来源。如果判断该事件来自于上层,则在步骤S13,判断是否取消该事件?如果判断要取消事件,则在步骤S16取消从SIM卡读取短消息的过程。如果判断不取消事件,则在步骤S15进一步判断是否有其他事件正在处理?如果判断结果为“是”,则在步骤S17将要求从SIM卡中读取短消息的该事件放入缓冲队列,待缓冲队列中其他事件处理完毕后再处理从PIM卡中读取短消息的该事件。如果在步骤S15判断无其他事件正在处理,则程序转到S14,对该事件进行处理。如果在步骤S12判断该事件来自于驱动层,则在步骤S14对该事件进行处理。待该事件处理完成,程序转到步骤S18,处理结束,即,处理的结果是或者立刻执行从PIM卡读取短消息,或者暂时将该事件放入缓冲队列稍后处理,或者取消该事件。
图4示意性地示出应用层子过程处理流程图。如图4所示,在步骤S21,检查该项请求,在本实施例中即为请求从PIM卡读取短消息,所处的状态,确定该项请求处于状态机的哪个状态。在步骤S22,判断该请求是否被取消执行,也就是说该请求是否被要求停止执行。如果判断结果为“是”,则在步骤S23迁移到取消状态。如果判断结果为“否”,则在步骤S24进行相应状态的处理过程。接着,在S25判断在上一步是否异常?如果判断结果为“是”,则在步骤S27将消息发给用户,并在进行后处理后检查队列(S28,S29)。之后,在S31判断队列是否非空。如果队列为“空”,则返回空码,否则,返回非空码。如果在步骤S25的判断结果为“否”,则在步骤S26进一步判断是否达到末状态。如果判断结果为“是”,则程序转到步骤S27继续执行;否则,在步骤S30转移到下一个状态。
下面以从PIM卡读一条短消息为例对上述流程进行详细说明。PIM卡应用层收到上层传来的消息后,首先进行解析,判断相应的状态后,将该请求分解为如下具体步骤来实现,如下表1所示。
表1
图5示意性地示出了驱动层软件处理流程图。如图5所示,在步骤S40接收事件,在本实施例中该时间即从PIM卡读取一条短消息。在步骤S41,提取原语头。在步骤S42,对所提取的原来语头进行解析。之后,处理流程分为4个支流。在S421至S4211支流中,根据原语头解析所得到的上层PIM访问请求而进行与该请求有关的事件处理,即执行从PIM卡读取短消息。在S422至S4221支流中,根据原语头解析所得到的复位请求而执行复位操作。在S423至S4231支流中,根据原语头解析所得到的去活请求而进行去活操作。在S424至S4241支流中,如果原语头解析所得到的内容是除了上述三个支流以外的其他内容,则释放内存,以用于其他处理。
图6示出了实现如上所述的PIM卡功能的硬件方框图。如图6所示,手机系统电路和PIM卡电路通过相应的接口电路耦接在一起。其中,接口电路包括协议和人机接口单元2,应用单元1,传输命令单元3和驱动单元4,分别实现与上述PIM卡软件实现方案中所述协议和人机接口层(MMI),应用层,传输命令层和驱动层相对应的功能(参见图1)。应用单元1负责对接口电路中各个功能单元的控制和调度,其从人机接口单元2接受请求,对该请求进行解析,然后交给传输命令单元3。同样地,应用单元1把驱动单元4来的消息进行解析,然后发送给人机接口单元2。传输命令单元3根据PIM技术标准处理数据以形成相应的传输数据单元,然后将所形成的传输数据单元发送给驱动单元4。驱动单元4中的硬件驱动部分配合硬件根据ISO7816-3传输协议实现和PIM卡之间的可靠数据交换。
具体地说,人机接口单元2向应用单元1发送请求消息,请求PIM卡执行相应的操作。应用单元1根据所接收的发送请求消息进行接口调用,根据ISO7816协议数据格式及PIM卡软件接口要求对数据进行处理、封装。接着,命令传输单元3将经由相应接口获得的该发送消息传递给驱动单元4中的硬件驱动部分,完成消息向下层构件的传递。驱动单元4中的硬件驱动部分向应用单元1发送指示消息,该消息是用来指示底层构件驱动或PIM卡执行应用单元1单步请求的结果,内容包含成功或失败指示,PIM卡返回的数据等,上述从人机接口单元2向应用单元1发送的请求将在应用单元1解析,分解为具体的执行步骤来完成。然后,应用单元1向协议和人机接口单元2发送通知消息,应用单元1对底层构件来的消息进行解析,根据定义的接口把执行结果消息传递给相应的上层构件。至此,完成请求PIM卡执行某项功能的操作。
图7示出了PHS手机PIM卡功能硬件实现的一个具体例子。如图7所示,手机(PS)系统电路通过接口电路与PIM卡电路接口。表2列出了各硬件线路配置管脚对应关系。
表2
管脚名称(接口IC) | 管脚名称(PS_MPU) | 功能 |
V | | 电池(3.6V) |
POWER-C | P | 开关接口电路和PIM卡电源;“高”-关;“低”-开 |
RST | P | 复位PIM卡;“低”激活 |
CLK-C | P | 停止PIM卡时钟;“高”停止 |
RXD | RXD(UART) | 从PIM卡接收数据 |
TXD | TXD(UART) | 发送数据到PIM卡 |
CLK | | 4.8MHZ时钟 |
其中:P代表处理器芯片(MPU)的输入输出(I/O)端口;IC是integrated circuit(集成电路)的缩写;RST是reset(复位)的缩写;CLK是clock(时钟)的缩写;RXD指收数据管脚;TXD指发送数据管脚;V指电池供电管脚;POWER-C指电源控制管脚,C代表control(控制);CLK-C指时钟控制管脚;VCC是PIM卡电源接入管脚。
接口IC提供如下功能:
1、提供VCC(3V)给PIM卡,并可以控制VCC的开/关;对PIM卡提供短路或过流保护;
2、提供4.8MHz时钟给PIM卡,并可以控制时钟的开/关;
3、复合TXD和RXD信号线到PIM卡的I/O接口,并防止I/O信号和其它信号竞争;
4、当PIM卡VCC电源关掉时,确保其它信号线对PIM卡无影响;
5、当手机处于待机状态时,接口相关电路处于低功耗状态。
手机MPU提供如下功能:
1、PIM UART(异步收发器);
2、提供4.8MHz时钟;
3、提供VCC(3V)电源。
硬件操作顺序描述如下:
1、初始化
当系统启动后,接口电路各信号线初始化状态如下表3所示:
表3
名称 | 状态 |
POWER-C: | 高 |
RST | 低 |
CLK-C | 高 |
2、PIM卡激活各信号线状态转换如下表4所示:
表4
顺序号 | RST | POWER-C | CLK-C |
0 | 低 | 高 | 高 |
1 | 低 | 高 | 高 |
2 | 低 | 低 | 高 |
3 | 低 | 低 | 高 |
4 | 低 | 低 | 低 |
3、信息交换
当PIM卡初始化成功后,就可以通过I/O端口交换数据;
4、PIM卡去活各信号线状态转换如下表5所示:
表5
顺序号 | RST | POWER-C | CLK-C |
0 | 高 | 低 | 低 |
1 | 低 | 低 | 低 |
2 | 低 | 低 | 高 |
3 | 低 | 低 | 高 |
4 | 低 | 高 | 高 |
很容易理解,该实施例只列出了一种优选的硬件实施方式。本领域技术人员基于上述PIM卡功能实现原理的具体描述,还可以举出许多其他用于实现上述功能的公知硬件。如上面提到的可用LTC1555L实现手机与PIM卡之间的接口电路的功能。
从上面结合具体实施例的详细描述可以看出,在PIM卡的软件实现方法中,整个软件可采用中断和事件触发机制,上层来的每个请求都会被分解成多个步骤,通过异步状态机的方式来实现,这样不会因某个环节的失败而造成整个系统的阻塞。如遇到忙状态,请求会暂时放入缓冲队列。从PIM卡收数据采用中断机制,提高了处理器的效率,降低了功耗。
此外,PIM卡的协议实现中物理层协议可采用ISO7816-3,这与现有技术相同,从而可以达到完全覆盖。当然,也可以根据技术的发展改变PIM卡协议实现物理层所采用的协议,以便与其他相关技术实现完全兼容和覆盖。
本发明的PIM卡功能软件及其硬件实施方案完全可以实现现有PIM技术规范所规定的安全要求和应用协议。其中,软件实现方案采用中断、事件驱动的异步收发机制,使软件高效、简洁、稳定、可靠。这种技术在上面有关从PIM卡读取短消息的具体实施例中已经得到具体体现,即,每一功能模块只有被触发时才得到执行。此外,在对具体事件进行处理时,利用快速高效的队列缓冲机制。和目前常用队列操作算法相比,该算法速度最快,代码最少。该队列既可以按照FIFO(先进先出)原则使用,也可以按照LIFO(后进先出)原则使用。采用类似数组的软件实现方法,使其简洁高效。由于FIFO和LIFO的具体原理对于本领域技术人员来说是公知的,故在此不再赘述。
通过完全实现相同的协议标准,本发明的PIM卡实现方法可以和SIM卡接口标准完全兼容。
上面根据优选实施例描述的PIM卡协议软件功能实现方式可用于任何具有PIM卡硬件接口电路的小灵通手机。
虽然上面已经结合具体的实施例对本发明的PIM卡功能实现的软件和硬件方案机进行了详细的描述。但是,本领域技术人员可以理解,在不背离本发明的基本概念和精神的前提下,还可以对上述实施例进行各种变化或改进。总之,本发明的保护范围只由附后的权利要求限定。