专利名称:用于快速传输数据到显示驱动器的系统和方法
技术领域:
本发明涉及快速传输数据到显示驱动器的系统和方法。
背景技术:
具有数据输入和显示功能的手持数据处理设备已经越来越多地在许多场合中使用。这种设备的众所周知的示例包括蜂窝电话和“个人数字助理”(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个字节。此外,取决于字符串长度的、字符串比较所需要的时间,可能是非常长的而且导致在用户验证期间很大的延迟。
因此需要这样一种手持数据处理设备和方法,其允许由用户快速容易的输入字母数字字符,其为在操作期间的快速数据错误检查和快速写入数据到一个显示器作了准备,而且为用于用户验证的快速字符串比较作了准备。本发明满足了这些要求,以及其它需求,而且一般说来克服了在背景技术中发现的不足之处。
发明内容
本发明提供了用于从一个存储器或者存储设备快速传输数据到一个显示控制器的装置和方法。该装置概括地说包含一个存储器、一个可操作地与该存储器相连的直接存储器存取控制器、以及一个可操作地与该直接存储器存取控制器相连并且被配置为从该存储器传输一个数据流到该显示控制器的显示控制器。该装置还可以包含被配置为用用于该数据流的一个显示地址设置该显示控制器的存储程序设计。该装置可以另外包含被配置为用用于该数据流的源地址、用于该数据流的目的地址、以及用于该数据流的一个尺寸来设置直接存储器存取控制器的存储程序设计。该装置可以进一步包含被配置为通过直接存储器存取控制器启动传输数据流到显示控制器的存储程序设计。
在某些实施例中,该装置还可以包含一个可操作地与直接存储器存取控制器相连并且被配置为从存储器传输一个检查数据流到该循环冗余校验电路的一个循环冗余校验电路,该循环冗余校验电路被配置为计算一个用于该检查数据流的检查值。该装置可以另外包含被配置为用一个选择的初始值种子化该循环冗余校验电路的存储程序设计。该装置可以进一步包含被配置为用用于该检查数据流的源地址、用于该检查数据流的目的地址、以及用于该检查数据流的一个尺寸来设置该直接存储器存取控制器的存储程序设计。该装置可以更进一步包含被配置为通过直接存储器存取控制器启动从存储器传输检查数据流到循环冗余校验电路的存储程序设计。在某些实施例中,该装置还可以包含被配置为从该循环冗余校验电路读取一个计算的循环冗余校验值并且在该存储器中存储该计算的循环冗余校验值的存储程序设计。
本方法一般来说,包含使用一个直接存储器存取控制器从存储器传输一个数据流到一个显示控制器。该传输可以包含用用于该数据流的显示地址设置该显示控制器。该传输还可以包含用用于该数据流的源地址、用于该数据流的目的地址、以及用于该数据流的一个尺寸来设置该直接存储器存取控制器。该传输可以另外包含通过直接存储器存取控制器启动传输数据流到显示控制器。
在某些实施例中,该方法还可以包含使用直接存储器存取控制器从存储器传输一个检查数据流到该循环冗余校验电路,并且由该循环冗余校验电路计算一个用于该检查数据流的循环冗余校验值。传输检查数据流到循环冗余校验电路可以包含用一个选择的初始值种子化该循环冗余校验电路。传输检查数据流到循环冗余校验电路还可以包含用用于该检查数据流的源地址、用于该检查数据流的目的地址、以及用于该检查数据流的尺寸来设置直接存储器存取控制器。传输检查数据流到循环冗余校验电路另外可以包含通过直接存储器存取控制器启动传输检查数据流到循环冗余校验电路。传输检查数据流到循环冗余校验电路可以进一步包含通过该直接存储器存取控制器传输在检查数据流中的每一个字节到循环冗余校验电路。在某些实施例中,该方法还可以包含从该循环冗余校验电路中读取一个计算的循环冗余校验值并且在该存储器中存储该计算的循环冗余校验值。
通过参考以下仅仅用于说明性目的的附图,本发明将得到更全面地理解。
图1是依据本发明的一个小键盘示意图。
图2A到图2H说明了在图1中的小键盘上输入一个字母数字字符串。
图3是依据本发明的一个数据处理设备的功能框图。
图4说明了依据本发明、从一个直接存储器存取控制器到一个CRC电路的数据传输的流程图。
图5说明了依据本发明、从一个直接存储器存取控制器到一个显示控制器的数据传输的流程图。
图6A是一个说明了用于字母数字字符串的一个授权检验字列表的创建的流程图。
图6B是一个说明了把一个字母数字字符串和授权的检验字列表的比较的流程图。
具体实施例方式
在进一步描述本发明之前,应当理解,由于可以对特定实施例进行各种变化而且仍然属于后附权利要求的范围之内,本发明并不局限于如下所述的本发明的特定实施例。还要理解在这里使用的术语是为了描述特定实施例的目的,而不是用来限制。相反,本发明的范围将由后附权利要求确定。
在此的任何定义是为了清楚的原因而提供的,不应当被认作是限制。在此使用的技术和科学术语和本发明所属领域中的普通技术人员的通常理解具有相同的意思。
在此使用的术语“字母数字字符”和“字母数字符号”以及它们的语法等效意指可以在由一个用户从一个键盘或者小键盘输入数据中使用的任何数字、按字母顺序的字母、单音节符号、多音节符号、文本符号、数学符号或者任何其它符号。示例的“字母数字字符”举例来说包含罗马字母表字母、阿拉伯数字、以及诸如“句号”、“逗号”、“连字号”等等的标点符号。
本发明提供了用于快速、容易和有效利用手持数据处理设备的设备和方法。手持计算设备常常仅仅具有小的小键盘和可用的显示区域,以及有限的存储能力。本发明的设备和方法在其中提供了,在一个小的小键盘或者键盘上的快速和容易的字母数字字符的输入、用于数据传输的快速检查字的计算、快速写入数据到设备显示器中、以及快速和有效地验证用户标识字符串。
更具体地参考附图,为了说明性的目的,本发明主要在图1到图6中显示的装置和方法中加以体现。将要理解本装置可以随配置和部件详情的变化而变化,而且该方法可以随事件或者动作的详情和次序的变化而变化,而不背离在此公开的基本概念。本发明主要依据在手持数据处理器或者计算机中的使用而公开。然而,对于那些在本领域的技术人员来说很显然本发明可以和任何类型的数据处理器一起使用,这些数据处理器包含例如桌面和便携式计算机。同样对于那些在本领域的技术人员来说也应是很显然的,即,如在此描述的本发明各个功能部件可以共享相同的逻辑而且可以在同一个电路内实现,或者以不同的电路布局实现。
现在参考图1,其中显示了一个依据本发明的键盘或者小键盘10。小键盘10包含多个第一、“硬”或者“固定”键12,以及多个第二、“软”键14。在该小键盘上的每一个第一或者固定键12具有至少一个主字母数字符号15。另外,一个或多个固定键可以具有一个或一个以上与其相关的辅助字母数字符号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包含如图1和图2所示的主和辅助字母数字符号15、16。
依据本公开的评论将给那些本领域的技术人员提供小键盘10的多种变化的建议,这些变化认为是在本公开范围之内的。具有不同数量和布局的第一键12和软键14的小键盘可以用来允许有选择地输入对应于多个不同的字母表及/或书写系统的字母数字字符。例如,依据本发明的一个小键盘可用于允许多个平假名、片假名及/或汉字字符与单个第一键相关联,而且这些字符依据适当的按压第一键可以被有选择地显示在软键上。
现在参考图3,本发明中的小键盘10与一个数据处理设备26相关联使用。数据处理设备26可以包含一个诸如个人数字助理或者“PDA”的手持计算机。在其它实施例中,数据处理设备可以包含小型计算机、微型计算机、诸如基于INTEL的处理计算机或其兼容PC机、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启动从存储器34到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,以便减小软件开销和加速数据显示。现有技术的数据处理系统一般使用程序来执行一个逐个字节递增数据的循环,用于输出到一个显示控制器,该软件循环的开销随着写入显示驱动器中的每个字节而增加。本发明通过执行经由DMA控制器36从存储器34到显示控制器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发送该数据流中的下一个字节到显示控制器40,DMA控制器36继续数据传输。
在事件250处,DMA控制器36依据在事件220中提供给DMA控制器36的设置信息,进行一个关于是否在该数据流中的所有字节都已经被传输到显示控制器40的查询。这个查询定期在每个字节传输之后进行。如从来自事件220的设置信息中的数据流尺寸中确定的那样,如果还没有把在数据流中的所有字节发送给显示控制器40,则重复事件240。如果在该数据流中的所有字节都已经被传输了,则在事件260处完成该处理过程。
本发明还通过减少为验证用户标识(ID)字符串所需的时间和存储器需求来为增加在数据处理设备中的效率作准备。手持数据处理器设备一般不具有充足的存储器来存储一个未压缩的ID字符串。在这点上,本发明通过为每个授权的ID字符串创建CRC或者检查值,来为用户ID字符串的压缩作准备。
用于授权的字符串的CRC值是被排序并且被保存在一个外部计算机44的存储器的列表或者查找表中。外部计算机44可以包含,例如,小型计算机、微型计算机、UNLX计算机、大型机、诸如基于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值,需要16000个字节的存储空间用于存储整个列表。如上所述用于这些存储、压缩的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的、与此专利一起提出的美国专利申请____中进行了说明,在此插入此公开内容作为参考。
在图6A的事件300处,启动或者开始在外部计算机44中的程序54来创建一个压缩的、授权的标识或者ID字符串列表。这个程序执行与获取授权的ID字符串、通过为此计算CRC值压缩该ID字符串、以及排序和存储一个压缩的ID字符串列表有关的操作。
在事件310处,从外部计算机44的存储器中获得第一个ID字符串,以及在事件320中,通过为该字符串计算一个CC值压缩该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字符串的数据流到CR电路38而设置DMA控制器36,由CRC电路38计算用于该输入ID字符串的CRC值,以及从CRC电路38读取为该输入ID字符串计算的CRC值返回给存储器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字符串的授权一起发生的任何后续事件,并且发生事件470。在某些实施例中,可以由用户重复事件410以允许重新输入一个ID字符串,再次继之以事件420-440以确定该重新输入的用户ID字符串的有效性。
虽然已经参考它的特定实施例描述了本发明,应当理解那些本领域的技术人员可以进行各种变化和等效替换而不背离本发明的真实精神和范围。此外,可以进行许多修改以使一个特定场合、资料、以及事情、过程、处理过程的一个或者多个步骤的组合适应本发明的目的、精神和范围。所有这样的修改都被确定为在后附权利要求书的范围之内。
权利要求
1.一种数据处理装置,包含(a)一个存储器;(b)一个可操作地与所述存储器相连的直接存储器存取控制器;以及(c)一个可操作地与所述直接存储器存取控制器相连的显示控制器;(d)所述直接存储器存取控制器被配置为从所述存储器传输一个数据流到所述显示控制器。
2.如权利要求1所述的装置,进一步包含被配置为用一个用于所述数据流的显示地址设置所述显示控制器的存储程序设计。
3.如权利要求1或者2所述的装置,进一步包含被配置为用一个用于所述数据流的源地址、用于所述数据流的目的地址、以及用于所述数据流的尺寸设置所述直接存储器存取控制器的存储程序设计。
4.如权利要求1或者2或者3所述的装置,进一步包含被配置为由所述直接存储器存取控制器启动传输所述数据流到所述显示控制器的存储程序设计。
5.如权利要求1所述的装置,进一步包含(a)一个可操作地与所述直接存储器存取控制器相连的循环冗余校验电路;(b)所述直接存储器存取控制器被配置为从所述存储器传输一个检查数据流到所述循环冗余校验电路;以及(e)所述循环冗余校验电路被配置为为所述检查数据流计算一个检查值。
6.如权利要求5所述的装置,进一步包含被配置为用一个选择的初始值种子化所述循环冗余校验电路的存储程序设计;
7.如权利要求6所述的装置,进一步包含被配置为用一个用于所述检查数据流的源地址、用于所述检查数据流的目的地址、以及用于所述检查数据流的尺寸设置所述直接存储器存取控制器的存储程序设计。
8.如权利要求7所述的装置,进一步包含被配置为由所述直接存储器存取控制器启动从所述存储器传输所述检查数据流到所述循环冗余校验电路的存储程序设计。
9.如权利要求7或者8所述的装置,进一步包含被配置为从所述循环冗余校验电路中读取所述计算的循环冗余校验值以及在所述存储器中存储所述计算的循环冗余校验值的存储程序设计。
10.一种用于处理数据的方法,包含使用一个直接存储器存取控制器从一个存储器中传输一个数据流到一个显示控制器,其特征在于所述传输包含用用于所述数据流的一个显示地址设置所述显示控制器。
11.如权利要求10所述的方法,进一步包含(a)使用所述直接存储器存取控制器从所述存储器传输一个检查数据流到一个循环冗余校验电路;以及(b)由所述循环冗余校验电路计算一个用于所述检查数据流的循环冗余校验值。
全文摘要
用于从一个存储器或者存储设备快速传输数据到一个显示控制器的装置和方法。该装置包含:一个存储器、一个可操作地与该存储器相连的直接存储器存取控制器、以及一个可操作地与该直接存储器存取控制器相连并且被配置为从该存储器传输一个数据流到该显示控制器的显示控制器。该装置还可以包含:被配置为用用于该数据流的显示地址设置该显示控制器,用用于该数据流的源地址、用于该数据流的目的地址、以及用于该数据流的尺寸设置该直接存储器存取控制器,以及由该直接存储器存取控制器启动传输数据流到该显示控制器的存储程序设计。该方法包含使用一个直接存储器存取控制器从存储器传输一个数据流到一个显示控制器。该传输可以包含:用用于该数据流的显示地址设置该显示控制器,用用于该数据流的源地址、用于该数据流的目的地址、以及用于该数据流的尺寸设置该直接存储器存取控制器,以及由该直接存储器存取控制器启动传输数据流到该显示控制器。
文档编号G09G5/00GK1423180SQ02160
公开日2003年6月11日 申请日期2002年11月8日 优先权日2001年11月9日
发明者D·霍尔 申请人:生命扫描有限公司