0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

波特率自動(dòng)檢測的識(shí)別方法及無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)及應(yīng)用

牽手一起夢 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-01-16 09:30 ? 次閱讀

1、 模塊總體結(jié)構(gòu)

基于nRF401無線數(shù)據(jù)傳輸器件的數(shù)傳模塊總體硬件結(jié)構(gòu)如圖1所示,主要由微控制器藍(lán)牙芯片及其相應(yīng)的外圍電路組成,能自動(dòng)完成波特率識(shí)別,并進(jìn)行數(shù)據(jù)的編碼處理,給用戶提供了一個(gè)透明的數(shù)據(jù)接口。微控制器選用Atmel公司推出的可在線編程單片機(jī)AT89S51,便于以后軟件的升級(jí)。通過對發(fā)送數(shù)據(jù)是否需要曼徹斯特編碼、所需外圍元件的數(shù)量、功耗及發(fā)射功率等方面的因素綜合比較,選用nRF40l作為無線數(shù)傳器件。

nRF401是單片無線收發(fā)器件,采用藍(lán)牙核心技術(shù)設(shè)計(jì),內(nèi)部集成高頻發(fā)射、高頻接收、PLL合成、FSK調(diào)制、FSK解調(diào)、多頻道切換等諸多功能和外圍部件協(xié)議,是目前集成度最高的無線數(shù)傳產(chǎn)品,也是唯一可以直接連接微控制器串口進(jìn)行異步數(shù)據(jù)傳輸且無需曼徹斯特編碼的無線收發(fā)器。nRF401發(fā)射功率最大為10 mW,工作電壓為2.7 V~5 V,發(fā)射電流為8 mA~30 mA,接收電流約10 mA,待機(jī)電流為8 μA,靈敏度為-105 dBm,采用20引腳8 mmx7 mm的SOIC封裝。所需外部元件很少,僅外接一個(gè)晶體和幾只阻容、電感元件,無需調(diào)試,傳輸速率最高達(dá)19.2 kb/s,工作頻段為433/434 MHz,有兩個(gè)信道,調(diào)制方式為FSK。

nRF401有5個(gè)端口與微控制器相關(guān):DIN和DOUT用于異步串行通信,DIN的數(shù)據(jù)方向?yàn)槲⒖刂破鞯絥RF40l,DOUT相反;CS選擇工作頻段,CS=0時(shí)頻段為433.92 MHz,CS=1時(shí)為434.33 MHz,在該模塊中將CS引腳引出,方便用戶控制,在一個(gè)頻段無法工作時(shí),可以設(shè)置為另一個(gè)工作頻段,提高了系統(tǒng)的抗干擾能力;PWR_UP用于節(jié)電控制。PWR_UP=0時(shí)為掉電(節(jié)電)模式,PWR_UP=1時(shí)為上電(工作)模式,在該模塊中同樣將其引出,在不需要無線發(fā)射和接收時(shí),用戶可將器件設(shè)置為節(jié)電模式以降低系統(tǒng)的功耗;TXEN選擇發(fā)射或接收狀態(tài),TXEN=0時(shí)為接收,TXEN=1時(shí)為發(fā)送。

PCB布局和電源去耦設(shè)計(jì)對于RF射頻電路獲得較好的性能是必要的,電路板采用1.6mm厚FR4板材的兩層PCB,底層覆銅面,并在元件層空白區(qū)覆銅,多打通孔連接上下層,銅面與地線相連,天線下底層不覆銅,VSS直接與銅層連接,并保證關(guān)鍵元件充分接地。所有開關(guān)數(shù)字信號(hào)和控制信號(hào)都不能經(jīng)過PLL環(huán)路濾波器元件和VCO電感附近。直流供電在離VDD引腳盡可能近的地方用高性能的電容去耦,去耦使用一只小電容(0.01μF)和一只大電容(2.2μF)并聯(lián),避免較長的電源走線。

波特率自動(dòng)檢測的識(shí)別方法及無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)及應(yīng)用

2 、硬件設(shè)計(jì)及軟件實(shí)現(xiàn)

2.1 微控制器與nRF401接口設(shè)計(jì)

圖2為微控制器ATr89S51與nRF401的接口電

波特率自動(dòng)檢測的識(shí)別方法及無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)及應(yīng)用

路,nRF401只需10個(gè)左右的元件即可實(shí)現(xiàn)數(shù)據(jù)收發(fā),應(yīng)用極其方便。其PSEN為數(shù)據(jù)收發(fā)選擇端,當(dāng)設(shè)定為發(fā)送模塊時(shí),PSEN接為高電平,同時(shí),DIN引腳與微控制器的TX端相連,微控制器的RXD端作為預(yù)留接口與外部主控單片機(jī)的TXD相連:若設(shè)計(jì)為接收模塊,則PSEN接低電平,同時(shí),DOUT引腳與微控制器的RX端相連,RXD引腳與外部微控制器的TXD引腳相連。模塊與外部單片機(jī)的通訊波特率為自動(dòng)檢測方式,受nRF401通訊速率的限制。該模塊可以工作在1 200 b/s~19.2 kb/s之間。模塊上預(yù)留ICSP接口,可以系統(tǒng)在線編程。方便程序升級(jí)。還同時(shí)具有良好的防竊密功能,不易破解。

2.2 串口模擬及波特率自適應(yīng)的實(shí)現(xiàn)

對于模塊上的片上主控單片機(jī)AT89S51而言,既要控制nRF401完成與外界的數(shù)據(jù)交換。同時(shí)自身又必須受控于模塊外部的主控單片機(jī),因此。AT89S51必須能同時(shí)與nRF401及片外主控單片機(jī)通訊,但AT89S51只有一個(gè)UART,無法滿足要求,為解決這一矛盾,通常的方法是擴(kuò)展一片8251或8250通用同步/異步接收發(fā)器(USART),但需額外占用單片機(jī)I/O資源,增加了系統(tǒng)的成本,同時(shí)也增大了PCB板的布局面積。本系統(tǒng)則采用單片機(jī)普通I/O口模擬串行口,利用該方法還可擴(kuò)展多個(gè)外部串行端口,實(shí)現(xiàn)多機(jī)通信。

利用普通I/O口模擬串口,必須首先確定串口的通信速率即波特率,在本系統(tǒng)中,該模塊設(shè)計(jì)是波特率為1 200 b/s~19.2 kb/s自適應(yīng)式的通信模塊,使自身的波特率隨主控單元的 調(diào)整而自動(dòng)調(diào)整,系統(tǒng)適應(yīng)性更強(qiáng),更具智能化,因此首先必須解決好波特率自動(dòng)檢測與識(shí)別的問題。

2.2.1 波特率自動(dòng)檢測識(shí)別的實(shí)現(xiàn)

常用的波特率自動(dòng)檢測方法主要有兩種:

(1)標(biāo)準(zhǔn)波特率窮舉法。

標(biāo)準(zhǔn)法特率窮舉法適用于主機(jī)側(cè)的波特率必須在有限的幾個(gè)固定數(shù)值之間變化。如300b/s~9.6 kb/s之間的標(biāo)準(zhǔn)值;且從機(jī)側(cè)的工作振蕩頻率已知且穩(wěn)定。從機(jī)啟動(dòng)通信程序后,逐個(gè)嘗試以不同的波特率接收主機(jī)發(fā)出的特定字符,直到能正確接收為止。因此,該方法的運(yùn)用具有一定的局限性。

(2) 碼元寬度實(shí)時(shí)檢測法。

該方法是先通過單片機(jī)的定時(shí)器測量RX引腳上輸人數(shù)據(jù)的碼元寬度,即機(jī)器周期的計(jì)數(shù)值,之后用軟件計(jì)算出波特率發(fā)生寄存器的值。該方法由于適用范圍廣、操作靈活,因而應(yīng)用較為普遍。

本系統(tǒng)首先用碼元寬度實(shí)時(shí)檢測法確定主機(jī)的波特率,之后從機(jī)自身進(jìn)行相應(yīng)設(shè)置。就理論而言,只要能夠測出一個(gè)碼元的寬度就能確定數(shù)據(jù)傳輸?shù)牟ㄌ芈?,但在?shí)際測量過程中,為保證測量的準(zhǔn)確性,通常采取測量連續(xù)8個(gè)碼元寬度的方法。這里采用了較為常用的異步串行通信數(shù)據(jù)格式,即1個(gè)起始位、8個(gè)數(shù)據(jù)位、無校驗(yàn)、1個(gè)停止位。發(fā)送時(shí)低位數(shù)據(jù)在前,高位在后,因此連續(xù)8個(gè)碼元寬度的時(shí)間可以通過在主機(jī)側(cè)發(fā)0x80H的方式實(shí)現(xiàn),其波形如圖3所示。起始位加7個(gè)碼元寬度的低電平,恰好構(gòu)成8個(gè)脈寬的低電平。單片機(jī)采用串口中斷的方式接收數(shù)據(jù),當(dāng)有數(shù)據(jù)到達(dá)時(shí),打開定時(shí)器,同時(shí)不斷查詢接收引腳的狀態(tài),當(dāng)RXD變?yōu)楦唠娖胶笸V褂?jì)數(shù),這樣單片機(jī)就可以測量出低電平持續(xù)的寬度。

波特率自動(dòng)檢測的識(shí)別方法及無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)及應(yīng)用

設(shè)主機(jī)側(cè)的波特率為BPS,其值未知,則此時(shí)連續(xù)8個(gè)碼元的寬度計(jì)算公式為:

設(shè)模塊內(nèi)AT89S51單片機(jī)的工作頻率為fosc,用定時(shí)器1方式2常數(shù)自動(dòng)裝入方式產(chǎn)生波特率,串行口工作在方式1,此時(shí)串口的波特率由定時(shí)器T1的溢出率和SMOD位同時(shí)決定。即:

當(dāng)T1用作波特率發(fā)生器時(shí),TL1用作計(jì)數(shù)器,而自動(dòng)重裝的值放在TH1內(nèi),設(shè)初始值為X,則每“256-X”個(gè)機(jī)器周期,定時(shí)器T1就會(huì)產(chǎn)生一次溢出。為了避免因溢出而產(chǎn)生不必要的中斷,此時(shí)禁止T1中斷。AT89S51內(nèi)部機(jī)器周期為振蕩周期的12分頻,因此,定時(shí)器T1的溢出周期為:

將式(3)代入式(2)得出此時(shí)的波特率為:

設(shè)此時(shí)模塊的波特率與主機(jī)側(cè)的波特率相等,即:

設(shè)AT89S51內(nèi)部定時(shí)器T1測連續(xù)8個(gè)碼元計(jì)數(shù)值為M,由于是對其內(nèi)部的機(jī)器周期計(jì)數(shù),且機(jī)器周期是內(nèi)部振蕩周期的12分頻,所以,總數(shù)為M的機(jī)器周期代表的實(shí)際時(shí)間是:

很明顯,式(6)與式(7)應(yīng)相等,因此有如下公式成立:

由上式則可得出,單片機(jī)定時(shí)器T1初值在波特率自適應(yīng)情況下的計(jì)算公式:

由式(9)可以看出,其初值不依賴于單片機(jī)的工作頻率,因此,只要單片機(jī)的工作頻率相對穩(wěn)定即可,對具體數(shù)值無要求。

另外,需要說明的是,對于串行異步通信而言,通信雙方的波特率不必嚴(yán)格相等,只要雙方的差別在一定的范圍之內(nèi),就可實(shí)現(xiàn)準(zhǔn)確通信。

2.2.2 軟件模擬串口的實(shí)現(xiàn)

當(dāng)波特率確定以后,即可用軟件模擬實(shí)現(xiàn)串行口。對單片機(jī)而言,要實(shí)現(xiàn)模擬串口的關(guān)鍵是必須解決好時(shí)序問題,不能造成通信過程中的數(shù)據(jù)丟失,為此,采用單片機(jī)的外部中斷0口的下降沿觸發(fā)功能,模擬串口數(shù)據(jù)接收線RXD,P1.2口模擬串口數(shù)據(jù)發(fā)送線TXD,定時(shí)器0以確定中斷方式對接收碼元采樣或發(fā)送數(shù)據(jù)流,實(shí)現(xiàn)一個(gè)軟件的串口。

對于軟件模擬串口而言,關(guān)鍵是必須解決好時(shí)序問題。本系統(tǒng)充分利用了nRF40l器件半雙工通信的特點(diǎn),即數(shù)據(jù)發(fā)送和接收不同時(shí)進(jìn)行,成功實(shí)現(xiàn)了一個(gè)軟件串行口。串行數(shù)據(jù)發(fā)送的實(shí)現(xiàn)相對較為簡單,只需利用定時(shí)器讓發(fā)送出去的碼元維持一定的時(shí)間寬度即可,實(shí)現(xiàn)異步串行接收的關(guān)鍵是起始位的檢測信息位的準(zhǔn)確提取。任何時(shí)候數(shù)據(jù)傳送都可能發(fā)生,故要求接收方必須能夠及時(shí)準(zhǔn)確地接收數(shù)據(jù),而通信過程中沒有同步信號(hào),因此,串行數(shù)據(jù)的提取相對而言具有一定的難度。所以,文中采用AT89S51的外部中斷0口模擬RXD,并設(shè)置其中斷方式為邊沿觸發(fā),平常保持為高電平,起始位為低電平,因此,當(dāng)有數(shù)據(jù)到達(dá)時(shí)產(chǎn)生中斷,根據(jù)波特率設(shè)置的定時(shí)時(shí)間間隔進(jìn)行數(shù)據(jù)采樣,即可實(shí)現(xiàn)串行數(shù)據(jù)的接收。

3結(jié)束語

本文設(shè)計(jì)的無線數(shù)據(jù)傳輸模塊已成功運(yùn)用于“磁柵式浮動(dòng)檢測儀”項(xiàng)目中,經(jīng)實(shí)踐檢驗(yàn),系統(tǒng)工作穩(wěn)定可靠,具有一定的工程實(shí)用價(jià)值。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7454

    瀏覽量

    150855
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    114

    文章

    5751

    瀏覽量

    169596
  • 無線
    +關(guān)注

    關(guān)注

    31

    文章

    5417

    瀏覽量

    172971
收藏 人收藏

    評論

    相關(guān)推薦

    具有波特率自適應(yīng)功能的無線數(shù)據(jù)傳輸模塊設(shè)計(jì)怎么實(shí)現(xiàn)?

    具有波特率自適應(yīng)功能的無線數(shù)據(jù)傳輸模塊設(shè)計(jì)怎么實(shí)現(xiàn)?
    發(fā)表于 06-01 06:40

    自動(dòng)檢測單片機(jī)80C51串行通訊時(shí)的波特率

    自動(dòng)檢測80C51 串行通訊中的波特率本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測波特率方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字
    發(fā)表于 06-05 10:54 ?61次下載

    串行通信波特率的一種自動(dòng)檢測方法

    串行通信波特率的一種自動(dòng)檢測方法摘 要:給出了一種利用接收到的字符信息檢測串行終端通信波特率方法
    發(fā)表于 06-22 19:17 ?27次下載

    自動(dòng)檢測80C51串行通訊中的波特率

    自動(dòng)檢測80C51串行通訊中的波特率:本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測波特率方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字
    發(fā)表于 12-03 22:58 ?48次下載

    [圖文]數(shù)字通信中的數(shù)據(jù)傳輸速率、波特率、符號(hào)

    數(shù)字通信中的數(shù)據(jù)傳輸速率、波特率、符號(hào)??? 在數(shù)字通信中的數(shù)
    發(fā)表于 04-16 18:28 ?2393次閱讀
    [圖文]數(shù)字通信中的<b class='flag-5'>數(shù)據(jù)傳輸</b>速率、<b class='flag-5'>波特率</b>、符號(hào)<b class='flag-5'>率</b>

    串行通信波特率的一種自動(dòng)檢測方法

    串行通信波特率的一種自動(dòng)檢測方法 給出了一種利用接收到的字符信息檢測串行終端通信波特率方法
    發(fā)表于 05-26 16:12 ?1836次閱讀
    串行通信<b class='flag-5'>波特率</b>的一種<b class='flag-5'>自動(dòng)檢測</b><b class='flag-5'>方法</b>

    現(xiàn)場總線制數(shù)據(jù)傳輸儀表精度檢測系統(tǒng)設(shè)計(jì)

    傳統(tǒng)自動(dòng)檢測系統(tǒng)存在自動(dòng)檢測速率慢、準(zhǔn)確低、管線成本較高等問題,無法達(dá)到低成本、精準(zhǔn)檢測的標(biāo)準(zhǔn)。為此,對現(xiàn)場總線制數(shù)據(jù)傳輸儀表精度
    發(fā)表于 04-26 11:35 ?0次下載
    現(xiàn)場總線制<b class='flag-5'>數(shù)據(jù)傳輸</b>儀表精度<b class='flag-5'>檢測</b>系統(tǒng)設(shè)計(jì)

    80C51單片機(jī)進(jìn)行串行通訊應(yīng)用中自動(dòng)檢測波特率方法詳細(xì)介紹

    本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測波特率方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字符用于測量波特率。
    發(fā)表于 11-28 16:54 ?9次下載
    80C51單片機(jī)進(jìn)行串行通訊應(yīng)用中<b class='flag-5'>自動(dòng)檢測</b><b class='flag-5'>波特率</b>的<b class='flag-5'>方法</b>詳細(xì)介紹

    波特率是如何工作的

    在本文中,我們將探討數(shù)據(jù)傳輸速率的挑戰(zhàn),并討論波特率在舊通信系統(tǒng)中的作用。
    的頭像 發(fā)表于 04-29 15:16 ?2235次閱讀
    <b class='flag-5'>波特率</b>是如何工作的

    波特率了解無線傳輸

    傳輸速率是指無線模塊傳輸數(shù)據(jù)的速度,當(dāng)傳輸速率越高時(shí),傳輸
    的頭像 發(fā)表于 03-21 10:55 ?1005次閱讀

    串口傳輸速率低于波特率會(huì)怎么樣 串口傳輸速率低于波特率的原因

    低于波特率傳輸速率可能導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。由于數(shù)據(jù)傳輸過程中受到時(shí)鐘同步和波特率控制的影響,如
    的頭像 發(fā)表于 08-25 15:24 ?2587次閱讀

    串口傳輸速率低于波特率的原因和解決方法

    數(shù)據(jù)傳輸錯(cuò)誤:低于波特率傳輸速率可能導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。由于數(shù)據(jù)傳輸過程中受到時(shí)鐘同步和
    的頭像 發(fā)表于 08-28 10:27 ?3087次閱讀

    什么是串口波特率?串口通信為什么要設(shè)置波特率?

    在電子設(shè)備的世界中,數(shù)據(jù)是通過各種方式進(jìn)行傳輸的。其中,串口通信是一種常見的數(shù)據(jù)傳輸方式,它以其簡單、可靠和廣泛的特性,成為了電子設(shè)備間通信的重要手段。而在串口通信中,有一個(gè)非常重要的參數(shù)——
    的頭像 發(fā)表于 11-03 08:21 ?4630次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口通信為什么要設(shè)置<b class='flag-5'>波特率</b>?

    什么是串口波特率?串口通信為什么要設(shè)置波特率?

    為單位,表示每秒鐘傳輸波特數(shù)。 串口通信是一種通過串行數(shù)據(jù)線一比特接一比特地進(jìn)行數(shù)據(jù)傳輸的通信方式。它通常使用一對數(shù)據(jù)線進(jìn)行
    的頭像 發(fā)表于 01-22 16:10 ?1903次閱讀

    波特率與比特有何關(guān)系 波特率數(shù)據(jù)傳輸速率的關(guān)系

    狀態(tài)變化的次數(shù),即每秒鐘傳輸的符號(hào)數(shù)。它通常用于衡量調(diào)制解調(diào)器、無線通信設(shè)備等的數(shù)據(jù)傳輸速率。波特率的單位是波特(Baud),1
    的頭像 發(fā)表于 10-18 14:55 ?340次閱讀