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

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

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

基于nRF401芯片和AT89S51芯片實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:鹿?jié)芍蓿w國(guó)豪 ? 2021-05-27 10:17 ? 次閱讀

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

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

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

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

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

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

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

微控制器AT89S51與藍(lán)牙芯片nRF401的接口電路如圖2所示。nRF401芯片只需10個(gè)左右的元件即實(shí)現(xiàn)了數(shù)據(jù)收發(fā)功能,應(yīng)用極其方便。其TXEN端為數(shù)據(jù)收發(fā)選擇端,當(dāng)設(shè)定為發(fā)送模塊時(shí),將其置為高電平;同時(shí),DIN引腳與微控制器的TXD端相連,微控制器的RXD端作為預(yù)留接口與外部主控單片機(jī)的TXD相連。若設(shè)計(jì)為接收模塊,則將TXEN端置為低電平;同時(shí),DOUT引腳與微控制器的RXD端相連,微控制器的RXD引腳與外部主控單片機(jī)的TXD引腳相連。模塊與外部單片機(jī)的通信波特率為自動(dòng)檢測(cè)方式,受nRF401芯片通信速率的限制,可以工作在1 200~19 200 bps。模塊上預(yù)留ICSP接口,可在系統(tǒng)編程,方便程序的升級(jí);同時(shí)具有良好的防竊密功能,不易破解。

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

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

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

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

波特率自動(dòng)檢測(cè)識(shí)別的常用方法主要有兩種。

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

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

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

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

在本系統(tǒng)中用碼元寬度實(shí)時(shí)檢測(cè)法確定出主機(jī)的波特率,而后從機(jī)自身進(jìn)行相應(yīng)的設(shè)置。理論上,只要能夠測(cè)出一個(gè)碼元的寬度就能確定出數(shù)據(jù)傳輸?shù)牟ㄌ芈?;但在?shí)際測(cè)量過(guò)程中,為保證測(cè)量的準(zhǔn)確性,通常采取測(cè)量連續(xù)8個(gè)碼元寬度的方法。這里,采用了較為常用的異步串行通信數(shù)據(jù)格式(即1個(gè)起始位、8個(gè)數(shù)據(jù)位、無(wú)校驗(yàn)、1個(gè)停止位,發(fā)送時(shí)低位數(shù)據(jù)在前,高位在后),因此連續(xù)8個(gè)碼元寬度的時(shí)間可以通過(guò)在主機(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ī)就可以測(cè)量出此低電平持續(xù)的寬度。

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

基于nRF401芯片和AT89S51芯片實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)

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

o4YBAGCvAaKAcfOaAAAYDH7AMzc302.png

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

o4YBAGCvAZuAT2RNAABzRDoJwuM655.png

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

pIYBAGCvAZKAQiSgAABPR8nYtM8503.png

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

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

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

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

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

結(jié) 語(yǔ)

基于本思想設(shè)計(jì)的無(wú)線數(shù)據(jù)傳輸模塊,已成功地運(yùn)用于“磁柵式浮動(dòng)檢測(cè)儀”項(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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7454

    瀏覽量

    150855
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50206

    瀏覽量

    420940
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8447

    瀏覽量

    150723
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種基于nRF401無(wú)線通訊系統(tǒng)設(shè)計(jì)

    應(yīng)用中有廣泛的市場(chǎng)。在眾多的無(wú)線收發(fā)芯片中,nRF401 以其成本低、可靠性高、外圍設(shè)計(jì)簡(jiǎn)單廣受歡迎,然而由于通信空間的復(fù)雜性,無(wú)線通訊系統(tǒng)
    發(fā)表于 07-16 06:52

    采用nRF401實(shí)現(xiàn)通用智能無(wú)線收發(fā)裝置

    謝錦沐 吳功平 蔣錫健 祝魯金 目前,在各種儀器儀表數(shù)據(jù)采集系統(tǒng),遙控測(cè)控系統(tǒng)中都需要嵌入無(wú)線數(shù)據(jù)傳輸的裝置,本文介紹了一種通過(guò)單片機(jī)w77
    發(fā)表于 07-26 06:32

    基于藍(lán)牙技術(shù)的無(wú)線收發(fā)芯片nRF401

    介紹基于藍(lán)牙技術(shù)的無(wú)線收發(fā)芯片 nRF401的特點(diǎn)、內(nèi)部結(jié)構(gòu)與功能參數(shù),論述應(yīng)用設(shè)計(jì)的技術(shù)要點(diǎn)。
    發(fā)表于 04-07 09:43 ?51次下載

    無(wú)線收發(fā)芯片nRF401在施工升降機(jī)控制系統(tǒng)中的應(yīng)用

    nRF401 為單片無(wú)線收發(fā)芯片,施工升降機(jī)是高層建筑施工必備的運(yùn)輸設(shè)備之一,施工升降機(jī)自動(dòng)控制系統(tǒng)包括樓層呼叫信號(hào)系統(tǒng)和吊籠主控
    發(fā)表于 06-17 07:40 ?55次下載

    基于nRF401無(wú)線多點(diǎn)數(shù)據(jù)采集系統(tǒng)

    本文設(shè)計(jì)了一個(gè)基于nRF401 無(wú)線數(shù)傳芯片的通用無(wú)線工業(yè)數(shù)據(jù)采集系統(tǒng)。整個(gè)
    發(fā)表于 09-01 10:52 ?78次下載

    基于USB接口的無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)

    本文提出了一種運(yùn)用USB接口芯片PDIUSBD12、89C52微處理器、射頻收發(fā)器nRF401構(gòu)建的無(wú)線USB數(shù)據(jù)傳輸接口,并利用該接口成功
    發(fā)表于 09-24 15:48 ?91次下載

    51單片機(jī)控制nrf401程序

    51單片機(jī)控制nrf401 C51程序無(wú)線識(shí)別.asm無(wú)線收發(fā)實(shí)驗(yàn).asm
    發(fā)表于 07-10 15:01 ?81次下載

    AT89C51nRF401芯片在RFID系統(tǒng)中的應(yīng)用

    AT89C51nRF401芯片在RFID系統(tǒng)中的應(yīng)用 1 RFID系統(tǒng)簡(jiǎn)述 RFID即為非接觸的識(shí)別
    發(fā)表于 11-13 19:14 ?1557次閱讀
    AT<b class='flag-5'>89C51</b>與<b class='flag-5'>nRF401</b><b class='flag-5'>芯片</b>在RFID<b class='flag-5'>系統(tǒng)</b>中的應(yīng)用

    nrf401無(wú)線收發(fā)芯片應(yīng)用電路圖

    nrf401無(wú)線收發(fā)芯片應(yīng)用電路圖 在本設(shè)計(jì)中,無(wú)線射頻模塊采用挪威nordic公司推出的nrf401
    發(fā)表于 12-14 14:10 ?3468次閱讀
    <b class='flag-5'>nrf401</b><b class='flag-5'>無(wú)線</b>收發(fā)<b class='flag-5'>芯片</b>應(yīng)用電路圖

    基于SPI總線的無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)

    基于SPI總線的無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)   摘要: 通過(guò)基于SPI總線的無(wú)線數(shù)據(jù)通信設(shè)備,利用無(wú)線
    發(fā)表于 03-13 11:42 ?3769次閱讀
    基于SPI總線的<b class='flag-5'>無(wú)線</b><b class='flag-5'>數(shù)據(jù)傳輸</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    NRF401無(wú)線收發(fā)芯片的長(zhǎng)距離通信設(shè)計(jì)

    NRF401系列高速單片無(wú)線收發(fā)芯片為短距離無(wú)線數(shù)傳應(yīng)用提供了較好的解決辦法,在某些應(yīng)用中需要盡可能長(zhǎng)的通信距離,本文探討影響NRF401
    發(fā)表于 03-21 13:09 ?203次下載

    基于RF芯片nRF401無(wú)線數(shù)傳模塊設(shè)計(jì)

    所設(shè)計(jì)的無(wú)線數(shù)傳模塊由單片射頻收發(fā)芯片NRF401、AT89C52微控制器和MAX3316接口芯片構(gòu)成,工作在433.92/434.33MH
    發(fā)表于 09-16 12:08 ?4054次閱讀

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

    基于nRF401無(wú)線數(shù)據(jù)傳輸器件的數(shù)傳模塊總體硬件結(jié)構(gòu)如圖1所示,主要由微控制器和藍(lán)牙芯片及其相應(yīng)的外圍電路組成,能自動(dòng)完成波特率識(shí)別,并進(jìn)行數(shù)據(jù)
    的頭像 發(fā)表于 01-16 09:30 ?5159次閱讀
    波特率自動(dòng)檢測(cè)的識(shí)別方法及<b class='flag-5'>無(wú)線</b><b class='flag-5'>數(shù)據(jù)傳輸</b>模塊的設(shè)計(jì)及應(yīng)用

    探究nRF401和AT89C2051的無(wú)線數(shù)字通信系統(tǒng)

    本文將論述基于nRF401無(wú)線收發(fā)芯片和AT89C2051微控制器芯片無(wú)線通信子
    發(fā)表于 05-26 16:27 ?1231次閱讀
    探究<b class='flag-5'>nRF401</b>和AT<b class='flag-5'>89</b>C2051的<b class='flag-5'>無(wú)線</b>數(shù)字通信<b class='flag-5'>系統(tǒng)</b>

    基于單片機(jī)和射頻芯片實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)

    數(shù)據(jù)傳輸系統(tǒng)的相關(guān)因素,如頻率選擇、抗多徑干擾、天線選擇、協(xié)議設(shè)計(jì)等,分析了在低功率、微型化無(wú)線數(shù)傳系統(tǒng)設(shè)計(jì)時(shí)對(duì)這些影響因素的具體解決思路。以單片機(jī)AT
    的頭像 發(fā)表于 06-14 11:38 ?3291次閱讀
    基于單片機(jī)和射頻<b class='flag-5'>芯片</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>無(wú)線</b><b class='flag-5'>數(shù)據(jù)傳輸</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)