專利名稱:波特率檢測的制作方法
發(fā)明所屬之技術(shù)領(lǐng)域本發(fā)明關(guān)于確定一具有時變特性的數(shù)據(jù)流的特性的方法及裝置。
先前技術(shù)一般而言,向移動電話提供一通用異步收發(fā)機(jī)(UART,universalasynchronous receiver/transmitter)移動電話以在RS232鏈路與一外部裝置(如個人計(jì)算機(jī))交換數(shù)據(jù)是常見的實(shí)施方式。在移動電話中內(nèi)建一UART的好處是顯而易見的,舉例來說,個人計(jì)算機(jī)能夠通過藉由一RS232鏈路連接一移動電話,而將該移動電話當(dāng)作一“外接調(diào)制解調(diào)器”,以透過該移動電話所屬的無線通信網(wǎng)絡(luò)來收發(fā)數(shù)據(jù)。
RS232鏈路將一數(shù)據(jù)電路終端設(shè)備(DCE,data circuit terminatingequipment)與一數(shù)據(jù)終端設(shè)備(DTE,data terminal equipment)互相連接。其中DTE是用來傳送數(shù)據(jù)到連接線而DCE是用來從連接線接收數(shù)據(jù)。介于DTE與DCE之間的RS232通信連接線的每一端的速度與傳輸設(shè)定必須被設(shè)為相同的數(shù)值,但是這樣的配置處理對使用者而言是困難的。尤其是當(dāng)RS232鏈路的一端(通常是DCE)是設(shè)置在簡單的消費(fèi)性電子裝置(例如移動電話)時,相關(guān)通信設(shè)定的調(diào)整過程常常是不易熟悉的,需要使用者操作復(fù)雜的菜單,而結(jié)果是配置設(shè)定經(jīng)常不正確。
安排DCE去自行調(diào)整以符合與其形成RS232鏈路的DTE的通信設(shè)定RS232鏈路是可行的,而使用者不用手動配置RS232鏈路的通信設(shè)定。這需要DCE去分析接收自DTE的數(shù)據(jù)流,該數(shù)據(jù)流是由一連串表示二進(jìn)制碼元的正電壓與負(fù)電壓脈沖所構(gòu)成的。這些脈沖的寬度是依據(jù)RS232鏈路的傳輸速度而定,而這些二進(jìn)制碼元的數(shù)目及安排是依據(jù)RS232鏈路的奇偶性與其它設(shè)定來決定。
或許,辨別來自DTE的數(shù)據(jù)流的傳輸速率的最簡單方式之一是對DCE使用一定時器來測量數(shù)據(jù)流中脈沖的寬度。然而這樣的定時器需要一比RS232鏈路中預(yù)期的最大波特率要高出數(shù)倍的頻率的時鐘。要實(shí)現(xiàn)這樣的時鐘而不使用特殊的硬件是相當(dāng)困難的,況且這種硬件的使用在一些裝置(例如移動電話)的環(huán)境中是不受歡迎的,在該裝置中期望以軟件實(shí)現(xiàn)功能以便于使用一標(biāo)準(zhǔn)的微處理芯片來執(zhí)行這些功能。使用軟件來實(shí)現(xiàn)這樣的時鐘將對主處理器造成沉重的實(shí)時負(fù)載,因?yàn)樵摃r鐘會在其時鐘頻率下產(chǎn)生周期性的處理器中斷,而在每一次的中斷中,處理器將會需要執(zhí)行數(shù)個指令。
發(fā)明內(nèi)容根據(jù)一個方面,本發(fā)明涉及確定一二進(jìn)制碼元數(shù)據(jù)流的特性的方法,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣,其中該速率足以對每個二進(jìn)制碼元取得至少二個采樣;辨識具有相同邏輯電平的采樣的最短連續(xù)路程;以及基于所辨識的路程為一碼元長度,分配一數(shù)據(jù)速率給該數(shù)據(jù)流。
本發(fā)明也關(guān)于一種確定二進(jìn)制碼元數(shù)據(jù)流的特性的裝置,該裝置包括用以在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣的裝置,其中該速率足以對每個二進(jìn)制碼元取得至少二個采樣;用以辨識具有相同邏輯電平的采樣的最短連續(xù)路程的裝置;以及基于所辨識的路程為一碼元長度,用以分配一數(shù)據(jù)速率給該數(shù)據(jù)流的裝置。
就一特定觀點(diǎn)而言,本發(fā)明提供一種確定RS232格式數(shù)據(jù)流的波特(Baud)率的方法,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣;辨識具有相同邏輯電平的采樣的最短連續(xù)路程;以及基于所辨識的路程為一波特長度下,分配一數(shù)據(jù)速率給該數(shù)據(jù)流。本發(fā)明亦涉及實(shí)現(xiàn)此方法的裝置。
本發(fā)明亦包含一種確定RS232格式數(shù)據(jù)流的特性的方法,該數(shù)據(jù)流包括一連串的每個都被封裝為一幀的字碼,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣;辨識具有相同邏輯電平的采樣的最短連續(xù)路程;基于所辨識的路程為一波特長度下,分配一波特率給該數(shù)據(jù)流;基于所分配的波特率下從該數(shù)據(jù)流重新取得一個或多個幀;以及確定一個或多個重新取得的幀的奇偶性以估計(jì)字碼傳送時是否帶有奇偶位。本發(fā)明亦涉及實(shí)現(xiàn)此一方法的裝置。
在一較佳實(shí)施例中,提供一組碼元長度范圍,每一范圍具有一標(biāo)稱數(shù)據(jù)速率,并且,將由所辨識的路程所提供的碼元長度與該范圍相比較,使得所辨識的路程所處的范圍的標(biāo)稱數(shù)據(jù)速率是被分配給該數(shù)據(jù)流的數(shù)據(jù)速率,在另一實(shí)施例中,被分配給數(shù)據(jù)流的數(shù)據(jù)速率為所辨識的路程的持續(xù)時間的倒數(shù)。
在該數(shù)據(jù)流中的碼元可被組織在連續(xù)的幀之中,在該情況下可以計(jì)算所述數(shù)據(jù)流的至少一幀的奇偶性以做出關(guān)于幀結(jié)構(gòu)的判定。較佳地,該幀結(jié)構(gòu)的估計(jì)是基于對多個幀的奇偶估計(jì),以提高幀結(jié)構(gòu)判定正確的可能性。
對移動電話中的基帶處理器集成電路而言,集成非專門用于RS232的通用串行輸入/輸出硬件是很普遍的,該硬件可允許以可編程的速率將串行數(shù)據(jù)的定時于一移位寄存器,此外該串行移位寄存器的內(nèi)容可被載入處理器內(nèi)存中,其通常是由一不會造成嚴(yán)重軟件過載現(xiàn)象的直接內(nèi)存存取(DMA,directmemory access)處理來執(zhí)行。在某些實(shí)施例中,本發(fā)明使用此種輸入/輸出硬件以對待測的數(shù)據(jù)流進(jìn)行采樣。
較佳地,該采樣操作的預(yù)定速率至少為該數(shù)據(jù)流的預(yù)期最高數(shù)據(jù)速率的兩倍。
較佳地,但非絕對地,本發(fā)明常常被用于確定波特率,且可選擇地,確定用于通過RS232鏈路傳送給移動電話的數(shù)據(jù)信號中的奇偶設(shè)定。
本發(fā)明亦能以程序來實(shí)現(xiàn),使得數(shù)據(jù)處理設(shè)備能夠執(zhí)行本發(fā)明的數(shù)據(jù)流分析技術(shù)。
圖式簡單說明本發(fā)明的實(shí)施例僅作為示例,在此參考
如下圖一是一說明個人計(jì)算機(jī)與移動電話間的RS232鏈路的框圖;以及圖二說明一通過RS232鏈路異步接收的典型ASCII字碼的波形。
實(shí)施方式如圖一所示,一個人計(jì)算機(jī)2通過RS232鏈路10連接于一移動電話4,移動電話4的架構(gòu)以簡化的形式呈現(xiàn)于圖一中,其僅包含描述本發(fā)明實(shí)施例操作時所需要的組件。
RS232鏈路10連接個人計(jì)算機(jī)2到一位于移動電話4中的通用異步收發(fā)機(jī)20,RS232鏈路中的數(shù)據(jù)線8被示出為在個人計(jì)算機(jī)2及通用異步收發(fā)機(jī)20之間延伸。至于在個人計(jì)算機(jī)2及通用異步收發(fā)機(jī)20間通行的數(shù)據(jù)信號,其所具有的一般波形被顯示于圖二中,其中一正電壓電平V(一般介于8到14伏特之間)表示邏輯0,并且一標(biāo)稱相等的負(fù)電壓表示邏輯1,在圖二中的波形則表示一單獨(dú)ASCII的8位字碼,其可被轉(zhuǎn)換成一組10個脈沖,其中·在第一脈沖11之前,波形維持在負(fù)電壓電平;·該第一脈沖11為一起始位,其為邏輯0,作為字碼的起始信令;·用來傳送ASCII字碼的八位負(fù)載區(qū)間12則是接著在起始位之后;·在負(fù)載區(qū)間12的字碼長度為七位的情況下,在其中加入一奇偶位13而形成一完整的負(fù)載區(qū)間,并強(qiáng)制決定負(fù)載區(qū)間12為偶或?yàn)槠妫苑蟼鬏數(shù)钠媾荚O(shè)定;·一邏輯1的停止位14則附加于負(fù)載區(qū)間12之后,用來指出定義該字碼的該組脈沖的結(jié)束(停止位實(shí)質(zhì)上定義了最小碼間間隙,然而其它碼間間隙值也是可允許的,例如1.5波特與2波特);以及每個脈沖具有相同的持續(xù)時間(表示為15),該持續(xù)時間為波特率的倒數(shù)。
個人計(jì)算機(jī)2被配置為以某一波特率及某一奇偶設(shè)定通過RS232鏈路10傳送數(shù)據(jù),若個人計(jì)算機(jī)2所送出的數(shù)據(jù)要被移動電話4正確地接收,則通用異步收發(fā)機(jī)20必須被配置為符合這些設(shè)定。通用異步收發(fā)機(jī)20是由移動電話4中的一通用微處理器24所配置和控制的。移動電話中的內(nèi)存資源包含了一自動偵測軟件模塊9,其由處理器24來管理以辨別出個人計(jì)算機(jī)2所采用的波特率及奇偶設(shè)定,以便使移動電話4的使用者不需要去手動執(zhí)行這些設(shè)定。處理器24在傳入數(shù)據(jù)流的錯誤報告(例如,沒偵測到起始位、沒偵測到停止位或不正確的奇偶性)或控制線(DTR,CTS)的狀態(tài)改變之后執(zhí)行自動偵測組件9。因此,自動偵測組件9并不會持續(xù)地操作,從而減少了處理器24的處理負(fù)擔(dān)。在一常見的范例中,移動電話4除了包含UART 20之外,還包含一可編程的串行輸入/輸出電路22,而且自動偵測模塊9也會被安排來使用此電路以分析在數(shù)據(jù)線8上傳送至移動電話4的數(shù)據(jù)。
自動偵測組件9配置輸入/輸出電路22以對數(shù)據(jù)線8(如虛擬線3所示)進(jìn)行采樣。由個人計(jì)算機(jī)2所采用的波特率是選自于一標(biāo)準(zhǔn)范圍中的速率,在此范例中的速率為4800、9600、19200、57600、115200與230400Hz,而且自動偵測組件9會配置輸入/輸出電路22以兩倍于個人計(jì)算機(jī)2可采用的最大波特率(也就是460800Hz),對數(shù)據(jù)線8進(jìn)行采樣。自動偵測組件9被被安排為使輸入/輸出電路22調(diào)整采樣捕獲以從錯誤之后的數(shù)據(jù)線8上的起始位開始采樣,該錯誤觸發(fā)處理器24執(zhí)行自動偵測組件9。自動偵測組件9會使輸入/輸出電路22去捕獲一采樣訓(xùn)練集,該采樣訓(xùn)練集足夠用于在所能偵測到的最低波特率下捕捉一完整的字碼,也就是10個脈沖。在輸入/輸出電路22的采樣速率設(shè)定為460800Hz且個人計(jì)算機(jī)2所使用的最低波特率為4800Hz的假設(shè)下,其所獲得的采樣訓(xùn)練集的長度至少要為960個。此采樣處理與常規(guī)的UART20數(shù)據(jù)通信操作是平行發(fā)生的,并以目前的波特率與奇偶設(shè)定下持續(xù)解譯通過數(shù)據(jù)線8到達(dá)移動電話4的信號,一直到自動偵測組件9做出改變兩個設(shè)定中的其中之一或是兩個皆改變的決定為止。
自動偵測組件9配置輸入/輸出電路22將所獲得的采樣訓(xùn)練集跳過處理器24而直接寫入移動電話中內(nèi)存資源內(nèi)。以此方式,自動偵測組件9能夠捕捉用于波特率和奇偶分析的采樣訓(xùn)練集,而不會嚴(yán)重影響處理器24的處理負(fù)擔(dān)。這是非常有利的,因?yàn)樘幚砥?4隨時有可能要忙于其它必須實(shí)時完成的運(yùn)算處理。
一旦自動偵測組件9完成了采樣訓(xùn)練集的收集,自動偵測組件9會掃瞄整個訓(xùn)練集以確定出共享相同邏輯狀態(tài)的采樣的最短路程。如此辨識出的路程長度被隨后假設(shè)為對應(yīng)于一單個波特率的周期。正如同所有的RS232命令詢問是以符號“A”及“T”作為開始,這項(xiàng)假設(shè)可能是有效的(“A”為0010000011及“T”為0010101001-包含起始與停止位)。
自動偵測組件9隨后通過將最小路程長度與一查詢表相比較,把該最小路程長度轉(zhuǎn)換為通過RS232鏈路到達(dá)移動電話4的數(shù)據(jù)流的波特率。查詢表的使用即意味著到達(dá)數(shù)據(jù)流的波特率能夠被快速地確定而不須要執(zhí)行任何計(jì)算。同樣地,查詢表的使用可讓個人計(jì)算機(jī)2的波特率與UART 20的波特率之間的高容許誤差限度能夠被接受。
在本發(fā)明的實(shí)施例(自動偵測組件9以460800Hz對數(shù)據(jù)流進(jìn)行采樣)中所使用的查詢表示出如下
由自動偵測組件9從采樣訓(xùn)練集所確定出的最小采樣長度被與查詢表中左行所列舉的路程長度范圍相互比較,在查詢表右行中對應(yīng)包括所測得的最小路程長度的路程長度范圍的標(biāo)稱波特率被隨后分配給在RS232鏈路10的數(shù)據(jù)線8上到達(dá)的數(shù)據(jù)流。
在一替換實(shí)施例中,可從由自動偵測組件9所得到采樣訓(xùn)練集中掃描出的最小路程長度所包含的時間周期進(jìn)行倒數(shù)計(jì)算而推論實(shí)際的波特率。在進(jìn)一步的變化方式中,可通過一軟件決策樹來處理最小路徑長度以指定一波特率。
一旦波特率被分配給數(shù)據(jù)流后,由數(shù)據(jù)線進(jìn)來的位在需要時能夠被重建。舉例而言,若自動偵測組件9在速率460800Hz下對進(jìn)來的數(shù)據(jù)流進(jìn)行采樣,然后在起始位與停止位忽略不計(jì)的情況下,以57600bps傳送的符號“T”,其接收的形式如下列采樣訓(xùn)練集所示“0000000011111111000000001111111100000000111111110000000000000000”假設(shè)自動偵測組件9已經(jīng)正確地確定出單個波特的采樣數(shù)目,然后自動偵測組件9將簡化上述信號訓(xùn)練集為一個二進(jìn)制序列″01010100″因?yàn)檫@個重新獲得的負(fù)載區(qū)間僅包含三個邏輯1的碼元,其具有奇數(shù)的奇偶性,因此自動偵測組件9能夠推斷出此負(fù)載區(qū)間要么是不包括奇偶位的八位字碼,要么就是具有一奇偶位以及七個位的字碼,其中該奇偶位是用來提供負(fù)載區(qū)間奇數(shù)的奇偶位。因此自動偵測組件9需要去分析多個連續(xù)的重新取得的負(fù)載區(qū)間,以做出具有一可信程度的關(guān)于傳入數(shù)據(jù)流的奇偶設(shè)定的確定。舉例而言,若數(shù)據(jù)流接下來的三個負(fù)載區(qū)間也被自動偵測組件9偵測出具有奇數(shù)個奇偶位,自動偵測組件9隨后就能夠推斷出傳入數(shù)據(jù)流包含七個位字碼,并伴隨有使該負(fù)載區(qū)間為奇數(shù)的奇偶性的奇偶位的數(shù)據(jù)流;否則自動偵測組件9將能夠推斷出傳入數(shù)據(jù)流是由包含八個位字碼而沒有伴隨奇偶位的負(fù)載區(qū)間。
一旦自動偵測組件9已經(jīng)確定出波特率,且任選地,通過數(shù)據(jù)線8而到達(dá)的數(shù)據(jù)流的奇偶位,自動偵測組件會使處理器24將這些設(shè)定加諸在UART 20上,至此之后,UART 20會使用這些設(shè)定來解譯傳入的數(shù)據(jù)流。在波特率及奇偶設(shè)定其中之一再次改變或一起再次改變時,或是自動偵測組件9估測錯誤的情況下,自動偵測組件9會被觸發(fā)以執(zhí)行另一輪的波特率與奇偶設(shè)定的估計(jì)處理。
權(quán)利要求
1.一種確定二進(jìn)制碼元數(shù)據(jù)流的特性的方法,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣,其中該速率足以從每個二進(jìn)制碼元中取得至少二個采樣;辨識出具有相同邏輯電平之采樣的最短連續(xù)路程;以及基于所辨識出的路程為一個碼元長度,分配一碼元速率給該數(shù)據(jù)流。
2.如權(quán)利要求1所述的方法,其中分配一碼元速率給該數(shù)據(jù)流包括將所辨識出的路程的長度與一組范圍相比較,其中每一范圍是與一碼元速率相關(guān);以及分配與所辨識出的路程的長度所處的范圍相關(guān)的碼元速率。
3.如權(quán)利要求1所述的方法,其中分配一碼元速率給數(shù)據(jù)流包括對所辨識出的路程的持續(xù)時間取倒數(shù)。
4.如權(quán)利要求1所述的方法,其中分配一碼元速率給數(shù)據(jù)流包括透過一軟件決策樹對所辨識出的路程進(jìn)行處理。
5.如權(quán)利要求1項(xiàng)所述的方法,其中所述預(yù)先決定的速率至少是該數(shù)據(jù)流的最高期望符號率的兩倍。
6.如上述權(quán)利要求中任一項(xiàng)所述的方法,還包括基于所分配的碼元速率,從該數(shù)據(jù)流重新取得一個或多個的碼元幀;以及決定所述一個或多個重新取得的幀的奇偶性以估計(jì)字碼傳送時是否帶有奇偶位。
7.一種確定二進(jìn)制碼元數(shù)據(jù)流的特性的設(shè)備,該設(shè)備包括用以在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣的裝置,其中該速率足以從每個二進(jìn)制碼元中取得至少二個采樣;用以辨識出具有相同邏輯電平的采樣的最短連續(xù)路程的裝置;以及基于所辨識出的路程為一個碼元長度,用以分配一碼元速率給該數(shù)據(jù)流的裝置。
8.如權(quán)利要求7所述的設(shè)備,其中用以分配一碼元速率給該數(shù)據(jù)流的裝置包括用以將所辨識出的路程的長度與一組范圍相比較的裝置,其中每一范圍與一符號率相關(guān);以及用以分配與所辨識出的路程的長度所處的范圍相關(guān)的碼元速率的裝置。
9.如權(quán)利要求7所述的設(shè)備,其中用以分配一碼元速率給該數(shù)據(jù)流的裝置包括用以對所辨識出之路程的持續(xù)時間取倒數(shù)的裝置。
10.如權(quán)利要求7所述的設(shè)備,其中用以分配一碼元速率給該數(shù)據(jù)流的裝置包括透過一軟件決策樹用以對所辨識出的路程進(jìn)行處理的裝置。
11.如權(quán)利要求7至10中任一項(xiàng)所述的設(shè)備,其中該預(yù)先決定的速率至少為該數(shù)據(jù)流的最高期望符號率的兩倍。
12.如權(quán)利要求7至11中任一項(xiàng)所述的設(shè)備,更包括基于所分配的碼元速率,用以從該數(shù)據(jù)流重新取得一個或多個碼元幀的裝置;以及用以決定一個或多個重新取得的幀的奇偶性以估計(jì)字碼傳送時是否帶有奇偶位的裝置。
13.一種用于確定RS232格式數(shù)據(jù)流的波特率的方法,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣;辨識出具有相同邏輯電平的采樣的最短連續(xù)路程;以及基于所辨識出的路程為一個波特長度,分配一波特率給該數(shù)據(jù)流。
14.一種確定RS232格式數(shù)據(jù)流的特性的方法,所述數(shù)據(jù)流包括在一連串的字碼,每個字碼封裝在一幀中,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣;辨識出具有相同邏輯電平的采樣的最短連續(xù)路程;基于所辨識出的路程為一個波特長度,分配一波特率給該數(shù)據(jù)流;基于所分配的波特率,從該數(shù)據(jù)流重新取得一個或多個幀;以及確定一個或多個重新取得的幀的奇偶性以估計(jì)字碼傳送時是否帶有奇偶位。
15.一種用于確定RS232格式數(shù)據(jù)流的波特率的設(shè)備,該設(shè)備包括用以在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣的裝置;用以辨識出具有相同邏輯電平的采樣的最短連續(xù)路程;以及基于所辨識出的路程為一個波特長度,用以分配一波特率給該數(shù)據(jù)流。
16.一種確定RS232格式數(shù)據(jù)流的特性的設(shè)備,所述數(shù)據(jù)流包括一連串的字碼,每個字碼封裝在一幀中,該設(shè)備包括用以在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣的裝置;用以辨識出具有相同邏輯電平的采樣的最短連續(xù)路程的裝置;基于所辨識出的路程為一個波特長度,用以分配一波特率給該數(shù)據(jù)流的裝置;基于所指派的波特率,用以從該數(shù)據(jù)流重新取得一個或多個幀的裝置;以及用以確定一個或多個重新取得的幀的奇偶性以估計(jì)字碼傳送時是否帶有奇偶位的裝置。
17.一種確定數(shù)據(jù)流的特性的方法,該方法大體上如前,參照附圖所述。
18.一種確定數(shù)據(jù)流的特性的設(shè)備,該設(shè)備大體上如前,參照附圖所述。
全文摘要
一種確定二進(jìn)制碼元數(shù)據(jù)流的特性的方法,該方法包括在一預(yù)先決定的速率下對該數(shù)據(jù)流進(jìn)行采樣,其中該速率足以從每個二進(jìn)制碼元中取得至少二個采樣;辨識具有相同邏輯電平的采樣的最短連續(xù)路程;以及基于所辨識出的路程為一個碼元長度,分配一碼元速率給該數(shù)據(jù)流。
文檔編號H04L25/02GK1981497SQ200580022652
公開日2007年6月13日 申請日期2005年7月1日 優(yōu)先權(quán)日2004年7月1日
發(fā)明者R·N·亨特 申請人:Ttpcom有限公司