• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > nRF905模塊和SPI接口的點(diǎn)對(duì)點(diǎn)無(wú)線通信系統(tǒng)

    nRF905模塊和SPI接口的點(diǎn)對(duì)點(diǎn)無(wú)線通信系統(tǒng)

    作者: 時(shí)間:2007-09-21 來(lái)源:網(wǎng)絡(luò) 收藏
    摘要 介紹一種利用無(wú)線射頻收發(fā)囂和單片機(jī)實(shí)現(xiàn)的無(wú)線數(shù)據(jù)傳輸;給出單片機(jī)PICl6F876控制通過(guò)口進(jìn)行數(shù)據(jù)交換,以及它們之間電路連接和軟件設(shè)計(jì)方法。該數(shù)據(jù)傳輸速度快、可靠性高、可移植性強(qiáng),可廣泛應(yīng)用于各類無(wú)線數(shù)據(jù)通信中。
    關(guān)鍵詞 單片機(jī)PICl6F876 無(wú)線數(shù)據(jù)通信

    引 言
    在某些環(huán)境監(jiān)測(cè)、安防警報(bào)等環(huán)境下,不便進(jìn)行有線線路的鋪設(shè),而采用無(wú)線數(shù)據(jù)通信方式。采用一般的無(wú)線傳輸方式時(shí)可能因?yàn)榄h(huán)境噪聲大,干擾信號(hào)強(qiáng)而導(dǎo)致接收數(shù)據(jù)的準(zhǔn)確性很低。針對(duì)這種情況,設(shè)計(jì)一種低成本、高準(zhǔn)確率的無(wú)線數(shù)據(jù)傳輸――基于PICl6F876(簡(jiǎn)稱為“16F876”)的SPI和nRF905模塊的點(diǎn)對(duì)點(diǎn)系統(tǒng)。利用16F876和nRF90S模塊直接進(jìn)行SPI數(shù)據(jù)交換,時(shí)序同步性好,程序編寫(xiě)簡(jiǎn)單。16F876通過(guò)相應(yīng)的I/O口連接到編程器,可直接進(jìn)行在線調(diào)試。鑒于環(huán)境中噪聲大,信號(hào)干擾大的特點(diǎn),采用的nRF905模塊引入自動(dòng)重發(fā),高抗干擾GFSK調(diào)制和最高16位CRC校驗(yàn)機(jī)制,確保了數(shù)據(jù)傳輸?shù)目煽啃浴?/P>

    1 硬件電路規(guī)劃
    16P876、nRF905模塊及編程器連接頭J1之間的電路連接,220V-5V電路實(shí)現(xiàn),5V-3V電壓轉(zhuǎn)換電路如圖1、圖2、圖3所示。

    在圖l中,單片機(jī)16F876輸入/輸出口與nRF905模塊相應(yīng)連接情況:RC7~nRF905模塊時(shí)鐘分頻輸出,RC6~nRF905模塊地址匹配輸出AM,RC5~MISO,RC4~MOSI,RC3~SCK,RC2~CSN,RB7&RB6&RB3~J1編程器連接線,RB5~nRF905模塊數(shù)據(jù)就緒輸出DR,RB2~PWR,RBl~TXEN,RB0~TRX_CE。單片機(jī)通過(guò)RB7、RB6和RB3與編程器相連,可進(jìn)行在線編程;由RC5輸出數(shù)據(jù)到nRF905模塊,由RC4從nRF905模塊輸入數(shù)據(jù)。由一個(gè)4 MHz陶瓷晶體振蕩器為單片機(jī)提供時(shí)鐘輸入。16F876的工作電壓是4.5~5.5V,通過(guò)圖2中的DBA元件實(shí)現(xiàn)從220V市電到5V電壓的轉(zhuǎn)換。由于nRF905模塊的工作電壓是1.9~3.6V,需從5V電壓轉(zhuǎn)換得到一個(gè)符合nRF905模塊正常工作的穩(wěn)定電壓。考慮使用分壓電阻與3V穩(wěn)壓管串聯(lián)分壓,從穩(wěn)壓管兩端可得到一個(gè)穩(wěn)定的3V電壓輸出,如圖3所示。

    2 軟件設(shè)計(jì)
    考慮到nRF905模塊內(nèi)置完整的通信協(xié)議和CRC,軟件設(shè)計(jì)工作主要集中在如何實(shí)現(xiàn)對(duì)nRF905模塊的有效初始配置,以及16F876與nRF905模塊之間SPI通信的實(shí)現(xiàn)。其中須保證16F876與nRF905模塊時(shí)序的一致,并充分考慮nRF905模塊對(duì)時(shí)序的要求。SPI時(shí)序如圖4所示。

    對(duì)應(yīng)程序設(shè)計(jì):

    nRF905模塊存在4種工作模式:掉電和SPI編程模式、待機(jī)和SPI編程模式、發(fā)射模式、接收模式。


    通過(guò)對(duì)16F876相應(yīng)輸出口高低電平的轉(zhuǎn)換,可控制nRF905模塊工作模式的變化。將單片機(jī)的SPI接口與nRF905模塊的相應(yīng)SPI口互連,實(shí)現(xiàn)16F876與nRF905模塊之間的數(shù)據(jù)傳遞或?qū)崿F(xiàn)16F876向nRF905模塊發(fā)出控制命令;在編程模式下,可將預(yù)配置的命令或數(shù)據(jù)送入單片機(jī)收發(fā)緩沖器SSPBUF中,以16F876作為主控模式,并提供SPI通信必需的SCK時(shí)鐘,nRF905模塊作為從動(dòng)模式,在SCK上升沿,雙方進(jìn)行數(shù)據(jù)傳遞,啟動(dòng)SCK后可將單片機(jī)數(shù)據(jù)逐位移入nRF905模塊中,以完成對(duì)其初始配置。

    參照nRF905模塊數(shù)據(jù)手冊(cè)進(jìn)行初始配置:nRF905模塊的發(fā)射功率,工作頻段,發(fā)送數(shù)據(jù)寬度,發(fā)送數(shù)據(jù)地址,接收數(shù)據(jù)寬度,接收數(shù)據(jù)地址,CRC校驗(yàn)等。若該nRF905模塊作為發(fā)射部分,則將已采集并存儲(chǔ)在單片機(jī)中的數(shù)據(jù)送入nRF905模塊,以備發(fā)射。


    設(shè)計(jì)一個(gè)SPI通信模塊程序進(jìn)行循環(huán)調(diào)用,以簡(jiǎn)化程序設(shè)計(jì),提高可讀性。


    程序流程如圖5所示。

    結(jié)語(yǔ)
    本無(wú)線數(shù)據(jù)傳輸系統(tǒng)已成功應(yīng)用于無(wú)線抄表項(xiàng)目之中,在實(shí)際的工作環(huán)境運(yùn)行半年多時(shí)問(wèn),情況良好。經(jīng)過(guò)現(xiàn)場(chǎng)測(cè)試,在空曠地,無(wú)須另加功放或外接天線,的有效半徑約100m。本系統(tǒng)除可應(yīng)用在無(wú)線抄表領(lǐng)域外,還可用于環(huán)境監(jiān)測(cè)、門(mén)禁系統(tǒng)、無(wú)線遙控系統(tǒng)等。
    如需全部源代碼,可E-mail致gerentlee@163.com索取。



    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 溆浦县| 陆良县| 屯留县| 蓬莱市| 巩义市| 渭南市| 沁阳市| 封丘县| 延吉市| 林州市| 华阴市| 舟曲县| 襄垣县| 日照市| 吉木萨尔县| 垣曲县| 岑溪市| 崇义县| 安西县| 淳安县| 烟台市| 昭觉县| 林芝县| 左权县| 鲜城| 哈巴河县| 洛宁县| 连城县| 大港区| 龙江县| 葵青区| 乡宁县| 马尔康县| 永城市| 灵丘县| 北流市| 抚顺市| 宁城县| 华池县| 浑源县| 普安县|