無(wú)線數(shù)據(jù)采集分析系統(tǒng)論文
《無(wú)線數(shù)據(jù)采集分析系統(tǒng)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《無(wú)線數(shù)據(jù)采集分析系統(tǒng)論文(46頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 目 錄 第一章 緒 論 1 第一節(jié) 課題背景 1 第二節(jié) 無(wú)線數(shù)據(jù)采集系統(tǒng)的特點(diǎn) 2 第二章 總體方案設(shè)計(jì) 4 第一節(jié) 系統(tǒng)總體方案設(shè)計(jì)與論證 4 第二節(jié) 設(shè)計(jì)任務(wù) 5 第三節(jié) 系統(tǒng)組成及工作原理 5 一、系統(tǒng)組成 6 二、工作原理 6 第四節(jié) 主要器件選擇與介紹 7 一、ARM芯片 LPC2132 7 二、NRF芯片NRF905 8 三、串口電平轉(zhuǎn)換芯片 9 第三章 硬件設(shè)計(jì) 10 第四章 軟件設(shè)計(jì) 12 第一節(jié) 通訊協(xié)議的設(shè)計(jì) 12 一、MODBUS協(xié)議簡(jiǎn)介 12 二、通訊協(xié)議的構(gòu)建 13 第二節(jié) 采樣控制 15 第三節(jié) ARM與N
2、RF905的接口及軟件設(shè)計(jì) 16 一、NRF905的SPI寄存器配置 17 二、NRF905的工作模式 19 第四節(jié) 主機(jī)軟件設(shè)計(jì) 21 一、主機(jī)界面設(shè)計(jì)說(shuō)明 23 二、廣播采樣界面設(shè)計(jì) 24 三、數(shù)據(jù)讀取界面設(shè)計(jì) 24 四、數(shù)值顯示界面設(shè)計(jì) 25 五、波形顯示界面設(shè)計(jì) 26 第五節(jié) 分機(jī)軟件設(shè)計(jì) 28 一、 分機(jī)軟件設(shè)計(jì)說(shuō)明 28 二、 MODBUS命令識(shí)別模塊設(shè)計(jì) 29 第五章 系統(tǒng)調(diào)試 31 第一節(jié) 硬件電路調(diào)試 31 第二節(jié) 主機(jī)與多個(gè)分機(jī)之間的通訊調(diào)試 31 第六章 總結(jié) 32 結(jié) 束 語(yǔ) 33 致 謝 34 參考文獻(xiàn) 35 附 錄 36
3、 第一章 緒論 第一節(jié) 課題背景 我們今天的時(shí)代,已經(jīng)進(jìn)入了一個(gè)無(wú)線無(wú)處不在的時(shí)代。出門:我們使用手機(jī)打電話、發(fā)短信;在家:我們使用無(wú)繩電話;開(kāi)車:我們使用GPS 導(dǎo)航找路;上班:我們使用無(wú)線網(wǎng)卡上網(wǎng),辦公等等。隨著技術(shù)進(jìn)步,無(wú)線通訊和無(wú)線網(wǎng)絡(luò)將迅速向我們?nèi)粘I钪械母鱾€(gè)方面擴(kuò)展,嵌入式的無(wú)線通訊和無(wú)線網(wǎng)絡(luò)正在向我走來(lái),以無(wú)線片上系統(tǒng)(SoC)為核心的低功耗,小體積,低價(jià)格嵌入式無(wú)線通訊和無(wú)線網(wǎng)絡(luò)系統(tǒng)近年來(lái)得到了迅速發(fā)展,已經(jīng)產(chǎn)生無(wú)數(shù)的新應(yīng)用和新的市場(chǎng)。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)是有線的,如果要采集多個(gè)地方的數(shù)據(jù),布線將變的非常復(fù)雜,如果距離稍遠(yuǎn)些數(shù)據(jù)傳輸?shù)目煽啃詫⒋蟠蠼档?、并且?shù)據(jù)傳輸速
4、度也慢!如果我們采用無(wú)線數(shù)傳方案,只需要在要采集數(shù)據(jù)的地方放置幾個(gè)有無(wú)線收發(fā)模塊的前端數(shù)據(jù)采集裝置(分機(jī))。手中只需一個(gè)有無(wú)線收發(fā)模塊的主機(jī),我們就可以管理那些前端的數(shù)據(jù)采集裝置工作。并且主機(jī)具有良好的人機(jī)交互界面,操作簡(jiǎn)單,界面美觀、清晰,達(dá)到實(shí)用的目的!這種計(jì)算機(jī)技術(shù)和射頻無(wú)線技術(shù)相結(jié)合的無(wú)線數(shù)據(jù)采集技術(shù)將大大減輕人們的工作量。 目前,新興的短距離無(wú)線傳輸技術(shù)“藍(lán)牙科技BLUETOOTH”、“nRF技術(shù)”以無(wú)方向性與穿墻性的優(yōu)勢(shì),迅速席卷市場(chǎng);而“紅外線傳輸IrDA”為應(yīng)用較成熟普及的技術(shù);紅外傳輸(IrDA)技術(shù)雖然很普及、很成熟,但是其距離太短,抗干擾能力差,傳輸速度慢;藍(lán)牙科技(B
5、LUETOOTH)雖然具有無(wú)方向性與穿墻優(yōu)勢(shì),但是它開(kāi)發(fā)成本高、軟件及其協(xié)議編程不但復(fù)雜,傳輸距離只有10M;而nRF 方案集成了全部RF 和基帶處理,真正的單片化,具有成本更低、功耗更低、協(xié)議簡(jiǎn)單、軟件開(kāi)發(fā)更簡(jiǎn)易等特點(diǎn),傳輸幾十米、數(shù)百米,甚至更遠(yuǎn),其開(kāi)發(fā)成本也遠(yuǎn)遠(yuǎn)低與藍(lán)牙 。 在眾多國(guó)外著名半導(dǎo)體廠商花巨資投入藍(lán)牙芯片和技術(shù)的研發(fā)中時(shí),由于技術(shù)不能完全統(tǒng)一,成本難以降低等原因,藍(lán)牙技術(shù)在國(guó)內(nèi)的應(yīng)用還非常少,而短距離無(wú)線數(shù)傳有著巨大的商機(jī)。挪威Nordic公司的無(wú)線通信芯片產(chǎn)品(NRF系列)收發(fā)合一,工作頻率一般為國(guó)際通用的ISM頻段,采用低發(fā)射功率、高接收靈敏度的設(shè)計(jì),所以使用時(shí)對(duì)周圍干
6、擾很小,無(wú)需申請(qǐng)?jiān)S可證,傳輸速率為20~76.8kbit/s,而在諸如遠(yuǎn)程抄表、雙向無(wú)線數(shù)據(jù)傳輸?shù)葢?yīng)用領(lǐng)域,完全可以滿足其要求。與藍(lán)牙產(chǎn)品相比,該產(chǎn)品具有成本更低、功耗更低、協(xié)議簡(jiǎn)單、軟件開(kāi)發(fā)更簡(jiǎn)易等特點(diǎn)。目前,國(guó)內(nèi)一些企業(yè)正在針對(duì)該系列產(chǎn)品進(jìn)行開(kāi)發(fā)和系統(tǒng)集成工作,提供各種層次的技術(shù)方案。這樣可以使用戶迅速進(jìn)入與世界同步的無(wú)線設(shè)計(jì)領(lǐng)域,用戶的產(chǎn)品只需最短的設(shè)計(jì)及生產(chǎn)時(shí)間,并且從一開(kāi)始就擁有完美的性能。這種低成本無(wú)線通信技術(shù)和解決方案適合中國(guó)國(guó)情,相信將會(huì)在中國(guó)擁有更廣闊的市場(chǎng)前景。 PITE3190系列無(wú)線數(shù)據(jù)采集分析系統(tǒng)是深圳普祿科智能檢測(cè)設(shè)備有限公司最新研制的無(wú)線數(shù)據(jù)采集分析系統(tǒng),本文作
7、者在普祿科公司有幸參與該產(chǎn)品的研發(fā),并負(fù)責(zé)該產(chǎn)品的軟硬件設(shè)計(jì),本文所寫的即是無(wú)線數(shù)據(jù)采集分析系統(tǒng)的設(shè)計(jì)。 第二節(jié) 無(wú)線數(shù)據(jù)采集系統(tǒng)的特點(diǎn) 目前市場(chǎng)上銷售的無(wú)線數(shù)據(jù)采集系統(tǒng),千差萬(wàn)別,形式各異。但就一套配置齊全、性能良好的無(wú)線數(shù)據(jù)采集系統(tǒng)而言,概括起來(lái)不外乎由傳感器、 數(shù)據(jù)采集系統(tǒng)、 無(wú)線收發(fā)模塊等幾個(gè)主要部分組成,如框圖1.21所示 從圖中可以看出無(wú)線數(shù)據(jù)系統(tǒng)由主機(jī)和前端數(shù)據(jù)采集裝置(單片機(jī))組成。主機(jī)主要完成的任務(wù)是:控制各前端數(shù)據(jù)采集裝置(分機(jī)),對(duì)采集數(shù)據(jù)的實(shí)時(shí)處理和顯示,并畫出各采樣點(diǎn)的波形;分機(jī)主要的功能是:接收主機(jī)命令,完成相應(yīng)的功能(如完成數(shù)據(jù)采集和數(shù)據(jù)傳輸控制)。
8、主機(jī)和分機(jī)的信息交換以射頻無(wú)線(nRF技術(shù))的方式實(shí)現(xiàn),采用半雙工的工作方式,通訊協(xié)議采用標(biāo)準(zhǔn)的MODBUS(RTU)協(xié)議。GFSK頻率工作在ISM頻段,不需要申請(qǐng)。主機(jī)可連接多達(dá)255臺(tái)分機(jī),每分機(jī)可采集4路數(shù)據(jù),并可實(shí)時(shí)監(jiān)控分機(jī)的電源電壓,采集速度及緩存容量均可通過(guò)軟件編程設(shè)定。整個(gè)系統(tǒng)可隨時(shí)通過(guò)RS232接口更新軟件,方便以后系統(tǒng)升級(jí)! 第二章 總體方案設(shè)計(jì) 第一節(jié) 系統(tǒng)總體方案設(shè)計(jì)與論證 根據(jù)前面的介紹,我們知道目前新興的短距離無(wú)線傳輸技術(shù)有:紅外線傳輸IrDA,藍(lán)牙科技BLUE
9、TOOTH,nRF技術(shù)(事實(shí)上nRF并不是一種協(xié)議,只是由于其NORDIC公司的nRF芯片應(yīng)用十分廣泛,因此在此與Bluetooth和IrDA等協(xié)議相提并論)。由于紅外線傳輸IrDA距離太短,抗干擾能力差,傳輸速度慢,所以舍棄這種方案。下面僅將藍(lán)牙與nRF作比較: 表2.1 藍(lán)牙與nRF方案比較 方案 硬件設(shè)計(jì) 接口方式 編程 通訊速率 通信距離 藍(lán)牙方案 由多個(gè)芯片組成,由發(fā)射接收處理,基帶處理等多個(gè)芯片組成,硬件較復(fù)雜。 復(fù)雜,時(shí)序要求嚴(yán)格。 通信協(xié)議和軟件堆棧復(fù)雜,需要較長(zhǎng)時(shí)間熟悉。 300-400Kbps 10米 nRF方案 高頻電感和濾波器等已全部?jī)?nèi)置,
10、所需外圍元件較少。 簡(jiǎn)便,只需和單片機(jī)I/O口或SPI口相連。 編程較方便。 100-1MKbps 室內(nèi)約30-100米, 室外約100-500米。 比較 nRF方案集成了內(nèi)部RF和基帶處理,真正的單片化,設(shè)計(jì)調(diào)試容易,成本低。 nRF較為方便。 nRF方案開(kāi)發(fā)周期短。 nRF速率較高,更適合多頻道的數(shù)據(jù)傳輸。 nRF距離更遠(yuǎn),更適合無(wú)線數(shù)據(jù)采集系統(tǒng)。 從上面的比較可以看出,采用nRF方案要優(yōu)于藍(lán)牙。因此,本系統(tǒng)初步選定NORDIC公司生產(chǎn)的nRF905芯片作為系統(tǒng)無(wú)線收發(fā)模塊的核心。 上表中的“通信距離”中給出的數(shù)值源于媒體的報(bào)道與推廣該芯片的公司給出的宣傳材料,下
11、面我們根據(jù)nRF905 Datasheet中給出的一些器件參數(shù)來(lái)計(jì)算nRF905的通信距離。 首先給出自由空間傳播時(shí)的無(wú)線通信距離的計(jì)算方法(所謂自由空間傳播指天線周圍為無(wú)限大真空時(shí)的電波傳播,它是理想傳播條件。電波在自由空間傳播時(shí),其能量既不會(huì)被障礙物所吸收,也不會(huì)產(chǎn)生反射或散射。通信距離與發(fā)射功率、接收靈敏度和工作頻率有關(guān) : [Lfs](dB)=32.44+20lgd(km)+20lgf(MHz) ① 此式即為自由空間下電波傳播的損耗公式,式中Lfs為傳輸損耗,d為傳輸距離,頻率的單位以MHz計(jì)算。 由上式可見(jiàn),自由空間中電波傳播損耗(亦稱衰減)只與工作頻
12、率f和傳播距離d有關(guān),當(dāng)f或d增大一倍時(shí),[Lfs]將分別增加6dB. 下面計(jì)算nRF905的理論通信距離。 根據(jù)905的Datasheet,其發(fā)射功率為10dBm,接收靈敏度-100dbm,工作頻率為433.2MHz。由式①計(jì)算得到:d=17.5Km。 這是理想狀況下的傳輸距離,實(shí)際的應(yīng)用中是會(huì)低于該值,這是因?yàn)闊o(wú)線通信要受到各種外界因素的影響,如大氣、阻擋物、多徑等造成的損耗,將上述損耗的參考值計(jì)入上式中,即可計(jì)算出近似通信距離。 假定大氣、遮擋等造成的損耗為40dB,可以計(jì)算得出通信距離為:d=180M。 通過(guò)上面的論證,我們不難看出nRF905在“傳輸速率”、“距離”、“接
13、口簡(jiǎn)便性”等方面完全可以滿足本系統(tǒng)的要求。因此,本無(wú)線數(shù)據(jù)采集系統(tǒng)最終選擇nRF905芯片作為本系統(tǒng)的無(wú)線收發(fā)的核心。 第二節(jié) 設(shè)計(jì)任務(wù) 本無(wú)線數(shù)據(jù)采集系統(tǒng)是應(yīng)用在機(jī)車活接地監(jiān)測(cè)系統(tǒng)上的,根據(jù)《PITE3190無(wú)線數(shù)據(jù)采集分析系統(tǒng)項(xiàng)目規(guī)劃書》的設(shè)計(jì)目標(biāo),概括出與本系統(tǒng)有關(guān)的要求如下: 1、確定能滿足要求的總體方案及所需元件型號(hào)。 2、用Altium Designer 6.0完成原理圖的設(shè)計(jì),PCB圖繪制,制作電路板。 3、設(shè)計(jì)通訊協(xié)議。 4、熟悉ARM單片機(jī)LPC2132和無(wú)線收發(fā)芯片nRF905的使用。 5、用ARM/C開(kāi)發(fā)工具ARM Developer S
14、uite進(jìn)行ARM程序編程,完成與整個(gè)系統(tǒng)軟件的設(shè)計(jì)。 6、在主機(jī)上設(shè)計(jì)一簡(jiǎn)單的人機(jī)操作界面,完成各個(gè)功能軟件的調(diào)試,使其操作簡(jiǎn)單,界面美觀、清晰,達(dá)到實(shí)用的目的。 7、不斷對(duì)軟件進(jìn)行修改驗(yàn)證排錯(cuò),直到滿足系統(tǒng)要求。 第三節(jié) 系統(tǒng)組成及工作原理 一、系統(tǒng)組成 系統(tǒng)框圖如圖2.31所示,從圖可以看出點(diǎn)對(duì)多點(diǎn)式無(wú)線數(shù)據(jù)采集系統(tǒng)分為兩大部分:主機(jī)和分機(jī)。分機(jī)如圖2.32所示:主要由傳感器、前級(jí)處理電路、帶有A/D轉(zhuǎn)換的ARM單片機(jī)LPC2132、無(wú)線收發(fā)模塊nRF905組成;主機(jī)如圖2.33所示:由ARM單片機(jī)LPC2132、無(wú)線收發(fā)模塊nRF905組成。 圖2.31 系統(tǒng)
15、框圖 無(wú)線收發(fā)模塊(nRF905) ARM單片機(jī)(LPC2132) 顯示屏 RS232 圖2.33 主機(jī)原理框圖 二、工作原理 無(wú)線采集系統(tǒng)主機(jī)部分是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-STMCPU的微控制器的平臺(tái)上設(shè)計(jì)的,而ARM7TDMI-S使用了流水線技術(shù),處理和存儲(chǔ)系統(tǒng)的所有部分都可以聯(lián)系工作。LPC2132是每時(shí)每刻都在掃描按鍵的狀態(tài),可以利用中斷或者查詢的工作方式,對(duì)按鍵的狀態(tài)進(jìn)行處理,執(zhí)行相應(yīng)的功能,同時(shí)功能可以用液晶顯示出來(lái)。當(dāng)進(jìn)入“選擇采樣分機(jī)”這一界面時(shí),按下“分機(jī)一”或者“分機(jī)二”即發(fā)送相應(yīng)的MO
16、DBUS(RTU)控制命令到分機(jī),此時(shí)無(wú)線模塊(nRF905)自動(dòng)上電,MODBUS(RTU)控制命令數(shù)據(jù)包自動(dòng)完成加前導(dǎo)瑪和CRC 校驗(yàn)碼后被發(fā)送。分機(jī)中的無(wú)線收發(fā)模塊nRF905不斷的監(jiān)測(cè)空中信息,當(dāng)nRF905 發(fā)現(xiàn)和接收頻率相同的載波時(shí)載波檢測(cè)CD 被置高,當(dāng)nRF905 接收到有效的地址時(shí)地址匹配AM 被置高,當(dāng)nRF905 接收到有效的數(shù)據(jù)包CRC 校驗(yàn)正確時(shí),nRF905 去掉前導(dǎo)碼地址和CRC 位,數(shù)據(jù)準(zhǔn)備就緒DR 被置高, MCU(LPC2132) 通過(guò)查詢DR和AM兩管腳都為高后就設(shè)置nRF905 為standby 模式,并以合適的速率通過(guò)SPI 接口讀出有效數(shù)據(jù)。一個(gè)完整
17、的MODBUS(RTU)命令接收完后,MCU(LPC2132)對(duì)該命令進(jìn)行一定的處理,然后執(zhí)行相應(yīng)的功能。如進(jìn)行廣播采樣、發(fā)回采樣數(shù)據(jù)等。 第四節(jié) 主要器件選擇與介紹 一、 ARM芯片LPC2132 LPC2132是菲利浦公司生產(chǎn)的ARM7TDMI-S 處理器,LPC2132 是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的32/16 位ARM7TDMI-STM CPU 的微控制器,并帶有64kB的嵌入的高速Flash 存儲(chǔ)器。128 位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32 位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16 位Thumb 模式將代碼規(guī)模降低超過(guò)30%,而性
18、能的損失卻很小。 特性: ● 16kB 片內(nèi)靜態(tài)RAM。 ● 片內(nèi)Boot 裝載軟件實(shí)現(xiàn)在系統(tǒng)/在應(yīng)用中編程(ISP/IAP)。扇區(qū)擦除或整片擦除的時(shí)間為400ms,1ms 可編程256 字節(jié)。 ● 1 個(gè)8 路10 位A/D 轉(zhuǎn)換器共包含16 個(gè)模擬輸入,每個(gè)通道的轉(zhuǎn)換時(shí)間低至2.44us。 ● 1 個(gè)10 位D/A 轉(zhuǎn)換器,可提供不同的模擬輸出。 ● 2 個(gè)32 位定時(shí)器/計(jì)數(shù)器(帶4 路捕獲和4 路比較通道)、PWM 單元(6 路輸出)和看門狗。 ● 實(shí)時(shí)時(shí)鐘具有獨(dú)立的電源和時(shí)鐘源,在節(jié)電模式下極大地降低了功耗。 ● 多個(gè)串行接口,包括2 個(gè)16C550 工業(yè)標(biāo)準(zhǔn)UART
19、、2 個(gè)高速I2C 接口(400 kbit/s)、SPI 和SSP(具有緩沖功能,數(shù)據(jù)長(zhǎng)度可變)。 ● 向量中斷控制器??膳渲脙?yōu)先級(jí)和向量地址。 ● 9 個(gè)邊沿或電平觸發(fā)的外部中斷引腳。 ● 通過(guò)片內(nèi)PLL 可實(shí)現(xiàn)最大為60MHz 的 CPU 操作頻率,PLL 的穩(wěn)定時(shí)間為100us。 ● 片內(nèi)晶振頻率范圍:1~30 MHz。 ● 2 個(gè)低功耗模式:空閑和掉電。 ● 可通過(guò)個(gè)別使能/禁止外部功能和降低外部時(shí)鐘來(lái)優(yōu)化功耗。 ● 通過(guò)外部中斷將處理器從掉電模式中喚醒。 -CPU 操作電壓范圍:3.0~3.6 V (3.3 V+/- 10%),I/O 口可承受5V 的最大電壓。
20、 二、NRF芯片NRF905 nRF905 采用Nordic 公司的VLSI ShockBurst 技術(shù),ShockBurst 技術(shù)使nRF905 能夠提供高速的數(shù)據(jù)傳輸而不需要昂貴的高速M(fèi)CU 來(lái)進(jìn)行數(shù)據(jù)處理/時(shí)鐘覆蓋。通過(guò)將與RF 協(xié)議有關(guān)的高速信號(hào)處理放到芯片內(nèi),nRF905 提供給應(yīng)用的微控制器一個(gè)SPI 接口,速率由微控制器自己設(shè)定的接口速度決定。采用高斯頻移鍵控(GFSK)調(diào)制技術(shù),調(diào)制在100kbps。頻率偏離在50Khz。高斯頻移鍵控調(diào)制較普通的頻移鍵控在更寬的帶寬傳輸連接有效。數(shù)據(jù)在內(nèi)部進(jìn)行曼切斯特編碼(TX)和曼切斯特解碼(RX)。通過(guò)采用內(nèi)部曼切斯特編解碼,微控制器不需
21、要制定編解碼規(guī)則。 nRF905 單片無(wú)線收發(fā)器工作在433/868/915MHZ 的ISM 頻段。由一個(gè)完全集成的頻率調(diào)制器,一個(gè)帶解調(diào)器的接收器,一個(gè)功率放大器,一個(gè)晶體震蕩器和一個(gè)調(diào)節(jié)器組成。ShockBurst 工作模式的特點(diǎn)是自動(dòng)產(chǎn)生前導(dǎo)碼和CRC 。可以很容易通過(guò)SPI 接口進(jìn)行編程配置。電流消耗很低,在發(fā)射功率為-10dBm 時(shí)發(fā)射電流為11mA, 接收電流為12.5mA。進(jìn)入POWERDOWN 模式可以很容易實(shí)現(xiàn)節(jié)電。 特點(diǎn) ● 真正的單片、極少的材料消耗、無(wú)需外部SAW 濾波器。 ● 低功耗ShockBurst 工作模式。 ● 多通道工作— ETSI/FCC 兼容、
22、通道切換時(shí)間<650us。 ● 輸出功率可調(diào)至10dBm。 ● 傳輸前監(jiān)聽(tīng)的載波檢測(cè)協(xié)議。 ● 當(dāng)正確的數(shù)據(jù)包被接收或發(fā)送時(shí)有數(shù)據(jù)準(zhǔn)備就緒信號(hào)輸出。 ● 偵測(cè)接收的數(shù)據(jù)包當(dāng)?shù)刂氛_輸出地址匹配信號(hào)。 ● 數(shù)據(jù)包自動(dòng)重發(fā)功能。 ● 自動(dòng)產(chǎn)生CRC 和前導(dǎo)碼。 -CPU 操作電壓范圍: 1.9— 3.6V。 三、串口電平轉(zhuǎn)換芯片SP3232E SP3232E接收器滿足EIA/TIA-232和V.28/V.24通信協(xié)議,能應(yīng)用于用電池供電,便攜的手持式設(shè)備(如筆記本或掌上型電腦)的電平轉(zhuǎn)換。SP3232E器件都包含Sipex系列特有的片內(nèi)電荷泵電路,可從+3.0V~+5.5V的
23、電源電壓產(chǎn)生2Vcc的RS-232電壓電平。該系列適用于+3.3V系統(tǒng),混合的+3.3V~+5.5V系統(tǒng)或需要RS-232性能的+5.0V系統(tǒng)。SP3220E器件的驅(qū)動(dòng)器滿載工作時(shí)典型的數(shù)據(jù)速率為235Kbps。 第三章 硬件設(shè)計(jì) 整個(gè)電路分為3部分來(lái)做,模擬板,控制板,無(wú)線發(fā)射模塊。模擬板是整個(gè)電路的母板,控制板和收發(fā)模塊最后都是通過(guò)插座插在它上面的,這樣做的好處就是,減小了整個(gè)電路板的尺寸,減小系統(tǒng)的體積。以后只需改動(dòng)模擬板部分就可以使本無(wú)線數(shù)據(jù)采集系統(tǒng)應(yīng)用到其他方面,這樣就擴(kuò)大了本系統(tǒng)的應(yīng)用范圍。并且ARM
24、控制板還可用于其他方面,大大節(jié)約了成本! 控制板部分:利用公司現(xiàn)有的ARM最小系統(tǒng)板,更改其中的部分電路及接口以適用與本系統(tǒng)。它與其他部分的接口如下圖所示: 圖3.11 ARM與外圍器件連接圖 無(wú)線收發(fā)部分:采用成品無(wú)線收發(fā)模塊NRF905。其電路圖如下: 模擬板部分:主要實(shí)現(xiàn)的功能就是對(duì)采樣的信號(hào)進(jìn)行一些前級(jí)處理。由于ARM芯片LPC2132的A/D轉(zhuǎn)換只能轉(zhuǎn)換正電壓,所以必須要對(duì)采樣的信號(hào)進(jìn)行零點(diǎn)調(diào)整。 對(duì)兩路電流信號(hào)的處理如上圖3.31所示,J11接電流傳感器,它的輸出信號(hào)范圍在0—1V,它經(jīng)過(guò)第一級(jí)運(yùn)放的同相放大后,輸出Uout’=(1+R2/R1)Uin= 2U
25、in,為了不使負(fù)信號(hào)丟失,用第二級(jí)運(yùn)放來(lái)抬高零點(diǎn)。第二級(jí)運(yùn)放的輸出為Uout=2(Uo-Uin),其中Uo是調(diào)整電壓,為2.48V。抬高后的零點(diǎn)電壓為0.58mv,最后把處理過(guò)的信號(hào)在送給ARM進(jìn)行A/D轉(zhuǎn)換。 圖3.12 電流信號(hào)處理電路 對(duì)電壓信號(hào)的處理如圖3.32所示,由于采樣的電壓在220V左右,所以先采用電阻網(wǎng)絡(luò)把信號(hào)衰減500倍,然后把信號(hào)送至差分運(yùn)算放大器INA117,輸出Vout=V3-V2,最后也用相同的方法來(lái)抬高零點(diǎn)。具體電路如下: 圖3.13 電壓信號(hào)處理電路 第四章 軟件設(shè)計(jì) 第一節(jié) 通訊協(xié)議的設(shè)計(jì) 協(xié)議就是指
26、一些規(guī)則,簡(jiǎn)單的說(shuō)就是為了能相互理解,必須用同一種語(yǔ)言說(shuō)話。在簡(jiǎn)單的數(shù)據(jù)傳輸中,通信只朝一個(gè)方向進(jìn)行,從發(fā)射端到接收端通信可能在發(fā)射端和接收端之間受到外界的干擾而使數(shù)據(jù)發(fā)生錯(cuò)誤,因此需要協(xié)議來(lái)保證接收端能正確接收到從發(fā)射端來(lái)的數(shù)據(jù),并確定所接收數(shù)據(jù)是否是實(shí)際數(shù)據(jù)。 一個(gè)簡(jiǎn)單無(wú)線數(shù)據(jù)傳協(xié)議應(yīng)該具有以下特點(diǎn): ●最小的雜項(xiàng)開(kāi)銷:無(wú)線數(shù)傳協(xié)議應(yīng)該是有效的,協(xié)議必須增加一些信息到主要信息中,包括包識(shí)別代碼,錯(cuò)誤檢驗(yàn)等,增加信息的數(shù)量必須是所需信息中最少的; ●有效性:協(xié)議必須能可靠將有用數(shù)據(jù)從錯(cuò)誤數(shù)據(jù)中分離出來(lái)。通常是在數(shù)據(jù)流中嵌于錯(cuò)誤檢驗(yàn)格式來(lái)實(shí)現(xiàn)。奇偶校驗(yàn)、校驗(yàn)和CRC 都是檢錯(cuò)碼的常用格式
27、。 ●可靠性:一個(gè)協(xié)議如果能夠糾正數(shù)據(jù)的錯(cuò)誤,則認(rèn)為該協(xié)議是可靠的。 本系統(tǒng)中我采用了一種比較簡(jiǎn)單可靠的通訊協(xié)議——MODBUS(RTU)通信協(xié)議,下面將介紹什么是MODBUS傳輸協(xié)議。 一、 MODBUS通訊協(xié)議簡(jiǎn)介 Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一種通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。 此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了控制器請(qǐng)求訪問(wèn)其它設(shè)備的過(guò)程,如果回應(yīng)來(lái)自其它設(shè)備的請(qǐng)
28、求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。 當(dāng)在Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器須要知道它們的設(shè)備地址,識(shí)別按地址發(fā)來(lái)的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測(cè)的方法。 控制器通信使用主—從技術(shù),即僅設(shè)備(主設(shè)備)能初始化傳輸(查詢)。其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。典型的主設(shè)備:主機(jī)和可編程控制器。典型的從設(shè)備:可編程控制器。 主設(shè)備可單獨(dú)和從設(shè)備
29、通信,也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。Modbus協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、一錯(cuò)誤檢測(cè)域。 從設(shè)備回應(yīng)消息也由Modbus協(xié)議構(gòu)成,包括確認(rèn)要行動(dòng)的域、任何要返回的數(shù)據(jù)、和一錯(cuò)誤檢測(cè)域。如果在消息接收過(guò)程中發(fā)生一錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯(cuò)誤消息并把它作為回應(yīng)發(fā)送出去。 Modbus有兩種傳輸模式:ASCII模式,RTU模式。ASCII模式 : 地址、功能代碼、數(shù)據(jù)數(shù)量、數(shù)據(jù)1 ... 數(shù)據(jù)n、LRC高字節(jié)、LRC低字節(jié)、回車、換行;RTU模式
30、 :地址、功能代碼、數(shù)據(jù)數(shù)量、數(shù)據(jù)1 ... 數(shù)據(jù)n、CRC高字節(jié)、CRC低字節(jié)。所選的ASCII或RTU方式僅適用于標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò),它定義了在這些網(wǎng)絡(luò)上連續(xù)傳輸?shù)南⒍蔚拿恳晃唬约皼Q定怎樣將信息打包成消息域和如何解碼。 在其它網(wǎng)絡(luò)上(象MAP和Modbus Plus)Modbus消息被轉(zhuǎn)成與串行傳輸無(wú)關(guān)的幀。 本系統(tǒng)則使用RTU模式,采用這種模式的特點(diǎn)是在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù)。 二、通訊協(xié)議的構(gòu)建 MODBUS通訊協(xié)議中,一個(gè)典型的RTU消息幀格式如下所示: 通過(guò)分析本系統(tǒng)的要求,參照MODBUS通訊協(xié)議中典型的RTU消息幀的結(jié)
31、構(gòu),構(gòu)建一個(gè)14字節(jié)的消息幀,幀結(jié)構(gòu)如下所示: 起始位:協(xié)議的第一件事就是能夠識(shí)別噪聲和有效數(shù)據(jù)。噪聲是以隨機(jī)字節(jié)出現(xiàn)的,沒(méi)有明顯的方式,一個(gè)理想的噪聲源應(yīng)該能夠產(chǎn)生每一種可能字節(jié)信息的結(jié)合,噪聲的這種特性使得相當(dāng)困難去找一種字節(jié)組合來(lái)作為有效包的開(kāi)始,幸運(yùn)的是噪聲并不是理想的。這樣我們就可以通過(guò)加起始位,規(guī)定接收的一方只接收以起始位開(kāi)始的數(shù)據(jù)包。本系統(tǒng)中的起始位為:0xAA 0xFF 0xAA。 分機(jī)號(hào):也即消息幀的地址域包含一個(gè)字節(jié)。分機(jī)個(gè)數(shù)的范圍是1...254。主機(jī)通過(guò)將要聯(lián)絡(luò)的分機(jī)的分機(jī)號(hào)放入消息中的地址域來(lái)選通該分機(jī)。其中地址0xFF是用作廣播地址,以使所有的分機(jī)都能認(rèn)
32、識(shí)。 功能碼:消息幀中的功能代碼域包含了一個(gè)字節(jié)??赡艿拇a范圍是十進(jìn)制的1...255。當(dāng)然,有些代碼是適用于所有控制器,有些是應(yīng)用于某種控制器,還有些保留以備后用。 當(dāng)消息從主機(jī)發(fā)往分機(jī)時(shí),功能代碼域?qū)⒏嬷畯姆謾C(jī)需要執(zhí)行哪些行為。例如去讓分機(jī)開(kāi)始采樣,讀一通道的數(shù)據(jù)內(nèi)容,讀全部采樣數(shù)據(jù)等。本系統(tǒng)中設(shè)計(jì)有8中功能碼,分別是: 表4.1 功能碼定義 功能碼 名稱 所表示的意義 1 TASK_ADC_SAMP 單獨(dú)采樣 2 TASK_ADC_SAMP_TRIG 觸發(fā)采樣 3 TASK_ADC_READ_ONE_CH 讀廣播采樣單通道數(shù)據(jù) 4 TASK_ADC_RE
33、AD_4_DATA 讀廣播采樣讀4個(gè)數(shù)據(jù) 5 TASK_ADC_READ_2048_DATA 讀廣播采樣讀2048個(gè)數(shù)據(jù) 6 TASK_ADC_READ_3_CH 讀廣播采樣3通道數(shù)據(jù) 7 TASK_ADC_BROCAST_SAMP 廣播采樣 8 TASK_SAVE_ONE_DATA 單點(diǎn)數(shù)據(jù)保存 采樣通道號(hào)、采樣長(zhǎng)度:告訴分機(jī)采第幾個(gè)通道,采多少數(shù)據(jù)。 CRC校驗(yàn):標(biāo)準(zhǔn)的Modbus協(xié)議有兩種錯(cuò)誤檢測(cè)方法。LRC(縱向冗長(zhǎng)檢測(cè))方法和CRC(循環(huán)冗長(zhǎng)檢測(cè))方法。由于系統(tǒng)選用RTU模式為字符幀,所以只能選用CRC校驗(yàn)。 CRC域附加在消息的最后,添加時(shí)先是低字節(jié)然
34、后是高字節(jié)。故CRC的高位字節(jié)是發(fā)送消息的最后一個(gè)字節(jié)。本系統(tǒng)中CRC校驗(yàn)函數(shù)為unsigned short CalCRC16(unsigned char *p, unsigned short len,unsigned short crc)。 此CRC程序的特別之處在于:可以對(duì)不連續(xù)的數(shù)據(jù)組進(jìn)行計(jì)算,這樣,在發(fā)送數(shù)據(jù)量比較大的時(shí)候,不必把要發(fā)送的數(shù)據(jù)存放到連續(xù)的內(nèi)存空間,節(jié)約了內(nèi)存空間。其中p為一小段連續(xù)的數(shù)據(jù)的起止地址,len為該段數(shù)據(jù)的長(zhǎng)度,crc為先前計(jì)算所得的crc值,如果是第一次計(jì)算,crc為0。 至此一個(gè)簡(jiǎn)單實(shí)用的基于標(biāo)準(zhǔn)Modbus RTU 的通訊協(xié)議就構(gòu)建完畢。 第二節(jié)
35、 采樣控制 菲利蒲的ARM LPC2132只有1個(gè)10位8路A/D轉(zhuǎn)換器,利用軟件控制的方式,對(duì)4個(gè)通道逐個(gè)循環(huán)采樣。本系統(tǒng)的采樣方式有兩種:廣播采樣和觸發(fā)采樣。廣播采樣就是對(duì)4個(gè)通道逐個(gè)循環(huán)采樣,前3個(gè)通道每通道采4K數(shù)據(jù),第4個(gè)通道用作分機(jī)的電池電壓監(jiān)控,每次只采一個(gè);觸發(fā)采樣是對(duì)某一個(gè)通道進(jìn)行采樣。程序流程圖如圖4.2.1 所示: 圖4.21 采樣程序流程圖 表4.2給出ADC采樣的程序分析說(shuō)明,具體程序見(jiàn)附錄。 表 4.2 采樣函數(shù)說(shuō)明 函數(shù)名稱 函數(shù)功能 AdcInitPara() ADC轉(zhuǎn)換前的初始化。設(shè)定采樣長(zhǎng)度,設(shè)置管腳用做A/D輸入,配置ADC控制寄存
36、器。 ADCSamp_Tring() 單通道,ADC觸發(fā)采樣函數(shù)。通道號(hào)由MODBUS接收的數(shù)據(jù)包中的g_uaBusReceBuff[3]決定。 TestSampStart 4通道,ADC采樣函數(shù)。由軟件控制對(duì)4個(gè)通道逐個(gè)循環(huán)采樣,采樣的結(jié)果存在采樣數(shù)據(jù)緩沖存儲(chǔ)數(shù)組g_usAdcBuffer[4]中。 AdcInt() AD采樣函數(shù)??筛鶕?jù)功能碼選擇是廣播采樣,還是觸發(fā)采樣。 Timer0_Init() 定時(shí)器0初始化,可設(shè)定4個(gè)通道循環(huán)一次的時(shí)間,以便把采樣數(shù)據(jù)緩沖存儲(chǔ)數(shù)組中的結(jié)果轉(zhuǎn)存在g_uaBusSendBuff[],g_usAdcSampCnt為下標(biāo) AdcDisab
37、le() 利用定時(shí)器來(lái)關(guān)閉AD轉(zhuǎn)換。 第三節(jié) ARM與NRF905的接口及軟件設(shè)計(jì) NRF905所有的配置都是通過(guò)SPI口進(jìn)行的,菲利蒲的ARM芯片LPC2132具有一個(gè)硬件SPI(Serial Peripheral Interface)口,它是一個(gè)同步、全雙工串行接口,最大數(shù)據(jù)位速率為時(shí)鐘速率的1/8。這樣它就可以通過(guò)SPI總線與NRF905連接,通過(guò)向SPI總線發(fā)送相應(yīng)的命令來(lái)控制NRF905的工作,如圖4.3.1所示: 圖4.31 SPI總線配置 數(shù)據(jù)傳輸?shù)钠鹗加砂l(fā)送數(shù)據(jù)字節(jié)的主機(jī)來(lái)指示。此時(shí),主機(jī)可激活時(shí)鐘并開(kāi)始傳輸。當(dāng)傳輸?shù)淖詈笠粋€(gè)時(shí)鐘周期結(jié)束時(shí),傳輸結(jié)束。但是
38、LPC2132的SPI有4種不同的數(shù)據(jù)傳輸格式,數(shù)據(jù)和時(shí)鐘的相位關(guān)系如表4.3所述。 表4.3 SPI數(shù)據(jù)和時(shí)鐘的相位關(guān)系 CPOL和CPHA的設(shè)定 驅(qū)動(dòng)的第一個(gè)數(shù)據(jù) 驅(qū)動(dòng)的下一個(gè)數(shù)據(jù) 采樣的數(shù)據(jù) CPOL=0,CPHA=0 在第一個(gè)SCK上升沿之前 SCK下降沿 SCK上升沿 CPOL=0,CPHA=1 第一個(gè)SCK上升沿 SCK上升沿 SCK下降沿 CPOL=1,CPHA=0 在第一個(gè)SCK下降沿之前 SCK上升沿 SCK下降沿 CPOL=1,CPHA=1 第一個(gè)SCK下降沿 SCK下降沿 SCK上升沿 說(shuō)明:CPOL為時(shí)鐘極性控制,CPHA為時(shí)
39、鐘相位控制。 LPC2132的SPI的設(shè)置必須要符合NRF905的SPI時(shí)序要求,否則會(huì)出現(xiàn)不可預(yù)測(cè)的錯(cuò)誤。根據(jù)NRF905的數(shù)據(jù)手冊(cè),通過(guò)分析它的SPI讀寫時(shí)序圖,見(jiàn)圖4.3.2??芍猄PI數(shù)據(jù)和時(shí)鐘的相位關(guān)系是: SCK高電平有效,第一個(gè)數(shù)據(jù)在第一個(gè)SCK上升沿之前被驅(qū)動(dòng),在SCK下降沿驅(qū)動(dòng)下一個(gè)數(shù)據(jù),數(shù)據(jù)在SCK上升沿被采樣。 圖4.32 NRF905的SPI時(shí)序圖 一、 NRF905的SPI寄存器配置 nRF905 的所有配置都通過(guò)SPI 接口進(jìn)行,SPI 接口由5 個(gè)寄存器組成。一條SPI 指令用來(lái)決定進(jìn)行什么操作,SPI 接口只有在掉電模式和Standby 模式是激活
40、的。 這5個(gè)寄存器分別是: 狀態(tài)寄存器(Status-Register)包含數(shù)據(jù)就緒DR 和地址匹配AM 狀態(tài);RF 配置寄存器(RF-Configuration Register)包含收發(fā)器的頻率,輸出功率等信息;發(fā)送地址(TX-Address)包含目標(biāo)器件地址字節(jié)長(zhǎng)度,由配置寄存器設(shè)置;發(fā)送有效數(shù)據(jù)(TX-Payload)包含發(fā)送的有效數(shù)據(jù)包,數(shù)據(jù)長(zhǎng)度由配置寄存器設(shè)置;接收有效數(shù)據(jù)(RX-Payload)包含接收到的有效數(shù)據(jù)包,數(shù)據(jù)長(zhǎng)度由配置寄存器設(shè)置。 (一)、NRF905的SPI指令設(shè)置 用于SPI 接口的有用命令見(jiàn)下表4.4,當(dāng)CSN 為低時(shí)SPI 接口開(kāi)始等待一條指令,任何一
41、條新指令均由CSN的由高到低的轉(zhuǎn)換開(kāi)始。 表4.4 SPI串行接口指令設(shè)置 SPI 串行接口指令 指令名稱 指令格式 操作 W_CONFIG(WC) 0000AAAA 寫配置寄存器AAAA。指出寫操作的開(kāi)始字節(jié),字節(jié)數(shù)量取決于AAAA 指出的開(kāi)始地址 R_CONFIG (RC) 0001AAAA 讀配置寄存器AAAA。指出讀操作的開(kāi)始字節(jié),字節(jié)數(shù)量取決于AAAA 指出的開(kāi)始地址 W_TX_PAYLOAD(WTP) 00100000 寫TX 有效數(shù)據(jù):1-32 字節(jié),寫操作全部從字節(jié)0 開(kāi)始。 R_TX_PAYLOAD(RTP) 00100001 讀TX 有效
42、數(shù)據(jù):1-32 字節(jié),讀操作全部從字節(jié)0 開(kāi)始。 W_TX_ADDRESS(WTA) 00100010 寫TX 地址:1-4 字節(jié),寫操作全部從字節(jié)0 開(kāi)始。 R_TX_ADDRESS(RTA) 00100011 讀TX 地址:1-4 字節(jié),讀操作全部從字節(jié)0 開(kāi)始。 R_RX_PAYLOAD(RRP) 00100100 讀RX 有效數(shù)據(jù):1-32 字節(jié),讀操作全部從字節(jié)0 開(kāi)始。 CHANNEL_CONFIG(CC) 1000pphc cccccccc 快速設(shè)置配置寄存器中CH_NO,HFREQ_PLL 和PA_PWR 的專用命令。CH_NO=ccccccccc;H
43、FREQ_PLL=h ;PA_PWR=pp (二)、NRF905的RF寄存器的配置 為了能讓NRF905正常工作,則必須要對(duì)它的RF配置寄存器進(jìn)行配置,并且主機(jī)與分機(jī)收發(fā)模塊的RF配置寄存器中的配置需一致,這樣兩者之間才能正常建立通信!下面將給出NRF905的RF配置寄存器中主要參數(shù)的介紹及基本設(shè)置: 表4.5 RF寄存器部分字節(jié)配置說(shuō)明 名稱 設(shè)定值 說(shuō)明 CH_NO 0 0110 1100 載波頻率為433.2MHZ HRFEQ_PLL 0 設(shè)定PLL工作模式 PA_PWR 11 輸出功率10dbm RX_PW、TX_PW 000 0001 1字節(jié)有
44、效數(shù)據(jù) UP_CLK_EN 0 外部時(shí)鐘禁止 XOF 011 晶體震蕩器頻率16M CRC_EN 1 使能CRC校驗(yàn) CRC_MODE 1 使用16位CRC校驗(yàn) NRF905模塊中,RF寄存器包含了10個(gè)字節(jié)。其配置字內(nèi)容將決定了射頻模塊NRF905的工作特性。配置完后的寄存器內(nèi)容如表4.6所示: 表4.6 RF寄存器配置內(nèi)容 字節(jié)# 內(nèi)容位[7:0] 設(shè)定值 0 CH_NO[7:0] 0110 1100 1 Bit[7:6]沒(méi)用,AUTO_RETRAN,RX_RED_PWR,PA_PWR[1:0],HFREQ_PLL,CH_NO[8] 00
45、00 1100 2 Bit[7]沒(méi)用,TX_AFW[2:0] ,Bit[3]沒(méi)用,RX_AFW[2:0] 0100 0100 3 Bit[7:6]沒(méi)用,RX_PWR[5:0] 0000 0001 4 Bit[7:6]沒(méi)用TX_PWR[5:0] 0000 0001 5 RX 地址0字節(jié) 0x03 6 RX 地址1字節(jié) 0x03 7 RX 地址2字節(jié) 0x03 8 RX 地址3字節(jié) 0x03 9 CRC_ 模式,CRC 校驗(yàn)允許,XOF[2:0],UP_CLK_EN,UP_CLK_FREQ[1:0]
46、 1101 1000 二、 NRF905的工作模式 nRF905 有兩種活動(dòng)模式和兩種節(jié)電模式?;顒?dòng)模式:ShockBurst RX、ShockBurst TX;節(jié)電模式:掉電和SPI 編程、STANDBY 和SPI 編程。nRF905 工作模式由TRX_CE、TX_EN、PWR_UP 的設(shè)置來(lái)設(shè)置。如下表4.7所示: 表4.7 工作模式介紹 PWR_UP TRX_CE TX_EN 工作模式 0 X X 掉電和SPI 編程 1 0 X STANDBY 和SPI 編程 1 1 0 ShockBurst RX 1 1 1 ShockBurst
47、TX (一)、nRF ShockBurst 模式簡(jiǎn)介 nRF905 采用Nordic 公司的VLSI ShockBurst 技術(shù)。ShockBurst 技術(shù)使nRF905 能夠提供高速的數(shù)據(jù)傳輸而不需要昂貴的高速M(fèi)CU 來(lái)進(jìn)行數(shù)據(jù)處理/時(shí)鐘覆蓋。通過(guò)將與RF 協(xié)議有關(guān)的高速信號(hào)處理放到芯片內(nèi),nRF905 提供給應(yīng)用的微控制器一個(gè)SPI 接口,速率由微控制器自己設(shè)定的接口速度決定??傊?,這意味著降低MCU 的存儲(chǔ)器需求也就是說(shuō)降低MCU 成本,又同時(shí)縮短軟件開(kāi)發(fā)時(shí)間。 掉電模式:在掉電模式中,nRF905 被禁止,電流消耗最小,典型值低于2.5uA。當(dāng)進(jìn)入這種模式時(shí)nRF905
48、是不活動(dòng)的狀態(tài),這時(shí)候平均電流消耗最小,電池使用壽命最長(zhǎng),在掉電模式中配置字的內(nèi)容保持不變。在本系統(tǒng)中未使用這種模式。 Standby 模式:Standby 模式在保持電流消耗最小的同時(shí)保證最短的到ShockBurst RX, ShockBurstT X 的啟動(dòng)時(shí)間當(dāng)進(jìn)入這種模式時(shí),一部分晶體振蕩器是活動(dòng)的。電流消耗取決于晶體振蕩器頻率,如:IDD=12uA 當(dāng)4MHZ;IDD=46uA 當(dāng)20MHZ。如果uP -clock 被使能,電流消耗將增加,并且取決于負(fù)載電容和頻率。在此模式中配置字的內(nèi)容保持不變,在這種模式下可對(duì)NRF905進(jìn)行SPI編程操作! ShockBurst RX:在Sh
49、ockBurst RX模式下數(shù)據(jù)接收流程圖如圖4.3.5所示: 圖4.34 NRF905數(shù)據(jù)接收流程圖 ShockBurst TX模式:在ShockBurst TX模式下數(shù)據(jù)發(fā)送流程圖如圖4.3.4所示: 圖4.35 NRF905數(shù)據(jù)傳輸流程圖 (二)、模式間切換時(shí)間 NRF905工作時(shí),各模式間的切換必須遵守表4.8中所規(guī)定的時(shí)間要求,在編程時(shí)需要注意。 表4.8 NRF905模式切換時(shí)間 NRF905時(shí)序 最小值 PWR_DWN—>ST_BY 模式 3MS STBY—>ShockBurst TX模式 650US STBY—>ShockBurst RX
50、模式 650US ShockBurst TX—> ShockBurst RX模式 550US ShockBurst RX—> ShockBurst TX模式 550US 第四節(jié) 主機(jī)軟件設(shè)計(jì) ADS編輯環(huán)境及文件基本結(jié)構(gòu) 點(diǎn)擊“+”即可展開(kāi)相應(yīng)的文件夾。后3個(gè)文件夾中各自包含多個(gè)C文件,相應(yīng)的頭文件存放于該文件夾中的二級(jí)文件夾,展開(kāi)二級(jí)文件夾,即可看到相應(yīng)的H文件。 本程序結(jié)構(gòu)參考了國(guó)際知名軟件uC/OS-II的頭文件寫法,即頭文件包含頭文件,基本上在C文件中都只使用一個(gè)包含語(yǔ)句“#include "config.h"”,所以在con
51、fig.h(存放于)文件中,必須列出你的程序所應(yīng)用到的H文件,這些文件包括Driver、Gui、User等的頭文件。這樣做的壞處只是程序編譯的時(shí)間變長(zhǎng)了一點(diǎn)點(diǎn),帶來(lái)的好處卻是程序結(jié)構(gòu)清晰,容易管理。 主機(jī)程序結(jié)構(gòu)說(shuō)明 ARM主程序使用的是任務(wù)不可剝奪的任務(wù)循環(huán)檢測(cè)機(jī)制。初始化完成后,程序進(jìn)入主循環(huán)(消息環(huán)),循環(huán)檢測(cè)不同的事件標(biāo)志位。如有事件觸發(fā),執(zhí)行相應(yīng)的任務(wù),完成后返回主循環(huán),等待下一次的事件觸發(fā)。由定時(shí)器T0產(chǎn)生一個(gè)定時(shí)器事件(g_bMsgIntTimer0),用于掃描鍵盤。如有按鍵按下將g_bMsgKeyPress置一個(gè)標(biāo)志位(即產(chǎn)生一按鍵事件)。根據(jù)當(dāng)前任務(wù)及所按下的鍵(其鍵值)
52、執(zhí)行相應(yīng)的操作。用戶事件由鍵盤操作產(chǎn)生。 主程序流程圖如下圖4.41所示: 初始化 開(kāi)始 定時(shí)時(shí)間到了嗎? 有無(wú)按鍵按下? 是否更新任務(wù)? 菜單處理 處理鍵盤事件 處理用戶事件 Y N Y N N Y 圖4.41
53、 主程序流程圖 一、 主機(jī)界面設(shè)計(jì)說(shuō)明 無(wú)線數(shù)據(jù)采集系統(tǒng)的主機(jī)系統(tǒng)界面設(shè)計(jì)流程圖如圖4.42所示: 開(kāi)始 更新界面任務(wù)? …… …… 顯示界面任務(wù)1 Case 0 Case k Case N 顯示界面任務(wù)k 顯示界面任務(wù)N 結(jié)束 圖4.42 任務(wù)調(diào)度流程圖 系統(tǒng)主界面要有良好的人機(jī)交互界面,界面美觀、清晰,操作簡(jiǎn)單,達(dá)到實(shí)用的目的。主界面如下圖所示: 圖4.43 主界面 (一)測(cè)試界面的設(shè)計(jì)
54、 圖4.44 測(cè)試界面 功能:在此界面下,可對(duì)分機(jī)進(jìn)行操作。并對(duì)采回的數(shù)據(jù)進(jìn)行分析和處理。 (二)管理界面的設(shè)計(jì) 圖4.45 管理界面 此界面下的具體功能還未編程實(shí)現(xiàn)! 二、廣播采樣界面設(shè)計(jì) 圖4.46 廣播采樣界面 功能:在此界面下,主機(jī)發(fā)送廣播命令給分機(jī),所有分機(jī)接到此命令后,同時(shí)進(jìn)行采樣工作! 程序設(shè)計(jì)思想:點(diǎn)擊廣播采樣,主機(jī)就會(huì)把廣播命令發(fā)送出去。 三、數(shù)據(jù)讀取界面設(shè)計(jì) 圖4.47 分機(jī)選擇界面 功能:在此界面下,選擇相應(yīng)的分機(jī)時(shí),主機(jī)就會(huì)把訪問(wèn)此分機(jī)的MODBUS命令發(fā)送出去,并等待分機(jī)傳回
55、數(shù)據(jù)。分機(jī)收到命令后把采樣數(shù)據(jù)傳回給主機(jī)!在本設(shè)計(jì)中,分機(jī)每通道傳1K數(shù)據(jù)給主機(jī)。 程序設(shè)計(jì)思想:選擇需要讀回?cái)?shù)據(jù)的分機(jī),主機(jī)就會(huì)相應(yīng)的命令發(fā)送出去,并等待分機(jī)響應(yīng),傳回?cái)?shù)據(jù)!同時(shí)在液晶上顯示相應(yīng)的指示,方便用戶操作。例如點(diǎn)擊分機(jī)一則程序如下: for(Txcnt=0;Txcnt<14;Txcnt++) { TransmitPacket(Modbus_Buffer0[Txcnt]);//發(fā)送讀取分機(jī)數(shù)據(jù)命令 Delay_NS(5); //一幀命令中,各字節(jié)之間的延時(shí),確保接收無(wú)誤 }
56、 LcdClearArea(9,11,120,53); LcdShowStr(12,25,"讀1號(hào)分機(jī)數(shù)據(jù)中...",0); do { SetRxMode(); //置接收模式 scanDR = IO1PIN; scanAM = IO1PIN;
57、 if((scanDR&DR)&&(scanAM&AM)) //等待無(wú)線收到數(shù)據(jù)DR=1,AM=1 { IO1CLR |= CSN; //SPI讀數(shù)據(jù) IO1CLR |= TRX_CE; //進(jìn)入standby模式 SpiReadWrite(RRP); //讀取數(shù)據(jù) g_uc
58、BusReceBuff0[g_usModBusReceCnt++] = SpiReadWrite(0); IO1SET |= CSN; IO1SET|= TRX_CE; } } while(g_usModBusReceCnt<3073); //判斷數(shù)據(jù)是否讀完 LcdClearArea(9,11,120,53); LcdShowStr(12,25,"1號(hào)分機(jī)數(shù)據(jù)讀完!",
59、0); 四、數(shù)值顯示界面設(shè)計(jì) 圖4.48 數(shù)值顯示界面 功能:在此界面下,可對(duì)采回的數(shù)據(jù)進(jìn)行簡(jiǎn)單的數(shù)值計(jì)算,算出各點(diǎn)的電壓、電流值。在這里只對(duì)兩個(gè)分機(jī)的數(shù)據(jù)進(jìn)行了處理! 程序設(shè)計(jì)思想:把分機(jī)的采樣數(shù)據(jù)進(jìn)行簡(jiǎn)單的數(shù)值計(jì)算,最后把結(jié)果打印在屏幕上。具體計(jì)算方法是,先把采樣值轉(zhuǎn)換成電壓值,計(jì)算公式是Uo=采樣值*2450/256。然后在把所有值累加后求出平均。由于為了測(cè)量負(fù)信號(hào),電路抬高了零點(diǎn),所以在最后還要減去零點(diǎn)570mv,這樣最后的結(jié)果才正確。下面給出具體程序: for(cnt=0;cnt<1024;cnt++) { g_ucSumExt0_buff0 += (
60、g_ucBusReceBuff0[cnt]*2450)/256;//計(jì)算電壓值 } g_ucSumExt0_buff0 = (g_ucSumExt0_buff0/1024-574)/1000;//減去零點(diǎn) sprintf(Ext0_str0,"1# U0=%3.1fV,",g_ucSumExt0_buff0);//在屏幕上打印數(shù)值 五、波形顯示界面設(shè)計(jì) 圖4.49 波形顯示界面 功能:在此界面下,可對(duì)各分機(jī)每通道采集的數(shù)據(jù)畫出波形。 程序設(shè)計(jì)思想:用lcd副本緩存作為畫圖區(qū),畫完后用LcdPaste()函數(shù)把波形顯示在屏幕上。具體程序如下: /***************
61、*********************************************************** * 函數(shù)功能: 畫波形 * 入口參數(shù): data為AD轉(zhuǎn)換數(shù)據(jù)緩沖 *************************************************************************** void OscDrawWave(int8 *data) { int32 i, y1,y2; OscCls();//清屏幕 //以下程序用來(lái)確定波形的起始位置 y1 = OSC_OFFSET - data[0]; //用
62、偏移量減去AD值 if(y1 > OSC_HEIGHT-1) y1 = OSC_HEIGHT-1; //判斷是否大于Y軸最大值 if(y1 < OSC_SHOW_Y) y1 = OSC_SHOW_Y; //判斷是否小于Y軸最小值 //以下程序是畫波形 for(i = 1; i < OSC_WIDTH; i++) { y2 = OSC_OFFSET - data[i]; if(y2 > OSC_HEIGHT-1) y2 = OSC_HEIGHT-1; if(y2 < OSC_SHOW_Y) y2 = OSC_SHOW_Y; OscDr
63、awLine(i,y1,y2);//畫豎線 y1 = y2; } //在屏幕上畫出波形 LcdPaste(OSC_SHOW_X,OSC_SHOW_Y,OSC_SHOW_X+OSC_WIDTH-1,OSC_SHOW_Y+OSC_HEIGHT-1); } /************************************************************************** * 函數(shù)功能: 畫豎線 *************************************************************************
64、*/ void OscDrawLine(unsigned char x, unsigned char y1, unsigned char y2) { unsigned char i; if(y2 < y1) {i = y2; y2 = y1; y1 = i;} //讓y2>y1 for(i = y1; i <= y2; i++) OscDrawPixel(x, i); } /************************************************************************** * 函數(shù)功能: 在緩存中畫點(diǎn) ******
65、********************************************************************/ void OscDrawPixel(unsigned char x,unsigned char y) { unsigned char *p,page,bit; if(x >= OSC_WIDTH || y >= OSC_HEIGHT) return; x += OSC_SHOW_X; y += OSC_SHOW_Y; page = y >> 3; bit = y % 8; p = &g_aaucScrCpy[page]
66、[x]; *p |= (1 << bit); } /************************************************************************** * 函數(shù)功能: 清屏,畫坐標(biāo)**************************************************************************/ void OscCls(void) { unsigned char i; memset(g_aaucScrCpy,0x00,128*8); //清屏 OscDrawLine(0, 0, OSC_HEIGHT-1); for(i = OSC_HEIGHT%10/2; i < OSC_HEIGHT; i+=10) OscDrawPixel(1,i); //縱 for(i = 1; i < OSC_WIDTH; i++) OscDrawPixel(i,OSC_HEIGHT); for(i = 12; i < OSC_WIDTH; i+=12) OscDra
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 植樹問(wèn)題講課
- 小小圖書館賈世喜
- 小班數(shù)學(xué):變得一樣多
- 蘇教版三年級(jí)數(shù)學(xué)上冊(cè)教學(xué)ppt課件58:解決問(wèn)題的策略復(fù)習(xí)
- 小學(xué)科學(xué)六下《拓展與應(yīng)用》-公開(kāi)課一等獎(jiǎng)ppt課件
- 高中英語(yǔ)人教版選修七Unit-2-Robots-ppt課件
- 第九章長(zhǎng)期負(fù)債課件
- 皮膚免疫系統(tǒng)課件
- 辦公樓施工現(xiàn)場(chǎng)消防安全管理要求規(guī)范課件
- freeroi在功能磁共振roi分析中的應(yīng)用
- 《永遇樂(lè)&#183;京口北固亭懷古》用典講解課件
- 《秋天的雨》微課課件
- 護(hù)患溝通技巧-課件
- 《高等數(shù)學(xué)B》第十章___微分方程與差分方程__第6節(jié)__差分與差分方程的概念_、……課件
- 英語(yǔ)(人教版)九年級(jí)總復(fù)習(xí)題型訓(xùn)練補(bǔ)全對(duì)話(含最新原創(chuàng)題)課件