1 系統(tǒng)概述
1.1 系統(tǒng)組成
該無線答題統(tǒng)計系統(tǒng)由上位機、教師模塊(父節(jié)點)、學(xué)生模塊(子節(jié)點)3部分組成,如圖1所示。上位機是基于Windows的串口通信程序,它通過電腦串口和父節(jié)點連接,父節(jié)點和子節(jié)點都是無線通信模塊。各模塊功能如圖1所示。
上位機功能:(1)負責(zé)向父節(jié)點發(fā)送命令;(2)接受父節(jié)點發(fā)來的答題數(shù)據(jù);(3)對收集的數(shù)據(jù)進行統(tǒng)計顯示。
父節(jié)點功能:(1)接受上位機發(fā)來的命令;(2)向子節(jié)點發(fā)送相應(yīng)的命令;(3)收集子節(jié)點答題信息。
子節(jié)點功能:(1)接受父節(jié)點發(fā)來的命令;(2)將信息發(fā)給父節(jié)點。
硬件實物圖如圖2所示。圖2是父節(jié)點的硬件布局:(1)是程序下載口;(2)是電源開關(guān);(3)是電池供電接口;(4)是跳針,戴上跳線帽時允許電池供電,摘下跳線帽時不允許電池供電;(5)是USB供電接口。(6)是RS232接口。
圖3是子節(jié)點的硬件布局:(1)是程序下載口;(2)是電源開關(guān);(3)是電池供電接口;(4)是跳針,戴上跳線帽時允許電池供電,摘下跳線帽時不允許電池供電;(5)是USB供電接口;(6)是液晶顯示器;(7)是按鍵和LED燈。
1.2 系統(tǒng)基本流程
系統(tǒng)初始化后,上位機向父節(jié)點發(fā)送“在線查詢”命令,父節(jié)點接收命令,并向子節(jié)點廣播該“在線查詢”命令,子節(jié)點接收到命令后將自己的節(jié)點號和在線狀態(tài)回復(fù)給父節(jié)點,父節(jié)點接收到子節(jié)點的狀態(tài)回復(fù)后,也向子節(jié)點回復(fù)“收到確認”信號,同時父節(jié)點向上位機上傳各子節(jié)點的在線情況。這就完成了“在線查詢”命令。
上位機向父節(jié)點發(fā)送“開始答題”命令,父節(jié)點接受命令,并向子節(jié)點廣播該“開始答題”命令,子節(jié)點接收到命令后答題允許指示燈亮,這時子節(jié)點可以選擇答案“A,B,C,D”其中一個,然后按確認鍵將自己的節(jié)點號和答案發(fā)送給父節(jié)點,父節(jié)點收到后將收到的信號原封不動地作為確認信號回發(fā)給子節(jié)點,子節(jié)點收到確認信號后,對應(yīng)的答案燈會亮,表示確認你選的是哪個答案。譬如,子節(jié)點選的是“A”,父節(jié)點確認后,A燈亮。
流程圖如圖4所示。
2 設(shè)計原理
系統(tǒng)的基本流程如上所述,下面具體闡述各模塊的設(shè)計原理。
2.1 上位機
上位機為一般的串口通信程序,它有3個功能:
(1)通過串口向父節(jié)點發(fā)送命令。上位機命令只有兩個:在線查詢命令和答題允許命令。這兩個命令均由3 Byte組成,本文定義在線查詢命令格式為,其中xx為任意數(shù)。答題允許命令格式為。
(2)接收父節(jié)點傳來的數(shù)據(jù)。當(dāng)父節(jié)點收集了子節(jié)點發(fā)來的數(shù)據(jù)后,便會定時向上位機發(fā)送數(shù)據(jù),數(shù)據(jù)格式如圖5所示。當(dāng)上位機接收到以0xA0開頭的數(shù)據(jù),便是節(jié)點在線情況回復(fù)數(shù)據(jù),以0xEE結(jié)束;當(dāng)接收到以0xA5開頭的數(shù)據(jù),便是節(jié)點答題數(shù)據(jù),以0xEE結(jié)束。
(3)統(tǒng)計接收到的數(shù)據(jù)。上位機將接受到的答案數(shù)據(jù),以圓柱圖形統(tǒng)計顯示出來。
2.2 父節(jié)點
父節(jié)點是連接子節(jié)點和上位機的紐帶,其具有3個功能:
(1)接收上位機發(fā)來的命令;
(2)向子節(jié)點發(fā)送相應(yīng)的命令和回復(fù)。當(dāng)父節(jié)點接收到上位機的在線查詢命令時,首先判斷xx是廣播命令還是單播命令,如果是廣播命令,便將發(fā)送地址設(shè)為0xFFFF,載荷為0xA0;如果是單播命令,便將地址設(shè)為0xFFxx,載荷為0xA0。當(dāng)子節(jié)點收到在線查詢命令后,便將自己設(shè)為在線,同時回復(fù)0xA0和節(jié)點號。父節(jié)點根據(jù)0xA0便知回復(fù)的是查詢命令,根據(jù)節(jié)點號便知道該節(jié)點在線。
同理,當(dāng)父節(jié)點接收到上位機允許答題命令后,便廣播發(fā)送允許答題命令。子節(jié)點收到該命令后,即回復(fù),父節(jié)點通過結(jié)構(gòu)體Studen-t.ANSWER[i]存儲子節(jié)點的答案。并回復(fù)子節(jié)點表示數(shù)據(jù)已收到。
(3)收集子節(jié)點的在線情況與答題回復(fù)。父節(jié)點通過結(jié)構(gòu)體Student[i].NODE_NUMBER,存儲子節(jié)點號,Student[i].LINE存儲在線情況,Student[i].ANSWER存儲答案。
2.3 子節(jié)點
子節(jié)點模塊是直接與學(xué)生接觸的終端,與父節(jié)點相比,多了顯示屏、按鍵和對應(yīng)的LED燈,子節(jié)點有兩種功能:
(1)接受父節(jié)點發(fā)來的命令。當(dāng)子節(jié)點接收到在線查詢命令后,便回復(fù)信號,表示該節(jié)點在線。
(2)將答案信息發(fā)給父節(jié)點。當(dāng)子節(jié)點接收到允許答題命令后,便回復(fù)信號。
3 硬件電路設(shè)計
本設(shè)計采用TI公司新推出支持IEEE 802.15.4標(biāo)準(zhǔn)的SOC—CC2530作為控制芯片,CC2530集成一個工業(yè)級的8051和一個無線射頻模塊。內(nèi)含8 kBRAM,32 kB閃存,以及其他支持功能和外設(shè)。CC2530所集成的無線射頻模塊,提供101 dB的鏈路質(zhì)量,優(yōu)秀的接收器靈敏度和抗干擾性。
3.1 子節(jié)點電路圖
子節(jié)點電路圖如圖7所示。
3.2 父節(jié)點電路圖
父節(jié)點電路圖如圖8所示。
4 軟件設(shè)計
父子節(jié)點流程如圖9所示,其中結(jié)構(gòu)體Smdem由ONMNE、ANSWER和NODE_NUMBER組成,分別代表在線信息,答案和節(jié)點號,其中ONLINE=1表示在線,ANSWER取值為“A,B,C,D”。注意此結(jié)構(gòu)體只存在于父節(jié)點中。
子節(jié)點圖中ONUNE是子節(jié)點的在線標(biāo)志,TX_ALLOW是子節(jié)點允許答題標(biāo)志,置1有效。注意,為了防止子節(jié)點重啟后不被父節(jié)點識別,本文設(shè)計在每次答題前都發(fā)送在線查詢命令,接著再發(fā)送答題允許命令。
5 實驗結(jié)果
實驗結(jié)果如圖11所示,在線人數(shù)40人,第一題,選A的18人,B的12人,C的6人,D的4人。由實驗過程可知,無線答題器工作穩(wěn)定,操作簡便。
6 結(jié)束語
本文介紹了教學(xué)用無線答題器,提出了具體的軟硬件設(shè)計方法,并開發(fā)出實物產(chǎn)品。該無線答題器,工作穩(wěn)定、性能可靠、操作簡單、界面簡潔易懂、成本低廉、適合教學(xué)需求。