字母数字小键盘以及显示系统和方法 【技术领域】
具有数据输入和显示功能的手持数据处理设备已经越来越多地在许多场合中使用。这种设备的众所周知示例包括蜂窝电话和“个人数字助理”(PDA)设备。随着更大的处理能力和减小的设备尺寸变得更容易得到,手持数据处理设备在卫生、保健、金融、工程及其它设置中的使用将变得越来越普遍。用户的有效数据输入以及这种数据的快速处理和显示在手持数据处理设备中是重要因素。然而,在由当前可用的手持数据处理器提供的数据输入和显示中存在各种缺点。
背景技术
尤其是,这种手持设备的小尺寸经常使经由字母数字小键盘、键盘或者触摸屏的数据输入变得复杂。在手持设备中已经使用了各种各样的机制用于字母数字地用户输入。一种这样的方法是在设备显示器上的一个完整“QWERTY”键盘的使用,如在许多PDA设备中出现的那样。完整键盘是为大部分用户所熟知的,而且输入和显示相应的字母数字字符需要仅仅按压或者驱动单个键。然而,在一个小设备上显示一个完整的键盘要求各个键或者按钮是非常小的,而且触针的使用是数据输入所必需的。
另一种数据输入的方法是使用了一个传统的电话字母数字小键盘,其中一个单独键的多次按压或者致动允许循环与该键有关的几个字符中的每一个。例如,当“2”键被最初按压时,在设备显示器上相应地显示“2”。再次按压“2”键把显示的“2”改变为“A”,而“2”键的第三次按压导致“B”的显示,等等。虽然这种方法允许利用一个相对小的字母数字小键盘输入数据,但是一个字母数字符号的输入能够要求多至四次按键以获得一个期望的字符。用这样的方式输入字母数字字符串是不直观的而且对于未训练的用户是困难的。此外,许多电话小键盘没有为“Q”和“Z”字符作准备,而且这些字符的输入必须通过按压两个或更多键的一个组合或者通过其它数据输入方案提供。
还有另一种数据输入的方法已经是在不同的屏幕图象上提供一个显示的不同部分,并提供了一个按钮或者键以允许在多个屏幕图象之间切换。例如,一个第一屏幕可以用来显示数字,而其它屏幕用来显示字母字符。显示所有字母数字字符所需要的屏幕总数取决于该显示器的尺寸。一个小的显示器经常需要三个或者四个这样的屏幕。由于在屏幕之间切换的必要性,字母数字字符串的输入会十分复杂和费时。
在手持数据处理设备操作中的另一个重要考虑是用于由该设备处理的数字数据的错误检测。一般使用循环冗余校验(CRC)计算来执行错误检测,该计算一般由在软件中体现的一种除法算法实现,该算法是相对缓慢的而且涉及相当多的计算开销。
一种更快CRC计算的方法已经是通过结合AND和XOR操作使用一个软件查找表来执行该除法算法的等效。这个技术对于大的数据流仍然是相对缓慢的,而且需要大量的存储器来存储该检查表(例如,对于一个16位CRC需要512个字节)。一个更快的技术利用在硬件中体现的一个CRC电路,以及一个贯穿该数据流递增的软件循环,该循环把每个字节写入到执行除法算法的CRC电路中。虽然CRC电路的使用增加了速度,对于大的数据流,软件循环的开销能够仍然需要相对长的时间。
在手持数据处理设备中的还有一个考虑是与写入数据到该设备显示器有关的时间,其中该设备显示器一般是一个基于像素的液晶显示器(LCD)。数据输出到一个显示控制器一般涉及一个贯穿该输出数据流递增的软件执行循环,其一次写入一个字节到该显示控制器。这个方案对于基于像素的显示器是缓慢的,因为为了在该显示器上绘制一个字母数字字符或者图标通常必须写入许多字节,而且软件循环开销随着因此写入的每个字节而增加。
许多工作环境要求多个用户能访问手持数据处理设备,而且授权用户的验证是在这种设备设计和操作中的又一个重要因素。用于用户验证的标准技术是由用户输入一个标识(ID)字符串。输入的字符串和在该设备存储器中的一个数组或者列表中保持的一个授权字符串列表进行比较。软件搜寻该列表并且把所关心的字符串和每个存储的条目进行比较直到找到一个匹配或者存储的字符串列表用完为止。该列表一般以排序次序布置,并且执行一个折半查找。然而用这样的方式执行字符串比较,在该列表大而且字符串长度长的地方,会需要大量的存储器来存储授权的字符串列表。例如,存储具有18个字符最大长度的4,000个字符串需要72,000个字节。此外,取决于字符串长度的、字符串比较所需要的时间,会是非常长的而且导致在用户验证期间显著的延迟。
因此需要有一个这样的手持数据处理设备和方法,其允许用户快速和容易输入字母数字字符,为在操作期间的数据快速错误检查和快速写入数据到一个显示器作准备,而且为用于用户验证的快速字符串比较作准备。本发明满足了这些要求及其它要求,而且通常克服了在背景技术中发现的不足之处。
【发明内容】
本发明提供了在手持数据处理设备中可用的数据输入和显示装置及方法。本发明的装置一般来说包含,一个包括多个第一、固定键以及多个第二、软键的小键盘,该小键盘具有一个或多个第一键,其具有与其相关的至少一个主要字母数字符号;而且具有一个或多个第一键,其具有与其相关的至少一个辅助字母数字符号而且可操作以有选择地显示与该第二键有关连的辅助字母数字符号。该装置此外可以包含一个显示器,其可操作以依据第一和第二键的动作显示选择的主要和辅助字母数字符号。
该装置此外可以包含可操作地彼此相连的一个直接存储器存取控制器和一个循环冗余校验电路,该直接存储器存取控制器被配置为传输数据到循环冗余校验电路用于检查计算。该装置更进一步可以包含一个可操作地和该直接存储器存取控制器相连的显示控制器,该直接存储器存取控制器配置为传输显示数据到显示控制器。该装置可以另外包含一个存储的授权字符串检查值列表,该列表可用于和用户输入的标识字符串的字符串的计算检查值进行比较。
本发明的方法包含:提供一个包括多个第一、固定键以及多个第二、软键的小键盘,该小键盘具有一个或多个第一键,其具有与其相关的至少一个主要字母数字符号;而且具有一个或多个第一键,其具有与其相关的至少一个辅助字母数字符号;启动具有一个相关辅助字母数字符号的一个第一键;以及显示与该第二键有关的辅助字母数字符号。该方法可以进一步包含选择与该启动的第一键有关的主要字母数字符号,及/或通过启动第二键中的一个来选择一个辅助的字母数字符号。该方法可以另外包含显示该选择的字母数字符号。
该方法可以进一步包含:启动一个额外的第一键以显示与第二键有关连的、额外的辅助字母数字符号;以及选择在该额外第一键上的主要字母数字符号,或者启动一个第二键以选择在其上的一个辅助字母数字符号;以及显示选择的字母数字符号。该方法可以更进一步包含:启动一个第n个第一键以显示在第二键上的一个第n组的辅助字母数字符号;选择第n个主要或者辅助字母数字符号中的一个;以及显示选择的字母数字符号。
在某些实施例中,所述主题方法可以包含:提供与该小键盘有关的一个数据处理器;通过一个直接存储器存取控制器传输数据到一个循环冗余校验单元;以及通过该循环冗余校验单元为传输的数据计算检查值。该数据可以与在该小键盘上选择的字母数字字符相关联。该方法可以另外包含:使用一个直接存储器存取控制器从该存储器传输显示数据到一个显示控制器;以及显示该显示数据。该方法可以更进一步包含:将一个用户输入的一个标识字符串的计算检查值与一个存储的、授权检查值列表相比较;以及确定该输入的标识字符串的计算检查值的正确性或者授权。该方法可以进一步包含:创建和存储授权的检查值的列表。
【附图说明】
通过参考以下仅仅用于说明性目的的附图,本发明将得到更完全地理解。
图1是依据本发明的一个小键盘示意图。
图2A到图2H说明了在图1中的小键盘上输入一个字母数字字符串。
图3是依据本发明的一个数据处理设备的功能框图。
图4是一个流程图,其说明了依据本发明、从一个直接存储器存取控制器到一个CRC电路的数据传输。
图5是一个流程图,其说明了依据本发明、从一个直接存储器存取控制器到一个显示控制器的数据传输。
图6A是一个流程图,说明了用于字母数字字符串的一个授权检验字列表的创建。
图6B是一个流程图,说明了把一个字母数字字符串和授权的检验字列表的比较。
【具体实施方式】
在进一步描述本发明,要理解:本发明不局限于如下所述的本发明特定实施例,因为可以进行特定实施例的变化而且仍然属于后附权利要求的范围之内。还要理解:在这里使用的术语是用于描述特定实施例的目的,而不是用来限制。相反,本发明的范围将由后附权利要求确定。
在此的任何定义是为了清楚原因而提供的,而且不应被认为是用于限制。在此使用的技术和科学术语和本发明所属领域中的普通技术人员的通常理解具有相同的意思。
在此使用的术语“字母数字字符”和“字母数字符号”以及它们的语法等效意指可以由一个用户从一个键盘或者小键盘输入的数据的任何数字、字母表字母、单音节符号、多音节符号、文本符号、数学符号或者任何其它符号。示例的“字母数字字符”包括,举例来说,罗马字母表字母、阿拉伯数字、以及诸如“句号”、“逗号”、“连字号”等等的标点符号。
本发明提供了用于快速、容易和有效利用手持数据处理设备的设备和方法。手持计算设备常常仅仅具有小的小键盘和可得到的显示区域,以及有限的存储器能力。本发明的设备和方法在其中提供了,在一个小的小键盘或者键盘上的快速和容易的字母数字字符输入、用于数据传输的快速检查字计算、快速写入数据到设备显示器中、以及快速和有效地验证用户标识字符串。
更具体地参考附图,为说明起见,本发明实施在通常在图1到图6中显示的装置和方法中。将要理解:本装置可以随配置和部件细节的变化而变化,而且该方法可以随事件或者动作的细节和次序的变化而变化,而不背离在此公开的基本概念。主要依据在手持数据处理器或者计算机中的使用公开了本发明。然而,对于那些在本领域的技术人员来说很显然:本发明可以和任何类型的数据处理器一起使用,这些数据处理器包含例如桌面和便携式计算机。同样这对于那些在本领域的技术人员来说也应当是显然的,即:如在此描述的本发明各个功能部件可以共享相同的逻辑而且可以在同一个电路内实现,或者在不同的电路布局内实现。
现在参考图1,其中显示了一个依据本发明的键盘或者小键盘10。小键盘10包含多个第一、“硬”或者“固定”的键12,以及多个第二、“软”键14。在该小键盘上的每一个第一或者固定键12具有至少一个主要字母数字符号15。另外,一个或多个固定键可以具有一个或1个以上与其相关的辅助字母数字符号16。如图所示,单个数或者数字形式的主要字母数字符号15位于每一个第一键12的中心、靠下部分,而三个或者四个罗马字母字符或者文本相关符号形式的辅助字母数字符号16位于第一个键12的靠上部分。键12因此以类似于传统的电话小键盘的方式显示字母数字字符。第一键12把数字“1”显示为一个主要字母数字符号,并且包含用于“下划线”、“句号”、“斜杠”和“破折号”的符号而不是字母表字母作为辅助字母数字字符。第一键12把数字“0”显示为一个主要字母数字符号,同样显示对应于“空格”、“反斜杠”、“冒号”和“逗号”的非字母辅助符号。
主要和辅助字母数字符号15、16可以显示在第一键12上的别处,或者可以紧挨着第一键12显示或者显示在与第一键12有关连的别处。包含一个删除或者退格键18以允许删除输入的字母数字字符,如下所述,以及提供一个“输入”键20,其可以用来输入完成的字符串,或者作为一个复位键,或者可以被编程以依据键20的动作执行一个可选的功能。
如图所示,第二、软键14的数目对应于与每一个第一键12有关的辅助字母数字符号16的最大数目。依据一个第一键12的选择和动作,与该启动的第一键12有关的相应辅助字母数字符号16与第二键14相关联地显示,其中一个辅助字母数字符号16与一个相应第二键14有关连地显示。该辅助字母数字符号16可以如图所示直接在第二键14上显示,或者紧挨着第二键14显示,或者显示在与第二键14有关连的别处。
在如图1所示的实施例中小键盘10是以一个覆盖在显示器22上或者与显示器22重叠的触摸屏的形式。显示器22可以包含一个液晶、LED、CRT或者其它形式的显示器。在手持实施例中,显示器22常常是一个液晶显示器或者LCD的形式。触摸屏/显示器22包含一个在其中显示字母数字字符的区域24,这些字母数字字符是依据主要或者第一键12以及第二键14的选择性动作而选择的,如下所述。
通过适当的第一键12和第二键14的选择性动作,可以在该小键盘10上输入任何字母数字字符串。一个选择的第一键12的按压或者动作导致在显示区域24上显示选择的第一键12的主要字母数字字符15,而且还导致在软键14上显示相应的辅助字母数字符号16。如果在显示24上显示的主要字母数字符号15是用户希望输入的符号,则不启动辅助键14。如果,相反,用户希望输入与第二键14有关的一个辅助字母数字字符,则该用户可以启动适当的第二键14。这个导致在区域24中显示的主要字母数字字符(数字)被替换为选择的辅助字母数字字符(字母)。
在图2A到图2H中说明了图1中的小键盘的操作。在图2A中,一个显示了主要字母数字字符“4”以及辅助字母数字字符“G”、“H”、和“I”的组的第一固定键12由一个用户选择以及按压或者启动。第一键12的动作导致在显示区域24中显示数字“4”,以及导致在第二键14上显示字母“G”、“H”和“I”。如果此时用户仅仅希望输入数字“4”,则可以选择该输入按钮20。如果用户相反希望输入“G”、“H”或者“I”,则选择和启动适当的第二键14。
如图2B所示,由用户选择和致动显示字母“H”的第二键14,这导致在显示区域24中用字母“H”替换数字“4”。做为选择,用户可以从这个辅助字母数字字符的组中选择“G”或者“I”。如果如图2B、所示字母“H”表示用户希望输入的整个字符串,则可以按压输入键20。
用户可以通过选择和启动适当的第一键12及/或第二键14继续扩展输入的字母数字字符的列表。如图2C所示,其中显示了选择和致动一个具有主要字母数字符号“2”和一组辅助字母数字符号“A”、“B”和“C”的第二固定键12,这导致在区域24中紧接着先前选择的“H”显示数字“2”,并且在软键14上显示字母“A”、“B”和“C”。用户此时可以按下输入键20以输入字符串“H2”。或者,如图2D所示,选择和致动对应于字母“A”的第二键14从这个第二组字母数字字符中选择“A”,并且导致在显示区域22中用字母“A”替换数字“2”,因此在区域24中显示“HA”。用户可以输入字符串“HA”或者继续选择性地致动第一键12和第二键14以增加字符串的长度。
在图2E中,用户选择和致动与主要字母数字符号“9”以及辅助字母数字符号组“W”、“X”、“Y”和“Z”有关的第一键12,这导致数字“9”的显示以便在显示区域24中显示“HA9”,以及导致在第二键14中显示字母“W”、“X”、“Y”和“Z”。用户可以输入字符串“HA9”,或者继续选择附加的字符。如图2F所示,选择和致动对应于“W”的第二键14导致用选择的字符“W”替换显示的“9”,以便区域24显示字母数字字符“HAW”。
图2G显示了选择性致动对应于主要字母数字字符“5”和一个第四组字母数字字符“J”、“K”和“L”的第四固定键12,以便在区域24中显示“HAW5”。用户可以输入字符串“HAW5”或者通过按压额外的键改变或者延长该字符串。例如,选择性致动对应于“K”的第二键14,在区域24中用“K”替换“5”,以便如图2H所示,显示期望的字母数字字符串“HAWK”。此时,用户可以启动“输入”键20以输入选择的字母数字字符串“HAWK”用于如在下面进一步描述的数据处理。或者,用户可以通过以如上所述的方式选择和致动适当的第一、固定键12和第二、软键14,继续输入额外的字母数字字符。如果已经选择和显示了一个不正确的字母数字符号,用户可以按下“删除”键18,以从显示24中“回退”和删除不需要的字符,然后通过致动适当键选择正确的字母数字字符。
通过仅仅启动第一键,而不用显示了辅助的字母符号的软键可以实现纯粹数字符号字符串的输入。例如,可以通过顺序地启动具有适当的“1”、“2”、“3”和“4”主要字母数字符号在其上的第一键12,而不用致动任何第二键14,可以输入数字符号字符串“1234”。在其它实例中,一个期望的字符串可以需要连续地致动各个第二键14而不用任何介入第一键12的致动。因此,例如,可以通过启动具有“3”在其上的第一键以在第二键14上显示字符“D”、“E”和“F”,继之以连续地致动适当的第二键14以输入“FEED”,来输入字符串“FEED”。
小键盘10有利地允许输入长、复杂的混合字母和数字字符串,而不用在显示器22上的视图屏幕的任何切换。也就是说,在经由小键盘10的数据输入期间,第一键12在显示器22上的外观中保持不变,而且视觉变化仅仅出现在显示在第二键14上的字母数字字符中以及在显示区域24中。因此,小键盘10的用户能够输入任何字母数字字符16,同时第一键12和第二键14保持在视图中。
在如图1和图2所示的实施例中,小键盘10的十二个第一键12和四个第二键14允许高达四个辅助字母数字字符与每个第一键12相关联而且同时显示在第二键14上。小键盘10类似于传统的电话字母数字小键盘,而且小键盘的使用是直观的,因此小键盘的新用户能够利用最少的指导来理解它的操作。在这个实施例中,一个第一键12的动作导致在区域24中直接显示相关的数字符号,同时在软键14上显示非数字的、字母符号。第二键14的动作提供了对非数字、字母字符的快速存取而不需要切换一个显示屏幕图像。在其它实施例中,第一键12的动作可以导致在软键14上显示所有相关的字母数字字符15、16,且没有在区域24中出现字符显示直到一个第二键14被按压了为止。图1和图2中的实施例把每个第一键12都显示为包含主要和辅助字母数字符号15、16。然而,在其它实施例中,某些第一键12可以仅仅包含主要字母数字符号15,而不包含辅助字母数字符号。通常至少一个第一键12将包含主要和第二字母数字符号15、16,然而在许多实施例中,多个第一键12包含主要和第二字母数字符号15、16,如图1和图2所示。
那些本领域的技术人员将依据这个公开得到小键盘10的许多变化的启示,并且这样的变化将被认为是在这个公开的范围之内。具有一个不同的第一键12和软键14数量和布局的小键盘可以用来允许有选择地输入对应于多个不同的字母表及/或书写系统的字母数字字符。例如,一个依据本发明的小键盘可用于允许与单个第一键相关联的多个平假名、片假名及/或汉字字符,这些字符依据适当的第一键的按压有选择地显示在软键上。
现在参考图3,本发明中的小键盘10与一个数据处理设备26相关联使用。数据处理设备26可以包含一个诸如个人数字助理或者“PDA”的手持计算机。在其它实施例中,数据处理设备可以包含小型计算机、微型计算机、诸如基于INTEL的处理计算机或者它的兼容品、APPLE计算机或者它的兼容品、SUN工作站、或者其他类似的计算机。在设备26中,小键盘10可操作地经由模-数转换器或者ADC(未示出)与一个中央处理单元或者CPU 28相连。
CPU 28可操作地经由一个地址和数据总线30以及一个控制/状态信号接口32与设备26的各个硬件部件相连。其中这些部件包含,一个可能包含各个存储单元(未示出)的系统存储器34,其中这些存储单元诸如为一个DRAM主要或者主存储器、一个或多个SRAM缓存、以及一个或多个以ROM、PROM、EPROM、EEPROM等形式的只读存储器单元。数据处理器26还包含一个直接存储器存取(DMA)控制器36、循环冗余校验(CRC)电路38、以及一个显示控制器40。CPU 28执行各个与加载到存储器34中的软件有关的程序操作。以如上所述方式由用户经由小键盘10输入的数据由CPU 28处理并且存储或者缓存到存储器34中,用于在与加载到存储器34中的软件有关的程序操作中使用。如在下面进一步描述的那样,DMA控制器允许快速地从存储器34传输数据到CRC电路38和显示控制器40。显示控制器40可以包含一个显示控制器,该显示控制器可操作地和如上所述的图1和图2中的显示器22相连、并且提供用于显示器22的操作。显示控制器40包含一个用于存储显示数据的存储器(未示出)。
CPU 28、存储器34、DMA控制器36、CRC电路38和显示控制器40以一种传统的方式布置在一个主板(未示出)上,而且在其上通过地址和数据总线30以及控制/处理接口32互连。数据处理设备26可能包含各个诸如硬盘驱动器、软盘驱动器、NIC、CD驱动器、及/或其它传统的硬件单元的额外部件(也未示出)。数据处理设备26包含一个经由一个接口电缆或者连接46连接数据处理器26到一个外部计算机44的接口适配器42。适配器42和接口46可以为GPIB、RS-232、PCI、USB、SCSI、ETHERNET、FIREWIRE或者其它IEEE 1394接口、或者其它通信接口系统的形式,用于从外部计算机44传输数据到设备26。
系统存储器34通常将包含一个适于各个硬件部件操作的合适的操作系统和软件,这些硬件部件可操作地经由地址/数据总线30和控制/状态信号接口32与存储器34和CPU 28相连。存储器34也包含能够执行依据本发明的各个操作的存储的程序或者软件。
存储器34包含这样程序设计48,它能够通过执行用一个期望的初始值种子化CRC电路38、用源和目的地址以及用于数据传输的数据流尺寸设置DMA控制器电路36、通过DMA控制器电路36启动到CRC电路38的数据传输、以及从CRC电路38中读出计算的CRC值给存储器34的操作,实施经由DMA控制器36从存储器34到CRC电路38的数据流传输。
存储器34另外包含能够实施经由DMA控制器36从存储器34传输数据到显示控制器40的程序50,其中执行以下操作:用目的地址信息设置显示控制器40;用源和目的地址信息以及数据流尺寸信息设置DMA控制器36;以及通过DMA制器36开始从存储器34到显示控制器40的数据传输。
在存储器34中还包含能够把压缩的输入字符串和在存储器34中存储的压缩字符串列表进行比较用于授权的软件或者程序52,其具有以下程序操作:接受字符串输入、传输该输入字符串到用于压缩的CRC电路38、在存储器34中存储的压缩ID字符串列表中搜索用于和该压缩的输入字符串的一个匹配、以及验证该压缩的输入字符串。这些程序操作在下面进一步进行描述。
CRC电路38通过计算被用于在一个目的地处验证数据流的校验数,为在数据处理设备的各个硬件部件之间的二进制数据传输中的错误检测作准备。通过用一个初始值种子化一个多项式,以及然后顺序地贯穿该多项式除以其中的一个数据流,执行该CRC计算。在每个步骤处使用该被除数作为一个新的种子,并且让该除法算法由CRC电路38所执行。这种类型的CRC电路在本技术领域是众所周知的并且不需要在此进行描述。
用一个CRC电路计算CRC值或者数传统上涉及由程序操作执行的、用于贯穿数据流递增并且写入字节到CRC电路中的一个软件循环。用这样的方式的CRC计算导致一个大的软件开销并且导致在计算用于大的数据流的检查值期间的延迟。对于其中设备尺寸在可用的存储器和处理能力上施加了限制的手持计算设备,软件开销考虑是尤其重要的。
本发明通过结合CRC电路38利用DMA控制器电路36来执行CRC计算克服了这个缺点。软件48被用于用一个期望的初始值种子化CRC电路38、以及用在该数据流中的第一个字节的地址以及在其中进行CRC计算的流中的字节数目来加载DMA控制器电路36。DMA控制器电路36然后自动地传输字节流到CRC电路38中用于计算一个检查值。一旦整个数据流已经由CRC电路38处理了,软件然后用于从CRC电路38中读取产生的计算检查值来执行用于该数据流的一个完整性检验。因为软件48仅仅与配置CRC电路38和DMA控制器电路36、启动通过DMA控制器电路36的数据传输、以及读出该检查值有关时被使用,所以计算检查值所需要的整个软件开销是小的。使用上述过程的CRC计算所需要的时间能够把通过仅仅经由软件传输数据到CRC电路38可达到的时间要小一个数量级。
通过参考图4,以及图3,依据本发明使用DMA控制器电路36以及CRC电路38计算检查值将得到更完全的理解。在事件100处,开始或者启动加载到存储器34中的软件48,该软件48包含用于执行与种子化CRC电路38、设置DMA控制器电路36、通过DMA控制器电路36启动到CRC电路38的数据传输、以及从CRC电路38中读出计算的CRC值有关的操作的程序。
在事件110处,用一个期望的初始值种子化CRC电路38,其中该初始值用于将为其计算CRC值的数据流。该初始值将取决于数据流的尺寸以及CRC值以及在数据流完整性中所需要的置信度而变化。数据流可以包含,例如,与由用户在键盘10上输入的一串字母数字字符有关的数据、保存在存储器34中的关键性数据、被传输到外部计算机44中或者从外部计算机44中传输的一个数据流、或者任何与存储器34有关的可执行代码。
在事件120处,为从存储器34传输一个数据流到CRC电路38设置DMA控制器36。这个设置通常将包含向DMA控制器36提供用于该数据传输的源地址和目的地址,以及在该数据传输中涉及的字节数目。
在事件130处,由DMA控制器36启动或者开始该数据流的传输,而且该数据流的第一个字节由DMA控制器36传输到CRC电路。DMA控制器36可以临时地“占有”地址和数据传输总线30以创建一个用于快速传输数据流到CRC电路38的DMA通道。
在事件140处,DMA控制器36依据在事件120中向DMA控制器36提供的设置信息,继续经由地址和数据总线30发送数据流中的字节到CRC电路38。
在事件150处,DMA控制器36进行一个关于在该数据流中的所有字节是否已经被传输到CRC电路38的查询。这个查询定期在每个字节传输之后进行。如从来自事件120的设置信息中的数据流尺寸中确定的那样,如果还没有发送在数据流中的所有字节,则重复事件140。如果在该数据流中的所有字节都已经被传输了,则执行事件160。
在事件160处,由CRC电路38使用一种除法算法为该数据流计算一个CRC值或者校验数。
在事件170处,从CRC控制器电路38中读取计算的CRC值到存储器34中,用于在用于该数据流的完整性检验中使用。在事件180处,完成检查值计算。
本发明还使用DMA控制器36用于快速传输数据流到显示控制器40以便减小软件开销和加速数据显示。现有技术的数据处理系统一般已经使用程序来执行一个逐个字节递增数据的循环,用于输出到一个显示控制器,该软件循环的开销随着写入显示驱动器中的每个字节而增加。本发明通过执行从存储器34经由DMA控制器36到显示控制器40的直接数据传输、仅仅在设置或者配置DMA控制器36和显示控制器40中使用程序、以及通过DMA控制器36启动数据传输来克服这个不足之处。通过消除在从存储器传输字节到显示控制器40中涉及的软件开销,该传输被快速地执行,而且信息(文字及/或图形)显示需要较小的时间,这些都可以通过显示器22的用户视图得到理解。用这样的方式使用DMA控制器36来驱动显示控制器40比传统的使用一个软件循环来写入像素数据字节到一个显示控制器能够节省时间多达80%或更多。
通过参考图5、以及图3,依据本发明使用DMA控制器36的数据显示将得到更充分的理解。在事件200处,开始或者启动加载到存储器34中的软件50,该软件包含用于执行与设置显示控制器40、设置DMA控制器36、以及通过DMA控制器36开始到显示控制器40的数据传输有关的操作的程序。
在事件210处,通过向显示控制器40提供一个“写”命令以及用于要被传输到显示控制器40的数据流的显示目的地址(在显示控制器40的存储器中),设置显示控制器40。该数据流可以包含任何可显示的数据,诸如例如,与用于显示图标或者其它特征的存储程序有关的图形用户界面(GUI)数据、与由用户在键盘10上输入的一个字符或者字母数字字符串有关的数据、或者其它保存在存储器34中的数据。
在事件220中设置DMA控制器36,用于从存储器34传输一个数据流到显示控制器40。这个设置包含向DMA控制器36提供用于该数据传输的存储器源地址和显示目的地址,以及在该数据传输中涉及的字节数目。
在事件230处,由DMA控制器36启动或者开始该数据流的传输,而且该数据流的第一个字节由DMA控制器36传输到显示控制器40。DMA控制器36可以如上所述临时地“占有”地址和数据传输总线30以创建一个用于快速传输数据流到显示控制器40的DMA通道。
在事件240处,通过经由地址和数据总线30发送该数据流中的下一个字节到CRC电路38,DMA控制器36继续数据传输。
在事件250处,DMA控制器36依据在事件220中提供给DMA控制器36的设置信息进行一个关于是否在该数据流中的所有字节已经被传输到显示控制器40的查询。这个查询定期在每个字节传输之后进行。如从来自事件220的设置信息中的数据流尺寸中确定的那样,如果还没有把在数据流中的所有字节发送给显示控制器40,则重复事件240。如果在该数据流中的所有字节都已经被传输了,则在事件260处完成该处理过程。
该发明还通过减少为验证用户标识(ID)字符串所需的时间和内存需求来为增加在数据处理设备中的效率作准备。手持数据处理器设备一般不具有充足的存储器来存储一个未压缩的ID字符串。在这点上,该发明通过为每个授权的ID字符串创建CRC或者检查值来为用户ID字符串的压缩作准备。
用于授权的字符串的CRC值被排序并且被保存在一个在一个外部计算机44的存储器中的列表或者查找表格中。外部计算机44可以包含,例如,小型计算机、微型计算机、UNIX计算机、大型机、诸如基于INTEL的处理计算机或者它的兼容品的个人计算机(PC)、APPLE计算机或者它的兼容品、或者SUN工作站、或者其它具有诸如主板、中央处理单元(CPU)、随机存取存储器(RAM)、硬盘驱动器、显示适配器、其它存储介质、监控器、键盘、鼠标、及其它用户接口装置、网络接口卡(NIC)、软盘驱动器、CD驱动器、及/或其它传统的输入/输出设备的适当计算机。
外部计算机44已经在它的RAM中加载一个诸如UNIX、WINDOWS98、WINDOWSME、等等的操作系统。虽然具有一个适于存储一个未压缩ID字符串列表的大存储器部件,外部计算机48可以具有一个类似于图3所示、用于数据处理器26的体系结构和硬件部件。能够为多个ID字符串计算CRC值、排序所述CRC值、以及存储CRC值的一个列表的程序54被加载到外部计算机44的存储器中。所述排序、存储的CRC值然后经由接口46被传输或者下载到数据处理器26并且被保存在存储器34用于授权数据处理器26的用户。
当从小键盘10键入或者输入的ID字符串必须和用于授权字符串的、存储的CRC值列表进行比较时,通过由加载到存储器34中的程序为此计算一个CRC值来压缩该用户输入的ID字符串,并且为那个计算的CRC值到存储的授权CRC值列表中执行一个折半查找。如果在存储器34中的授权CRC值列表中找到该输入ID字符串的CRC值,则该输入的ID字符串是验证了的。如果没有在该列表中找到该输入ID字符串的CRC值,则输入的ID字符串是未授权的。
能够使用不同尺寸的CRC值来提供在授权中不同的可信度。例如,32位CRC值使用将导致4294967296个机会中仅仅有一个无效输入的字符串将被验证或者授权的机会。16位CRC值的使用在65536机会中提供一个机会或者一个输入字符串的不正确验证,而且8位CRC值将导致在256个机会中有一个验证一个无效字符串的机会。可以依据所需要的安全等级变化使用的CRC值尺寸。
使用字符串的CRC值用于验证输入字符串的CRC值和使用整个字符串用于验证相比,提供了某些重要的优点。因此实质地减小了存储一个授权字符串列表或者表格所需要的在存储器34中的空间数量。例如,存储4000个每个具有高达18个字符的授权ID字符串需要大约72000字节的RAM空间用于未压缩的字符串,这超出了用于典型手持数据处理器的存储器能力。然而依据本发明把这4000个ID字符串压缩为32位CRC值,需要16,000个字节的存储空间用于存储整个列表。如上所述用于这些存储、压缩的ID字符串的可信度是非常高的,在4294967296个机会中仅仅具有一个错误验证的机会。
把授权的ID字符串压缩到CRC值中还减少了从一个计算机传输一个授权字符串列表到另一个计算机所需要的时间数量。在手持数据处理器的情况下,授权ID字符串列表常常从另一个计算机下载到该手持数据处理器。以一个经由传统RS-232链接、9600波特数据传送率的速度,在计算机之间传输一个4000个18字节ID字符串的列表需要大约72秒。当4000个ID字符串被压缩为4000个32位CRC值时,以9600波特率,数据传输仅仅需要大约16秒。
通过参考图6A和图6B、以及图3,以CRC值形式的压缩ID字符串的使用将得到更充分的理解。图6A说明了依据本发明、在一个外部计算机44中创建一个压缩ID字符串的存储列表。也就是说,与驻留在一个具有一个足够存储未压缩用户ID字符串的实质列表的存储器的分离、外部计算机44上的程序54相关联地执行图6A中的事件。图6B中的事件显示了使用在数据处理器26中的压缩ID字符串列表用于验证一个用户输入的ID字符串。还在授予发明者David Hohl等人、代理人概要号为LIFE 060、与此专利一起提出的美国专利申请10/008522中描述了用于认证或者验证目的的压缩数据字符串的使用,在此通过引用把该申请的公开内容包含在内。
在图6A的事件300处,启动或者开始在外部计算机44中的程序54来创建一个压缩的、授权的标识或者ID字符串列表。这个程序执行与获取授权的ID字符串、通过为此计算CRC值压缩该ID字符串、以及排序和存储一个压缩的ID字符串列表有关的操作。
在事件310处,从外部计算机44的存储器中获得第一ID字符串,以及在事件320中,通过为该字符串计算一个CRC值压缩该ID字符串。这个压缩事件可以由传统的软件技术执行,因为外部计算机44通常将具有足够的存储器和处理能力用于一个全软件的压缩操作。做为选择,可以利用一个CRC电路连同一个用于执行除法算法的软件循环来执行压缩。同时可以考虑到外部计算机44可以以数据处理器26的方式进行配置,其中与每个字符串有关的数据以如图4所示以及如上所述的方式经由DMA电路从存储器直接传输到CRC电路,在压缩中涉及最少的软件方面。在事件320中获得的压缩的CRC值被保存在在外部计算机存储器中的一个压缩的字符串列表中。
在事件330处,由在外部计算机中的程序进行一个关于要被压缩的最后一个字符串是否已经从外部计算机的存储器中检索了的查询。如果要被压缩的最后一个字符串还没有被接收和压缩,则执行事件340。如果已经从存储器中接收了该最后一个字符串并且已经压缩了,则执行事件350。
事件340为从存储器中检索下一个未压缩的ID字符串作准备,在其之后重复事件320以通过为此计算一个CRC值来压缩该字符串。在压缩了最后一个的ID字符串之后,在事件350处排序现在以一个相应的CRC值列表形式的、压缩的ID字符串列表。在事件360中,排序的列表被保存在被使用用于图6A中的压缩过程的外部计算机的存储器中。
在事件370处,存储的CRC值列表被下载或者传输到手持数据处理器26,用于在如图6B所示的用户授权中使用。可以通过经由GPIB、RS-232、PCI、USB、SCSI、ETHERNET、FIREWIRE/IEEE 1394、或者其它类型的通信接口从外部计算机44到数据处理器26的数据传输,执行该存储的压缩ID字符串列表的传输。该CRC值列表被保存在系统存储器34中。在事件380处,完成该ID字符串列表压缩操作。必须注意到,在某些实施例中,如果存储器34具有足够的能力的话,事件300到370可以在数据处理器26上执行。在这样的情况下,可以省略在事件370中下载或者传输完成的压缩ID字符串列表。
现在参考图6B,在事件400处,启动在存储器34中的程序用于把用户输入的ID字符串与如上所述准备的压缩ID字符串的存储列表进行比较。这个程序执行与把对应于输入的ID字符串的数据流从存储器34传输到CRC电路38用于压缩、为与该压缩的输入ID字符串的一个匹配搜索压缩的ID字符串列表、并且为压缩的输入ID字符串进行一个验证决定有关的操作。在某些实施例中事件400可以由事件410触发,如下所述。
同样参考图1和图2,在事件410处,用户通过以如上所述的方式在小键盘10上的适当第一键12和第二键14的有选择性动作,输入一个对应于用户ID字符串的字母数字字符串。
在事件420处,由用户输入的输入ID字符串被转换成以一个相应CRC值形式的、压缩的输入ID字符串。事件420包含如上参考图4所述的事件110到170。也就是说,用一个期望的初始值种子化CRC电路38、为从存储器34传输对应于事件410中的输入ID字符串的数据流到CRC电路38设置DMA控制器36、由CRC电路38计算用于该输入ID字符串的CRC值、以及为该输入ID字符串计算的CRC值从CRC电路38读取回到存储器34。
在事件430处,为与在事件420中计算的、用于输入ID字符串的CRC值相匹配,搜索在如上所述的310-360中创建的、在RAM 34中用于授权ID字符串的CRC值列表。用于输入ID字符串的CRC值与在该列表的各个存储的CRC值相比,直到发现一个匹配为止。
在事件440处,进行一个关于是否已经找到一个匹配,即用于输入ID字符串的CRC值是否在用于授权字符串的存储CRC值列表中找到的查询。如果在该列表中找到用于输入ID字符串的CRC值,则执行事件450。如果没有在该列表中找到用于输入ID字符串的CRC值,则执行事件460。可以为在输入ID字符串的CRC值和各个存储的、用于授权字符串的CRC值之间的每次比较执行事件440,以便能够依据一个匹配的检测并且在搜索整个列表之前发生在事件440中的确定。
在事件450处,依据在用于输入ID字符串的CRC值和用于授权的ID字符串的一个存储CRC值之间的一个匹配,授权在事件410中输入的输入用户ID字符串。在事件450之后,在事件470处完成该用户ID字符串的验证。可以同时发生与用户ID字符串验证有关的额外事件(未示出),诸如与向用户提供对存储的安全信息访问有关的程序操作。
在事件460处,在事件410中输入的用户ID字符串没有被授权。没有执行,如在事件450中提供的那样,可以与用户ID字符串的授权一起发生的任何后续事件。在某些实施例中,可以由用户重复事件410以允许重新输入一个ID字符串,再次继之以事件420-440以确定该重新输入的用户ID字符串的正确性。
虽然已经参考本发明特定实施例描述了本发明,那些本领域的技术人员应当理解:可以进行各种变化而且可以代替等效而不背离本发明的真实精神和范围。此外,可以进行许多修改以使一个特定场合、资料、以及事情、过程、处理过程的一个或者多个步骤的组合适应本发明的目的、精神和范围。所有这样的修改被确定为在后附权利要求书的范围之内。