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