專利名稱:串行通信系統的時鐘擺動控制的制作方法
相關申請的交叉參考共同專利受讓人的下列申請與本申請具有某些共同揭示內容題目為“無數據丟失的基于UART的自動測定波特率”,申請日期為1996年7月18日,以QUALCOMM公司,代理檔案號QCPA276名義的美國專利申請。
題目為“以自動波特模式保證點到點協議包檢測中時鐘擺動修正在波特率檢測后無數據丟失”,申請日相同,以QUALCOMM公司,代理檔案號QCPA862的美國專利申請。
背景技術:
發明領域本發明涉及移動通信領域,尤其涉及一種在AT命令串行發送給能夠接收和發送數據的蜂窩電話中時鐘擺動修正的系統和方法。
相關技術除了話音發送能力外,蜂窩電話現在還能提供數據服務。配置有收發數據功能的蜂窩電話允許用戶使用膝上型電腦和蜂窩電話遠程接入因特網,電子郵件,傳真及其他數據源。由其他數據源提供的數據必須轉換為能適合于蜂窩電話能處理和發送的信號。依照時分多址(TDMA),頻分多址(FDMA)或碼分多址(CDMD)配置的蜂窩電話必須將數據轉換為適合于各自協議的格式。
為了能正確地處理數據,必須確定發送給蜂窩電話(經數據鏈路,例如串行口)數據的波特率。這種處理被稱為自動測定波特率(autobauding)。蜂窩電話必須能識別入局數據的波特率以便有效地將數據轉換成適合的發送格式。
為了減少功率損耗和降低費用。在蜂窩電話中使用通用異步收發裝置(UART)來處理輸入的串行數據。通常這些裝置遵循RS-232協議,并且僅支持標準的異步部分。當已知入局數據的波特率時,UART以字節模式工作。在字節工作模式中,UART通常用鎖相環硬件自動修正時鐘的擺動。另外,UART自動地除掉起始位和停止位,并檢查奇偶校驗(如果有)。擺動是指發送時鐘和接收時鐘在時鐘速率上的差別。UART在自動測定波特率期間以采樣模式工作。在自動測定波特率期間,在QUALCOMM的移動站調制解調器中,UART以較高速率采樣輸入的串行數據,以確定波特率。當UART按采樣模式工作時,既不能計及擺動,也不能除掉起始位和停止位。在采樣模式,UART簡單地進行8個采樣,以及將該8個采樣表示為一個字節。UART設置成一種比特率,以致一個字節(一組8個采樣)相應于以通過自動波特檢測的最高比特率的一個位。被采樣的一個位恰好是一位起始位或一位停止位。在確定了開始字節和波特率后,UART需要設置成字節工作模式,以接收入局數據流的剩余字符。當UART在退出前已經讀入某字符的一部分時,就可能會產生問題。在UART退出采樣模式進入字節模式后,UART企圖進行正常的搜索起始位和停止位,計算時鐘擺動等工作。如果在UART從采樣模式轉換成字節工作模式時,一個數據字符的一部分已經在UART中,UART可能把一個真實的數據字符認為是起始位。發生這種情況時,在下一條命令來臨之前,該數據好像是無用信息。為了使輸入的數據流可靠,UART需要在整條命令內維持采樣模式。當UART維持在采樣模式時,必須計及時鐘擺動,否則,數據會丟失或者被誤解,甚至該數據好像是無用信息。
需要的是一種在串行通信期間能提供可靠數據的系統和方法,以便當UART在自動測定波特率期間按采樣模式工作時能修正擺動。
發明概述本發明通過提供一種在自動測定波特率期間計及時鐘擺動的系統和方法而解決上述問題。在識別AT命令和入局數據流的波特率時,本發明根據入局數據流的波特率用兩種方法中的一種計及時鐘擺動。
如果入局數據流的波特率為9600或更高,本發明通過利用與ASCII字符和RS-232協議有關的特征來計及時鐘擺動。其特征是通過間隔被緊密配置在兩邊的停止位。此特征用于確定是否存在負向的或正向的時鐘擺動。如果存在負向的時鐘擺動,并且確定負向時鐘擺動值超出某一門限,就跳過一次采樣。如果存在正向時鐘擺動,并且該值超出某一門限,通過一次額外采樣將正向時鐘擺動轉變成負向時鐘擺動。根據計算的擺動值,通過從原有采樣和新采樣中重構位來計及時鐘擺動,以獲得一個消除時鐘擺動的不利影響的真實采樣。
入局數據流的波特率低于9600時,當存在多組每位8個采樣時,本發明通過從一個字符串的起始位讀入中間一組8個采樣來計及時鐘擺動。這是通過搜索下一個起始位實現的。一旦找到下一個起始位,就確定哪個組8個采樣是中間采樣。本發明重算到該中間采樣,并從該中間采樣讀入數據以消除擺動的影響。
下面將參照附圖詳細地描述本發明的更多功能和優點,以及本發明各種實施例的結構和工作原理。
附圖簡述從下面所陳述的詳細描述連同附圖,本發明的功能、目的和優點變得更明白,在整個附圖中相似參考符號表明相應元件。在附圖中,相似的參考數字一般表示同種的,功能上相似的、和/或結構上相似的元件。在元件首次出現的圖中,由相應參考數字的最左邊的數字指出。
圖1是一張框圖,描述實現本發明實施的一個范例系統;圖2是一張示圖,描述AT命令起始字符;圖3a是一張示圖,描述不存在時鐘擺動時,入局數據采樣怎樣與所接收的時鐘同步;圖3b是一張示圖,描述負向時鐘擺動時,入局數據采樣怎樣與所接收的時鐘不同步;圖3c是一張示圖,描述正向時鐘擺動時,入局數據采樣怎樣與所接收的時鐘不同步;圖4是一張示圖,描述RS232協議和ASCII字符的獨有特征;圖5a是一張示圖,描述負向時鐘擺動的嚴重性;圖5b是一張示圖,描述正向時鐘擺動的嚴重性;圖6是一張示圖,描述從前一采樣和當前采樣重構一個真實采樣;圖7是一張流程圖,描述入局數據流的比特率為9600或更大時,用于計及串行數據發送期間時鐘擺動的一種方法;以及圖8是一張流程圖,描述當入局數據流的比特率低于9600時,用于計及串行數據發送期間時鐘擺動的一種方法。
本發明實施例的詳述這里,雖然本發明是參考特定應用的說明性實施例介紹的,應當懂得本發明不應限止于此。那些熟悉這里所提供技術的人員將認識到,在其范疇和另外領域內的另外的修改、應用和實施例中,本發明將有重要的實用價值。
本發明直接針對自動測定波特率期間計及時鐘擺動的一種系統和方法。在識別入局數據流的命令類型和波特率后,本發明根據檢測的入局數據流的波特率,用兩種方法中的一種計及時鐘擺動。當波特率為9600或更高時,本發明根據停止位確定時鐘擺動,因為停止位總是精密地配置在兩個間隔之間。對于波特率低于9600,在為下一個起始位再次取中心之前,本發明通過從起始位和所有的后續位中讀入中間一組8個采樣來消除時鐘擺動。
圖1是一張實現本發明的范例系統100的框圖。系統100包含通信裝置102,配對裝置106,和兩根串行連接電纜118和120。串行連接電纜118和120或者相類似的通信鏈路,例如紅外和射頻(RF)的鏈路,使通信裝置102與配對裝置116相互連接。在一個較佳實施例中,通信裝置102是蜂窩電話,而配對裝置116可以是任何一種數據源,例如便攜式或非便攜式計算機,傳真機,個人數字助理裝置等。
通信裝置102的相關部件是通用異步收發器(UART)104和微處理器110。UART 104將輸入串行數據轉換為并行數據以輸入到微處理器110。該串行數據是從配對裝置116經串行連接電纜或相類似的通信鏈路118輸入的。UART104將從微處理器110來的并行數據轉換為串行數據,并將數據經串行連接電纜或相類似的鏈路120發送給配對裝置116。
UART 104包括兩通道,一個接收通道122和一個發送通道124。接收通道122包含一個耦合至FIFO(先進先出)存儲裝置108的移位寄存器106。發送通道124包含一個耦合至FIFO(先進先出)存儲裝置112的移位寄存器114。接收和發送移位寄存器106和114,分別是8位移位寄存器。接收和發送的FIFO108和112分別為64×8比特寬。兩個FIFO 108和112都用于存儲數據。對于輸入的串行數據,移位寄存器106在將數據左移至FIFO 108時,進行串行到并行的變換。對于從微處理器110輸出的并行數據,移位寄存器114在將數據從FIFO 112移到右邊時,進行并行到串行的變換。進入FIFO 108和112的第一個數據字節總是分別由微處理器110或移位寄存器114所接收的第一個數據字節。
串行電纜118和120上的數據信號的串行發送是按EIA/TIA-RS-232E接口協議進行的。EIA/TIA-RS-232E由電信工業協會在1992年6月出版的,題目為“ANSI/TIA/EIA-602-1992”文獻中規定的。當UART 104按字節模式工作時,移位寄存器106從輸入串行數據中搜索起始位和停止位,并除掉起始位和停止位。剩余的數據移位至FIFO 108作為微處理器110的輸入。當UART按采樣模式工作時,移位寄存器106不搜索起始位和停止位,只取8個采樣并將它們移入FIFO 108。在微處理器110檢索該采樣進行處理之前,該采樣一直保存在FIFO 108中。當FIFO幾乎裝滿時,中斷信號送到微處理器110。于是,微處理器通過檢索所有的或部分的數據來響應。由處理器110從UART 104中檢索得的采樣按CDMA協議轉換為適合于發送的數據格式。在一個較佳實施例中,UART 104是QUALCOMM公司提供的QUALCOMM公司MSM2 UART,本發明專利受讓人。當UART按采樣模式工作時,微處理器110也處理數據以計及擺動。下面將參考圖7和圖8描述該處理過程。
命令序列的開始字節可以是一個‘A’,‘a’,或一個‘~’。因此,自動測定波特率尋找‘A’,‘a’和‘~’。‘A’和‘a’表示一個AT命令的開始。AT命令包含所有的ASCII字符。RS-232,串行發送的EIA(電子工業協會)標準,需要由一位起始位,以標識一個字符的開始。起始位總是由一個間隔(即是一個0位)表示。字符的結束由一個位停止位來標識。停止位總由標記(即是一個1位)表示。ASCII字符的最高有效位總是一個間隔。這樣,對于ASCII字符,停止位通過間隔被精密配置。
圖2表示一張AT命令開始字節的示圖。如先前所述,AT命令的開始字節是一個‘A’202或是‘a’220。‘A’202和‘a’220兩者均含有間隔和標記。間隔表示0位,而標記表示1位。字符‘A’202包含第一個間隔204,第一個標記206,第二個間隔208,第二個標記210,第三個間隔212和第三個標記214。第一個間隔204表示起始位。第一個標記206表示最低有效位(LSB)。第二個間隔208包含5個間隔。第二個標記210含有一個標記。第三個間隔212是最高有效位(MSB),而第三個標記214是停止位。
字符‘a’220包含第一個間隔222,第一個標記224,第二個間隔226,第二個標記228,第三個間隔230和第三個標記232。第一個間隔222表示起始位。第一個標記224表示最低有效位(LSB)。第二個間隔226包含4個間隔。第二個標記210含有二個標記。第三個間隔230是最高有效位(MSB),而第三個標記232是停止位。
在ASCII中以0×7e標志表示的字符‘~’(未示出)代表點到點的協議(PPP)包。在PPP包檢測中,保證時鐘擺動修正的系統和方法在繼續申請中發布,其題目為“在自動波特率模式的波特率測定后,保證在點到點協議包檢測中無數據丟失的時鐘擺動修正”,申請號___,申請日___(代理檔案號為QCPD1138),這里一起并入作為整體參考。
每一個開始字節有一個獨特的外形(profile),因此通過確定開始字節內間隔位和標記位的相對位置可以區別的。是否接收到相應于‘A’,‘a’或‘~’采樣的判別以及自動波特率檢測期間的波特率檢測,已在題目為“無數據丟失的自動波特率檢測的通用異步收發器(UART)”的繼續申請中公布,其申請號為08/684346,申請日為1996年7月18日,(代理檔案號為PA276),這里一起并入作為整體參考。
在確定開始字節和波特率后,UART需設置成字節工作模式以接收入局數據流中剩余的字符。如果UART 104在已經讀入某一字符的一部分時退出采樣模式,就會引起一個問題。在UART 104退出采樣模式進入字節模式后,UART104企圖進行搜索起始位和停止位,計及時鐘擺動等正常工作。如果在UART104從采樣模式轉換成字節工作模式時,一個數據字節的一部分已在UART104內,UART104可能將一個真實的數據字符解釋成起始位。當發生這種情況時,直到下一條命令來臨以前,數據好像是無用信息。為了使輸入的數據流可靠,UART 104需要在整條命令內維持采樣模式。當UART104維持采樣模式時,必須計及時鐘擺動,否則,數據如像是無用信息。
本發明解決UART維持采樣模式時的時鐘擺動。時鐘擺動是在發送裝置以比接收裝置較高或較低的時鐘速率工作時產生。因為兩個時鐘不可能以完全相同的速率工作,時鐘擺動是普遍存在的。圖3a說明無時鐘擺動時的理想的發送采樣。采樣302完全與從接收裝置102來的接收時鐘脈沖304(用虛線顯示,表示時鐘脈沖的前沿和后沿)同步。
負向時鐘擺動發生在發送時鐘比接收時鐘快時。圖3b示出一個負向時鐘擺動的例子。采樣302在接收時鐘脈沖(以虛線表示)304開始之前到達。當發生該情況時,當前采樣含有部分下一個采樣或比特306。
正向時鐘擺動發生在接收時鐘比發送時鐘快時。圖3c示出一個正向時鐘擺動的例子。采樣302在接收時鐘脈沖(以虛線表示)304開始之后到達。當發生該情況時,當前采樣含有部分前一個采樣或比特306。
本發明將參照AT命令描述。AT命令包括所有的ASCII字符。雖然本發明是參照AT命令描述,本發明可以適用于其他類型的命令。
對于波特率為9600或更高的情況,在發送AT命令時,本發明利用所有ASCII字符和RS-232協議所獨有的特征計及時鐘擺動。
圖4描述當發送以ASCII字符表示的字符時,RS-232串行發送所獨有的特征。圖4表示由起始位402和停止位406所包圍的一個ASCII字符410。ASCII字符410含有8位。其中ASCII字符的前7位可以是標記,間隔,或一個組合。ASCII字符410的最后一位404是最高有效位(MSB)。ASCII字符410的MSB 404總是一個間隔。RS-232,串行發送的EIA標準,要求由起始位402表明一個字符的開始。起始位402總是以一個間隔(即是0位)表示。由停止位406來表明一個字符的結束。停止位總是用一個標記(即是1位)表示。因此,所有ASCII字符的獨有的特征是停止位由間隔包圍MSB 404在它的左邊。而下一個起始位在它的右邊。雖然用此特征描述本發明,本發明不應限止于此特征。字符集中含有該獨有特征的其他類型編碼方法也可以應用。
圖5a和5b分別描述負向和正向時鐘擺動的嚴重性。在圖5a中示出四個負向時鐘擺動502,506,510和514的例子。采樣大小據表示為被MSB 404和起始位402包圍的停止位406。每個采樣代表8比特。接收裝置102的時鐘以兩條線表示(以虛線示出)。這兩條虛線表明時鐘504的前沿和后沿。
例子502示出當發送時鐘比接收時鐘快2比特,導致一個-2/8的負向擺動。這樣,該采樣含有下一個字符的一部分或下面的2比特。即使發送和接收時鐘相差2次采樣,還能鑒別該采樣代表一個標記。
例子506示出當發送時鐘比接收時鐘快4比特,導致一個-4/8的負向擺動。這樣,該采樣含有下一個字符的一部分或下面的4比特。此時,有50∶50的機會將該采樣識別為一個標記。
例子510示出發送時鐘比接收時鐘504快6比特,導致一個-6/8的負向擺動。這樣,該采樣含有下一個字符的一部分或下面的6比特。帶有發送和接收時鐘的6比特偏差,在該例子中就不能肯定該采樣是一個標記或是間隔。
例子514示出發送時鐘比接收時鐘504快8比特,導致-8/8的負向擺動。這樣,該采樣含有完整的下一個字符或下面的8比特。在這一點上,發送時鐘與接收時鐘504完全不同步。該采樣將被識別為間隔,且從數據的該點起的采樣好像是無用信息。
在圖5b中示出四個正向時鐘擺動520,524,528和532的例子。例子520示出接收時鐘504比發送時鐘快2比特,導致+2/8的正向擺動。這樣,該采樣含有前一個字符的一部分或前面的2比特。雖然接收和發送時鐘相差2比特,還能鑒別該采樣代表一個標記。
例子524示出接收時鐘504比發送時鐘快4比特,導致+4/8的正向擺動。這樣,該采樣含有前一個字符的一部分或前面的4比特。此時,有50∶50機會將該采樣識別為一個標記。
例子528示出接收時鐘504比發送時鐘快6比特,導致+6/8的正向擺動。因此,該采樣含有前一個字符的一部分或前面的6比特。帶有接收和發送時鐘的6比特偏差,在該例子中就不能肯定該采樣是一個間隔或是標記。
例子532示出接收時鐘504比發送時鐘快8比特,導致+8/8的正向擺動。這樣,該采樣含有前一個字符的全部或前面的8比特。在這一點上,接收時鐘504與發送時鐘完全不同步。該采樣將被識別為一個間隔,且從數據的該點起的采樣好像是無用信息。
本發明通過記住當前的擺動,并且利用一部分前面采樣和一部分新采樣,以重構下一個采樣而計及上述的擺動。在負向擺動導致誤解采樣的情況(即在從下一個字符接收越來越多的數據或比特的地方)之前,如例子510和514(圖5a所示),接收裝置102為了恢復與發送時鐘的同步跳過一個采樣。在正向擺動導致誤解采樣的情況(即在從下一個字符接收越來越多的數據或比特的地方)之前,如例子528和532(如圖5b所示),接收裝置102為了恢復與發送時鐘的同步取一個額外采樣。
圖6描述通過利用一部分前面的采樣和一部分新采樣重構一個真實采樣。第一個采樣602含有一部分下一個采樣或比特606。保存第一個采樣602。一旦收到第二個采樣604,第一個采樣就變成前采樣602。第二個采樣或新采樣604含有該字符的剩余部分或比特608,該剩余部分用于重構真實采樣610。因而,真實采樣包含從前采樣602來的比特606和從新采樣604來的比特608。
通過使前采樣右移(k-n)位與使第二個采樣左移n位相結合來重構真實采樣真實采樣=(前采樣>>(k-n))|(新采樣<<n),這里k=被采樣的位的數;以及n=擺動量圖7表示一張用于計及時鐘擺動的方法流程圖。該方法用于解決UART按采樣模式工作并且入局數據流的波特率為9600或更高時,在串行數據發送期間產生的時鐘擺動。處理過程從步驟702開始。這里,控制轉到步驟704。
在步驟704,判斷開始字符是否是‘A’,‘a’,或‘~’。一旦已知是開始字符,就測定波特率。開始字符是否是‘A’,‘a’,或‘~’的判斷,以及在自測定波特率期間的波特率測定在上述的繼續申請中公布,申請題目為“無數據丟失的自動測定波特率的通用異步收發器(UART)”。然后控制轉入步驟706。
在步驟706,用停止位406計算時鐘擺動,該停止位被MSB 404和起始位402包圍。用一張查閱表來計算時鐘擺動。讀入該采樣大小據值。該值用于在查閱表上尋找相應的時鐘擺動。例如,在無時鐘擺動時,讀入的采樣大小據為FF。在查閱表上的FF相應于0(零)擺動。接著控制轉到判定步驟708。
在判定步驟708,確定是否存在負向時鐘擺動。如果存在負向時鐘擺動,控制轉到判定步驟718。在判定步驟718,確定負向時鐘擺動的絕對值是否大于門限值。該門限值的范圍是4比特<T<8比特。如果該時鐘擺動的絕對值是在該門限范圍內,控制轉到步驟720。
在步驟720,跳過一個采樣。當下一個特征出現時,完成了時鐘擺動補償。控制轉到步驟722。
回到判定步驟718,如果時鐘擺動的絕對值不在該門限范圍內,控制轉到714。在步驟714,通過從下一個特征出現之前,從為所產生的擺動讀入原采樣和新采樣中,重構比特數來計及時鐘擺動。然后控制轉到步驟722。
回到判定步驟708,如果負向時鐘擺動不存在,控制轉到判定步驟710。在判定步驟710,確定時鐘擺動的絕對值是否大于(8-T)的數量(這里T表示門限值),或換句話說,是否存在正向的時鐘擺動。門限值T的范圍是4位<T<8位。如果讀入的正向擺動大于(8-T),控制轉到712。
在步驟712,取一個額外采樣。額外采樣的取得,使正向時鐘擺動轉換為負向時鐘擺動。按上述模式將正向時鐘擺動變成負向時鐘擺動的轉換,允許解決擺動的一種方法既適用于正向擺動又適用于負向擺動。然后控制轉到步驟714。
在步驟714,通過從下一個特征出現之前,從為所產生的擺動讀入的原采樣和新采樣中,重構比特數來計及時鐘擺動。然后控制轉到步驟722。
回到判定步驟710,如果正向時鐘擺動不大于(8-T),控制轉到步驟716。在步驟716,在下一個特征出現之前,不能計及時鐘擺動。正向時鐘擺動并未嚴重到導致錯誤地判斷入局數據。控制轉到步驟722。
在步驟722,判斷是否存在更多的數據。如果存在更多的數據,控制轉到步驟724。
在步驟724,通過從下一個特征出現之前,利用讀入的時鐘擺動,從輸入的數據流中重構比特數來計及時鐘擺動。用擺動信息重構后的比特搜索表格。該表含有所有可能的方法。在該表中,可在8比特流中找到“1”的連續流。因而,該表含有38條記錄,而不是有256條記錄。如果“1”的個數多于“0”的個數,該采樣代表標記。相反,該采樣代表間隔。如果找不到相應的匹配,已經發生錯誤。然后控制轉到步驟706,在該步驟,為下一個特征計算時鐘擺動,并自己重復上述的處理。
回到步驟722,如果沒有更多的可用數據,控制轉到步驟726。在步驟726,設置波特率,并且UART 104終止采樣模式,進入字節模式。然后,控制轉到步驟728。在步驟728,處理過程結束。
上述的方法應用于9600或更高的比特率。UART 104,以9600波特率按采樣模式工作,在19200的比特,每比特產生一組8個采樣;在9600位率,每比特為兩組8個采樣或16次采樣;在4800位率,每比特為四組8個采樣或32次采樣;在2400位率,每比特為八組8個采樣或64次采樣;和在1200位率,每比特為十六組8個采樣或128個采樣。因而,在較低的比特率,存在多組每位8個采樣。
對于低于9600的比特率,即是1200,2400和4800,停止位的特征就不適用了,因為較低的比特率隨時間具有較少停止位。例如,在19200位率,一個字節的數據具有一定的長度。在9600位率的一個字節數據的長度是19200位率的兩倍,產生的停止位數為原有的一半。在4800位率,數據字節的長度為4倍,產生的停止位數為原有的四分之一,等等。在這些較低的比特率中遇到停止位時,時鐘擺動將不可修復。因而,對于較低比特率,擺動量(給出的停止位數)比較大。
起初,在采樣的邊界處的時鐘擺動是最重要的,因為從前面的比特或后面的比特來的采樣首先出現在當前采樣的邊界處。到擁有完整的采樣之前,隨著時間的推移,時鐘擺動向左或向右漂移。因此,到較后面之前,時鐘擺動不會影響采樣的中間部分。因而,對于多于兩組8個采樣代表1位的較低的比特率,本發明讀入中間的一組8個采樣。用起始位來執行該居中技術。通過讀入中間一組8個采樣自動取消了擺動的影響。
圖8描述一張用于解決擺動的方法流程圖。該方法用于解決UART 104以采樣模式工作并且入局數據流的比特率低于9600時,在串行數據發送期間的時鐘擺動。處理過程在步驟802開始,在這里,控制轉到步驟804。
在步驟804,判斷開始字符是否為‘A’,‘a’,或‘~’。一旦已知開始字符,就確定波特率。開始字符是否是‘A’,‘a’,或‘~’的判斷,以及在自動測定波特期間的波特率測定在上述的繼續申請中公布,申請題目為“無數據丟失的自動測定波特率的通用異步收發器(UART)”。然后控制轉入步驟806。
在步驟806,遇到前一個停止位404后,搜索起始位402。該搜索通過搜索第一組8個采樣來完成,該采樣的大多數均為間隔。接著控制轉到判定步驟808。
在判定步驟808,確定哪組8個采樣是中間采樣。例如,在4800位率,有四組8個采樣。中間采樣是第二組和第三組8個采樣。因而,確定第二組8個采樣是中間采樣。在2400位率,將選擇第四組8個采樣,而在1200,將選擇第八組8個采樣。然后,控制轉到步驟810。
在步驟810,通過重算到合適組數的8個采樣找到中間采樣組。控制轉到步驟812。
在步驟812,讀入中間采樣以消除擺動的影響。然后控制轉到判定步驟814。
在判定步驟814,確定是否有更多的可用數據。如果有更多的可用數據,控制返回到步驟806。如果沒有,控制轉到步驟816。
在步驟816,設置波特率,并且UART 104退出采樣模式進入字節工作模式。控制轉到步驟818。在這里結束處理。
注意在19200位率,因為不存在多組每位8個采樣,不能應用居中技術。雖然在9600位率,存在每比特兩組8個采樣,也不存在中心組每比特8個采樣。兩組8個采樣均位于邊界上,并有可能通過前面比特或下面比特超出邊界。因而,居中方法不能應用于9600位率和更大的比特率。
結論雖然本發明是按照蜂窩電話描述的,本發明也可用于使用通用異步收發器(UART)或通用同步/異步收發器(USART)的其他通信裝置。上面提供的較佳實施例描述使任何技術熟練的人員能制作或使用本發明。雖然,本發明對其中關于較佳實施例作了特殊的展示和描述,那些技術熟練人員應該懂得,不需背離本發明的精神和范疇就能在格式和細節上作各種修改。
權利要求
1,一種串行通信中修正時鐘擺動的方法,其特征在于,所述方法包括以下步驟從入局數據流接收含有某一預定特征的一個采樣,其中所述入局數據流的波特率確定至少為9600;用所述預定特征計算時鐘擺動;確定所述時鐘擺動是否是負向;如果所述時鐘擺動不是負向的,確定所述時鐘擺動是否是正向的;如果存在所述的負向和正向時鐘擺動中的一種,對所述的負向和正向時鐘擺動中的一種作補償;確定所述采樣是否代表標記和間隔中的一種;以及如果在所述入局數據流中有更多的采樣,在所述的預定特征再次出現之前基于所述時鐘擺動計算,從所述入局數據流中重構位和字符;
2,權利要求1的方法,其特征在于,所述方法進一步包括如果在所述數據流中沒有更多的采樣,設置所述波特率和退出采樣模式的步驟。
3,權利要求1的方法,其特征在于,所述方法進一步包括如果在所述輸入的數據流中有更多的采樣,返回到所述計算步驟的步驟。
4,權利要求1的方法,其特征在于,所述的補償負向時鐘擺動的步驟進一步包括以下步驟確定負向時鐘擺動的絕對值是否超過一門限值;如果所述的負向時鐘擺動的絕對值不超過所述門限值,在所述預定特征再次出現之前,基于所述擺動計算,從原有采樣和新采樣重構比特位;以及如果所述的負向時鐘擺動的絕對值超過所述門限值,就跳過一個采樣。
5,權利要求4的方法,其特征在于,所述門限值是在4和8比特之間。
6,權利要求5的方法,其特征在于,所述門限值為6比特。
7,權利要求1的方法,其特征在于,所述的補償正向時鐘擺動的步驟包括以下步驟確定正向時鐘擺動的絕對值是否超過(k-T)數量,其中k是采樣大小,而T是門限值如果所述的正向時鐘擺動的絕對值超過(k-T),取一個額外采樣;如果所述的正向時鐘擺動的絕對值超過(k-T),在所述預定特征再次出現之前,基于所述擺動計算,從原有采樣和新采樣中重構位。
8,權利要求7的方法,其特征在于,所述門限值是在4和8比特之間。
9,權利要求8的方法,其特征在于,所述門限值為6比特。
10,權利要求7的方法,其特征在于,所述采樣大小,k是8。
11,一種串行通信中修正時鐘擺動的系統,其特征在于,所述系統包括從入局數據流中接收一個含有某一預定特征的采樣的裝置,其中所述入局數據流的波特率確定至少為9600;用所述預定特征計算時鐘擺動的裝置;確定所述時鐘是否是負向的裝置;如果所述時鐘擺動不是負向,確定所述時鐘擺動是否是正向的裝置;如果存在所述的負向和正向時鐘擺動中的一種,補償所述的負向和正向時鐘擺動中的一種的裝置;確定所述采樣是否代表標記和間隔中的一種的裝置;及如果在所述入局數據流中有更多的采樣,所述預定特征再次出現之前,基于時鐘擺動計算,從所述入局數據流中重構位和字符的裝置。
12,權利要求11的系統,其特征在于,該系統進一步包括如果在所述入局數據流中沒有更多的采樣,設置所述波特率和退出采樣模式的裝置。
13,權利要求11的系統,其特征在于,所述的補償負向時鐘擺動的裝置包括確定負向時鐘擺動的絕對值是否超過門限值的裝置;如果所述的負向時鐘擺動沒有超過所述門限值,在所述預定特征再次出現之前,基于所述擺動計算,從原有采樣和新采樣中重構位的裝置;及如果所述的負向時鐘擺動的絕對值超過所述門限值,跳過一個采樣的裝置。
14,權利要求13的系統,其特征在于,所述門限值是在4和8比特之間。
15,權利要求14的系統,其特征在于,所述門限值為6比特。
16,權利要求11的系統,其特征在于,所述的補償正向時鐘擺動的裝置包括確定正向時鐘擺動的絕對值是否超過(k-T)的數量的裝置,其中k是采樣大小,而T是門限值;如果所述的正向時鐘擺動的絕對值超過(k-T),取一個額外采樣的裝置;及如果所述的正向時鐘擺動的絕對值超過(k-T),在所述預定特征再次出現之前,基于所述擺動計算,從原有采樣和新采樣中重構位的裝置。
17,權利要求16的系統,其特征在于,所述門限值是在4和8比特之間。
18,權利要求17的系統,其特征在于,所述門限值為6比特。
19,權利要求16的系統,其特征在于,所述采樣大小,k是8。
20,一種串行通信中修正時鐘擺動的方法,其特征在于,該方法包括以下步驟從入局數據流中接收一個采樣,其中所述入局數據流的波特率確定為低于9600;從所述采樣中搜索起始位;確定所述采樣的中間部分;重算到所述采樣的所述中間部分;及讀入所述采樣的所述中間部分。
21,權利要求20的方法,其特征在于,該方法進一步包括步驟確定是否有更多的可用數據;如果有更多的可用數據,返回到所述搜索步驟;及如果沒有更多的可用數據,設置所述波特率并且退出采樣模式;
22,權利要求20的方法,其特征在于,所述搜索步驟包括尋找具有大部分間隔的一組比特位的步驟。
23,一種串行通信中修正時鐘擺動的系統,其特征在于,該系統包括從入局數據流中接收一個采樣的裝置,其中所述入局數據流的波特率確定為低于9600;從所述采樣中搜索起始位的裝置;從所述采樣搜索起始位的裝置;確定所述采樣的中間部分的裝置;重算到所述采樣的所述中間部分的裝置;及讀入所述采樣的所述中間部分的裝置。
24,權利要求23的系統,其特征在于,該系統進一步包括確定是否有更多的可用數據的裝置;及如果沒有更多的可用數據,設置所述波特率并且退出采樣模式的裝置。
25,權利要求23的系統,其特征在于,所述搜索方法包括尋找具有大部分間隔的一組比特位的裝置。
全文摘要
一種用于在自動測定波特率期間考慮時鐘擺動的系統和方法。在識別AT命令和入局數據流的波特率時,本發明根據入局數據流的波特率,用兩種方法中的一種計及時鐘擺動。如入局數據流的波特率為9600或更高時,本發明通過利用與ASCII字符和RS-232協議有關的特征來計及時鐘擺動。此特征是通過間隔被緊密配合在兩邊上的停止位。此特征用于確定是否存在負向或正向時鐘擺動。如果存在負向時鐘擺動,并確定該負向時鐘擺動落在某一門限值內,就跳過一個采樣。如果存在正向時鐘擺動并且落在某一門限內,通過取一個額外采樣將正向時鐘擺動轉換為負向時鐘擺動。基于所計算的擺動值,從原有采樣和新采樣中重構位而計及時鐘擺動,以獲得消除時鐘擺的不利影響的真實采樣。當入局數據流的波特率高于9600時,若存在多組每位8個采樣,本發明通過從起始位起取中間一組8個采樣來計及時鐘擺動。這是通過搜索下一個起始位來實現。一旦發現下一個起始位,就確定哪一組8個采樣是中間采樣。本發明重算到該中間采樣,并從中間采樣讀入數據來消除擺動影響。
文檔編號H04L25/08GK1369156SQ00811247
公開日2002年9月11日 申請日期2000年8月3日 優先權日1999年8月4日
發明者J·諾厄 申請人:高通股份有限公司