基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)_第1頁
基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)_第2頁
基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)_第3頁
基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)_第4頁
基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 本科課程設(shè)計報告課 程 設(shè) 計 報 告學(xué) 院:專業(yè)名稱:學(xué)生姓名:指導(dǎo)教師:時 間:24課程設(shè)計任務(wù)書題目:基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)一、設(shè)計內(nèi)容1.制作實(shí)物實(shí)現(xiàn)計算機(jī)之間的無線通信。2.設(shè)計硬件PCB電路板,并焊接,編寫程序,調(diào)試以實(shí)現(xiàn)指定的功能;編寫上位機(jī)界面,使得使用簡單,可操作性強(qiáng)。3.要求系統(tǒng)可靠、穩(wěn)定。 二、進(jìn)度要求1了解設(shè)計內(nèi)容2天2方案設(shè)計3天3系統(tǒng)設(shè)計4天4結(jié)果分析 2天6撰寫設(shè)計報告2天7匯報 1天學(xué) 生指導(dǎo)教師 目錄摘 要2引言31.課程設(shè)計目的32.方案設(shè)計42.1系統(tǒng)組成及功能概述42.2系統(tǒng)硬件設(shè)計62.2.1供電部分62.2.2 USB轉(zhuǎn)串口模塊72.

2、2.3 單片機(jī)系統(tǒng)92.2.4無線模塊102.3軟件設(shè)計112.3.1 SPI初始化程序設(shè)計112.3.2發(fā)送子程序設(shè)計122.3.3接收子程序設(shè)計122.3.4上位機(jī)程序設(shè)計133.實(shí)驗(yàn)結(jié)果及分析134.結(jié)束語145.參考文獻(xiàn)156.致謝157.附錄16摘 要本文給出了一種基于STM8系列單片機(jī)的無線通信系統(tǒng)的設(shè)計與實(shí)現(xiàn)方案,介紹了系統(tǒng)的結(jié)構(gòu)組成,介紹了單片機(jī)作為核心控制器是如何連接PC機(jī)和無線收發(fā)器的。單片機(jī)通過串口接收PC機(jī)發(fā)來的信息,通過校驗(yàn)數(shù)據(jù)接收是否丟包,然后通過SPI與無線模塊通信將數(shù)據(jù)發(fā)送出去。接收端接收到信息后再通過串口發(fā)給另外的PC機(jī)從而實(shí)現(xiàn)計算機(jī)之間的通信。實(shí)驗(yàn)結(jié)果表明,

3、該方案運(yùn)行穩(wěn)定,對實(shí)際的無線通信有參考價值。關(guān)鍵詞: 無線通信;STM8;NEF24L01基于單片機(jī)的計算機(jī)之間無線通信的實(shí)現(xiàn)引言無線通信在科學(xué)技術(shù)發(fā)展的今天已經(jīng)變得越來越重要,并且已滲透到社會的各個角落,有著廣闊的市場和業(yè)務(wù)需要。 目前主要的無線技術(shù)有:藍(lán)牙(Bluetooth),紅外數(shù)據(jù) 傳輸(IrDA),無線局域網(wǎng)(WiFi)等¨ 。Bluetooth是無線數(shù)據(jù)和語音傳輸?shù)拈_放式標(biāo)準(zhǔn),它將各種通信設(shè)備、計算機(jī)及其終端設(shè)備、各種數(shù)字?jǐn)?shù)據(jù)系統(tǒng)、甚至家用電器采用無線方式聯(lián)接起來。由于藍(lán)牙采用無線接口來代替有線電纜連接,具有很強(qiáng)的移植性,并且適用于多種場合,加上該技術(shù)功耗低、對人體危害

4、小,而且應(yīng)用簡單、容易實(shí)現(xiàn),所以易于推廣。但同時其應(yīng)用成本升高,普及難度增大,且通信速率較慢;IrDA是一種利用紅外線進(jìn)行點(diǎn)對點(diǎn)通信的技術(shù),是第一個實(shí)現(xiàn)無線個人局域網(wǎng)(PAN)的技術(shù),但它對于點(diǎn)對多點(diǎn)的通信顯得無能為力,且紅外技術(shù)只能在視線可以達(dá)到的范圍內(nèi)定向傳輸,中間不能有任何阻擋,同時要求通信設(shè)備的位置相對固定,這樣就無法應(yīng)用于移動設(shè)備;WiFi是以太網(wǎng)的一種無線擴(kuò)展,主要目的是提供WLAN接人,但由于其硬件實(shí)現(xiàn)需要很大的容納空間,且往往在商用計算機(jī)系統(tǒng)中實(shí)現(xiàn),這就限制了其在工業(yè)領(lǐng)域,尤其是在某些不依賴通用計算機(jī)的特殊工業(yè)場合的應(yīng)用。針對這些問題提出了一種功耗低、成本低且利于在嵌入式系統(tǒng)中

5、實(shí)現(xiàn)的通用無線通信系統(tǒng),它基于無需申請就可使用的2.4G ISM頻段,可廣泛適用于消費(fèi)類電子、無線遙控玩具、汽車用自動化、家庭自動化控制及建筑安全裝置等領(lǐng)域。1. 課程設(shè)計目的掌握了解單片機(jī)硬件的設(shè)計方法、單片機(jī)編程和SCI、SPI的通信原理。課程設(shè)計主要以制作實(shí)物為主,設(shè)計、制作、焊接和調(diào)試PCB電路板,編寫單片機(jī)程序和上位機(jī)程序,最后再綜合調(diào)試,完成基于單片機(jī)的計算機(jī)之間無線通信的整個設(shè)計。2. 方案設(shè)計2.1、系統(tǒng)組成及功能概述系統(tǒng)主要包括兩個分別具有收發(fā)功能的無線通信模塊,每個模塊均由單片機(jī)和無線收發(fā)模塊組成。系統(tǒng)的原理框圖如圖1所示,發(fā)送時,單片機(jī)接收到來自計算機(jī)的串口信息,經(jīng)過校驗(yàn)

6、后,通過SPI總線向RF寫入控制命令及所需發(fā)送的數(shù)據(jù),RF通過天線發(fā)送出去;接收時,單片機(jī)通過SPI總線讀取RF的工作狀態(tài),獲取芯片相關(guān)信息及接收到的數(shù)據(jù),再通過串口發(fā)送給計算機(jī)。兩個收發(fā)模塊之間相互通信,從而實(shí)現(xiàn)數(shù)據(jù)的無線傳輸。圖1.通信系統(tǒng)結(jié)構(gòu)圖在系統(tǒng)結(jié)構(gòu)中,單片機(jī)作為主控制器,需要完成數(shù)據(jù)的處理和對系統(tǒng)的控制。選用意法半導(dǎo)體公司的8位單片機(jī)STM8S103F3P6。STM8S103系列單片機(jī)具有高級STM8內(nèi)核,具有3級流水線的哈佛結(jié)構(gòu),內(nèi)核為擴(kuò)展指令集。具有更低的系統(tǒng)成本,高性能和高可靠性,16MHz CPU時鐘頻率,完善的文檔和多種開發(fā)工具選擇。其外設(shè)豐富,和本文中相關(guān)的外設(shè)有,帶有

7、32個中斷的嵌套中斷控制器 ,6個外部中斷向量,最多27個外部中斷;16位通用定時器,帶有3個捕獲/ 比較通道(IC、OC 或 PWM);帶有8位預(yù)分頻器的8位基本定時器;帶有同步時鐘輸出的UART;SPI接口最高到8Mbit/s;32腳封裝芯片上最多有28個I/O ,包括21個高吸收電流輸出非常強(qiáng)健的I/O 設(shè)計,對倒灌電流有非強(qiáng)的承受能力等。另外其使用簡單,2.95到5.5V工作電壓,靈活的時鐘控制,4個主時鐘源,帶有時鐘監(jiān)控的時鐘安全保障系統(tǒng),永遠(yuǎn)打開的低功耗上電和掉電復(fù)位等等。其完全能夠滿足本系統(tǒng)的設(shè)計需要。2.4G無線模塊用以實(shí)現(xiàn)無線通信的功能,通信的可靠性需要滿足要求。我們直接使用

8、一種2.4G無線收發(fā)模塊,其使用的是NRF24L01芯片。NRF24L01是一款工作在2.4-2.5GHz世界通用ISM頻段的單片收發(fā)芯片,無線收發(fā)器包括:頻率發(fā)生器 增強(qiáng)型 SchockBurstTM 模式控制器 功率放大器 晶體放大器 調(diào)制器 解調(diào)器 輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進(jìn)行設(shè)置極低的電流消耗,當(dāng)工作在發(fā)射模式下發(fā)射功率為6dBm時電流消耗為9.0mA 接受模式為12.3mA掉電模式和待機(jī)模式下電流消耗模式更低。其具有以下優(yōu)點(diǎn):1、支持六路通道的數(shù)據(jù)接收,低工作電壓:1.93.6V低電壓工作;2、高速率:2Mbps,由于空中傳輸時間很短,極大的降低了無線傳輸中的碰

9、撞現(xiàn)象(軟件設(shè)置1Mbps或者2Mbps的空中傳輸速率);3、多頻點(diǎn):125 頻點(diǎn),滿足多點(diǎn)通信和跳頻通信需要;4、超小型:內(nèi)置2.4GHz天線,體積小巧,15x29mm(包括天線);5、低功耗:當(dāng)工作在應(yīng)答模式通信時,快速的空中傳輸及啟動時間,極大的降低了電流消耗;6、低應(yīng)用成本:NRF24L01 集成了所有與RF協(xié)議相關(guān)的高速信號處理部分,比如:自動重發(fā)丟失數(shù)據(jù)包和自動產(chǎn)生應(yīng)答信號等,NRF24L01的SPI接口可以利用單片機(jī)的硬件SPI口連接或用單片機(jī)I/O口進(jìn)行模擬,內(nèi)部有FIFO可以與各種高低速微處理器接口,便于使用低成本單片機(jī)。單片機(jī)與無線收發(fā)模塊之間是通過SP

10、I通信實(shí)現(xiàn)通信的。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便。SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時)。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入)、SDO(數(shù)據(jù)輸出)、SCLK(時鐘)、CS(片選)。其中,CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能。接下來就負(fù)責(zé)通訊的3根線了。通訊是通

11、過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCLK時鐘線存在的原因,由SCLK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過 SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。2.2、系統(tǒng)硬件設(shè)計本系統(tǒng)硬件部分主要由供電部分,USB轉(zhuǎn)串口,單片機(jī)系統(tǒng),無線模塊4部分構(gòu)成。2.2.1、供電部分本模塊需要通過USB與計算機(jī)連接,并直接由計算機(jī)的USB口供電。再通過線性穩(wěn)壓芯片提供3.3V電壓供

12、單片機(jī)工作。原理圖如圖2。圖2.供電部分原理圖LM1117是一個低壓差電壓調(diào)節(jié)器系列。其壓差在1.2V輸出,負(fù)載電流為800mA時為1.2V。它與國家半導(dǎo)體的工業(yè)標(biāo)準(zhǔn)器件LM317有相同的管腳排列。LM1117有可調(diào)電壓的版本,通過2個外部電阻可實(shí)現(xiàn)1.2513.8V輸出電壓范圍。另外還有5個固定電壓輸出(1.8V、2.5V、2.85V、3.3V和5V)的型號。 LM1117提供電流限制和熱保護(hù)。電路包含1個齊納調(diào)節(jié)的帶隙參考電壓以確保輸出電壓的精度在±1%以內(nèi)。LM1117系列具有LLP、TO-263、SOT-223、TO-220和TO-252 D-PAK封裝。

13、輸出端需要一個至少10uF的鉭電容來改善瞬態(tài)響應(yīng)和穩(wěn)定性。其特性如下:提供1.8V、2.5V、2.85V、3.3V、5V和可調(diào)電壓的型號;節(jié)省空間的SOT-223和LLP封裝;電流限制和熱保護(hù)功能;輸出電流可達(dá)800mA;線性調(diào)整率:0.2% (Max);負(fù)載調(diào)整率:0.4% (Max);溫度范圍:0125 。2.2.2、USB轉(zhuǎn)串口模塊本系統(tǒng)通過USB口與計算機(jī)通信,但是單片機(jī)外設(shè)中不支持USB通信,因此需要將usb轉(zhuǎn)換成串口再與單片機(jī)通信。選擇CH340G可將USB轉(zhuǎn)成TTL電平與單片機(jī)直接相連,原理圖如圖3。CH340是一個USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)

14、串口、USB轉(zhuǎn)IrDA紅外或者USB轉(zhuǎn)打印口。 在串口方式下,CH340提供常用的MODEM聯(lián)絡(luò)信號,用于為計算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級到USB總線。圖3.USB轉(zhuǎn)串口模塊原理圖其有如下特點(diǎn):全速USB設(shè)備接口,兼容USB V2.0,外圍元器件只需要晶體和電容。 仿真標(biāo)準(zhǔn)串口,用于升級原串口外圍設(shè)備,或者通過USB增加額外串口。  計算機(jī)端Windows操作系統(tǒng)下的串口應(yīng)用程序完全兼容,無需修改。 硬件全雙工串口,內(nèi)置收發(fā)緩沖區(qū),支持通訊波特率50bps2Mbps。  支持常用的MODEM聯(lián)絡(luò)信

15、號RTS、DTR、DCD、RI、DSR、CTS。  通過外加電平轉(zhuǎn)換器件,提供RS232、RS485、RS422等接口。  支持IrDA規(guī)范SIR紅外線通訊,支持波特率2400bps到115200bps。  軟件兼容CH341,可以直接使用CH341的驅(qū)動程序。  支持5V電源電壓和3.3V電源電壓。  提供SSOP-20和SOP-16無鉛封裝,兼容RoHS。CH340芯片正常工作時需要外部向XI引腳提供12MHz的時鐘信號。一般情況下,時鐘信號由CH340內(nèi)置的反相器通過晶體穩(wěn)頻振蕩產(chǎn)生。外圍

16、電路只需要在XI和XO引腳之間連接一個12MHz的晶體,并且分別為XI和XO引腳對地連接振蕩電容。 CH340芯片支持5V電源電壓或者3.3V電源電壓。當(dāng)使用5V工作電壓時,CH340芯片的VCC引腳輸入外部5V電源,并且V3引腳應(yīng)該外接容量為4700pF或者0.01uF的電源退耦電容。當(dāng)使用3.3V工作電壓時,CH340芯片的V3引腳應(yīng)該與VCC引腳相連接,同時輸入外部的3.3V電源,并且與CH340芯片相連接的其它電路的工作電壓不能超過3.3V。 CH340自動支持USB設(shè)備掛起以節(jié)約功耗,NOS#引腳為低電平時將禁止USB設(shè)備掛起。 異步串口方式下CH340

17、芯片的引腳包括:數(shù)據(jù)傳輸引腳、MODEM聯(lián)絡(luò)信號引腳、輔助引腳。 數(shù)據(jù)傳輸引腳包括:TXD引腳和RXD引腳。串口輸入空閑時,RXD應(yīng)該為高電平,如果R232引腳為高電平啟用輔助RS232功能,那么RXD引腳內(nèi)部自動插入一個反相器,默認(rèn)為低電平。串口輸出空閑時,CH340T芯片的TXD為高電平,CH340R芯片的TXD為低電平。2.2.3、單片機(jī)系統(tǒng)使用的是STM8S103F3P6,最小系統(tǒng)原理圖如圖4。圖4.單片機(jī)系統(tǒng)原理圖STM8S是基于8 位框架結(jié)構(gòu)的微控制器,其CPU內(nèi)核有6 個內(nèi)部寄存器,通過這些寄存器可高效地進(jìn)行數(shù)據(jù)處理。STM8S的指令集支持80條基本語句及20種尋址模式

18、,而且CPU的6 個內(nèi)部寄存器都擁有可尋址的地址。串行外設(shè)接口(SPI)允許芯片與其他設(shè)備以半/ 全雙工、同步、串行方式通信。此接口可以被配置成主模式,并為從設(shè)備提供通信時鐘(SCK) 。接口還能以多主配置方式工作。 它可用于多種用途,包括帶或不帶第三根雙向數(shù)據(jù)線的雙線單工同步傳輸,還可使用CRC校驗(yàn)來進(jìn)行可靠通信。SPI主要特征 3線全雙工同步傳輸 帶或不帶第三根雙向數(shù)據(jù)線的雙線單工同步傳輸 8或16位傳輸幀格式選擇 主或從操作 8個主模式頻率(最大為fMASTER/2) 從模式頻率 ( 最大為fPCLK/2) 快速通信:最大SPI速度達(dá)到10MHz 主模式和從模式下均可以由軟件或硬件進(jìn)行N

19、SS管理 可編程的時鐘極性和相位 可編程的數(shù)據(jù)順序,MSB在前或LSB 在前 可觸發(fā)中斷的專用發(fā)送和接收標(biāo)志 SPI總線忙狀態(tài)標(biāo)志 可觸發(fā)中斷的主模式出錯和溢出標(biāo)志2.2.4、無線模塊直接使用2.4G無線收發(fā)模塊,簡單可靠。原理圖如圖5。圖5.無線模塊原理圖nRF24L01是由NORDIC生產(chǎn)的工作在2.4GHz2.5GHz的ISM 頻段的單片無線收發(fā)器芯片。無線收發(fā)器包括:頻率發(fā)生器、增強(qiáng)型“SchockBurst”模式控制器、功率放大器、晶體振蕩器、調(diào)制器和解調(diào)器。輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI 接口進(jìn)行設(shè)置。幾乎可以連接到各種單片機(jī)芯片,并完成無線數(shù)據(jù)傳送工作。其電流消耗極低

20、:當(dāng)工作在發(fā)射模式下發(fā)射功率為0dBm 時電流消耗為11.3mA ,接收模式時為12.3mA,掉電模式和待機(jī)模式下電流消耗更低。其應(yīng)用領(lǐng)域有: 無線鼠標(biāo) 鍵盤 游戲機(jī)操縱桿 無線門禁 無線數(shù)據(jù)通訊 安防系統(tǒng) 遙控裝置 遙感勘測 智能運(yùn)動設(shè)備 工業(yè)傳感器 玩具2.3、軟件設(shè)計系統(tǒng)軟件設(shè)計首先需完成對各個芯片的初始化 設(shè)計,接下來其主要工作是數(shù)據(jù)發(fā)送和接收程序。 發(fā)送數(shù)據(jù)時單片機(jī)直接通過MOSI端口控制射頻器 件發(fā)送數(shù)據(jù),而接收時則要掃描單片機(jī)的MISO口, 判斷是否有待接收的數(shù)據(jù),下面具體說明單片機(jī)如 何實(shí)現(xiàn)SPI與NRF24L01的初始化程序,及發(fā)送、接收 子程序的功能與實(shí)現(xiàn)。2.3

21、.1、SPI初始化程序設(shè)計 本無線通信系統(tǒng)幾乎所有的數(shù)據(jù)傳輸與芯片控 制都是通過SPI實(shí)現(xiàn)的,SPI讀寫程序是軟件控制的 基礎(chǔ)。為了使單片機(jī)的SPI控制器正常工作,需要先對其進(jìn)行初始化設(shè)置,這可通過向SPI控制寄存 器SPCTL和狀態(tài)寄存器SPSTAT寫入適當(dāng)?shù)目刂谱謱?shí)現(xiàn)。它們是二個8位的寄存器,其中SPCTL的第2位時鐘相位CPHA允許用戶設(shè)置采樣和改變數(shù)據(jù)的時鐘邊沿,第3位時鐘極性位CPOL允許用戶設(shè)置時鐘極性。SPI接口有四種不同的數(shù)據(jù)傳輸時序,取決于CPOL和CPHL這兩位的組合。本系統(tǒng)中,STC12C5A60S2為SPI主設(shè)備,IA4421為從設(shè)備,且要求SPICLK的極性在空閑時為

22、低電平,用到SPI CPOL=0、CPHA=0的這種時序模式,數(shù)據(jù)在SCK的上升沿時移人到IA4421,并且器件會在SS生效之后的第一個上升沿時等待數(shù)據(jù);如果時鐘的起始狀態(tài)是高電平,它在開始傳輸數(shù)據(jù)之前將下降以產(chǎn)生第一個上升沿。2.3.2、發(fā)送子程序設(shè)計先要配置無線模塊工作在發(fā)送狀態(tài)之下,配置步驟為:1 )寫Tx 節(jié)點(diǎn)的地址 TX_ADDR 2 )寫Rx 節(jié)點(diǎn)的地址(主要是為了使能Auto Ack ) RX_ADDR_P0 3 )使能AUTO ACK EN_AA 4 )使能PIPE 0 EN_RXADDR 5 )配置自動重發(fā)次數(shù) SETUP_RETR 6 )選擇通信頻率 RF_CH 7 )配置

23、發(fā)射參數(shù)(低噪放大器增益、發(fā)射功率、無線速率) RF_SETUP 8 ) 選擇通道0 有效數(shù)據(jù)寬度 Rx_Pw_P0 9 )配置24L01 的基本參數(shù)以及切換工作模式 CONFIG 。配置完成之后,將需要發(fā)送的數(shù)據(jù)寫到相應(yīng)的寄存器中即可完成發(fā)送。2.3.3、接收子程序設(shè)計先要配置無線模塊工作在接收狀態(tài)之下,配置步驟為:1 )寫Rx 節(jié)點(diǎn)的地址 RX_ADDR_P0 2 )使能AUTO ACK EN_AA 3 )使能PIPE 0 EN_RXADDR 4 )選擇通信頻率 RF_CH 5) 選擇通道0 有效數(shù)據(jù)寬度 Rx_Pw_P0 6 )配置發(fā)射參數(shù)(低噪放大器增益、發(fā)射功率、無線速率) RF_S

24、ETUP 7 )配置24L01 的基本參數(shù)以及切換工作模式 CONFIG 。配置完成之后,循環(huán)查詢相關(guān)接收狀態(tài)的寄存器,當(dāng)有數(shù)據(jù)時,讀出即可。2.3.4、上位機(jī)程序設(shè)計上位機(jī)使用Qt編寫,通過計算機(jī)輸入需要發(fā)送的內(nèi)容,軟件對將發(fā)送的數(shù)據(jù)進(jìn)行處理,加入包頭、長度、校驗(yàn)、發(fā)送者等信息,通過串口發(fā)送給單片機(jī)。同時若單片機(jī)給上位機(jī)發(fā)送信息之后,上位機(jī)先校驗(yàn)數(shù)據(jù)接收是否正確。若正確,解析出發(fā)送者和具體發(fā)送信息,在上位機(jī)中顯示出來即可。這樣,即可完成兩個或多個計算機(jī)之間的無線通信。Qt是一個1991年由奇趣科技開發(fā)的跨平臺C+圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序,

25、比如控制臺工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴(kuò)展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,易于擴(kuò)展,允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。2014年4月,跨平臺集成開發(fā)環(huán)境Qt Creator 3.1.0正式發(fā)布,實(shí)現(xiàn)了對于iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無Python接口的GDB調(diào)試支持,集成了基于Clang的C/C+代碼模塊,并對Android支持做出了調(diào)整,至此實(shí)現(xiàn)了全面支持iOS、Android、WP

26、。3. 實(shí)驗(yàn)結(jié)果及分析為了仿真實(shí)際的應(yīng)用情形,將本無線通信系統(tǒng)在一個布滿桌椅和電子設(shè)備,如電腦、打印機(jī)、示波器等的室內(nèi)環(huán)境中進(jìn)行數(shù)據(jù)通信實(shí)驗(yàn),以確認(rèn)所述方案的實(shí)際應(yīng)用效能。將兩臺電腦相隔數(shù)米,插上燒寫完程序的模塊,打開上位機(jī),設(shè)置好串口通信的相關(guān)協(xié)議,輸入要發(fā)送的內(nèi)容,點(diǎn)擊發(fā)送即可在另外一臺電腦上接收到發(fā)送者的信息和發(fā)送的內(nèi)容。多次進(jìn)行試驗(yàn),改變發(fā)送者的信息和發(fā)送內(nèi)容,多次試驗(yàn),檢驗(yàn)系統(tǒng)的穩(wěn)定性和可靠性。試驗(yàn)截圖如圖6。圖6.試驗(yàn)截圖 4. 結(jié)束語本文中給出了設(shè)計一個單片機(jī)控制的無線數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)使用了超低功耗的STM8S103F3P6單片機(jī)和同樣是低功耗的無線收發(fā)芯片NRF24L01,

27、它們之問的控制與數(shù)據(jù)連接則是借助SPI接口來實(shí)現(xiàn)。SPI接口具有很高的數(shù)據(jù)傳輸速率,且器件操作遵循統(tǒng)一的規(guī)范,使系統(tǒng)軟硬件具有良好的通用性。以無線方式傳輸數(shù)據(jù)在實(shí)際應(yīng)用中由于其方便靈活,可望在嵌入式系統(tǒng)中得到廣泛應(yīng)用。本實(shí)現(xiàn)方案無需復(fù)雜的協(xié)議與價格較為昂貴的協(xié)議支持芯片,可作為嵌人式系統(tǒng)無線數(shù)據(jù)傳輸?shù)囊环N低成本、低功耗選送的一幀數(shù)據(jù)擇方案。經(jīng)過實(shí)驗(yàn)驗(yàn)證,本系統(tǒng)能在實(shí)際應(yīng)用環(huán)境中可靠運(yùn)行,且在設(shè)計時不局限于特定的嵌入式系統(tǒng),具有較高的通用性,能方便地移植到其他的系統(tǒng)中去,滿足無接觸數(shù)據(jù)傳輸?shù)囊蟆?.參考文獻(xiàn)1. 謝平. USB與nRF2401無線通信系統(tǒng)設(shè)計J. 單片機(jī)開發(fā)與應(yīng)用, 2010,

28、 26(4): 88-892. 黃婷, 施國梁, 黃坤. 單片機(jī)無線通信系統(tǒng)的設(shè)計與實(shí)現(xiàn)J. 微處理機(jī), 2010, (1): 27-316.致謝歷時兩周的時間終于將這篇報告寫完,在報告的寫作過程中遇到了無數(shù)的困難和障礙,都在同學(xué)和老師的幫助下度過了。尤其要強(qiáng)烈感謝付老師,他對我進(jìn)行了無私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。另外,也非常感謝我的兩名隊友,有了他們友好的合作,才會有這次順利完成的課程設(shè)計。 感謝這篇論文所涉及到的各位學(xué)者。本文引用了數(shù)位學(xué)者的研究文獻(xiàn),如果沒有各位學(xué)者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。 感謝我的同學(xué)和朋友,在我寫論文的過程中給予我了

29、很多素材,還在論文的撰寫和排版燈過程中提供熱情的幫助。 由于我的學(xué)術(shù)水平有限,所寫論文難免有不足之處,懇請各位老師和學(xué)友批評和指正!特此致謝!6.附錄6.1、單片機(jī)程序main.c文件#include "stm8s.h"#include "sysclock.h"#include "uart1.h"#include "led.h"#include "nRF24L01.h"#include "communication.h"#include "timer.h"

30、u8 state = wait_Nrf_Data; /程序狀態(tài)標(biāo)志位int main(void)u8 RxBuf33; u16 nCount = 0; /nCount統(tǒng)計接收數(shù)據(jù)的組數(shù),len接收數(shù)據(jù)的總長度 /*設(shè)置外部晶振24M為主時鐘*/ /SystemClock_Init(HSE_Clock); /*設(shè)置內(nèi)部晶振16M為主時鐘*/ CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); LED_Init ();Uart1_Init(); Tim1_Init();nRF24L01_Pin_Conf();_enable_interrupt();/ 開啟

31、總中斷 nRF24L01_Set_RxMode(); / 接收狀態(tài)while(1) if (state = wait_Nrf_Data) if (!(nRF24L01_RevData(RxBuf) /接收到數(shù)據(jù)時 nCount +; check_RevData (RxBuf , nCount); if (RxBuf30 = RxBuf31) nCount = 0; else if (state = get_Sci_Data) Protocal_Analysis(); Communication.c文件#include "stm8s.h"#include "stm8

32、s_tim1.h"#include "uart1.h"#include "led.h"#include "nRF24L01.h"#include "communication.h"enum STATE STATE_NOW = TEST_BEGIN;extern u8 state;unsigned int In = 0 , Out = 0; /計數(shù)unsigned char FilePool400; /串口接收數(shù)據(jù)緩沖區(qū)unsigned int Instruction_Length = 0; /數(shù)據(jù)長度un

33、signed char check = 0; /校驗(yàn)位unsigned char Receive_Flag = 0; /接收完成標(biāo)志位 unsigned int my_i = 0; /計數(shù)void Protocal_Analysis() unsigned int i = 0 , j = 0; unsigned char group = 0; /發(fā)送時用到 unsigned char TxBuf32 = 0; if (In > Out) /有數(shù)據(jù)尚未處理 switch (STATE_NOW) case ALLBEGIN: STATE_NOW = TEST_BEGIN; case TEST_

34、BEGIN: if (FilePoolOut+ = 0x41) STATE_NOW = TEST_LENGTH_L; TIM1_SetCounter(0); TIM1_Cmd(ENABLE); /使能TIM1,測試數(shù)據(jù)間隔 else Reset_Analysis(); break; case TEST_LENGTH_L: Instruction_Length = FilePoolOut+; STATE_NOW = TEST_LENGTH_H; break; case TEST_LENGTH_H: Instruction_Length = Instruction_Length + (FilePoolOut+ << 8) + 1; STATE_NOW = TEST_DATA; my_i = 3; /0x0a,長度*2 break; case TEST_DATA: Out+; if (my_i + = Instruction_Length - 1) /數(shù)據(jù)接收完成 for (i = 1; i < Instruction_Length - 1; i+) check += FilePooli; check = check; if (check = FilePoolInstruction_Lengt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論