串行通信波特率的自動(dòng)識(shí)別
發(fā)布時(shí)間:2008/6/24 0:00:00 訪問(wèn)次數(shù):855
摘要 對(duì)串行通信波特率自動(dòng)識(shí)別的方法進(jìn)行深入的研究和分析;創(chuàng)新性地提出在碼元寬度捕捉的基礎(chǔ)上,用求最大公約數(shù)的方法進(jìn)行波特率的自動(dòng)識(shí)別,實(shí)現(xiàn)了不對(duì)待測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)進(jìn)行特殊要求即實(shí)現(xiàn)其串行通信數(shù)據(jù)的有效識(shí)別。該方法具有一般性,可廣泛應(yīng)用于多機(jī)通信、通信測(cè)試等不同的領(lǐng)域。
關(guān)鍵詞 串行通信波特率 自動(dòng)識(shí)別 最大公約數(shù)法
對(duì)于異步串行通信,只有在通信雙方波特率相同時(shí),才能實(shí)現(xiàn)數(shù)據(jù)的正確傳輸與接收;而一些系統(tǒng)總是希望能實(shí)現(xiàn)對(duì)各種波特率的兼容。通常的實(shí)現(xiàn)方法是,要求對(duì)方首先發(fā)出規(guī)定的字符或數(shù)據(jù),系統(tǒng)收到該字符或數(shù)據(jù)后,計(jì)算對(duì)方的波特率.以適應(yīng)對(duì)方的波特率進(jìn)行工作,例如某些無(wú)線收發(fā)模塊、gsm通信模塊等。然而對(duì)于檢測(cè)、測(cè)試等領(lǐng)域,是不能要求被測(cè)系統(tǒng)發(fā)送某個(gè)固定的字符或數(shù)據(jù)的,那么對(duì)于這類(lèi)通信系統(tǒng),如何實(shí)現(xiàn)波特率的可靠識(shí)別呢?本文創(chuàng)新性地提出了在碼元寬度捕捉的基礎(chǔ)上求最大公約數(shù)的方法。該方法不對(duì)待測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)進(jìn)行特殊要求即可實(shí)現(xiàn)波特率識(shí)別,且保證了波特率識(shí)別的有效性和可靠性。下面對(duì)該方法進(jìn)行詳細(xì)說(shuō)明。
1 波特率自動(dòng)識(shí)別的傳統(tǒng)方法及基本原理
串行通信的數(shù)據(jù)是按位順序傳輸?shù),而異步串行通信由于沒(méi)有位定時(shí)時(shí)鐘,因此各個(gè)數(shù)據(jù)位之問(wèn)需要嚴(yán)格的定時(shí),才能保證正確的通信。也就是說(shuō),只有在通信雙方波特率相同時(shí),才能實(shí)現(xiàn)數(shù)據(jù)的正確傳輸與接收。傳統(tǒng)的波特率自動(dòng)識(shí)別的方法主要有兩種:
、贅(biāo)準(zhǔn)波特率窮舉法。標(biāo)準(zhǔn)波特率窮舉法適用于主機(jī)側(cè)的波特率必須在有限的幾個(gè)固定數(shù)值之間變化,如300~19200之間的標(biāo)準(zhǔn)值;且從機(jī)側(cè)的工作振蕩頻率已知且穩(wěn)定。從機(jī)啟動(dòng)通信程序后,逐個(gè)嘗試以不同的波特率接收主機(jī)發(fā)出的特定字符,直到能正確接收為止,因此,該方法的運(yùn)用有一定的局限性。
、诖a元寬度實(shí)時(shí)檢測(cè)法。該方法要求主機(jī)按照約定發(fā)送某一數(shù)據(jù),從機(jī)通過(guò)單片機(jī)的定時(shí)器測(cè)量rxd引腳上輸入數(shù)據(jù)的碼元寬度,而后計(jì)算出待測(cè)系統(tǒng)通信的波特率。該方法目前應(yīng)用比較廣泛。例如,某gsm模塊在設(shè)計(jì)時(shí)為了適應(yīng)各種通信波特率,要求其通信的系統(tǒng)首先發(fā)送08h,之后發(fā)送指令,它就是依靠數(shù)據(jù)08h的碼元寬度計(jì)算出對(duì)方波特率的。
2 最大公約數(shù)法的原理及其實(shí)現(xiàn)
傳統(tǒng)的方法對(duì)待測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)都有一定的限制或要求才能夠?qū)崿F(xiàn)波特率的識(shí)別,但有些時(shí)候是無(wú)法約束待測(cè)系統(tǒng)首先發(fā)送特定字符的。這里,根據(jù)不同的應(yīng)用需求,提出更為通用的波特率識(shí)別方法——最大公約數(shù)法。
為了便于說(shuō)明問(wèn)題,設(shè)主機(jī)的波特率為bps,位傳輸時(shí)間為t1bit,測(cè)試系統(tǒng)測(cè)得的波特率為baud,位傳輸時(shí)間為txbit。以l位起始位、8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)位為例,通信數(shù)據(jù)格式如圖l所示。除了起始位始終為0,停止位始終為1外,8位數(shù)據(jù)位的電平高低是由傳輸?shù)臄?shù)據(jù)決定的,要測(cè)得待測(cè)系統(tǒng)的波特率,根據(jù)波特率的實(shí)際意義bps=l/t1bit,只要檢測(cè)出待測(cè)系統(tǒng)通信數(shù)據(jù)的位傳輸時(shí)間t1bit即可。
位傳輸時(shí)間t1bit對(duì)應(yīng)的就是單位碼元寬度時(shí)間,只要知道單位碼元寬度時(shí)間,系統(tǒng)波特率就很容易計(jì)算出來(lái)了。由于不能要求待測(cè)系統(tǒng)按照規(guī)定發(fā)出特定的數(shù)據(jù)或字符,因此這里使用碼元寬度捕捉的方法來(lái)查找碼元寬度時(shí)間,要將單片機(jī)掛入待測(cè)系統(tǒng)的通信線路,采用對(duì)待測(cè)系統(tǒng)txd(或rxd)引腳的高、低電平脈沖持續(xù)時(shí)間不斷采集的方式,來(lái)捕捉單位碼元寬度時(shí)間t1bit,顯然單片機(jī)直接采集到的單個(gè)高、低電平脈沖持續(xù)時(shí)間可能是nt1bit,其中1≤n≤9。如何從采集到的nt1bit找出t1bit,成為波特率識(shí)別的關(guān)鍵。
經(jīng)過(guò)對(duì)串行通信數(shù)據(jù)格式的特點(diǎn)進(jìn)行分析,本文提出了碼元寬度最大公約數(shù)法來(lái)從捕捉到的碼元寬度時(shí)間中計(jì)算單位碼元寬度時(shí)間,也就是位傳輸時(shí)間t1bit。具體實(shí)現(xiàn)方法如下:在待測(cè)系統(tǒng)正常工作后,將測(cè)試單片機(jī)掛入其通信線路;首先對(duì)正、負(fù)脈沖寬度都進(jìn)行計(jì)時(shí),分別采集n次,剔除正脈沖溢出的部分后,把所有不相等的有效脈沖寬度時(shí)間從小到大排序(△t<5μs就認(rèn)為兩個(gè)時(shí)間相等,這一點(diǎn)在后面將有說(shuō)明),假設(shè)依次為t1,t2,t3,…,tm(1≤m≤9);由于采集到的時(shí)間一定是t1bit的整數(shù)倍,計(jì)算出t1,t2,t3,…,tm的最大公約數(shù)為txbit,那么txbit就可以作為系統(tǒng)的最小脈沖寬度來(lái)計(jì)算波特率。這里計(jì)算得到的txbit可能等于t1bit,也可能不等于t1bit。下面分類(lèi)討論其作為位傳輸時(shí)間t1bit來(lái)計(jì)算波特率的可靠性及依據(jù)。
第1種情況,txbit=t1bit:待測(cè)系統(tǒng)通信過(guò)程中出現(xiàn)最窄正脈沖或最窄負(fù)脈沖,得到的txbit等于t1bit,那么使用txbit計(jì)算波特率是可靠的;待測(cè)系統(tǒng)通信過(guò)程中未出現(xiàn)最窄正脈沖或最窄負(fù)脈沖,但系統(tǒng)通信過(guò)程中出現(xiàn)的脈沖寬度的最大公約數(shù)為最窄脈沖寬度,如待測(cè)系統(tǒng)處出現(xiàn)了2t1bit、3t1bit脈沖時(shí)間或者待測(cè)系統(tǒng)出現(xiàn)了4t1bit
摘要 對(duì)串行通信波特率自動(dòng)識(shí)別的方法進(jìn)行深入的研究和分析;創(chuàng)新性地提出在碼元寬度捕捉的基礎(chǔ)上,用求最大公約數(shù)的方法進(jìn)行波特率的自動(dòng)識(shí)別,實(shí)現(xiàn)了不對(duì)待測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)進(jìn)行特殊要求即實(shí)現(xiàn)其串行通信數(shù)據(jù)的有效識(shí)別。該方法具有一般性,可廣泛應(yīng)用于多機(jī)通信、通信測(cè)試等不同的領(lǐng)域。
關(guān)鍵詞 串行通信波特率 自動(dòng)識(shí)別 最大公約數(shù)法
對(duì)于異步串行通信,只有在通信雙方波特率相同時(shí),才能實(shí)現(xiàn)數(shù)據(jù)的正確傳輸與接收;而一些系統(tǒng)總是希望能實(shí)現(xiàn)對(duì)各種波特率的兼容。通常的實(shí)現(xiàn)方法是,要求對(duì)方首先發(fā)出規(guī)定的字符或數(shù)據(jù),系統(tǒng)收到該字符或數(shù)據(jù)后,計(jì)算對(duì)方的波特率.以適應(yīng)對(duì)方的波特率進(jìn)行工作,例如某些無(wú)線收發(fā)模塊、gsm通信模塊等。然而對(duì)于檢測(cè)、測(cè)試等領(lǐng)域,是不能要求被測(cè)系統(tǒng)發(fā)送某個(gè)固定的字符或數(shù)據(jù)的,那么對(duì)于這類(lèi)通信系統(tǒng),如何實(shí)現(xiàn)波特率的可靠識(shí)別呢?本文創(chuàng)新性地提出了在碼元寬度捕捉的基礎(chǔ)上求最大公約數(shù)的方法。該方法不對(duì)待測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)進(jìn)行特殊要求即可實(shí)現(xiàn)波特率識(shí)別,且保證了波特率識(shí)別的有效性和可靠性。下面對(duì)該方法進(jìn)行詳細(xì)說(shuō)明。
1 波特率自動(dòng)識(shí)別的傳統(tǒng)方法及基本原理
串行通信的數(shù)據(jù)是按位順序傳輸?shù),而異步串行通信由于沒(méi)有位定時(shí)時(shí)鐘,因此各個(gè)數(shù)據(jù)位之問(wèn)需要嚴(yán)格的定時(shí),才能保證正確的通信。也就是說(shuō),只有在通信雙方波特率相同時(shí),才能實(shí)現(xiàn)數(shù)據(jù)的正確傳輸與接收。傳統(tǒng)的波特率自動(dòng)識(shí)別的方法主要有兩種:
①標(biāo)準(zhǔn)波特率窮舉法。標(biāo)準(zhǔn)波特率窮舉法適用于主機(jī)側(cè)的波特率必須在有限的幾個(gè)固定數(shù)值之間變化,如300~19200之間的標(biāo)準(zhǔn)值;且從機(jī)側(cè)的工作振蕩頻率已知且穩(wěn)定。從機(jī)啟動(dòng)通信程序后,逐個(gè)嘗試以不同的波特率接收主機(jī)發(fā)出的特定字符,直到能正確接收為止,因此,該方法的運(yùn)用有一定的局限性。
、诖a元寬度實(shí)時(shí)檢測(cè)法。該方法要求主機(jī)按照約定發(fā)送某一數(shù)據(jù),從機(jī)通過(guò)單片機(jī)的定時(shí)器測(cè)量rxd引腳上輸入數(shù)據(jù)的碼元寬度,而后計(jì)算出待測(cè)系統(tǒng)通信的波特率。該方法目前應(yīng)用比較廣泛。例如,某gsm模塊在設(shè)計(jì)時(shí)為了適應(yīng)各種通信波特率,要求其通信的系統(tǒng)首先發(fā)送08h,之后發(fā)送指令,它就是依靠數(shù)據(jù)08h的碼元寬度計(jì)算出對(duì)方波特率的。
2 最大公約數(shù)法的原理及其實(shí)現(xiàn)
傳統(tǒng)的方法對(duì)待測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)都有一定的限制或要求才能夠?qū)崿F(xiàn)波特率的識(shí)別,但有些時(shí)候是無(wú)法約束待測(cè)系統(tǒng)首先發(fā)送特定字符的。這里,根據(jù)不同的應(yīng)用需求,提出更為通用的波特率識(shí)別方法——最大公約數(shù)法。
為了便于說(shuō)明問(wèn)題,設(shè)主機(jī)的波特率為bps,位傳輸時(shí)間為t1bit,測(cè)試系統(tǒng)測(cè)得的波特率為baud,位傳輸時(shí)間為txbit。以l位起始位、8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)位為例,通信數(shù)據(jù)格式如圖l所示。除了起始位始終為0,停止位始終為1外,8位數(shù)據(jù)位的電平高低是由傳輸?shù)臄?shù)據(jù)決定的,要測(cè)得待測(cè)系統(tǒng)的波特率,根據(jù)波特率的實(shí)際意義bps=l/t1bit,只要檢測(cè)出待測(cè)系統(tǒng)通信數(shù)據(jù)的位傳輸時(shí)間t1bit即可。
位傳輸時(shí)間t1bit對(duì)應(yīng)的就是單位碼元寬度時(shí)間,只要知道單位碼元寬度時(shí)間,系統(tǒng)波特率就很容易計(jì)算出來(lái)了。由于不能要求待測(cè)系統(tǒng)按照規(guī)定發(fā)出特定的數(shù)據(jù)或字符,因此這里使用碼元寬度捕捉的方法來(lái)查找碼元寬度時(shí)間,要將單片機(jī)掛入待測(cè)系統(tǒng)的通信線路,采用對(duì)待測(cè)系統(tǒng)txd(或rxd)引腳的高、低電平脈沖持續(xù)時(shí)間不斷采集的方式,來(lái)捕捉單位碼元寬度時(shí)間t1bit,顯然單片機(jī)直接采集到的單個(gè)高、低電平脈沖持續(xù)時(shí)間可能是nt1bit,其中1≤n≤9。如何從采集到的nt1bit找出t1bit,成為波特率識(shí)別的關(guān)鍵。
經(jīng)過(guò)對(duì)串行通信數(shù)據(jù)格式的特點(diǎn)進(jìn)行分析,本文提出了碼元寬度最大公約數(shù)法來(lái)從捕捉到的碼元寬度時(shí)間中計(jì)算單位碼元寬度時(shí)間,也就是位傳輸時(shí)間t1bit。具體實(shí)現(xiàn)方法如下:在待測(cè)系統(tǒng)正常工作后,將測(cè)試單片機(jī)掛入其通信線路;首先對(duì)正、負(fù)脈沖寬度都進(jìn)行計(jì)時(shí),分別采集n次,剔除正脈沖溢出的部分后,把所有不相等的有效脈沖寬度時(shí)間從小到大排序(△t<5μs就認(rèn)為兩個(gè)時(shí)間相等,這一點(diǎn)在后面將有說(shuō)明),假設(shè)依次為t1,t2,t3,…,tm(1≤m≤9);由于采集到的時(shí)間一定是t1bit的整數(shù)倍,計(jì)算出t1,t2,t3,…,tm的最大公約數(shù)為txbit,那么txbit就可以作為系統(tǒng)的最小脈沖寬度來(lái)計(jì)算波特率。這里計(jì)算得到的txbit可能等于t1bit,也可能不等于t1bit。下面分類(lèi)討論其作為位傳輸時(shí)間t1bit來(lái)計(jì)算波特率的可靠性及依據(jù)。
第1種情況,txbit=t1bit:待測(cè)系統(tǒng)通信過(guò)程中出現(xiàn)最窄正脈沖或最窄負(fù)脈沖,得到的txbit等于t1bit,那么使用txbit計(jì)算波特率是可靠的;待測(cè)系統(tǒng)通信過(guò)程中未出現(xiàn)最窄正脈沖或最窄負(fù)脈沖,但系統(tǒng)通信過(guò)程中出現(xiàn)的脈沖寬度的最大公約數(shù)為最窄脈沖寬度,如待測(cè)系統(tǒng)處出現(xiàn)了2t1bit、3t1bit脈沖時(shí)間或者待測(cè)系統(tǒng)出現(xiàn)了4t1bit
熱門(mén)點(diǎn)擊
- Broadcom推出BCM4716/17/1
- 博通發(fā)布為USB無(wú)線網(wǎng)卡設(shè)計(jì)的單芯片雙頻80
- Connet One推出用于M2M的小外形因
- Maxim推出基于OFDM的電力線通信調(diào)制解
- 2G/3G RAN承載網(wǎng)解決方案
- 英飛凌推出面向VoIP基站的單芯片CAT-i
- GPRS DT/CQT測(cè)試中異常問(wèn)題分析
- 廣州致遠(yuǎn)電子提供DC2500V電氣隔離的CT
- 串行通信波特率的自動(dòng)識(shí)別
- u-blox推出TIM-4R航位推算GPS模
推薦技術(shù)資料
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車(chē)用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究