基于nRF24L01和PIC16F877無(wú)線數(shù)據(jù)傳輸
3.軟件設(shè)計(jì)
要設(shè)計(jì)好系統(tǒng)的軟件,必須清楚其工作原理:首先給發(fā)射機(jī)上電,配置其L01為PRX,使其進(jìn)入接收模式等待主機(jī)的握手指令,此時(shí)采集裝置并未開(kāi)始工作。然后將接收機(jī)通過(guò)USB接口連接計(jì)算機(jī),運(yùn)行VB程序,點(diǎn)擊開(kāi)始試驗(yàn)按鈕,握手指令(H’33’)便通過(guò)接收機(jī)的L01 (上電配置為PTX)發(fā)射出去,發(fā)射機(jī)在接收到握手指令后,還要做出判斷,若不是H’33’,則繼續(xù)等待握手指令;若是,表示雙方建立連接成功,此時(shí)發(fā)射機(jī)的L01便配置為PTX,同時(shí)單片機(jī)向采集裝置發(fā)送一脈寬為3.6us的高電平脈沖以激活A(yù)/D,使其開(kāi)始采樣,采樣率為1KHz。由于每路傳感器信號(hào)都要被A/D采樣,并轉(zhuǎn)換為12bit數(shù)字量(認(rèn)為是2 Byte),那么10通道則為20 Byte,經(jīng)過(guò)單片機(jī)處理后再送入L01打包發(fā)射。350us之后,接收機(jī)收到該數(shù)據(jù),并通過(guò)單片機(jī)和USB芯片實(shí)時(shí)寫(xiě)入計(jì)算機(jī)緩存區(qū)內(nèi),這樣雙方數(shù)據(jù)傳輸10000次,每次20Byte,傳輸完畢后數(shù)據(jù)曲線會(huì)在VB界面上實(shí)時(shí)顯示。
基于以上分析,該系統(tǒng)軟件分為兩部分:單片機(jī)控制程序和計(jì)算機(jī)界面程序。前者主要完成以nRF24L01為核心的多通道信號(hào)的采集和無(wú)線傳輸,后者則完成信號(hào)的顯示,以供研究人員分析。本文只介紹控制程序,它采用模塊化程序設(shè)計(jì)方法, 分為發(fā)射機(jī)程序和接收機(jī)程序兩部分。其流程圖如圖3所示。
由于采集系統(tǒng)以1KHz進(jìn)行采樣,即每1ms送20Byte數(shù)據(jù),因此無(wú)線部分進(jìn)行一次傳輸需1ms。若接收機(jī)執(zhí)行接收子程序不夠1ms,則必須通過(guò)延遲補(bǔ)夠,以和發(fā)射同步。另外,在接收機(jī)程序中特設(shè)置800us定時(shí)器中斷,以防接收機(jī)因接收不到數(shù)據(jù)而長(zhǎng)時(shí)間等待,影響數(shù)據(jù)的傳輸效率。
評(píng)論