專(zhuān)利名稱(chēng):快速進(jìn)行循環(huán)冗余度計(jì)算的系統(tǒng)和方法
背景技術(shù):
具有數(shù)據(jù)輸入和顯示功能的手持式數(shù)據(jù)處理設(shè)備正逐漸地被用于眾多的場(chǎng)合,其眾所周知的例子包括蜂窩式電話和″個(gè)人數(shù)字助理″(PDA)設(shè)備。由于具有更大的處理能力和更小的體積使設(shè)備更易于使用,這種手持式的數(shù)據(jù)處理設(shè)備在醫(yī)學(xué)、衛(wèi)生保健、金融、工程及其他領(lǐng)域的應(yīng)用將逐漸變得廣泛。用戶輸入數(shù)據(jù)的效率和這些數(shù)據(jù)的快速處理和顯示是手持式數(shù)據(jù)處理設(shè)備的重要考慮因素。然而現(xiàn)在使用的手持式數(shù)據(jù)處理器提供的數(shù)據(jù)輸入與顯示存在各種缺陷。
尤其地,這種手持式設(shè)備的小尺寸往往使通過(guò)字母數(shù)字鍵區(qū)、鍵盤(pán)或觸屏的數(shù)據(jù)輸入方式很復(fù)雜。各種用于用戶輸入字母和數(shù)字的設(shè)備都已經(jīng)使用在了手持式設(shè)備中。一種解決途徑是在顯示設(shè)備上使用一個(gè)完整的標(biāo)準(zhǔn)鍵盤(pán),如同在許多PDA設(shè)備上都有的。這種鍵盤(pán)為大多數(shù)用戶所熟知,并且僅需要鍵入一個(gè)單鍵的按鍵或動(dòng)作并顯示相應(yīng)的字母數(shù)字字符。而在一個(gè)小型設(shè)備上陳列一個(gè)完整的鍵盤(pán)的話,會(huì)需要很多很小的單鍵或按鈕,并且需要使用一個(gè)尖筆進(jìn)行數(shù)據(jù)輸入。
另一個(gè)數(shù)據(jù)輸入的解決途徑是使用一個(gè)傳統(tǒng)的電話字母數(shù)字鍵區(qū),其中一個(gè)單鍵的多次按鍵或操作允許對(duì)與該鍵有關(guān)的幾個(gè)字母中的每個(gè)進(jìn)行循環(huán)操作。例如,當(dāng)″2″鍵組開(kāi)始按下,一個(gè)相對(duì)的2在設(shè)備上被顯示。再次按下″2″鍵,顯示的2變成″A″,在第三次按下″2″時(shí)結(jié)果顯示的是″B″,等等。這個(gè)方法允許使用一個(gè)相對(duì)小的字母數(shù)字鍵區(qū)進(jìn)行數(shù)據(jù)輸入,輸入一個(gè)單個(gè)字母數(shù)字符號(hào)可能需要四次按鍵以便獲得一個(gè)期望的字符。用這樣的方式輸入字母數(shù)字串不是直觀的,而且對(duì)沒(méi)有學(xué)習(xí)過(guò)的用戶來(lái)說(shuō)是困難的。此外,許多電話鍵區(qū)不提供″Q″和″Z″字符,這些字符的輸入必須通過(guò)按下兩個(gè)或更多鍵的組合或通過(guò)其他的數(shù)據(jù)輸入排列來(lái)提供。
另一個(gè)數(shù)據(jù)輸入的途徑是在不同的屏幕圖象上提供不同部分的顯示,它提供一個(gè)按鈕或鍵以便允許在多個(gè)屏幕圖像之間的切換。例如,第一個(gè)屏幕可以用來(lái)顯示號(hào)碼,其他的屏幕用來(lái)顯示字母字符。為顯示全部的字母數(shù)字所需要的屏幕的總數(shù)依賴(lài)于顯示屏的尺寸。一個(gè)小型顯示器通常需要三個(gè)或四個(gè)這種屏幕。由于需要在屏幕之間切換,這種字母數(shù)字串的輸入可能是十分復(fù)雜的和費(fèi)時(shí)的。
在手持式數(shù)據(jù)處理設(shè)備的操作中,另一個(gè)要考慮的重要因素是由所述設(shè)備對(duì)數(shù)字?jǐn)?shù)據(jù)處理進(jìn)行錯(cuò)誤檢測(cè)。典型的錯(cuò)誤檢測(cè)是利用循環(huán)冗余校驗(yàn)(CRC)算法。這個(gè)算法的實(shí)現(xiàn)一般由內(nèi)嵌于軟件中的除法算法來(lái)執(zhí)行的,它相對(duì)比較慢并且需要相當(dāng)大的系統(tǒng)開(kāi)銷(xiāo)。
一個(gè)更快的CRC計(jì)算的解決途徑是通過(guò)使用連接“與”和“異或”操作的一個(gè)軟件檢查表格來(lái)執(zhí)行等效的除法運(yùn)算。這個(gè)方法對(duì)于大數(shù)據(jù)流來(lái)講仍是相對(duì)緩慢的,并且要求大量存儲(chǔ)器來(lái)儲(chǔ)備檢查表(例如,16位CRC需要512字節(jié))。更快一些的方法使用一個(gè)內(nèi)嵌在硬件中的CRC電路,同時(shí)需要一個(gè)因通過(guò)數(shù)據(jù)流而增加的軟件循環(huán),將每個(gè)字節(jié)寫(xiě)入用來(lái)執(zhí)行除法計(jì)算的CRC電路。雖然使用了CRC電路增加了速度,但是對(duì)大數(shù)據(jù)流來(lái)講,軟件循環(huán)的總開(kāi)銷(xiāo)仍然需要相當(dāng)長(zhǎng)的一段時(shí)間。
對(duì)手持式數(shù)據(jù)處理設(shè)備所要考慮另一個(gè)問(wèn)題是有關(guān)將數(shù)據(jù)寫(xiě)入到顯示設(shè)備的時(shí)間,該顯示設(shè)備通常是一個(gè)基于像素的液晶顯示(LCD)。將數(shù)據(jù)輸出到顯示控制器通常涉及一個(gè)軟件執(zhí)行循環(huán),該循環(huán)通過(guò)輸出數(shù)據(jù)流而增加,在某時(shí)刻將一個(gè)字節(jié)寫(xiě)入到顯示控制器。這個(gè)結(jié)構(gòu)對(duì)于基于像素的顯示是緩慢的,因?yàn)樵S多字節(jié)通常必須被寫(xiě)入以便在顯示器上形成字母數(shù)字字符或者圖標(biāo),并且軟件循環(huán)的總開(kāi)銷(xiāo)由于需要通過(guò)這樣寫(xiě)入每個(gè)字節(jié)而增加。
許多工作環(huán)境需要多個(gè)用戶訪問(wèn)手持式數(shù)據(jù)處理設(shè)備,因此授權(quán)用戶的確認(rèn)仍是該設(shè)備在設(shè)計(jì)和運(yùn)行的過(guò)程中的重要考慮因素。對(duì)于用戶確認(rèn)的標(biāo)準(zhǔn)技術(shù)是用戶輸入的標(biāo)識(shí)(ID)字符串。將輸入的字符串與一個(gè)保存在該設(shè)備存儲(chǔ)器中的陣列或列表中的認(rèn)證字符串相比較。軟件通過(guò)查找該列表并且將相關(guān)字符串和每個(gè)被存儲(chǔ)的輸入串相比較,直到發(fā)現(xiàn)一個(gè)相配的或直到已存儲(chǔ)的字符串的列表被排空。該列表一般按次序排序,并且執(zhí)行一個(gè)二分法檢索。然而,按照這種方式進(jìn)行字符串比較,可能需要大量存儲(chǔ)器以便存儲(chǔ)授權(quán)串列表,該列表是大規(guī)模的并且串長(zhǎng)度是很長(zhǎng)的。例如,具有字符最大長(zhǎng)度為18的4,000個(gè)串的存儲(chǔ)需要72,000字節(jié)。更進(jìn)一步地說(shuō),字符串比較所需要的時(shí)間取決于串長(zhǎng)度,可能是相當(dāng)長(zhǎng)的,并將導(dǎo)致在用戶確認(rèn)上過(guò)多的延遲。
因此,需要一個(gè)手持式數(shù)據(jù)處理的設(shè)備和方法,該設(shè)備和方法允許用戶快速容易輸入字母數(shù)字,在操作期間提供快速的數(shù)據(jù)錯(cuò)誤檢查和快速的數(shù)據(jù)寫(xiě)入到顯示,并且為用戶認(rèn)證提供快速的字符串比較。本發(fā)明可以滿足這些需要,以及其它的一些需要,并且普遍地克服了在背景技術(shù)中存在的不足。
該設(shè)備可進(jìn)一步包括存儲(chǔ)的程序,該程序用于安排循環(huán)冗余校驗(yàn)電路具有一個(gè)所選擇的初始值。存儲(chǔ)的程序用于設(shè)置直接存儲(chǔ)存取控制器具有數(shù)據(jù)流的存儲(chǔ)器源地址、數(shù)據(jù)流的存儲(chǔ)器目的地址、以及數(shù)據(jù)流的大小。存儲(chǔ)的程序還可用于設(shè)置由該直接存儲(chǔ)存取控制器啟動(dòng)將數(shù)據(jù)流從存儲(chǔ)器傳輸?shù)窖h(huán)冗余校驗(yàn)電路。存儲(chǔ)程序進(jìn)一步還可用于設(shè)置從循環(huán)冗余校驗(yàn)電路中讀取一個(gè)已計(jì)算的循環(huán)冗余校驗(yàn)值并且將已計(jì)算的循環(huán)冗余校驗(yàn)值存儲(chǔ)在存儲(chǔ)器中。
在特定的實(shí)施例中,所述設(shè)備還可以包括一個(gè)可操作的與直接存儲(chǔ)存取控制器相耦合的顯示控制器,該直接存儲(chǔ)訪問(wèn)控制器用于將顯示數(shù)據(jù)數(shù)據(jù)流從存儲(chǔ)器傳輸?shù)斤@示控制器。所述設(shè)備可以包括存儲(chǔ)的程序,該程序用于設(shè)置顯示控制器具有數(shù)據(jù)流的顯示地址,用于設(shè)置直接存儲(chǔ)存取控制器具有顯示數(shù)據(jù)流的源地址、顯示數(shù)據(jù)流的目的地址、以及顯示數(shù)據(jù)流的大小,并且由直接存儲(chǔ)存取控制器來(lái)啟動(dòng)將顯示數(shù)據(jù)流傳送到顯示控制器。
本發(fā)明的方法包括利用直接存儲(chǔ)存取控制器將數(shù)據(jù)流從存儲(chǔ)器傳輸?shù)窖h(huán)冗余校驗(yàn)電路;由循環(huán)冗余校驗(yàn)電路來(lái)計(jì)算數(shù)據(jù)流的循環(huán)冗余校驗(yàn)值。所述傳輸步驟可以包括安排循環(huán)冗余校驗(yàn)電路具有一個(gè)所選擇的初始值。所述傳輸步驟還可以包括設(shè)置直接存儲(chǔ)訪問(wèn)控制器具有數(shù)據(jù)流的存儲(chǔ)器源地址、數(shù)據(jù)流的存儲(chǔ)器目的地址、以及數(shù)據(jù)流的大小。在一些實(shí)施例中,傳輸步驟還可包括由直接存儲(chǔ)存取控制器啟動(dòng)將數(shù)據(jù)流傳輸?shù)窖h(huán)冗余校驗(yàn)電路。傳輸?shù)牟襟E進(jìn)一步還包括由直接存儲(chǔ)存取控制器將數(shù)據(jù)流的每個(gè)字節(jié)傳輸?shù)窖h(huán)冗余校驗(yàn)電路。
所述方法可以進(jìn)一步包括從循環(huán)冗余校驗(yàn)電路中讀取一個(gè)已計(jì)算的循環(huán)冗余校驗(yàn)值,并且將已計(jì)算的循環(huán)冗余校驗(yàn)值存儲(chǔ)在存儲(chǔ)器中。在一些實(shí)施例中,所述方法此外還可以包括利用直接存儲(chǔ)訪問(wèn)控制器將一個(gè)顯示數(shù)據(jù)數(shù)據(jù)流從存儲(chǔ)器傳輸?shù)揭粋€(gè)顯示控制器。所述的將顯示數(shù)據(jù)流傳輸?shù)斤@示控制器的步驟可以包括設(shè)置顯示控制器具有顯示數(shù)據(jù)流的顯示目的地址,設(shè)置直接存儲(chǔ)存取控制器具有顯示數(shù)據(jù)流的存儲(chǔ)源地址、顯示數(shù)據(jù)流的顯示目的地址、以及顯示數(shù)據(jù)流的大小,并且由直接存儲(chǔ)存取控制器來(lái)啟動(dòng)將顯示數(shù)據(jù)流傳送到顯示控制器。
圖1是根據(jù)本發(fā)明的一個(gè)小鍵盤(pán)的示意圖。
圖2A到圖2H給出了圖1中的小鍵盤(pán)上的字母數(shù)字字符串的輸入。
圖3是根據(jù)本發(fā)明的一個(gè)數(shù)據(jù)處理設(shè)備的功能方塊圖。
圖4是根據(jù)本發(fā)明的一個(gè)從直接存儲(chǔ)存取控制器將數(shù)據(jù)傳送到CRC電路的流程圖。
圖5是根據(jù)本發(fā)明的一個(gè)從直接存儲(chǔ)存取控制器將數(shù)據(jù)傳送到顯示控制器的流程圖。
圖6A是為字母數(shù)字字符串創(chuàng)建被授權(quán)校驗(yàn)字列表的流程圖。
圖6B是將字母數(shù)字字符串和授權(quán)校驗(yàn)字列表進(jìn)行比較的流程圖。
在此所提供的任何定義的目的是為了更清楚的說(shuō)明,而不應(yīng)被認(rèn)為是限定。在此所使用的專(zhuān)業(yè)的和科學(xué)的術(shù)語(yǔ)具有相同的含義,對(duì)本發(fā)明領(lǐng)域的普通技術(shù)人員來(lái)講是通用的。
術(shù)語(yǔ)″字母數(shù)字字符″和″字母數(shù)字符號(hào)″以及語(yǔ)法上與此等價(jià)的詞都在此表示任何數(shù)字、字母的文字、單音節(jié)符號(hào)、多音節(jié)符號(hào)、文本符號(hào)、數(shù)學(xué)符號(hào)或任意其它的符號(hào)。這些符號(hào)可以被用于由用戶從鍵盤(pán)或鍵區(qū)輸入數(shù)據(jù)。舉例來(lái)說(shuō),典型的″字母數(shù)字字符″包括羅馬字母文字,阿拉伯?dāng)?shù)字,以及諸如″句點(diǎn)″、″逗點(diǎn)″、″短橫″等等之類(lèi)的標(biāo)點(diǎn)符號(hào)。
本發(fā)明提供了可以快速地、容易地和有效地利用手持式數(shù)據(jù)處理設(shè)備的設(shè)備和方法。手持式計(jì)算設(shè)備通常只具有很小的鍵區(qū)和可以使用的顯示區(qū)以及有限的儲(chǔ)存容量。本發(fā)明的設(shè)備和方法提供了尤其快速且容易的輸入一個(gè)小的鍵區(qū)或鍵盤(pán)上的字母數(shù)字符號(hào)、在數(shù)據(jù)傳送中快速的校驗(yàn)字計(jì)算、快速將數(shù)據(jù)寫(xiě)入到顯示設(shè)備,以及快速、有效的認(rèn)證用戶標(biāo)識(shí)字符串。
為了說(shuō)明性的目的,進(jìn)一步具體參考附圖,本發(fā)明可由通常如圖1到圖6所示的設(shè)備和方法來(lái)體現(xiàn)??梢岳斫獾氖?,在沒(méi)有脫離在此所披露的基本概念的基礎(chǔ)上,該設(shè)備可對(duì)結(jié)構(gòu)和具體部件做出各種修改,并且該方法也可對(duì)事件或操作的具體細(xì)節(jié)和順序做出修改。所公開(kāi)的發(fā)明主要是用于手持式數(shù)據(jù)處理機(jī)或計(jì)算機(jī)中。然而,對(duì)那些本領(lǐng)域的技術(shù)人員來(lái)講,本發(fā)明可以使用任意一種類(lèi)型的數(shù)據(jù)處理器,包括例如桌面和膝上型計(jì)算機(jī)。對(duì)那些本領(lǐng)域的技術(shù)人員來(lái)講,在此所描述的本發(fā)明的不同功能部分可以共享相同的邏輯并且在相同的電路中被實(shí)現(xiàn)或在不同的電路配置中實(shí)現(xiàn)。
現(xiàn)在參考附圖1,給出了根據(jù)本發(fā)明的一個(gè)鍵盤(pán)或鍵區(qū)10。鍵區(qū)10包括多個(gè)第一″“硬的″或″固定的″鍵12、多個(gè)第二″軟的″鍵14。鍵區(qū)上的每個(gè)第一或固定鍵12至少具有一個(gè)主要的字母數(shù)字符號(hào)15。另外,一個(gè)或多個(gè)固定鍵可以具有一個(gè)次要的與此相關(guān)的字母數(shù)字符號(hào)或符號(hào)16。如圖所示,一個(gè)具有單一號(hào)碼或數(shù)字形式的主要字母數(shù)字符號(hào)15位于每個(gè)第一鍵的鍵區(qū)中央靠下的部分,同時(shí)具有三個(gè)或四個(gè)羅馬字母字符或相關(guān)文本符號(hào)形式的次要字母數(shù)字符號(hào)16位于第一鍵12的上部。第一鍵12按照與傳統(tǒng)電話鍵區(qū)相似的方式來(lái)顯示字母數(shù)字。顯示作為主要字母數(shù)字符號(hào)的數(shù)字“1”的第一鍵12包括作為次要字母數(shù)字字符的取代字符文字的″下劃線″、″句點(diǎn)″、″斜杠″以及″破折號(hào)″。顯示作為主要字母數(shù)字符號(hào)的數(shù)字“0”的第一鍵12也顯示與″空格″、″反斜線符號(hào)″、″冒號(hào)″和″逗號(hào)″相對(duì)應(yīng)的非字母的次要符號(hào)。
主要的和次要的字母數(shù)字符號(hào)15、16可以被顯示在第一鍵12上的其它地方,或可以被顯示在接近第一鍵12或與第一鍵12相鄰近的其它地方。包括有刪除鍵或退格鍵18以便允許刪除所輸入的字母數(shù)字字符,如下所述,并且提供了″輸入″鍵20,它可以用來(lái)輸入完整的字符串或作為一個(gè)復(fù)位鍵,或是可編程的以便依據(jù)鍵20的動(dòng)作執(zhí)行可選擇的功能。
如圖所示,第二軟鍵14對(duì)應(yīng)于與每個(gè)第一鍵12相關(guān)的次要字母數(shù)字符號(hào)16的最大數(shù)。一旦選擇并激活了一個(gè)第一鍵12,與已激活的第一鍵12相關(guān)的相應(yīng)第二字母數(shù)字符號(hào)16顯示在相關(guān)的第二鍵14上,一個(gè)第二字母數(shù)字符號(hào)16顯示在相關(guān)的相應(yīng)第二鍵14上。次要字母數(shù)字符號(hào)16可以直接在第二鍵14上顯示,如圖所示,或在接近第二鍵14的位置上顯示,或在與第二鍵14相關(guān)的其它地方顯示。
在圖1所示的實(shí)施例中,鍵區(qū)10位于一個(gè)觸摸屏上,它疊加或添加在顯示器22上。顯示器22可以包括一個(gè)液晶顯示器、LED、CRT或其它形式的顯示器。在手持式的實(shí)施例中,顯示器22通常是液晶顯示器或LCD。觸摸屏/顯示器22包括一個(gè)區(qū)域24,在其上顯示根據(jù)如下所述的所選擇的所激活的主要鍵或第一鍵12和第二鍵14所選擇的來(lái)顯示字母數(shù)字字符。
通過(guò)選擇性的激活適當(dāng)?shù)牡谝绘I12和第二鍵14,任意一個(gè)字母數(shù)字字符串可以在鍵區(qū)10上被輸入。按下或激活所選擇的第一鍵12可造成在顯示區(qū)域24上顯示所選擇的第一鍵12的主要字母數(shù)字字符15,并且還造成在軟鍵14上顯示相應(yīng)的第二字母數(shù)字符號(hào)16。如果在顯示器24上所顯示的主要字母數(shù)字符號(hào)15是用戶希望輸入的符號(hào),則第二鍵14不啟動(dòng)。如果另一方面,用戶希望輸入一個(gè)與第二鍵14有關(guān)的第二字母數(shù)字字符,用戶可以激活適當(dāng)?shù)牡诙I14。這將導(dǎo)致用所選擇的次要字母數(shù)字字符(文字)來(lái)代替在區(qū)域24上所顯示的主要字母數(shù)字字符(數(shù)字)。
在圖2A到圖2H中說(shuō)明了圖1的鍵區(qū)操作。在圖2A中,由用戶來(lái)選擇和按下或激活第一固定鍵12,該鍵用于顯示主要字母數(shù)字字符4和次要字母數(shù)字字符組″G″、″H″、和″I″。激活第一鍵12導(dǎo)致在顯示區(qū)域24顯示號(hào)碼″4″,并且導(dǎo)致在第二鍵14上顯示字母″G″、H″和″I″。如果用戶在此只希望輸入號(hào)碼″4″,可以選擇輸入按鈕20。如果用戶相反希望輸入″G″,″H″或″I″,選擇并激活適當(dāng)?shù)牡诙I14。
如圖2B所示,由用戶選擇并激活第二鍵14以顯示字母″H″,這導(dǎo)致了在顯示區(qū)域24中由字母″H″替換了號(hào)碼″4″。用戶可以另外在這組次要字母數(shù)字字符中選擇″G″或″I″。如果如圖2B所示的字母″H″表示用戶希望輸入的全部字符串,可以按下輸入鍵20。
用戶可以通過(guò)選擇并激活適當(dāng)?shù)牡谝绘I12和/或第二鍵14來(lái)不斷擴(kuò)大所輸入的字母數(shù)字字符的列表。如圖2C所示,給出了選擇并激活具有主要的字母數(shù)字符號(hào)″2″和一組第二字母數(shù)字符號(hào)″A″、″B″和″C″的第二固定鍵12,這導(dǎo)致在區(qū)域24中在先前所選擇的″H″之后顯示號(hào)碼″2″,并且在軟鍵14上顯示字母″A″,″B″和″C″。用戶可以在此按下輸入鍵20輸入字符串″H2″?;蛘?,如圖2D所示,選擇并激活與字母″A″相對(duì)應(yīng)的第二鍵14以從第二組的字母數(shù)字中選擇″A″,這導(dǎo)致在顯示區(qū)域22用字母″A″代替了數(shù)字″2″,因此″HA″被顯示在區(qū)域24。用戶可以輸入字符串″HA″或繼續(xù)選擇激活第一鍵12和第二鍵14以便增加字符串的長(zhǎng)度。
在圖2E中,用戶選擇并激活與主要字母數(shù)字符號(hào)″9″和一組第二字母數(shù)字符號(hào)″W″、″X(qián)″、″Y″以及″Z″有關(guān)的第一鍵12,這導(dǎo)致數(shù)字“9”的顯示,因此″HA9″出現(xiàn)在顯示區(qū)域24,也導(dǎo)致字母″W″、″X(qián)″、″Y″和″Z”在第二鍵14中顯示。用戶可以輸入字符串″HA9″,或繼續(xù)選擇附加字符。如圖2F所示,選擇并激活與″W″相對(duì)應(yīng)的第二鍵14,這導(dǎo)致用所選擇的字符“w”替換了已顯示的“9”,因此區(qū)域24顯示字母數(shù)字字符″HAW″。
圖2G表示選擇并激活與主要字母數(shù)字字符″5″以及第四組字母數(shù)字字符″J″、″K″和″L″相對(duì)應(yīng)的第四固定鍵12,因此″HAW5″被顯示在區(qū)域24。用戶可以輸入字符串″HAW5″或繼續(xù)改變或通過(guò)按下其他的鍵延長(zhǎng)字符串。選擇激活與″K″相對(duì)應(yīng)的第二鍵14,例如,在區(qū)域24用″K″替換″5″,這樣所期望的字母數(shù)字字符串″HAWK″被顯示,如圖2H所示。在此,用戶可以激活″輸入″鍵20以便輸入所選擇的字母數(shù)字字符串″HAWK″以用于將被在下面進(jìn)一步說(shuō)明的數(shù)據(jù)處理。或者,用戶可以按照如上所述的方式通過(guò)選擇并激活適當(dāng)?shù)牡谝还潭ㄦI12和第二軟鍵14來(lái)輸入附加的字母數(shù)字字符。如果一個(gè)不正確的字母數(shù)字符號(hào)已經(jīng)被選擇和被顯示,用戶可以按下″刪除″鍵18以便″反向跟蹤″并從顯示器24刪除不需要的字符,然后通過(guò)激活適當(dāng)?shù)逆I來(lái)選擇正確的字母數(shù)字字符。
僅僅通過(guò)激活第一鍵就可實(shí)現(xiàn)利用鍵區(qū)10來(lái)輸入的單一的數(shù)字字符串,而不需要用于顯示第二的字母符號(hào)的軟鍵。例如,可以通過(guò)順序激活適當(dāng)?shù)木哂小?″、″2″、″3″和″4″主要字母數(shù)字符號(hào)的適當(dāng)?shù)谝绘I12來(lái)輸入數(shù)字符號(hào)串″1234″,而無(wú)需激活任何一個(gè)第二鍵14。在其他的情況下,所期望的字符串需要連續(xù)激活不同的第二鍵14,而無(wú)需介入激活任何第一鍵12。因此,例如,可以通過(guò)如下的步驟來(lái)輸入字符串FEED激活其上有″3″的第一鍵以便在第二鍵14上顯示字符″D″、″E″和″F″、隨后通過(guò)連續(xù)激活適當(dāng)?shù)牡诙I14以輸入″FEED″。
鍵區(qū)10有益于允許輸入混合有字母和數(shù)字的較長(zhǎng)復(fù)雜的字符串,而無(wú)需在顯示器22上進(jìn)行任何顯示屏的轉(zhuǎn)換。也就是說(shuō),在通過(guò)鍵區(qū)10輸入數(shù)據(jù)的過(guò)程中保持第一鍵12一直出現(xiàn)在顯示器22上,僅在第二鍵14和在顯示區(qū)域24上所顯示的字母數(shù)字字符發(fā)生變化時(shí)。這樣,一個(gè)鍵區(qū)10的用戶可以送入任何字母數(shù)字字符16,同時(shí)第一鍵12和第二鍵14保持可視。
在圖1和圖2所示的實(shí)施例中,鍵區(qū)10中的十二個(gè)第一鍵12和四個(gè)第二鍵14允許四個(gè)次要字母數(shù)字字符與每個(gè)第一鍵12相連并且同時(shí)顯示在第二鍵14上。鍵區(qū)10與傳統(tǒng)的電話字母數(shù)字鍵區(qū)相似,并且鍵區(qū)的使用是直觀的,這樣鍵區(qū)的新用戶可以通過(guò)最少的指令了解它的操作。在這些實(shí)施例中,激活第一鍵12可導(dǎo)致在區(qū)域24中立即顯示相關(guān)的數(shù)字標(biāo)記,同時(shí)非數(shù)字、字母符號(hào)被顯示在軟鍵14上;激活第二鍵14可對(duì)非數(shù)字、字母字符進(jìn)行快速存取,而不需要顯示屏圖像的轉(zhuǎn)換。在其它的實(shí)施例中,激活第一鍵12可以導(dǎo)致將全部相關(guān)的字母數(shù)字15、16顯示在軟鍵14上,而不在區(qū)域24發(fā)生字符顯示,直到第二鍵14被按下。圖1和圖2所示的實(shí)施例給出了每個(gè)第一鍵12包括主要的和次要的兩個(gè)字母數(shù)字符號(hào)15,16。然而,在其它的實(shí)施例中某個(gè)第一鍵12可以僅包括主要的字母數(shù)字符號(hào)15,而不包括次要的字母數(shù)字符號(hào)。通常至少一個(gè)第一鍵12包括主要的和次要的字母數(shù)字符號(hào)15,16兩個(gè),同時(shí)在很多的實(shí)施例中,多個(gè)第一鍵12包括主要的和次要的兩個(gè)字母數(shù)字符號(hào)15,16,如圖1和圖2所示。
對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)講依據(jù)上述這些所披露的內(nèi)容可得到對(duì)鍵區(qū)10作出多種變化的啟示,并且這些變化被認(rèn)為是包括在這些被披露的內(nèi)容的范疇內(nèi)。
具有不同數(shù)字和結(jié)構(gòu)的第一鍵12和軟鍵14的鍵區(qū)10可以用來(lái)選擇與多個(gè)不同字母和或?qū)懭胂到y(tǒng)相對(duì)應(yīng)的字母數(shù)字字符的輸入。例如,根據(jù)本發(fā)明的一個(gè)鍵區(qū)可使用與單個(gè)第一鍵有關(guān)的多個(gè)平假名,片假名與/或漢字字符,并且一旦按壓下適當(dāng)?shù)牡谝绘I則可被有選擇的顯示在軟鍵上。
現(xiàn)在參考圖3說(shuō)明,本發(fā)明的鍵區(qū)10被用在有關(guān)的數(shù)據(jù)處理設(shè)備26中。數(shù)據(jù)處理設(shè)備26可以包括一個(gè)諸如個(gè)人數(shù)字助理或″PDA″之類(lèi)的手持式計(jì)算機(jī)。在其它的實(shí)施例中,數(shù)據(jù)處理設(shè)備包括迷你計(jì)算機(jī)、微型計(jì)算機(jī)、個(gè)人計(jì)算機(jī)(比如美國(guó)英特爾公司的產(chǎn)品)或它的兼容機(jī),蘋(píng)果計(jì)算機(jī)或它的兼容機(jī),SUN工作站,或其它的類(lèi)似計(jì)算機(jī)。在設(shè)備26中,鍵區(qū)10可操作的通過(guò)模-數(shù)轉(zhuǎn)換器或ADC(未示出)與中央處理器或CPU28相耦合。
CPU28可操作的通過(guò)地址和數(shù)據(jù)總線30以及控制/狀態(tài)信號(hào)接口32而耦合到設(shè)備26的不同的硬件部分。這些部分包括,尤其是,一系統(tǒng)存儲(chǔ)器34、一個(gè)或多個(gè)SRAM緩沖器、一個(gè)或多個(gè)ROM、PRCOM、EPROM、EEPROM等等形式的只讀存儲(chǔ)器元件。其中系統(tǒng)存儲(chǔ)器34可以包括不同的存儲(chǔ)器元件(未示出),例如主DRAM或主存儲(chǔ)器。數(shù)據(jù)處理機(jī)26此外包括一個(gè)直接存儲(chǔ)器存取(DMA)控制器36、一個(gè)循環(huán)冗余校驗(yàn)(CRC)電路38,以及一個(gè)顯示控制器40。中央處理器28執(zhí)行與存儲(chǔ)在存儲(chǔ)器34中的軟件有關(guān)的不同程序操作。由用戶通過(guò)鍵區(qū)10按照上述方式所輸入的數(shù)據(jù)被CPU28處理,并且被存儲(chǔ)在存儲(chǔ)器34中或在存儲(chǔ)器34中緩沖以用于與存儲(chǔ)在存儲(chǔ)器34中的軟件有關(guān)的不同程序操作。DMA控制器允許快速將數(shù)據(jù)從存儲(chǔ)器34傳輸?shù)紺RC電路38和顯示控制器40,如下所述。顯示控制器40可以包括一個(gè)顯示控制器,它可操作的耦合到顯示器22,如上圖1和圖2所述,并且顯示控制器40提供了顯示器22的操作。顯示控制器40包括一個(gè)存儲(chǔ)器(未示出)以用于存儲(chǔ)顯示數(shù)據(jù)。
按照傳統(tǒng)的方式將CPU28、存儲(chǔ)器34、DMA控制器36、CRC電路38和顯示控制器40安排在主板上(未示出)并且在此通過(guò)地址和數(shù)據(jù)總線30和控制/處理接口32互連。數(shù)據(jù)處理設(shè)備26可以包括諸如硬盤(pán)驅(qū)動(dòng)器,軟盤(pán)驅(qū)動(dòng)器,NIC,CD驅(qū)動(dòng)器之類(lèi)的不同附加元件(也未示出)和/或其它的傳統(tǒng)硬件元件。數(shù)據(jù)處理設(shè)備26包括一個(gè)接口適配器42,它通過(guò)一個(gè)接口電纜或連接46將數(shù)據(jù)處理機(jī)26連接到外部計(jì)算機(jī)44。適配器42和接口46可以采用GPIB、RS-232、PCI、USB、SCSI、ETHERNET、FIREWIRE或其它的IEEEE1394接口,或其它的通信接口系統(tǒng)以將數(shù)據(jù)從外部計(jì)算機(jī)44傳輸?shù)皆O(shè)備26。
系統(tǒng)存儲(chǔ)器34通常包括一個(gè)適當(dāng)?shù)牟僮飨到y(tǒng)和適合于不同硬件元件的操作軟件,它可操作的通過(guò)地址/數(shù)據(jù)總線30和控制/狀態(tài)信號(hào)接口32而耦合到存儲(chǔ)器34和CPU28。根據(jù)本發(fā)明存儲(chǔ)器34還包括能夠執(zhí)行不同操作的已存儲(chǔ)的程序或軟件。
存儲(chǔ)器34包括程序48,它能夠通過(guò)執(zhí)行下述操作而實(shí)現(xiàn)將數(shù)據(jù)流從存儲(chǔ)器34傳輸?shù)紺RC電路38安排CRC電路38具有一個(gè)所希望的初始值的操作、設(shè)置DMA控制器電路36具有數(shù)據(jù)傳輸?shù)脑吹刂泛湍康牡刂芬约皵?shù)據(jù)流大小、由DMA控制器電路36啟動(dòng)將數(shù)據(jù)傳輸?shù)紺RC電路38、并且從CRC電路38讀出已計(jì)算的CRC值以將其返回到存儲(chǔ)器34。
存儲(chǔ)器34還包括程序50,能夠有效通過(guò)DMA控制器36將數(shù)據(jù)從存儲(chǔ)器34傳輸?shù)斤@示控制器40,其中執(zhí)行了下述操作設(shè)置顯示控制器40具有顯示目的地址信息、設(shè)置DMA控制器電路36具有源地址和目的地址信息以及數(shù)據(jù)流大小信息、并且由DMA控制器電路36啟動(dòng)將數(shù)據(jù)從存儲(chǔ)器34傳輸?shù)斤@示控制器40。
此外,包括在存儲(chǔ)器34內(nèi)的軟件或程序52能夠?qū)嚎s的輸入串和一個(gè)存儲(chǔ)在存儲(chǔ)器34中的壓縮串列表進(jìn)行比較以進(jìn)行授權(quán),這通過(guò)以下程序操作接收字符串的輸入,將輸入串傳輸?shù)紺RC電路38以便進(jìn)行壓縮,在存儲(chǔ)在存儲(chǔ)器34中的壓縮的ID串的列表中進(jìn)行搜索為已壓縮的、已輸入的數(shù)據(jù)串查找一個(gè)匹配的字符串,和驗(yàn)證已壓縮的所輸入的數(shù)據(jù)串。這些程序的操作將在下面進(jìn)行描述。
CRC電路38通過(guò)計(jì)算校驗(yàn)數(shù)字為數(shù)據(jù)處理設(shè)備的不同硬件元件之間的二進(jìn)制數(shù)據(jù)傳輸提供了錯(cuò)誤檢測(cè),檢驗(yàn)數(shù)通常是對(duì)目的地的數(shù)據(jù)流進(jìn)行驗(yàn)證。通過(guò)安排多項(xiàng)式具有一初始值,然后通過(guò)一個(gè)由多項(xiàng)式所劃分的數(shù)據(jù)流進(jìn)行排序,從而執(zhí)行CRC的計(jì)算。在每個(gè)步驟中該被除數(shù)被用作新的設(shè)置,由CRC電路38執(zhí)行除法算法。這種類(lèi)型的CRC電路在該技術(shù)領(lǐng)域是公知的,在此將不在詳細(xì)說(shuō)明。
CRC電路的CRC的計(jì)算值或計(jì)算數(shù)在傳統(tǒng)上包括一個(gè)軟件循環(huán)以用于通過(guò)數(shù)據(jù)流來(lái)增加并通過(guò)程序操作將字節(jié)寫(xiě)入到CRC電路。這種方式的CRC計(jì)算將導(dǎo)致大量的軟件開(kāi)銷(xiāo)并且導(dǎo)致在對(duì)較大數(shù)據(jù)流的檢驗(yàn)值進(jìn)行計(jì)算期間有延遲。該軟件開(kāi)銷(xiāo)的考慮對(duì)手持式計(jì)算機(jī)來(lái)講是特別重要的,因?yàn)樵撛O(shè)備的大小受到可用存儲(chǔ)器以及處理能力的限制。
本發(fā)明的主題是通過(guò)利用DMA控制器電路36結(jié)合CRC電路38以執(zhí)行CRC計(jì)算來(lái)克服這個(gè)缺陷。軟件48用于安排CRC電路38具有一個(gè)所希望的初始值、用于加載DMA控制器36使其具有數(shù)據(jù)流中的第一字節(jié)地址以及該數(shù)據(jù)流中的字節(jié)數(shù)目,該字節(jié)數(shù)是由CRC計(jì)算所生成的。DMA控制器電路36然后自動(dòng)地將該字節(jié)流傳送到CRC電路38以便計(jì)算一個(gè)檢驗(yàn)值。一旦全部的數(shù)據(jù)流都已由CRC電路38處理,軟件然后通常從CRC電路38讀取所得到的已計(jì)算檢驗(yàn)值以為數(shù)據(jù)流執(zhí)行完整的檢驗(yàn)。因?yàn)閮H在有關(guān)的配置CRC電路38和DMA控制器電路36的過(guò)程中,由DMA控制器電路36初始化數(shù)據(jù)傳輸?shù)倪^(guò)程中,并且讀出檢驗(yàn)值的過(guò)程中使用軟件48,因此計(jì)算檢驗(yàn)值的全部軟件開(kāi)銷(xiāo)很小。利用上述過(guò)程來(lái)進(jìn)行CRC計(jì)算所需的時(shí)間與只通過(guò)軟件而將數(shù)據(jù)傳輸?shù)紺RC電路38所實(shí)現(xiàn)的時(shí)間要小一個(gè)數(shù)量級(jí)。
參考圖4和圖3將可更完整理解利用根據(jù)本發(fā)明的DMA控制器電路36和CRC電路38來(lái)計(jì)算檢驗(yàn)值。在事件100,加載在存儲(chǔ)器34中的軟件48被啟動(dòng)或被初始化,該軟件包括用于執(zhí)行與如下步驟有關(guān)操作的程序安排CRC電路38,設(shè)置DMA控制器電路36,由DMA控制器電路36啟動(dòng)將數(shù)據(jù)傳輸?shù)紺RC電路38,以及從CRC電路38讀出已被計(jì)算的CRC值。
在事件110,CRC電路38是安排具有一個(gè)所希望的數(shù)據(jù)流初始值,為該初始值而計(jì)算CRC值。初始值將根據(jù)數(shù)據(jù)流的大小和CRC值以及整個(gè)數(shù)據(jù)流所需的可信度而變化。數(shù)據(jù)流可以包括諸如與由用戶在鍵區(qū)10所輸入的一個(gè)字母數(shù)字字符有關(guān)的數(shù)據(jù)、存儲(chǔ)在存儲(chǔ)器34中的關(guān)鍵性數(shù)據(jù),將被傳輸?shù)交驈耐獠坑?jì)算機(jī)44所傳輸?shù)囊粩?shù)據(jù)流,或任何與存儲(chǔ)器34有關(guān)的可執(zhí)行程序代碼。
在事件120,DMA控制器36被建立以將數(shù)據(jù)流從存儲(chǔ)器34傳輸?shù)紺RC電路38。這些設(shè)置通常包括提供了用于數(shù)據(jù)傳送的一源地址和一目的地址,以及在將數(shù)據(jù)傳送到DMA控制器36的過(guò)程中所涉及的字節(jié)數(shù)。
在事件130,由DMA控制器36初始化或開(kāi)始數(shù)據(jù)流的傳輸,并且數(shù)據(jù)流的第一字節(jié)由DMA控制器36被傳輸?shù)紺RC電路。DMA控制器36可以暫時(shí)″利用″地址和數(shù)據(jù)傳送總線30來(lái)創(chuàng)建DMA信道以將數(shù)據(jù)流快速傳輸?shù)紺RC電路38。
在事件140,DMA控制器36根據(jù)在事件120所提供給DMA控制器36的設(shè)置信息而不斷通過(guò)地址和數(shù)據(jù)總線30將數(shù)據(jù)流的字節(jié)發(fā)送到CRC電路38。
在事件150,DMA控制器36進(jìn)行一個(gè)有關(guān)數(shù)據(jù)流中的所有字節(jié)是否都已經(jīng)傳輸?shù)紺RC電路38的查詢。這些查詢?cè)诿總€(gè)字節(jié)的傳輸之后周期性地進(jìn)行。如果根據(jù)事件120中的設(shè)置信息的數(shù)據(jù)流的大小所決定的數(shù)據(jù)流中的所有字節(jié)沒(méi)有被發(fā)送,那么事件140被重復(fù)。如果數(shù)據(jù)流中的全部字節(jié)已經(jīng)被傳輸,那么執(zhí)行事件160。
在事件160,由CRC電路38利用一個(gè)除法算法為數(shù)據(jù)流計(jì)算CRC值或校驗(yàn)值。
在事件170,將已被計(jì)算的CRC值從CRC控制器電路38讀取到存儲(chǔ)器34以用于數(shù)據(jù)流的完整性檢查。在事件180,完成校驗(yàn)值的計(jì)算。
本發(fā)明同樣可使用DMA控制器36以快速的將數(shù)據(jù)流傳輸?shù)斤@示控制器40以便減少軟件開(kāi)銷(xiāo)并且加速數(shù)據(jù)顯示?,F(xiàn)有技術(shù)的數(shù)據(jù)處理系統(tǒng)通常使用程序以執(zhí)行一個(gè)循環(huán)以便一個(gè)字節(jié)一個(gè)字節(jié)地增加數(shù)據(jù)以輸出到顯示控制器,由于每個(gè)字節(jié)都要被寫(xiě)入顯示驅(qū)動(dòng)器而增加了軟件循環(huán)的總開(kāi)銷(xiāo)。本發(fā)明通過(guò)經(jīng)由DMA控制器36將數(shù)據(jù)直接從存儲(chǔ)器34傳輸?shù)斤@示控制器40而克服了這種缺陷,這使用僅在DMA控制器36和顯示控制器40的設(shè)置或配置時(shí)用的編程,并且通過(guò)DMA控制器36開(kāi)始數(shù)據(jù)傳輸。通過(guò)從存儲(chǔ)器傳輸字節(jié)到顯示控制器40來(lái)除去有關(guān)的軟件開(kāi)銷(xiāo),這種傳輸可以迅速地被執(zhí)行,并且信息(文本與/或圖形)顯示使用更少的時(shí)間,信息將通過(guò)用戶查看顯示器22來(lái)觀看。以這種方式來(lái)使用DMA控制器36以驅(qū)動(dòng)顯示控制器40,這可比傳統(tǒng)的使用一個(gè)軟件循環(huán)以將像素?cái)?shù)據(jù)字節(jié)寫(xiě)到顯示控制器節(jié)省達(dá)到80%或更多的時(shí)間。
參考附圖5以及附圖3將會(huì)更好的理解利用根據(jù)本發(fā)明的DMA控制器36的數(shù)據(jù)顯示。在事件200,開(kāi)始或啟動(dòng)加載在存儲(chǔ)器34中的軟件50,該軟件包括用于執(zhí)行與下述步驟相關(guān)的操作設(shè)置顯示控制器40、設(shè)置DMA控制器36、并且由DMA控制器36來(lái)啟動(dòng)將數(shù)據(jù)傳輸?shù)斤@示控制器40。
在事件210,通過(guò)為顯示控制器40提供一″寫(xiě)″命令以及將被傳送到顯示控制器的數(shù)據(jù)流的顯示目標(biāo)地址(在顯示控制器40的存儲(chǔ)器中)來(lái)設(shè)置顯示控制器40。數(shù)據(jù)流可以包括任意一種可顯示數(shù)據(jù),諸如與所存儲(chǔ)的用于顯示圖標(biāo)或其他特征的程序有關(guān)的圖形用戶界面(GUI)之類(lèi)的可顯示數(shù)據(jù)、與用戶在鍵盤(pán)上所輸入的字符或字母數(shù)字字符串相關(guān)的數(shù)據(jù)、或存儲(chǔ)在存儲(chǔ)器34中的其它數(shù)據(jù)。
在事件220設(shè)置DMA控制器36以將數(shù)據(jù)流從存儲(chǔ)器34傳輸?shù)斤@示控制器40。這些設(shè)置包括為數(shù)據(jù)傳輸提供一個(gè)存儲(chǔ)器源地址和目標(biāo)地址,以及在將數(shù)據(jù)傳輸?shù)紻MA控制器36的過(guò)程中所涉及的字節(jié)數(shù)。
在事件230,由DMA控制器36初始化或啟動(dòng)數(shù)據(jù)流的傳輸,并且通過(guò)DMA控制器36將數(shù)據(jù)流的第一字節(jié)傳輸?shù)斤@示控制器40。DMA控制器36可以暫時(shí)″利用″如上所述的地址和數(shù)據(jù)傳輸總線30以創(chuàng)建一DMA信道用于數(shù)據(jù)流快速傳輸?shù)斤@示控制器40。
在事件240,DMA控制器36經(jīng)由地址和數(shù)據(jù)總線30通過(guò)將數(shù)據(jù)流的下一個(gè)字節(jié)發(fā)送到CRC電路38而不斷進(jìn)行數(shù)據(jù)傳輸。
在事件250,DMA控制器36根據(jù)在事件220所提供給DMA控制器36的設(shè)置信息來(lái)執(zhí)行一個(gè)有關(guān)數(shù)據(jù)流中的全部字節(jié)是否都已經(jīng)被傳輸?shù)斤@示控制器40的查詢。這個(gè)查詢?cè)诿總€(gè)字節(jié)傳輸之后周期性地進(jìn)行。如果根據(jù)事件220的設(shè)置信息中的數(shù)據(jù)流大小所確定的數(shù)據(jù)流中的全部字節(jié)沒(méi)有發(fā)送給顯示控制器40,則重復(fù)事件240。如果在數(shù)據(jù)流中的全部字節(jié)已經(jīng)被傳輸,程序在事件260結(jié)束。
本發(fā)明還可以通過(guò)減少諸如用戶標(biāo)識(shí)(ID)字符串的驗(yàn)證所需的時(shí)間和內(nèi)存要求來(lái)增加數(shù)據(jù)處理設(shè)備的效率。手持式數(shù)據(jù)處理機(jī)設(shè)備一般沒(méi)有充足的內(nèi)存以存儲(chǔ)未壓縮的用戶ID字符串。在這點(diǎn)上,本發(fā)明通過(guò)創(chuàng)建CRC或用于每個(gè)授權(quán)的ID字符串的檢驗(yàn)值來(lái)提供對(duì)用戶ID串進(jìn)行壓縮。
用于表示授權(quán)的字符串的CRC值被分類(lèi)并且被存儲(chǔ)在外部計(jì)算機(jī)44的內(nèi)存的列表中或查找表格中。外部計(jì)算機(jī)44可以包括,例如,一迷你計(jì)算機(jī),一微型計(jì)算機(jī),一UNIX機(jī)器,一大型機(jī),諸如基于INTEL的處理計(jì)算機(jī)或它的兼容機(jī)之類(lèi)的一個(gè)人電腦(PC),一個(gè)APPIE計(jì)算機(jī)或它的兼容機(jī),或一個(gè)SUN工作站,或其它適當(dāng)?shù)木哂袀鹘y(tǒng)的硬件元件(未示出)的計(jì)算機(jī)。該硬件元件例如是主板、中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(DAM)、硬盤(pán)驅(qū)動(dòng)器、顯示適配器,其它的存儲(chǔ)介質(zhì)、監(jiān)視器、鍵盤(pán)、鼠標(biāo)、及其他用戶界面設(shè)備,一個(gè)網(wǎng)絡(luò)接口卡(NIC)、軟盤(pán)驅(qū)動(dòng)器,CD驅(qū)動(dòng)器、和/或其它傳統(tǒng)的輸入-輸出設(shè)備。
外部計(jì)算機(jī)44在它的RAM中加載了諸如UNIX、WINDOWS98、WINDOWSME等等之類(lèi)的操作系統(tǒng)。外部計(jì)算機(jī)48可以具有如圖3所述的結(jié)構(gòu)和硬件元件以用于數(shù)據(jù)處理機(jī)26,雖然具有一個(gè)適于存儲(chǔ)未壓縮的ID字符串列表的大容量存儲(chǔ)器元件。程序54被裝載在外部計(jì)算機(jī)44的內(nèi)存中,它能夠?yàn)槎鄠€(gè)ID字符串計(jì)算CRC值,對(duì)CRC值分類(lèi),并且存儲(chǔ)所述的CRC值的列表。被分類(lèi)的、被存儲(chǔ)的CRC值然后經(jīng)由接口46被傳輸或被下載到數(shù)據(jù)處理機(jī)26中并且被存儲(chǔ)在內(nèi)存34中以對(duì)數(shù)據(jù)處理機(jī)26的用戶進(jìn)行授權(quán)。
當(dāng)由用戶鍵入的或從鍵區(qū)10所輸入的ID字符串必須與已存儲(chǔ)的用于授權(quán)字符串的CRC值列表進(jìn)行比較時(shí),通過(guò)計(jì)算CRC值、由此通過(guò)被加載在內(nèi)存34中的程序來(lái)壓縮由用戶所輸入的ID串,并且為已授權(quán)CRC值的存儲(chǔ)列表中的已計(jì)算CRC值執(zhí)行一個(gè)二分法檢索。如果在內(nèi)存34中的已授權(quán)CRC值的存儲(chǔ)列表中發(fā)現(xiàn)了所輸入的ID串的CRC值,輸入的ID串被確認(rèn)。如果沒(méi)有在該列表中發(fā)現(xiàn)所輸入的ID串的CRC值,所輸入的ID串不被授權(quán)。
可利用不同大小的CRC值以提供在授權(quán)過(guò)程中的不同置信度。例如,使用32位CRC值僅僅產(chǎn)生在4,294,967,296中有一次的或然率,該或然率使得無(wú)效輸入字符串會(huì)被確認(rèn)或授權(quán)。使用一個(gè)16位CRC值提供了在65,536中有一次使輸入字符串被錯(cuò)誤確認(rèn)的或然率,8位CRC值將產(chǎn)生在256中有一次無(wú)效串的驗(yàn)證的或然率。所使用的CRC值的大小可以根據(jù)安全需要的級(jí)別而不同。
利用字符串的CRC值來(lái)驗(yàn)證或認(rèn)證輸入字符串CRC值,提供了一些比通過(guò)利用完全的字符串進(jìn)行驗(yàn)證重要的優(yōu)點(diǎn)。存儲(chǔ)一個(gè)列表或授權(quán)字符串所需的內(nèi)存34的空間因此顯著地減少了。例如,所存儲(chǔ)的每個(gè)均具有18個(gè)字符的4000個(gè)授權(quán)ID串需要大約72,000字節(jié)的RAM空間以用于未壓縮的串,它超過(guò)了典型的手持式數(shù)據(jù)處理機(jī)的內(nèi)存容量。然而根據(jù)本發(fā)明,將4000個(gè)ID串壓縮到32位CRC值需要16,000字節(jié)的存儲(chǔ)空間以用于存儲(chǔ)全部列表。這些所存儲(chǔ)的、所壓縮的ID串的置信級(jí)是相當(dāng)高的,如上所述,僅僅在4,294,967,296中有一次不正確驗(yàn)證的或然率。
將授權(quán)ID字符串壓縮成CRC值還可以減少將授權(quán)串的列表從一個(gè)計(jì)算機(jī)傳輸?shù)搅硪粋€(gè)計(jì)算機(jī)的時(shí)間。如果是手持式數(shù)據(jù)處理機(jī),授權(quán)ID串的列表經(jīng)常從另一個(gè)機(jī)器下載到手持式數(shù)據(jù)處理機(jī)。在通過(guò)傳統(tǒng)的RS-232鏈接數(shù)據(jù)傳送率為9600波特,例如,在計(jì)算機(jī)之間大約需要72秒來(lái)傳輸一個(gè)4000個(gè)18字節(jié)ID串的列表。當(dāng)4000ID字符串被壓縮成4000個(gè)32位CRC值時(shí),在9600波特率的情況下僅僅需要大約16秒用來(lái)傳輸數(shù)據(jù)。
參考圖6A和圖6B以及圖3將會(huì)更好的理解利用CRC值形式的已壓縮ID字符串。圖6A說(shuō)明了按照本發(fā)明的創(chuàng)建外部計(jì)算機(jī)44中的已壓縮ID串的存儲(chǔ)列表。也就是說(shuō),執(zhí)行與駐留在一單獨(dú)的、外部計(jì)算機(jī)44中的程序54相關(guān)的圖6A的事件,其中計(jì)算機(jī)44具有足夠的內(nèi)存以存儲(chǔ)未壓縮的用戶ID字符串的實(shí)際列表。圖6B的事件表示利用數(shù)據(jù)處理機(jī)26中的已壓縮ID串列表來(lái)對(duì)用戶所輸入的ID串進(jìn)行認(rèn)證。在美國(guó)專(zhuān)利申請(qǐng)編號(hào)10/008,522(發(fā)明人David Hohl等人,律師提交號(hào)LIFE060)中描述了為了認(rèn)證或確認(rèn)使用壓縮的數(shù)據(jù)串,該公開(kāi)在此引用作為參考。
在圖6A的事件300中,初始化或啟動(dòng)外部計(jì)算機(jī)44中的程序54以創(chuàng)建一個(gè)已壓縮的、已授權(quán)的標(biāo)識(shí)或ID串的列表。這個(gè)程序執(zhí)行與獲得的已授權(quán)ID串有關(guān)的操作,執(zhí)行與為此通過(guò)計(jì)算CRC值來(lái)壓縮ID串有關(guān)的操作,并且執(zhí)行對(duì)已壓縮的ID串的列表進(jìn)行分類(lèi)和存儲(chǔ)有關(guān)的操作。
在圖6A中的事件310,第一ID串是從外部計(jì)算機(jī)44的內(nèi)存中獲得的,并且在事件320,通過(guò)對(duì)該串計(jì)算CRC值來(lái)壓縮ID串。這個(gè)壓縮事件可以通過(guò)傳統(tǒng)的軟件技術(shù)來(lái)執(zhí)行,因?yàn)橥獠坑?jì)算機(jī)44一般具有足夠的內(nèi)存和處理能力以進(jìn)行軟件的全部壓縮操作。另外,可以使用CRC電路和用于執(zhí)行該除法算法的軟件循環(huán)一起執(zhí)行壓縮。它也可以這樣完成,外部計(jì)算機(jī)44可以按數(shù)據(jù)處理機(jī)26的方式配置,使與每個(gè)數(shù)據(jù)串相關(guān)的數(shù)據(jù)按照?qǐng)D4所示和上述的方式通過(guò)DMA從內(nèi)存直接傳輸?shù)紺RC電路,使最小限度的軟件方面涉及壓縮。在事件320中所獲得的已壓縮CRC值被保存在外部計(jì)算機(jī)的內(nèi)存的已壓縮串列表中。
在事件330,通過(guò)外部計(jì)算機(jī)中的程序執(zhí)行一個(gè)關(guān)于最后要被壓縮的串是否已經(jīng)從外部計(jì)算機(jī)的內(nèi)存取回的查詢。如果最后將被壓縮的串還沒(méi)有被接收并未被壓縮,則執(zhí)行事件340。如果從內(nèi)存中接收到最后的串并對(duì)其進(jìn)行并壓縮,則執(zhí)行事件350。
事件340從內(nèi)存中取回下一個(gè)未壓縮的ID字符串,在此之后,重復(fù)事件320以通過(guò)在此計(jì)算一個(gè)CRC值來(lái)壓縮該串。在對(duì)最后ID串進(jìn)行壓縮之后,在事件350,對(duì)已壓縮ID串列表進(jìn)行分類(lèi),該ID串列表目前是與CRC值相對(duì)應(yīng)的列表的形式。在事件360,被分類(lèi)的列表被存儲(chǔ)在在圖6A的壓縮過(guò)程中所使用的外部計(jì)算機(jī)的內(nèi)存中。
在事件370,CRC值的存儲(chǔ)列表被下載或被傳輸?shù)绞殖质綌?shù)據(jù)處理機(jī)26以用于如圖6B所示的用戶授權(quán)。可以通過(guò)經(jīng)由GPIB、RS-232、PCI、USB、SCSI、ETHERNET、FIREWIRE/IEEE1394或其它的類(lèi)型的通信接口的將數(shù)據(jù)從外部計(jì)算機(jī)44傳輸?shù)綌?shù)據(jù)處理機(jī)26來(lái)執(zhí)行對(duì)壓縮ID串的存儲(chǔ)列表進(jìn)行傳輸。CRC值的列表被存儲(chǔ)在系統(tǒng)存儲(chǔ)器34中。在事件380,ID串列表壓縮操作結(jié)束。應(yīng)當(dāng)注意到,在特定的實(shí)施例中,如果內(nèi)存34具有足夠的容量,事件300到370可以在數(shù)據(jù)處理機(jī)26上執(zhí)行。在此情況下,已壓縮ID串的全部列表的下載或傳輸在事件370可以被省略。
現(xiàn)在參考圖6B,在事件400,內(nèi)存34中的程序開(kāi)始比較有用戶所輸入ID串與如上所述的所得到的已壓縮標(biāo)識(shí)符串的存儲(chǔ)列表。該程序執(zhí)行與下列步驟有關(guān)的操作將與已輸入的ID串相對(duì)應(yīng)的數(shù)據(jù)流從存儲(chǔ)器34傳輸?shù)紺RC電路38以用于壓縮,在已壓縮ID串的列表中查找一個(gè)與已壓縮的、已輸入的ID串相匹配的串,并且對(duì)已壓縮的、已輸入的ID串進(jìn)行驗(yàn)證判斷。事件400可以在某個(gè)實(shí)施例中通過(guò)事件410被觸發(fā),如下所述。
參考圖1和圖2,在事件410,按照上述方式用戶通過(guò)選擇性的激活鍵區(qū)10上的適當(dāng)?shù)谝绘I12和第二鍵14來(lái)輸入與用戶ID串相對(duì)應(yīng)的字母數(shù)字字符串。
在事件420,將用戶所輸入的輸入ID串轉(zhuǎn)換成一個(gè)具有相應(yīng)CRC值形式的已壓縮輸入ID串。事件420包括根據(jù)附圖4所述的事件110至170。也就是說(shuō),安排CRC電路38具有一個(gè)所希望的初始值,設(shè)置DMA控制器36以將與事件410的輸入ID串相對(duì)應(yīng)的數(shù)據(jù)流從內(nèi)存34傳輸?shù)紺RC電路38,由CRC電路38來(lái)計(jì)算輸入ID串的CRC值,將來(lái)自CRC電路38的輸入ID串的已計(jì)算CRC值讀回內(nèi)存34。
在事件430,如上所述在310-360中所創(chuàng)建的RAM34中的已授權(quán)ID串的CRC值列表被搜索以查找與事件420中所計(jì)算的輸入ID串的CRC值相匹配的值。將輸入ID串的CRC值與存儲(chǔ)在列表中的單個(gè)CRC值進(jìn)行比較,直到發(fā)現(xiàn)一個(gè)匹配。
在事件440,進(jìn)行一個(gè)查詢,該查詢是關(guān)于是否已經(jīng)發(fā)現(xiàn)一個(gè)匹配,也就是說(shuō),輸入ID串的CRC值是否已經(jīng)在已授權(quán)串的CRC值存儲(chǔ)列表中被發(fā)現(xiàn)。如果在列表中發(fā)現(xiàn)了輸入ID串的CRC值,則執(zhí)行事件450。如果在列表中沒(méi)有發(fā)現(xiàn)輸入ID串的CRC值,則執(zhí)行事件460。事件440執(zhí)行在輸入ID串的CRC值與已授權(quán)串的單個(gè)已存儲(chǔ)CRC值之間的每一個(gè)比較,因此一旦檢測(cè)到一個(gè)匹配則事件440可確定,并且是在對(duì)全部列表進(jìn)行查找之前。
在事件450,根據(jù)輸入ID串的CRC值和一個(gè)已授權(quán)ID串的已存儲(chǔ)CRC值之一間的一匹配來(lái)授權(quán)在事件410中所輸入的輸入用戶ID串。緊接著事件450,用戶ID串的驗(yàn)證在事件470結(jié)束。與用戶ID串驗(yàn)證有關(guān)的其它事件(未示出)可以同時(shí)發(fā)生,例如為用戶提供對(duì)已存儲(chǔ)的安全信息進(jìn)行訪問(wèn)的有關(guān)程序操作。
在事件460,在事件410所輸入的用戶ID串未被授權(quán)。如事件450所提供的任一個(gè)隨對(duì)用戶ID串進(jìn)行授權(quán)所出現(xiàn)的隨后事件可以都不執(zhí)行,事件470出現(xiàn)。在某個(gè)實(shí)施例中,用戶可以重復(fù)事件410以允許重新輸入一個(gè)ID串,隨后通過(guò)事件420-440再次確定在此重輸入的用戶ID串的正確性。
雖然參考特定實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)講,在不脫離本發(fā)明的精神和范圍的情況下,很容易想到可作出各種不同的變化和等效的替代。另外,對(duì)于本發(fā)明客觀的精神和范圍來(lái)講,也可作出各種修改以適應(yīng)特定的情況,材料,物質(zhì)的組合,程序,工序或步驟。所有的這些修改都被在隨后的權(quán)利要求書(shū)范圍內(nèi)。
權(quán)利要求
1.一個(gè)數(shù)據(jù)處理設(shè)備,包括(a)一個(gè)存儲(chǔ)器;(b)一個(gè)可操作的與所述存儲(chǔ)器相耦合的直接存儲(chǔ)存取控制器;(c)一個(gè)可操作的與所述直接存儲(chǔ)存取控制器相耦合的循環(huán)冗余校驗(yàn)電路;(d)所述的直接存儲(chǔ)存取控制器用于將來(lái)自所述存儲(chǔ)器的數(shù)據(jù)傳輸?shù)剿鲅h(huán)冗余校驗(yàn)電路;以及(e)所述循環(huán)冗余校驗(yàn)電路用于計(jì)算所述數(shù)據(jù)的至少一個(gè)檢驗(yàn)值。
2.如權(quán)利要求2所述的設(shè)備,進(jìn)一步包括存儲(chǔ)的程序,用于安排所述循環(huán)冗余校驗(yàn)電路具有一個(gè)所選擇的初始值。
3.如權(quán)利要求2所述的設(shè)備,其特征在于,所述存儲(chǔ)的程序進(jìn)一步用于設(shè)置所述直接存儲(chǔ)存取控制器具有一數(shù)據(jù)流的源地址、所述數(shù)據(jù)流的目標(biāo)地址、以及所述數(shù)據(jù)流的大小。
4.如權(quán)利要求2或3所述的設(shè)備,其特征在于,所述存儲(chǔ)的程序進(jìn)一步用于由所述直接存儲(chǔ)存取控制器來(lái)啟動(dòng)將所述數(shù)據(jù)流從所述存儲(chǔ)器傳輸?shù)剿鲅h(huán)冗余校驗(yàn)電路。
5.如權(quán)利要求2或3或4所述的設(shè)備,其特征在于,所述存儲(chǔ)的程序進(jìn)一步用于從所述循環(huán)冗余校驗(yàn)電路中讀取一個(gè)已計(jì)算的循環(huán)冗余校驗(yàn)值并且將已計(jì)算的循環(huán)冗余校驗(yàn)值存儲(chǔ)在所述存儲(chǔ)器中。
6.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括一個(gè)可操作的與所述直接存儲(chǔ)存取控制器相耦合的顯示控制器,所述的直接存儲(chǔ)訪問(wèn)控制器用于將顯示數(shù)據(jù)流從所述存儲(chǔ)器傳輸?shù)剿鲲@示控制器。
7.如權(quán)利要求6所述的設(shè)備,進(jìn)一步包括存儲(chǔ)的程序,該程序用于設(shè)置所述顯示控制器具有所述顯示數(shù)據(jù)流的顯示地址。
8.如權(quán)利要求7所述的設(shè)備,進(jìn)一步包括存儲(chǔ)的程序,該程序用于設(shè)置所述直接存儲(chǔ)存取控制器具有所述顯示數(shù)據(jù)流的源地址、所述顯示數(shù)據(jù)流的目標(biāo)地址、以及所述顯示數(shù)據(jù)流的大小。
9.如權(quán)利要求8所述的設(shè)備,進(jìn)一步包括存儲(chǔ)的程序,該程序用于由所述直接存儲(chǔ)存取控制器來(lái)啟動(dòng)將所述顯示數(shù)據(jù)流傳送到所述顯示控制器。
10.如權(quán)利要求1的數(shù)據(jù)處理設(shè)備,進(jìn)一步包括(a)存儲(chǔ)在所述存儲(chǔ)器中的程序,該程序能夠設(shè)置所述循環(huán)冗余校驗(yàn)電路具有選擇的初始值;(b)存儲(chǔ)在所述存儲(chǔ)器中的程序,該程序能夠設(shè)置所述直接存儲(chǔ)存取控制器具有一數(shù)據(jù)流的源地址、所述數(shù)據(jù)流的目標(biāo)地址、以及所述數(shù)據(jù)流的大??;(c)存儲(chǔ)在所述存儲(chǔ)器中的程序,該程序能夠由所述直接存儲(chǔ)存取控制器來(lái)啟動(dòng)將所述數(shù)據(jù)流傳送到所述循環(huán)冗余校驗(yàn)電路。
11.如權(quán)利要求6的數(shù)據(jù)處理設(shè)備,進(jìn)一步包括(a)存儲(chǔ)在所述存儲(chǔ)器中的程序,該程序能夠設(shè)置所述顯示控制器具有顯示數(shù)據(jù)流的顯示地址;(b)存儲(chǔ)在所述存儲(chǔ)器中的程序,該程序能夠設(shè)置所述直接存儲(chǔ)存取控制器具有所述顯示數(shù)據(jù)流的源地址、所述顯示數(shù)據(jù)流的顯示地址,以及所述顯示數(shù)據(jù)流的大??;以及(c)存儲(chǔ)在所述存儲(chǔ)器中的程序,該程序能夠由所述直接存儲(chǔ)存取控制器來(lái)啟動(dòng)將所述數(shù)據(jù)流傳送到所述顯示控制器。
12.一種處理數(shù)據(jù)的方法,包括(a)利用直接存儲(chǔ)存取控制器將數(shù)據(jù)流從存儲(chǔ)器傳輸?shù)窖h(huán)冗余校驗(yàn)電路;以及(b)由所述循環(huán)冗余校驗(yàn)電路來(lái)計(jì)算所述數(shù)據(jù)流的循環(huán)冗余校驗(yàn)值。
13.如權(quán)利要求12的方法,其特征在于,所述的傳輸步驟包括安排所述循環(huán)冗余校驗(yàn)電路具有一個(gè)所選擇的初始值。
14.如權(quán)利要求12的方法,進(jìn)一步包括從所述循環(huán)冗余校驗(yàn)電路中讀取一個(gè)已計(jì)算的循環(huán)冗余校驗(yàn)值并且將所述已計(jì)算的循環(huán)冗余校驗(yàn)值存儲(chǔ)在所述存儲(chǔ)器中。
全文摘要
本發(fā)明提供了用在數(shù)據(jù)處理設(shè)備中的可快速進(jìn)行循環(huán)冗余校驗(yàn)計(jì)算的設(shè)備和方法。本發(fā)明的設(shè)備一般包括一個(gè)存儲(chǔ)器、一個(gè)可操作的與存儲(chǔ)器相耦合的直接存儲(chǔ)存取控制器、以及一個(gè)可操作的與直接存儲(chǔ)存取控制器相耦合的循環(huán)冗余校驗(yàn)電路。該直接存儲(chǔ)存取控制器用于將數(shù)據(jù)從存儲(chǔ)器傳送到循環(huán)冗余校驗(yàn)電路,該循環(huán)冗余校驗(yàn)電路用于計(jì)算數(shù)據(jù)的至少一個(gè)檢驗(yàn)值。該方法包括利用直接存儲(chǔ)存取控制器將數(shù)據(jù)流從存儲(chǔ)器傳輸?shù)窖h(huán)冗余校驗(yàn)電路,以及由循環(huán)冗余校驗(yàn)電路來(lái)計(jì)算數(shù)據(jù)流的循環(huán)冗余校驗(yàn)值。
文檔編號(hào)G06F15/02GK1432915SQ02154288
公開(kāi)日2003年7月30日 申請(qǐng)日期2002年11月8日 優(yōu)先權(quán)日2001年11月9日
發(fā)明者D·霍爾 申請(qǐng)人:生命掃描有限公司