具体实施方式
应当理解的是,为了使说明简洁清晰,在认为适当的情况下,可以在附图中重复附图标记,以指示相应的或相似的元件或步骤。此外,为了提供对这里所描述的实施例地彻底理解,提出了大量具体细节。然而,本领域的技术人员应理解,这里所描述的实施例可以在没有这些具体细节的情况下实现。在其他实例中,为避免混淆这里所描述的实施例,并未对公知方法、过程和组件进行详细描述。此外,本描述不应被认为以任何方式限制了这里所描述的实施例的范围,而是仅仅描述了这里所描述的各个实施例的实现。此外,术语电池组指具有一个或更多个电池的电池组。
这里所描述的实施例通常在针对使用“智能电池”的移动通信设备的数据通信领域中具有实用性,该智能电池是电池处理器以及使智能电池能够同移动设备进行通信的其他有关电路的电池。可以在电池处理器与移动设备的处理器之间传递各类信息。为便于理解,正如以下将更详细地予以描述的那样,将根据具有主处理器、电池接口以及智能电池的移动无线通信设备来描述这里所给出的实施例,其中智能电池具有电池处理器及有关电子装置。然而,应理解,还可以将这里所描述的实施例的结构和功能应用于用来给智能电池充电的电池充电器。
实施例通常利用移动通信设备(以下称为移动设备),即具有能够以无线或有线方式同包括其他移动通信设备在内的其他计算设备进行通信的高级数据通信能力的双向通信设备。移动设备可以通过收发信站点的网络同其他设备进行通信。移动设备还可以具有语音通信能力。然而,根据移动设备所提供的功能及移动设备的结构,移动设备可以指数据消息收发设备、具有数据消息收发能力的蜂窝电话、无线组织器、无线互联网设备、个人数字助理、智能电话、手持无线通信设备(具备或不具备电话功能)、具有无线通信能力的笔记本电脑等。
首先参照图1,图1示出了一个示例性实现中的移动设备100的框图。移动设备100包括许多组件,控制组件是控制移动设备100的总体操作的主处理器102。通过通信子系统104实现包括数据和语音通信在内的通信功能。通信子系统104自/至无线网络200接收/发送消息。在移动设备100的某些实现中,按照全球移动通信系统(GSM)和通用分组无线业务(GPRS)标准来配置通信子系统104。GSM/GPRS无线网络可以在全世界范围内使用。其他可以使用的标准包括增强型数据速率GSM环境(EDGE)、通用移动通信服务(UMTS)、码分多址(CDMA)和智能数字增强型网络(iDENTM)标准。目前仍在制定新标准,然而相信新标准将具有同这里所描述的网络相似的网络行为,因而本领域的技术人员应理解,这里所描述的实施例可以采用将于未来开发出来的其他合适的标准。连接通信子系统104与无线网络200的无线链路表示根据为GSM/GPRS通信指定的规定协议操作的一条或更多条不同的射频(RF)信道。利用较新的网络协议,上述信道能够支持电路交换语音通信和分组交换数据通信。
尽管在某些实现中与移动设备100相关联的无线网络200是GSM/GPRS无线网络,然而在其他实现中还可以将其他无线网络与移动设备100相关联。可以采用的不同类型的无线网络包括例如:以数据为中心的无线网络、以语言为中心的无线网络以及能够通过相同的物理基站同时支持语音和数据通信的双模网络。组合的双模网络包括,但不局限于:码分多址(CDMA)或CDMA2000网络、iDEN网络、GSM/GPRS网络(如上所述)、以及如同EDGE和UMTS一样的未来第三代(3G)网络。以数据为中心的网络的一些其他示例包括:WiFi802.11、MobitexTM以及DataTACTM网络通信系统。其他以语音为中心的数据网络的示例包括:如同GSM和时分多址(TDMA)系统一样的个人通信系统(PCS)网络。
主处理器102还与附加子系统交互,例如随机存取存储器(RAM)106、设备存储器108、显示器110、辅助输入/输出(I/O)子系统112、数据端口114、键盘116、扬声器118、麦克风120、短距离通信122以及其他设备子系统124。
移动设备100的某些子系统执行与通信有关的功能,而其他子系统可以提供“驻留”或设备上功能。作为示例,可以将显示器110和键盘116用于通信相关功能(例如输入用于通网络200传输的文本消息)以及设备驻留功能(例如计算器或任务列表)。典型地,将主处理器102所使用的操作系统软件存储于永久性存储器,例如设备存储器108,该永久性存储器备选地可以是只读存储器(ROM)或类似的存储元件(未示出)。在某些情况下,设备存储器108可以是闪存。本领域技术人员将理解,可以将操作系统、特定的设备应用、或者它们的一部分暂时加载到诸如RAM 106的易失性存储器中。
在完成了所需的网络注册或激活程序之后,移动设备100可以通过无线网络200发送并接收通信信号。网络接入与移动设备100的订户或用户相关联。为了识别订户,移动设备100可以要求将SIM/RUIM卡126(即,用户识别模块或可移动用户识别模块)插入到SIM接口128中,以便与网络进行通信。因而,SIM卡/RUIM 126和SIM/RUIM接口128完全是可选的。
SIM卡或RUIM 126是一种传统的“智能卡”,可用于识别移动设备100的订户,并对移动设备100进行个性化设置等等。在没有SIM卡126的情况下,移动设备100无法完全操作用于与无限网络200的通信。将SIM卡/RUIM 126插入SIM接口128之后,订户可以访问所有订购的服务。服务可以包括:web浏览以及诸如电子邮件、语音邮件、短消息服务(SMS)、以及多媒体消息收发服务(MMS)之类的消息收发。更多的高级服务可以包括:销售点、现场服务以及销售自动化。SIM卡/RUIM 126包括处理器以及用于存储信息的存储器。一旦将SIM卡/RUIM 126插入SIM接口128,则其与主处理器102相耦合。为了识别订户,SIM卡/RUIM 126包含一些用户参数,例如国际移动用户识别码(IMSI)。使用SIM卡/RUIM126的优点是订户不需要绑定于任意单一的物理移动设备。SIM卡/RUIM126还可以为移动设备存储附加订户信息,包括记事簿(或日历)信息和最近的通话信息。备选地,还可以将用户识别信息写入设备存储器108。
移动设备100是电池供电设备,并且可以包括用于与智能电池130进行接口的电池接口132。在这种情况下,电池接口132还耦合至电源管理模块134,后者用于协助电池130给移动设备100供电。主处理器102还可以耦合至电源管理模块134以共享信息。然而,在备选实施例中,可以通过智能电池130来提供电池接口132;下面将更详细地对这两种组件予以说明。
除了其操作系统功能以外,主处理器102还启动了软件应用136在移动设备100上的执行。通常在其制造过程中,将用于控制基本设备操作的、包括数据和语音通信应用在内的软件应用子集136安装在移动设备100上。软件应用136可以包括电子邮件程序、web浏览器、附件阅览器等。
移动设备100还包括设备状态模块138、地址簿140、个人信息管理器(PIM)142以及其他模块144。设备状态模块138能够提供永久性,即设备状态模块138确保重要设备数据存储在永久性存储器(例如设备存储器108)中,以免在关闭移动设备100或移动设备100掉电时丢失这些数据。地址簿140可以提供用户联系人列表的信息。对于地址簿中的给定定联系人,该信息可以包括:该联系人的姓名、电话号码、工作地址和电子邮件地址等信息。除了可以同SIM/RUIM接口128结合使用的其他模块,其他模块144还可以包括配置模块(未示出)。
PIM 142具有用于组织管理用户感兴趣的数据项的功能,例如,但不局限于:电子邮件、日历事件、语音邮件、约会、任务项。PIM应用具有通过无线网络200发送和接收数据项的能力。可以通过无线网络200将PIM数据项与所存储的和/或与主机系统相关联的移动设备订户的相应数据项进行无缝合并、同步以及更新。该功能在移动设备100上创建了关于上述项目的镜像主机。当主机系统是移动设备订户的办公计算机系统时,这样做可能特别有利。
还可以通过无线网络200、辅助I/O子系统112、数据端口114、短距离通信子系统122或任意其他适当的设备子系统124中的至少一个,将附加应用程序加载到移动设备100上。应用程序这种灵活的安装方式扩展了移动设备100的功能,并可以提供增强型设备上功能、通信相关功能或同时提供两种功能。例如,安全通信应用可以使用户能够使用移动设备100执行电子商务功能和其他此类金融交易。
数据端口114使用户能够通过外部设备或软件应用设置偏好,并通过提供到移动设备100的信息或软件下载(而不是通过无线网络)来扩展移动设备100的能力。例如,备选的下载路径可用于通过直接并因此可靠且可信的连接来将密钥加载到移动设备100,以提供安全设备通信。
数据端口114可以是启动移动设备100与另一计算设备之间的数据通信的任意适当的端口。该数据端口可以是串行或并行端口。在某些实例中,数据端口114可以是包括数据线以及供电线路的USB端口,其中,数据线用于传输数据,供电线路能够提供充电电流为移动设备100充电。
短距离通信子系统122可以在不使用无线网络200的情况下使移动设备100能够和不同的系统或设备进行通信。例如,短距离通信子系统122可以包括用来实现短距离通信的红外设备及相关电路和组件。短距离通信标准的示例包括:红外数据协会(IrDA)所开发的标准、蓝牙、以及IEEE所开发的802.11标准族。
使用时,通信子系统104将对诸如文本消息、电子邮件消息或所下载的网页之类的接收信号进行处理,并将处理结果输入主处理器102。然后,主处理器102将对接收到的信号进行处理,并将处理结果输出至显示器110或备选地输出至辅助I/O子系统112。订户还可以例如将键盘116同显示器110可能还有辅助I/O子系统112结合使用,来构成诸如电子邮件消息之类的数据项。辅助子系统112可以包括例如:触摸屏、鼠标、跟踪球、红外指纹检测器或具有动力学按钮功能的滚轮等设备。在优选情况下,键盘116是字母数字键盘和/或电话键盘。然而,还可以使用其他类型的键盘。所构成的项可以通过通信子系统104在无线网络200上传输。
对于语音通信,除了要将接收信号输出至扬声器118,以及要用麦克风120产生发送信号以外,移动设备100的总体操作基本同上面类似。还可以在移动设备100上实现备选的语音或音频I/O子系统,例如语音消息记录子系统。尽管主要通过扬声器118输出语音或音频信号,然而还可以使用显示器110来显示附加信息,例如主叫方身份、通话持续时间或其他与语音呼叫有关的信息。
下面参照图2,图2示出了图1的通信子系统组件104的示例性实施例的框图。通信子系统104包括:接收机150、发射机152以及关联组件,例如:一个或更多个嵌入式的或内置的天线154和156、本地振荡器(LO)158以及用于无线通信的通信处理器160。通信处理器160可以是数字信号处理器(DSP)。对于通信领域的技术人员而言,显而易见的是,通信子系统104的具体设计可能取决于移动设备100要工作于何种通信网络。因此,应当理解的是,图2所示的设计方案仅仅是一个示例。
将天线154经无线网络200接收到的信号输入接收机150,后者可以执行诸如信号放大、下变频、滤波、信道选择以及模数(A/D)转换等常见的接收机功能。接收信号的模数转换使通信处理器160能够执行诸如解调和解码等更为复杂的通信功能。按照类似的方式,通过通信处理器160对待发送信号进行包括调制和编码在内的处理。然后,将这些经处理的信号输入发射机152进行数模(D/A)转换、上变频、滤波、放大,并经由天线156通过通信网络200进行发送。通信处理器160不仅处理通信信号,还为接收机和发射机提供控制。例如,可以通过在通信处理器160中实现的自动增益控制算法来自适应地控制在接收机150和发射机152中施加给通信信号的增益。
移动设备100与无线网络200之间的无线链路可以包含:一条或更多条不同的信道(典型地为不同的RF信道);以及移动设备100与无线网络200之间所使用的关联协议。典型地,由于总带宽的限制以及移动设备100的有限的电池电量,RF信道是必须节约的有限资源。
当移动设备100全面操作时,发射机152一般仅在向无限网络200发送时开启或打开,而在其它时间关闭,以节约资源。同样,除非需要在指定时段期间接收信号或信息(如果有的话),否则周期性地关闭接收机150以节约电源。
现在参照图3,无线网络200的节点的示例性实施例的框图表示为202。实际上,无线网络200包括一个或更多个节点202。移动设备100与节点202通信。在图3的示例性实现中,按照通用分组无线业务(GPRS)和全球移动通信系统(GSM)技术对节点202进行配置。节点202包括:具有关联塔站206的基站控制器(BSC)204、为了在GSM网络中支持GPRS而添加的分组控制单元(PCU)208、移动交换中心(MSC)210、归属位置寄存器(HLR)212、访问位置寄存器(VLR)214、服务GPRS支持节点(SGSN)216、网关GPRS支持节点(SGSN)218以及动态主机配置协议(DHCP)220。这一组件列表并不是GSM/GPRS网络内的每一节点202的组件的完全列表,而是通常用于通过无线网络200所进行的通信的组件列表。
在GSM网络中,MSC 210耦合至BSC 204及诸如公共交换电话网(PSTN)222之类的陆上网络,以满足电路交换的需求。通过PCU 208、SGSN 216和GGSN 218到公共或专用网络(互联网)224(这里也统称为共享网络基础设施)的连接表示针对具有GPRS能力的移动设备的数据通路。在已经扩展有GPRS能力的GSM网络中,BSC 204还包含分组控制单元(PCU)208,PCU 208连接到SGSN 216以控制分段、无线电信道分配并满足分组交换的需求。为了跟踪移动设备的位置以及电路交换和分组交换管理的可用性,在MSC 210与SGSN 216之间共享HLR 212。由MSC 210控制对VLR214的访问。
站206是固定收发站。站206和BSC 204一起构成固定收发装置。该固定收发装置为特定覆盖区域(一般称为“小区”)提供无线网络覆盖。该固定收发装置通过站206向小区内的移动设备发送通信信号,并从小区内的移动设备接收通信信号。该固定收发装置通常在其控制器的控制之下根据特定的(通常为预定的)通信协议和参数对要发送到移动设备的信号执行如调制、可能的编码和/或加密之类的功能。如果需要的话,该固定收发装置类似地对从其小区中的移动设备100处接收到的所有通信信号进行解调、可能的解码和解密。通信协议和参数可以在不同节点之间变化。例如,一个节点可以采用不同于其他节点的调制方案,并操作于不同于其他节点的频率。
对于注册于特定网络的移动设备100,将诸如用户简档之类的永久配置数据存储在HLR 212中。HLR 212还包括每一注册的移动设备的位置信息,并可以被查询以确定移动设备的当前位置。MSC 210负责一组位置区域,并将当前存在于其负责的区域内的移动设备的数据存储在VLR 214中。VLR214还包含关于正在接入其它网络的移动设备的信息。VLR 214中的信息包括为了更快速接入而从HLR 212发送到VLR 214的永久移动设备数据的一部分。通过将附加信息从远程HLR 212节点移到VLR 214,可以降低这些节点之间的业务量,因此可以为语音和数据服务提供更快的响应时间,同时只需要使用更少的计算资源。
SGSN 216和GGSN 218是为了在GSM中支持GPRS而添加的元件;即支持分组交换数据。SGSN 216和MSC 210通过保持对每个移动设备100的位置的跟踪而在无线网络200内具有相似的责任。SGSN 216还执行安全功能以及对网络200上的数据业务的接入控制。GGSN 218提供与外部分组交换网络的网际互连连接,并通过操作于网络200内的互联网协议(IP)骨干网连接到一个或更多个SGSN 216。在正常操作期间,给定的移动设备100必须执行“GPRS附着”,以获取IP地址并接入数据服务。由于综合业务数字网(ISDN)的地址用于路由来电和去电,因此在电路交换语音信道中不存在这一需求。目前,所有具有GPRS能力的网络使用私有的、动态分配的IP地址,因此需要将DHCP服务器220连接到GGSN 218。存在多种动态IP分配机制,其中包括使用远程用户拨入认证系统(RADIUS)服务器与DHCP服务器的组合。一旦完成GPRS附着,则建立从移动设备100通过PCU 208和SGSN 216到达GGSN 218内的接入节点(APN)的逻辑连接。APN表示既可以直接接入互联网兼容服务也可以接入私有网络连接的IP隧道的逻辑端点。由于必须为各移动设备100分配一个以上的APN,并且如果不首先执行终止于APN的GPRS附着,移动设备100就不能交换数据,因此APN还代表无线网络200的安全机制。可以认为APN与互联网域名类似,例如“myconnection.wireless.com”。
一旦完成GPRS附着,则创建隧道,并使用IP分组中所支持的任意协议来交换标准IP分组内的所有业务。这包括隧道方法,例如在以连同虚拟个人网络(VPN)一起使用的某些IPSecurity(IPsec)连接的情况下的IP承载IP(IP over IP)。这些隧道也被称为分组数据协议(PDP)上下文,并且网络200中这些可用隧道的数目是有限的。为了最大限度地利用PDP上下文,网络200针对每一PDP上下文运行一空闲定时器,以确定是否缺少活动性。当移动设备100没有使用其PDP上下文时,可以释放该PDP上下文,并将IP地址返回到DHCP服务器220所管理的IP地址池。
现在参照图4,图4示出了可用于移动设备100的智能电池130的示例性实施例的框图。智能电池130包括:电池处理器252、电池存储器254、电池接口256、开关和保护电路258、包括模数转换器(未示出)的测量电路260、以及电池模块262。电池模块262包括一个或更多个通常可再充电的电池。电池可由镍铬、锂离子或其他合适的合成材料等制成。在某些实现中,电池处理器252可以是美国Arizona,Chandler的Microchip所制造的PIC10F202。在这些情况下,可以将电池处理器252上的一个通用输入/输出(GPIO)管脚连接至主处理器102,以从主处理器202接收指令,并向主处理器102提供数据。
电池处理器252控制智能电池130的操作,并且可以通过电池接口256与主处理器102进行通信。电池处理器252包括:寄存器、堆栈、计数器、看门狗定时器以及本领域的技术人员所熟知的、处理器常用的其他组件(未示出全部)。电池处理器250还可以包括时钟(未示出)。智能电池130可以在电池存储器254中存储信息。电池存储器254可以是易失性和非易失性存储器的组合。
智能电池130可以使用测量电路260来读取与电池模块262的操作有关的某些数据,例如:电池电流、电池电压、电池温度等。这些测量可用于获得对电池模块262中的剩余蓄电量的准确估计。为了执行这些测量,测量电路260包括模数转换器(ADC)(未示出)。由于在备选实施例中,移动设备100可以包括用于执行测量电路260的功能的电路,因而测量电路260可以是可选的。
开关和保护电路258可用于保护智能电池130。开关和保护电路258可以起到断路器的作用,在某些情况下可由电池处理器252或主处理器102来启动开关和保护电路258,以确保智能电池130不会在使用中损坏。例如,开关和保护电路258可以包括热断路器,用于在电池模块262温度过高时禁用智能电池130。假如其他保护电路出现故障,则热断路器还可以在高电流负载的情况下断开智能电池130。开关和保护电路258还可以防止短路、欠压状态、过压充电、电池130极性反接等。因此,开关和保护电路258还可以在电池模块262的充电、放电或预充电过程中使用,以及用于蓄电池组电池平衡。电池接口132中还可以包括附加保护电路。
电池模块262为电池处理器130供电,后者继而利用本领域技术人员公知的连接(例如系统电源总线),通过电池接口256给主处理器102供电。如果移动设备100包括可以提供与电池接口256相同的功能的电池接口132,则电池接口256是可选的。在对本示例性实施例的描述的余下部分中,假定不存在电池接口132,并假设智能电池130提供电池接口256,尽管在其他实施例中不必局限于这种情况。
现在参照图5A,图5A示出了可用于将主处理器102耦合至智能电池130的电池接口256的一部分的示例性实施例的示意图(未示出电源连接)。传统的电池标识(即,型号、厂商等)方法只使用传统电池组中的电池标识电阻器,该电池标识电阻器具有一条关联的电池ID数据线。相应地,电池接口256通过一条通信线路302将主处理器102与智能电池130的电池数据传输线SMART_BAT相耦合。SMART_BAT数据线连接至智能电池130上的输入/输出管脚。然而,智能电池130被配置为与主处理进行通信,该主处理器与具有电池ID电阻器的电池组或下面将更详细地予以描述的智能电池协作。
由于电池接口256包括用于在主处理器102与电池处理器252之间进行通信的单根通信线路302,并且由于主处理器102至/自电池处理器252发送/接收数据,因而可以将通信线路302配置为半双工通信线路。半双工通信线路的使用降低了对于主处理器102与电池处理器252之间的更多通信线路的需求。
在操作过程中,在某一给定瞬时,数据沿半双工通信线路的一个方向流动。相应地,将通信线路302同时连接至主处理器102的发射和接收管脚304和306。在某些情况下,可以利用UART发射和接收端口/管脚来实现主处理器102上的发射和接收管脚。主处理器102按UART接口的常规使用方式来使用UART接口,但在发射管脚304发射信号时不考虑接收管脚306。
此外,使用半双工通信要求在某一给定时刻主处理器102和电池处理器252中只有一个进行通信。为此,可以将处理器102和252其中之一定义为主设备,而将另一个定义为从属设备。通常,主处理器102是主设备,电池处理器252是从属设备。
在某些实现中,智能电池130自动操作于最低功耗状态。这样做的另一个原因在于,不可能总存在连接至智能电池130、指示智能电池130进入休眠模式的主处理器。为了解决上述问题,在某些实现中,可以使用电池处理器252的看门狗定时器作为整个系统的重启/睡眠机制,来获得低功耗和可靠性。然而,由于编码错误有可能导致在一次循环中调用清空看门狗定时器的指令,因此,不应重置看门狗定时器。当看门狗定时器数到零时,就重置移动设备100,移动设备100重新启动。然而,如果必须要执行一个持续时间大于看门狗定时器/计数器的操作,则可以将看门狗定时器至少重置一次,以确保操作运行至完成并且移动设备100不重新启动。
电池接口256还包括保护电路,用于防止主处理器102受到通信线路302上的静电放电(ESD)的破坏。在某些实现中,保护电路可以是RC网络。在图5A的示例性实施例中,提供ESD保护的RC网络包括电阻器R3和电容器C1。电阻器R2可用作上拉电阻器。电阻器R2的第一节点连接至发射管脚304,电阻器R2的第二节点连接至接收管脚306。电阻器R3的第一节点连接至电阻器R2的第二节点,电阻器R3的第二节点连接至电容器C1的第一节点。电容器C1的第二节点接地。在示例性实现中,电阻器R2可以具有1kΩ的电阻,电阻器R3可以具有150Ω的电阻,电容器C1可以具有15pF的电容。电阻器R2的值取决于针对电池数据线所以选择的ESD网络(以下将进一步予以讨论)。电阻器R2可以在主处理器102操作于接收模式时起到上拉电阻器的作用。在本示例性实施例中,发射管脚304上的输出电压可以是2.8V或2.6V,这取决于移动设备100所用的通信芯片组。对于CDMA芯片组,可以采用2.6V的电压。
使用RC网络作为保护电路降低了通信线路302上的数据速率。对于本示例性实现,数据速率的最大值大约为每秒300比特。然而,从安全角度考虑,每秒300比特的数据速率的限制是有利的,这是由于对于较低的数据速率,第三方将花费更长的时间才能“入侵”存储在智能电池130上的安全算法。在某些实施例中,如果通过电池处理器252来执行加密算法(即加密方法),则还可以调整加密方法的复杂度,以延长算法执行时间,来对抗入侵。
在某些情况下,电池处理器252可被配置为充当开漏器件,并将上拉电阻器同主处理器102一起使用。这是因为存在Vcc电平,所以电池处理器252的输出驱动电压可能会超过主处理器102的发射和接收管脚304和306的额定电压。如果电池处理器252正在驱动将三态缓冲器置于高阻态的高电平输出信号(即充当开漏),则可能出现这种情况。由于发射线路304在高电平状态下空闲,因此可以将上拉电阻器(即电阻器R2)置于主处理器102的发射和接收管脚之间。
备选地,如果采用传统电池组,则可以通过在SMART_BAT线路上传输来获得电池ID电阻器值。相应地,同样通过将电池ID电阻器并入智能电池130,智能电池130既可与生产出来的、使用包含电池ID电阻器的电池组的移动设备兼容,同时又与生产出来的、使用智能电池130的移动设备兼容。应理解,电池ID电阻器被包含在智能电池130中(即参见图5C)。
为方便使用蓄电量各不相同的各种不同电池,可以为智能电池130定义等式1-2所示的电压电流的最大最小逻辑电平,并为主处理器102定义等式3-4所示的电压电流的最大最小逻辑电平。
Vih=0.25*Vdd+0.8V (1)
Vil=0.15*Vdd (2)
Vil~=0.3*(GPIO Vdd) (3)
Vih~=0.7*(GPIO Vdd) (4)
例如,就端电压为4.4V(即,Vdd=4.4V)的智能电池而言,Vih(max)=1.9V,Vil(max)=0.66V。另外,对于以发射和接收管脚304和306上的2.8V和2.6V的Vdd(具体取决于通信芯片组)进行操作的主处理器而言,Vil(min)=0.78V,Vih(max)=1.96V。
现在参照图5B,图5B示出了可用于移动通信设备100的、用于将主处理器102耦合至智能电池130的另一电池接口350的示例性实施例的示意图。在这种情况下,电池接口350包括:与电池接口256所用的RC网络类似的RC网络以及两个三态缓冲器354和356。电源管理模块134通过输入管脚358连接至智能电池130的SMART_BAT电池数据线。
三态缓冲器能够根据控制输入值传递高或低逻辑电平信号,并且可以将其输入端与输出端断开。三态缓冲器354的输入节点连接至主处理器252的发射管脚304,通过电阻器R2将三态缓冲器354的输出节点连接至通信线路302。三态缓冲器356的输入节点连接至通信线路302,三态缓冲器356的输出节点连接至主处理器102的接收管脚306。主处理器102还包括用于禁用和启用缓冲器354、并连接至缓冲器354控制输入端的TX_ENABLE管脚。在本示例性实现中,可以使用逻辑低电平信号来启用三态缓冲器354和356。此外,在某些实现中,三态缓冲器356可以始终启用;下文将进一步对这种情况加以说明。因此,三态缓冲器356的控制输入端可以接地。
当电源管理模块134检测是否已将智能电池130取出时,可以将三态缓冲器354和356同智能电池一起使用。当使用具有电池ID电阻器的电池组时,对于图5A所示的实施例而言,电池移除检测并不复杂,这是由于可以获得例如10μA的、流经电池ID电阻器(未示出)的电流。然后,可以通过测量结果电压降来判断电池组是否仍安装在移动设备100上。需要在各种情况下检查是否已将电池取出,一种情况是在移动设备100为电池再充电时进行检查。
还可以使用备选实施例来检测是否已将电池取出。例如,可以将比较器电路(未示出)连接至SMART_BAT数据线。比较器电路可独立于主控制器102操作,并且可以在电池取出的情况下产生并向主处理器102发送复位脉冲。为便于箝位,可以令比较器阈值低于2.8/3.0V GPIO。在某些实施例,可以连续轮询智能电池130中的热敏电阻器(未示出)。为便于对发射和接收管脚304和306进行电压箝位,可以使用独立于主处理器102上的UART管脚的连接来进行轮询。可以通过主处理器102之外的另一处理器来进行轮询。
对于智能电池,可以将电池ID存储在电池存储器254中,电池处理器252能够将该信息传送至主处理器102。这种做法使得可以通过软件对智能电池加以认证,以确保智能电池130不是假冒电池。认证过程的一部分涉及:在将智能电池130插入移动设备100时或每次开启移动设备100时获得电池ID。其他情况下,通常不重复执行认证过程。
然而,在至少某些实施例中,智能电池130不仅能够将电池ID存储在电池存储器254中,还能够包括电池标识(ID)电阻器。这种做法使智能电池130能够后向兼容那些依赖于电池ID电阻器的移动设备。智能电池130还兼容于那些与电池处理器252进行通信以获得电池ID的移动设备。电池接口256和350均支持测量电池ID电阻器的功能以及主处理器102与电池处理器252之间的通信功能。电池接口256和350中所用的组件还提供ESD保护。电池ID电阻器还可用于检测电池130是否存在。
电源管理模块134能够独立检测电池130是否仍连接至移动设备100。可以利用中断来实现这一特征。通常在为电池130充电时执行检测。在某些情况下,为了检测是否已将电池取出,电源管理模块134令电流流经电池ID电阻器,并测量电池ID电阻器两端的电压。该电流可能具有10μA的数量级。电源管理模块134通过连接至电源管理模块134中的模数转换器(未示出)的输入端358测量该电压。在这个过程中,由于电源管理模块134直接感测智能电池130是否存在,因而电源管理模块134与主处理器102之间无需存在连接。此外,在此期间,主处理器102与智能电池130之间无需存在连接。因此,在某些情况下,可以禁用三态缓冲器354。可以在某些时刻(即,例如插入电池)启用/禁用缓冲器354,并且可以对电源管理模块134中的电流源(未示出)进行控制,以免对电池通信造成干扰。
存在某些实例,其中主处理器102、电池处理器252和电源管理模块134可以工作于不同的功率电平。因此,图5B的实施例可用于在某些情况下防止主处理器102被电池处理器252所用的较高的电平损坏。例如,如果将智能电池130取出,则SMART_BAT数据线上的电压将超过4V以上的阈值。如果在为电池充电的同时将电池取出,则可以将移动设备100配置为重置并且重启。然而,由于在某些实现中只能将发射和接收管脚304和306分别设定为3.0V/2.8V的输入/输出电压,因而不能传递电源管理模块134检测电池移除时所常用的高于4V的电压,而是必须将所有输入电压箝位于3.0V/2.8V,因此发射和接收管脚304和306可能无法承受如此之高的电压。可以选择缓冲器354和356的特定实现,并提供启用/禁用控制信号,以协助解决主处理器102、电池处理器252和电源管理模块134之间的电压兼容的问题。
现在参照图5C,图5C示出了智能电池400的另一示例性实施例的一部分的示意图。通常,在这里所示出的至少一些实施例中,电池252’可以是PIC10F202微处理器。电池处理器252’具有通用管脚GP0、GP1、GP2、GP3以及电源管脚Vdd和Vss。智能电池400包括电阻器R1b、R2b、R3b以及电容器C1b。电阻器R1b、R2b以及电容器C1b可以是电池接口256的一部分。在某些情况下,电池模块262’可以具有4.2V或4.4V的端电压。
SMART_BAT数据线经电阻器R1b连接至电池处理器252’的输入端GP0。电阻器R2b可用作电池ID电阻器,以实现与无法与电池处理器252’进行通信的移动设备的后向兼容,以及其他用途。为指示电池模块262’的蓄电量,电池ID电阻器R2b可以具有若干不同电阻值,例如100kΩ、86.6kΩ以及15kΩ。
电容器C1b和电阻器R1b为输入管脚GP0提供ESD保护。可以通过连接二极管阵列(未示出)(例如美国California,Camarillo的SEMTECH生产的SMF05)为输入管脚GP0提供进一步的ESD保护。电阻器R3b还为GP3管脚提供ESD保护。智能电池400还可以包括标准锂离子电池保护电路(未示出)。在一个示例性实现中,电阻器R1b可以具有100Ω的电阻,电阻器R2b可以具有100kΩ、86.6kΩ或15kΩ的电阻,电阻器R3可以具有100Ω的电阻,以及电容器C1b可以具有0.1μF的电容。
电池处理器252’可以通过GP0管脚直接读入逻辑高电平信号(即,比如2.8V的逻辑电平‘1’)和逻辑低电平信号(即,比如0V的逻辑电平‘0’)。为写入‘0’,将通用输入/输出管脚GP0管脚配置为输出管脚,并将其驱动为低电平。为写入‘1’,将GP0管脚配置为输入管脚,并通过主处理器102(通过电阻器R2)将其电平拉高。在某些情况下,由于驱动逻辑1可能损坏主处理器102的硬件,因而电池处理器252’不驱动逻辑1。
目前,市场上的假冒电池组日渐增多,并且由于假冒电池组不具备同正品电池组相当的能力,因而存在种种问题。这种情况可能引发各种问题,包括在为假冒电池组充电时将移动设备100损坏。相应地,智能电池130的电池处理器252可以执行加密算法,使主处理器102能够对智能电池130进行认证,以确保智能电池130不是无权同移动设备100一起使用(这可能是由非授权电池组不具备足够的蓄电量、充分的保护电路、各种不同的充电特征等原因导致的)的假冒电池或电池组。
通常,现行智能电池采用对称密钥加密技术,基于私钥,与移动设备执行认证。这意味着,传统智能电池和传统移动设备均包含有私钥。可以定制智能电池,令其对存储在电池硬件上的信息加以保护。然而,移动设备不存在类似的硬件保护。移动设备通常使用现成的组件,因而通常将私钥保存在普通的闪存芯片中。可以比如通过JTAG仿真和调试或通过将芯片从印刷电路板拆除的方法,恢复闪存芯片的内容,从而恢复私钥。一旦恢复了这个私有认证密钥,就可以用私钥信息来制造假冒电池。因此,从安全角度考虑,假冒智能电池现已具有与正品智能电池相同的安全信息,因而,移动设备100无法区分真假电池。
为解决上述问题,可以使用以下安全协议。主处理器102可以向智能电池130发送挑战消息。这个挑战消息可以是一个随机数。电池处理器252接受该挑战消息,并使用加密算法、挑战消息和私钥产生响应消息。可以利用可在智能电池130上执行的、但使黑客无法通过合理的计算量算出私钥的、任意合适的加密算法。然后,主处理器102将该响应消息同存储在移动设备100中的参考消息进行比较。如果两者匹配,则指示智能电池130拥有私钥。因而,证明智能电池130是一个安全、可用的正品电池。另一方面,假冒电池通常对私钥一无所知。
由于在某些情况下移动设备100并不安全,因而不将私钥存储在移动设备100的设备存储器108中。然而,智能电池130的电池存储器254是安全的,因此将私钥存储在电池存储器254中。此外,可以在移动设备100上存储若干挑战和响应对,并且可以用它们中的任意之一来对电池组进行认证。在某些实现中,可以将挑战和响应对存储在移动设备100的NVRam中。
为进一步提高安全性,可以向移动设备100写入唯一的挑战和响应对。这样做可以确保:即使第三方截获了某一指定移动设备的挑战和响应对,第三方也只能获得专门为特定移动设备产生的挑战和响应信息。其他移动设备将使用不同的挑战响应对。因此,即使复制一个移动设备的挑战响应对,并将其写入假冒电池,假冒电池只能和特定的移动设备一起使用,和不能用于其他移动设备。因而,造假者为了能够成功生产出假充正品的假冒电池,就不得不获取加密方法以及私钥。
因此,在制造给定移动设备的过程中,可以产生一个或更多个的唯一挑战,以及针对给定私钥所计算的相应响应。然后,将该挑战和响应对存储在给定的移动设备上,并将给定私钥存储在要和给定移动设备一起使用的智能电池上。在某些实施例中,可以为给定形状因数的智能电池赋予同一私钥。这样做使得可以更换某一给定移动设备的智能电池。因此,即使智能电池丢失或者损坏,也可以更换某一给定移动设备的智能电池。
传统电池组具有电池ID电阻器,主处理器102通过感测这个电池ID电阻器来确定连接至移动设备100的电池组的类型。移动设备100能够存储可与移动设备100一同使用的若干不同类型电池的电池信息简档。通常将电池信息简档存储在存储器106中。移动设备100使用与插入移动设备100的电池组相对应的特定的电池信息简档。电池信息包括:与充电曲线、放电曲线等有关的信息。曲线是电压和蓄电量的关系曲线,可以被存储在查找表(LUT)中。可以在LUT上使用内插。
由于不同电池组可以以不同充电速率充电,因此电压和蓄电量的关系曲线十分有用。例如,某些电池组能够承受750mA的充电电流,而其他电池组能够承受1.5A的充电电流。曲线还会根据移动设备100的操作发生改变。例如,移动设备100在进行无线通信时所使用的通信标准就会对电池组的放电速率和放电量产生影响。例如,同一电池组会根据移动设备100是使用CDMA通信标准还是GPRS通信标准而使用不同的放电曲线。备选地,除了针对两种不同通信标准存储两个包括电压蓄电量关系曲线的电池信息简档之外法,还可以存储包括第一电压蓄电量关系曲线的电池信息简档,并存储另一个包括一组偏移量的电池信息简档,以根据第一条曲线推导出另一曲线。
在另一备选方案中,可以使用通用电池信息简档,而并非针对由于例如所用的通信标准不同而以不同方式操作的移动设备存储不同的电池信息简档。因而,可以将移动设备100配置为从通用电池信息简档中读取信息,但执行不同运算来获得必要的电池相关信息,例如电池充电曲线。例如,还是以使用GSM和CDMA通信标准为例,对于CDMA标准,一般可以以恒定速率绘制电流,而对于GSM标准,在所绘制的电流中将存在若干尖峰。在这种情况下,对于每一电池类型的各个电池信息简档,可以基于仿真第一标准的电流使用情况的第一条件产生充电曲线。然后,可以针对其他标准的电流使用情况同第一标准的电流使用之间的差异,记录负载状态信息。可以将此负载状态信息存储在移动设备100或智能电池130上。因此,当移动设备100读取电池信息简档时,如果移动设备100使用了“其他标准”,则移动设备100就可以基于负载状态信息来执行附加计算。
在移动设备100的某些实施例中,除了将电池信息简档存储在移动设备100上,还可以将电池信息简档存储在智能电池130的电池存储器254中。相应地,当发行新的智能电池时,电池信息简档已包含于智能电池130中,而并非必须更新移动设备100上的电池信息简档。当使用另一智能电池、新型智能电池、或新电池供应商的智能电池时,主处理器102能够访问存储在智能电池上的电池信息简档,以确定电池的充电/放电特性。然后,移动设备100可以将新电池的信息简档存储在存储器106中。可以根据以下将更详细地予以说明的电池通信协议来访问电池信息简档。
因此,在某些实施例中,可以在移动设备100中存储给定智能电池130的电池信息简档,并且给定智能电池130可以在电池存储器254中存储附加电池信息简档。在某些情况下,可以依据这样一条经验:如果智能电池130和移动设备100中均存在特定电池信息简档,那么将用存储在智能电池130中的电池信息简档来替代存储在移动设备100上的电池信息简档。然而,还可以依据其他经验。例如,由于可以对智能电池130中的电池信息简档进行版本控制,并且移动设备100能够读取相应的版本号,因而有可能为移动设备100提供与错误的、不应使用的电池信息发布相对应的版本号的版本信息。在这种情况下,移动设备100能够使用与已被认定为正确的版本号相关联的电池信息简档;该电池信息简档可以已经存储在移动设备100上。
此外,在至少某些实施例中,还可以将电池ID存储在电池存储器254中,而并不使用电池ID电阻器、或让电流流经电池ID电阻器。此时,主处理器102通过通信线路302同智能电池130进行通信,以获得电池ID信息,而不是依靠使用电池ID电阻器来获得电池ID信息。可以根据以下将更详细地予以说明的电池通信协议来访问电池ID信息。因而,无需用于读取电池ID电阻器的额外电路。这样做降低了电路的复杂度和成本。电池ID取决于智能电池的类型,并且可用于根据型号、厂商、化学性质等标识智能电池。在某些实施例中,可以在移动设备上存储若干电池的电池充电/放电信息,这样一来一旦确定了电池ID,主处理器102就能够利用该ID信息选择相应的电池简档信息,例如用于电池充电和监控的电池充电/放电信息。就此而言,移动设备100能够支持多种电池。
还存在这样一些实施例,其中为主控制器102与智能电池130之间提供了一个接口,使得移动设备既同只使用电池ID电阻器的传统电池组兼容,又和电池存储器254中存储了电池ID信息的智能电池兼容。在上述情况下,设备可以假设其自身连接至智能电池,并尝试进行相应的通信。如果通信失败,则可以使用读取电池ID电阻器的传统方法。
为了使主处理器102能同电池处理器252进行通信,可以使用电池通信协议。数据通信所用的逻辑电平取决于主处理器102和电池处理器252的实现。例如,在某些实现中,可以用大约2.8V的线路电平表示逻辑高电平(即‘1’),并用大约0V的线路电平表示逻辑低电平(即‘0’)。由于使用了ESD保护电路,因此通信线路302可以被限制在例如大约300bps的数据速率,其提供了3.33ms的位定时。可以按如下方法传输数据,首先发送一个起始位,接着发送若干8比特数据段(其中首先发送LSB),接着发送至少一个结束位。在某些实施例中,起始位可以是逻辑‘0’,结束位可以是逻辑‘1’。
在某些实现中,当会话处于活动状态时,处于高电平(由主处理器102的发射管脚304驱动)的通信线路空闲。当会话处于非活动状态时,主处理器102可以将通信线路302配置为使其工作于非活动/低功耗状态。因此,在某些实现中,可以将发射和接收管脚304和306驱动为低电平。
由于通信线路302是一条半双工线路,因此在某一给定时刻主控制器102或电池处理器252中只有一个能够传输数据。因此,主控制器102和电池处理器252之间可以存在一种主/从关系,仅允许电池处理器252响应于来自主处理器102的命令而发射信号。除非正在等待来自电池处理器252的响应,否则主处理器102随时可以发射信号。电池处理器252能够在从主处理器102接收到分组结束标记(END)之后的一段给定时间内开始发送响应。此外,主处理器102可以在重发原始请求之前,花一段时间等待来自智能电池130的响应。
可以利用RC 1055实现来实现主处理器102与电池处理器252之间的数据链路。为避免主处理器102和电池处理器252同时传输信号,不使用“起始结束字符”优化。相反,数据链路层试图在由物理通信层所提供的串行字节流上提供基于分组的接口。为此,数据链路层用一个唯一的字符(例如“0xC0”)来使各个分组“成帧”(即,使数据链路层能更容易在字节流中标记出各个分组的结束)。因此,应当在读入字符“0xC0”之前存储所有的输入字节。然后,将所存储的数据上传给下一层。
然而,字符“0xCO”有可能作为数据发送,因此应当确保字符“0xC0”是独一无二的,并且仅用于标记帧的结束。实现这一目的方法之一是用两个字符(例如“0xDB”和“0xDD”)来代替数据中的字符“0xC0”的任一实例。如果希望在数据中发送字符“0xDB”,那么同样,可以用字符“0xDB”和“0xDC”来代替字符“0xDB”。
就接收数据而言,对于本示例性实施例,当出现字符“0xCO”时,数据传输结束。如果出现了字符“0xDB”,则记录必须对下一字符采取特殊处理的事实,并将其他所有字符存储在缓冲器中。目前,在本例中,如果字符是“0xDB”,那么当下一字符到达时,可以采取以下三种处理的其中之一:1)如果下一字符是“0xDD”,则在缓冲器中存储字符“0xC0”,2)如果下一字符是“0xDC”,则在缓冲器中存储字符“0xDB”,或者3)如果下一个字符是其他字符,则表明出现了可以交由下一层处理的错误。
如前所述,为了降低功耗,电池处理器252将几乎总是处于休眠模式。一旦接收到来自主处理器102的START比特,电池处理器252就被唤醒,并开始接受输入数据,直至接收到END字符或看门狗定时器终止(例如,看门狗定时器在大约2.3秒后终止)为止。因此,主处理器102企图在看门狗定时器终止之前发送各个请求分组。相应地,主处理器102可以尝试以尽可能小的字节间延时来发送各个请求分组。
现在参照图6A,图6A示出了可用于主处理器102和电池处理器252之间的通信的分组450的通用结构的示例性实施例的框图。可以按从左到右的顺序发送分组中的数据位,可以利用最低有效位(LSB)(小尾)方式发送多字节数据元素。分组450包括:CODE字段452、DATA字段454、LENGTH字段456以及ERROR_CHECK字段458。多字节数据就是需要8位以上(一个字符)才能存储于内存中的数字。例如,对于数字0x12345678而言,需要4个字符。当发送这些字符时,以LSB优先的方式首先发送LSB。也就是说,首先发送0x78,然后发送0x56、0x34,最后发送0x12。
CODE字段452标识分组类型(即是在提供信息还是在请求信息)。当收到CODE字段452未知的分组时,电池处理器252发送协议版本响应分组。电池处理器252还可以在主处理器102所发送的响应分组的长度、检错字段值等存在错误时发送该响应分组。在某些实现中,CODE字段452包括用于指定协议版本请求、协议版本响应、电池认证挑战、电池认证响应、电池信息请求和电池信息响应的代码。在某些实现中,CODE字段452可以包含一个字节。
DATA字段454包含数据,其内容取决于所提出的具体请求或作出的具体响应。DATA字段454可以包含与传输数据所需的字节数相等的字节数,然而,可以对其加以限制。在某些实施例中,LENGTH字段456可以包含从0到255的数字。由于CODE、LENGTH和ERROR_CHECK字段都算在长度里面,因此整个分组450最多可以包含255个字符,DATA字段454最多可包含252个字符。以下将讨论各种不同类型数据的实例。
LENGTH字段456定义了分组中的字节数,后者包含CODE字段452、DATA字段454、LENGTH字段456和ERROR_CHECK字段458中的字节数。由于通常并不知道SLIP帧能有多长,因此通常不考虑SLIP成帧。可能要对某些字符进行复制,使之从一个变为两个,而且不确定要复制哪些字符或复制多少字符。在某些实现中,LENGTH字段456包含一个字节。
ERROR_CHECK字段458提供校验数据,用于验证主处理器102或电池处理器252是否已准确无误地收到数据。根据电池处理器252的处理能力,可以使用不同类型的通信检错机制。在某些实现中,使用CheckSum值。CheckSum值是一个无符号的8位数值,该值使得CODE到CheckSum字段范围内所包含的数据的和对256取模余0。在某些实现中,当使用CheckSum时,ERROR_CHECK包含一个字节。
现在参照图6B,图6B示出了可用于协议版本请求分组或电池信息请求分组的示例性实施例的框图。分组460包括:CODE字段462、LENGTH字段464和CHECK_SUM字段466。
主处理器102发送协议版本请求,以请求智能电池252的协议版本。因此,CODE字段462包括用于标识协议版本请求的代码。由于协议请求分组460包含三个字节,因此LENGTH字段464包含数值3。电池处理器252利用协议版本响应分组对协议版本请求分组作出响应。CHECH_SUM字段466用于检错,并且可以包含一个字节。
当需要知道有关智能电池130的操作情况的信息时,主处理器102发送电池信息请求分组。智能电池130利用电池信息响应分组予以响应。在这种情况下,CODE字段462包括用于表示分组460是电池信息请求分组的代码。CODE字段462可以包括一个字节。LENGTH字段464包括一个字节,用于指示分组460中存在3个字节。
现在参照图6C,图6C示出了协议版本响应分组470的示例性实施例的框图。协议版本响应分组470包括:CODE字段472、包括协议版本的第一DATA字段474、包括电池ID的第二DATA字段476、LENGTH字段478以及CHECH_SUM字段479。一旦接收到来自主处理器102的协议版本请求分组460,或遇到CODE字段存在不可识别代码的情况,或遇到有错误出现(例如,错误长度、错误check_sum等)的情况,电池处理器252利用协议版本响应分组470作出响应。协议版本响应分组470给智能电池252提供电池ID。因此,在至少某些实现中,可以将电池信息高速缓存在智能电池130中,因此无需在仅需要电池ID时下载全部电池信息。
CODE字段472包括用于表示分组470是协议版本响应分组的代码。CODE字段472可以包括一个字节。第一DATA字段474包括下面将更详细地予以说明的协议版本。第一DATA字段474可以包括两个字节,第二DATA字段476可以包括两个字节。LENGTH字段478指示分组470包括1个字节,该字节指示分组470含有7个字节。CHECH_SUM字段479用于检错,并且可以包括一个字节。
协议版本是用于指示正在使用的电池通信协议的版本的数值。在某些实现中,协议版本可以包括8位主版本号和8位子版本号。每当电池通信协议发生“后向兼容”的改变,子版本号将会随之增加。每当发生破坏后向兼容性的改变(这使得子版本号被重置为0),主版本号将会随之增加。例如,如果加密算法、私钥、以及电池信息格式中的任意一项发生改变,主版本号就会随之增加。
下面参考图6D,图6D示出了可用于电池认证挑战、电池认证响应或电池信息响应的分组的典型实施例的框图。分组480包含:CODE字段482、DATA字段484、LENGTH字段486以及CHECH_SUM字段488。
对于电池认证挑战而言,主处理器102可以通过向电池处理器252发送电池认证挑战的方式,请求获得电池认证。随即,电池处理器252就可以在算出电池认证响应挑战所需的数据后,以电池认证响应分组作为回应。CODE字段482包含用于表示分组480是一个电池认证挑战分组的代码。CODE字段482可包含一个字节。DATA字段484包含智能电池130的挑战消息。在某些实现中,挑战消息可包含4个字节;因而,挑战可以是32位挑战。LENGTH字段486包含1个字节,该字节表明分组480含有7个字节。CHECK_SUM字段488用于检错,可包含1个字节。下面将更详细地对所用认证过程予以说明。
对于电池认证响应而言,一旦接收到来自主处理器102的电池认证挑战分组,随即电池252就在算出电池认证响应挑战所需的数据后,以电池认证响应分组作为回应。在本例中,CODE字段482包含用于表示分组480是一个电池认证响应分组的代码。CODE字段482可包含一个字节。DATA字段484包含来自智能电池130的挑战响应。在某些实现中,挑战响应可包含4字节;因而,挑战可以是32位挑战。LENGTH字段486包含1个字节,该字节表明分组480含有7个字节。CHECK_SUM字段488用于检错,可包含1个字节。下面将更加详细地对所用认证过程予以说明。
对于电池信息响应而言,一旦接收到来自主处理器102的电池信息请求分组,电池252就以电池信息响应作为回应。CODE字段482包含用于表示分组480是一个电池信息响应分组的代码。CODE字段482可包含一个字节。DATA字段484包含电池信息,长度可以是12字节。LENGTH字段486包含1个字节,该字节表明分组480含有15个字节。CHECK_SUM字段488用于检错,可包含1个字节。
现在参照图7A,图7A示出了电池信息数据结构490的示例性实施例的框图。电池信息数据结构490是具有可变数目的项目字段492-496的分组,其中该项目字段包含关于智能电池130的数据。例如,项目字段492-496可以包括电池充电曲线的LUT信息。每一个项目字段492-496都可以具有如图7B所示的格式,并且可以包括CODE字段500和DATA字段502。CODE字段500可以包括用于标识诸如电池充电曲线等项目数据类型的8位标识符。DATA字段502取决于具体项目。定长项不需要LENGTH字段。然而,变长项将包括插入在CODE字段500与DATA字段502之间的LENGTH字段(未示出)。在备选方案中,可以利用项目492-496其中之一传输电池ID,而不是利用协议版本响应分组。如果项目492-496其中之一包含诸如电池充电曲线信息等的电池简档信息,则CODE字段500包括用于指示电池充电曲线信息的代码,LENGTH字段(未示出)包括含CODE、LENGTH和DATA字段在内的分组中的字节数。DATA字段502包含足以表示电池充电曲线信息的字节。
如前所述,智能电池130可以在同主处理器102执行认证的过程中执行加密算法。基于仅安全地存放在智能电池130的存储器内的私钥以及主处理器102所提供的挑战,智能电池可以应用加密算法来产生响应。在某些实现中,私钥可能是64位,挑战可能是32位。如果能够提供适当的安全级别,则可以为私钥和挑战选择不同的长度。在某些实现中,挑战可以加密,并且智能电池130能够执行解密算法来对挑战进行解密,然后将挑战同私钥结合,以产生响应。还可以对主处理器102与智能电池130之间传输的其他数据进行加密。
目前,智能电池130是特别为防篡改而设计的,为此智能电池包括定制硬件以及代码保护寄存器。因此,第三方很难从智能电池130中提取出私钥。然而,对于移动设备100而言并非如此。因此,不应将私钥存储在移动设备100中。相反,可以在制造过程中,在不同的移动设备上存储基于私钥和加密算法的(每个设备)唯一的预先计算的挑战和响应对。相应地,可以在不同的运动设备上存储不同的挑战和响应对。然后,只在智能电池130上存储私有密钥和加密算法。尽管可以制造出可用于移动设备的假冒电池,然而,很难制造出能够与执行这一认证过程的所有移动设备一同使用的假冒电池。在某些实现中,可以在移动设备100上存储若干挑战和响应对,并且可以在认证过程中使用其中的至少一对。
现在参照图8,图8示出了主处理器102可以采用的、用于认证智能电池130的认证过程550的示例性实施例的流程图。每当打开移动设备100,每当将电池插入移动设备100,就执行认证。在步骤552中,主处理器102读移动设备100上的存储元件,以获得挑战和响应对。在步骤554中,主处理器102向电池处理器252发送挑战。在步骤556中,电池处理器252使用私钥来应用加密算法,以产生响应,在步骤558中,电池处理器252将该响应发送至主处理器558。在步骤560中,主处理器102将产生的响应同所存储的响应进行比较。在这一步骤中,如果存储的响应与电池处理器252所产生的响应相同,则证明智能电池130是正品。否则,证明智能电池130不是正品,并采取适当的措施。由于可能存在传输错误(并且存在CHECH_SUM错误的可能),主处理器102可以在确认电池组是假冒电池或非授权的第三方电池组之前进行若干次挑战和响应尝试。
如果确认电池组是假冒电池或非授权的第三方电池组,则与主处理器102相关联的操作系统可以设置BSTAT_INSECURE电池状态,但继续正常的启动过程。主处理器102也可以执行提供用户反馈、控制无线电接入、不让移动设备100运行哪怕极短的一段时间等的软件。主处理器102不会为非正品电池组(即认证过程失败的电池组)充电或不将其充满。然而,在某些实现中,在进行认证前,可以允许为保鲜密封(即处于欠压状态的电池)充电,直至该电池的端电压大约为3.0V为止。当电池放电放到端电压约为2.5V、且电池中的保护电路已将电池端子同电池模块断开时,出现欠压状态。在有充电电压作用于电池端子之前,电池保持在欠压状态。假设不存在蓄电量低于3.0V电池组的蓄电量的电池组,则可以认为将电池充电至端电压约为3.0V的最小蓄电量是安全的。然而,在其他实施例中,如果确认电池组是假冒电池或非授权的第三方电池组,就可以将与主处理器102相关联的操作系统102配置为不允许正常启动过程继续进行。或者,操作系统可被配置为提供电池出错指示;例如,操作系统可以显示示出了中间有线穿过的电池或其他合适的图形指示的屏幕。
现在参照图9,图9是示出了具有智能电池的移动通信设备100的典型操作的流程图,其中智能电池可能是也可能不是正品。一旦启动移动设备100,或当检测到电池插入时,主处理器102就可以执行以下步骤。在步骤602中,主处理器102向电池处理器252发送协议版本请求分组。在步骤604中,电池处理器252产生并向主处理器102发送协议版本响应分组。在步骤606中,主处理器102将协议版本响应分组中的协议版本与所支持的协议进行比较,如果协议版本号兼容,则前进至步骤610。
如果协议版本号不兼容,则在步骤608中,主处理器102对非正品电池组执行前述动作,并停止或限制(如前所述)可能已开始的充电行为。例如,即使存在电池,移动设备100也可以显示“无电池图标”。在某些情况下,主处理器102可以允许移动设备100继续工作固定的一段时间,如X分钟,但不允许对其充电或将其充满。对于假冒或不合格电池的使用而言,最危险的行为就是充电。允许使用X分钟可以使用户能够使用他/她在不知情的情况下购买的假冒电池进行紧急呼叫。
在步骤610中,主处理器102执行认证过程550。在步骤612中,如果电池认证成功,则过程600就移至步骤614。否则,过程600移至步骤608。在步骤614中,主处理器102可以向电池处理器252发送电池信息请求分组。在步骤616中,电池处理器252访问被请求的电池信息,并产生电池信息响应分组,然后将后者发送至主处理器102。在步骤618中,主处理器102可以利用电池信息为智能电池130充电,或在向用户提供剩余电量指示等操作的过程中监控智能电池130。应当注意的是,尽管在过程600中未明确示出数据传输错误和重传的步骤,但可以将它们包括在过程600之中。
现在参照图10,图10示出了用于制造具有智能电池的移动通信设备100的示例性制造过程650的流程图。在步骤652中,为智能电池130指定通信协议和安全协议。在步骤654中,智能电池130的制造商将用于实现通信协议和安全协议的代码并入智能电池130。在步骤656和658中,电池组制造商以及印刷电路板(PCB)供应商将智能电池130的硬件(电路)装配起来。然后在步骤660中,利用移动设备100对智能电池130进行测试。此外,在步骤660中,将智能电池和移动设备配对。针对每对智能电池移动设备,基于私钥和加密算法,产生若干唯一的挑战和响应对。将挑战和响应对存储在移动设备上,并将相应的私钥和加密算法存储在相应的智能电池上。
应当理解的是,可以在不背离其总体范围受所附权利要求限定的实施例的前提下,对这里所说明和例证的实施例进行各种修改。例如,尽管这里所描述的实施例通常涉及移动通信设备,然而本领域的技术人员将认识到,通常还可以将这里所描述的技术和结构应用于使用智能电池的移动设备,而这种设备并非必须是移动通信设备。此外,可以利用软件或硬件或其组合来实现这里所描述的示例性实施例的某些元件。