O 引言
隨著人民群眾的生活水平越來越高,排隊機在銀行、電信、醫(yī)院、稅務等窗口服務性行業(yè)使用越來越廣泛。根據(jù)單片機串行通信原理,采用nRF401無線通信模塊的開發(fā)了無線排隊系統(tǒng)。無線排隊系統(tǒng)不但具備原有線系統(tǒng)的所有功能,而且突破了有線排隊系統(tǒng)在客戶安裝使用上的瓶頸等工作。該系統(tǒng)由基于NORDIC公司推出的單片無線收發(fā)一體芯片nRF401和基于51系列單片機兩部分組成,實際運行取得了良好的效果。
1 系統(tǒng)組成
無線排隊機系統(tǒng)如圖l所示,該系統(tǒng)由發(fā)號主機、營業(yè)員叫號器、主顯示屏、窗口顯示屏、語音報號器等部分組成。系統(tǒng)的每個組成部分的數(shù)據(jù)傳遞采用無線收發(fā)模式,通過通信協(xié)議使之成為一個無線的排隊系統(tǒng)。
2 無線通信原理
在無線排隊機數(shù)據(jù)通信系統(tǒng)中,單片機之間的數(shù)據(jù)通信采用一對多的主從模式,利用ISM頻段(433 MHz)無線通信。由發(fā)號主機負責發(fā)送從機(無線主顯示屏、無線窗口顯示屏、無線叫號器)地址、控制命令及數(shù)據(jù),從機則負責收集現(xiàn)場信息,進行一定的數(shù)據(jù)處理,根據(jù)主機的要求返回數(shù)據(jù),并執(zhí)行主機發(fā)出的命令。在采用主從式多機串行通信系統(tǒng)中,從機不主動發(fā)送命令或數(shù)據(jù),一切都由主機控制。由于發(fā)送和接收共用同一物理信道,因此在任意時刻只允許一臺從機處于發(fā)送狀態(tài),只有被主機呼叫的從機才能占用總線,對主機作出應答。每臺從機均分配有一個唯一的從機地址。主機與從機通信時采用輪流查詢方式,主機先呼叫某從機地址,喚醒被叫從機后,主、從兩機之間進行數(shù)據(jù)交換,而末被呼叫的從機則繼續(xù)處于等待狀態(tài)。主機發(fā)送的信息可以傳到多個從機或指定的從機,各從機發(fā)送的信息只能被主機接收。為了完成上述功能需通過設(shè)置單片機的串口控制寄存器SCON來實現(xiàn),在此將單片機設(shè)置在工作方式3,即SM0=1,SM1=1,且所有從機初始化SM2=1,使所有從機處于監(jiān)聽狀態(tài)。通信仂議中的規(guī)定:
①單片機以方式3進行通信,一幀數(shù)據(jù)的第9位為"1"代表地址幀,為"0"代表數(shù)據(jù)幀;
②設(shè)定通信波特率為1200bps;
③主機與從機的聯(lián)絡過程:主機下發(fā)地址幀,被呼叫從機向主機返回地址幀,以便主機確定與從機聯(lián)絡上了。主機下發(fā)控制命令,從機根據(jù)命令或接收主機的數(shù)據(jù)塊,或向主機發(fā)送數(shù)據(jù)塊;
④無線通訊數(shù)據(jù)塊格式如表所示。
Lead為引導字節(jié):Leader=OxFF;
Header為數(shù)據(jù)包的命令字節(jié)由此確定數(shù)據(jù)包的類型,見表1;
Length為數(shù)據(jù)包包含的Length字節(jié)之后的所有字節(jié)的長度;
Data為數(shù)據(jù)包字節(jié);
Checksum校驗字節(jié)。
表1 命令字參數(shù)表
⑤示例:發(fā)送窗口分配的排隊號碼:
0xFF 0x34 Ox03 2個字節(jié) SUM
2字節(jié)分配示意圖
為了實現(xiàn)多機通信,所有發(fā)射電路的振蕩頻率和所有接收電路的振蕩頻率都必須一致。為保證正常通信,數(shù)據(jù)傳送方向必須為半雙工傳送,收發(fā)器在發(fā)射時必須屏蔽自己的接收中斷,發(fā)射結(jié)束后再開放。
3 硬件電路設(shè)計
nRF401是一個基于ISM頻率為433MHz設(shè)計的單片UHF無線收發(fā)一體芯片。該芯片有如下特點:采用FSK(frequency shift keying)頻移鍵控調(diào)制方式,具有非常少的外圍元件,直接數(shù)據(jù)輸入輸出,抗干擾能力強,特別適合工業(yè)場合;采用DSS+PLL頻率合成技術(shù),頻率穩(wěn)定性極好;無需曼徹斯特編碼;工作速度最高可達20 kbps;最大發(fā)射功率達+10dBm,使用距離最遠可達1000m;工作在ISM頻率433MHz和雙信道頻率433.92M Rz/434.33MHz下,使用不需要申請許可證。
單片機與nRF401應用連接如圖3所示,在本系統(tǒng)中,為避免相互干擾,無線收發(fā)部分單獨做在一塊PCB板上,組成獨立的無線收發(fā)模塊。壓控振蕩器(VC0)外接22mH高品質(zhì)因素電感;鎖相環(huán)(PLL)外接典型單端二階濾波器;振蕩源輸入接4MHz晶振;ANT1/ANT2為天線接口,天線設(shè)計采用PCB差分天線;CS為頻率選擇,通過撥盤開關(guān)S1選擇,CS=0時選擇433.92MHz,CS=1時選擇434.33MHz,無論何種選擇都要使主從機頻率一致;PWR UP為節(jié)電控制選擇,由單片機控制;DOUT為數(shù)據(jù)輸出端口,與單片機串行口數(shù)據(jù)線RXD連接;DIN為數(shù)據(jù)輸人端口,與單片機串行口數(shù)據(jù)線TXD連接;TXEN為發(fā)送/接收控制端口,由單片機控制,TXEN=0時nRF401接收無線信息,TXEN=1時nRF401發(fā)送無線信息。單片機與nRF401的電路連接如圖3所示。本系統(tǒng)可編程實現(xiàn)頻率的選擇和節(jié)電模式的控制,為實際的應用提供了方便。實驗證明,該無線收發(fā)模塊的性能良好,全可以滿足數(shù)據(jù)傳輸?shù)男枰?/p>
窗口顯示電路采用8塊74LS595串行傳輸行數(shù)據(jù)和1塊74HC154進行列選控制16塊8*8LED點陣進行顯示,采用SST公司(Silicon Storage Technology)的高速可編程閃存芯片ST28SF040存儲顯示字符庫。具體電路簡單在此不再列出。
4 通信軟件設(shè)計
為了避免同頻干擾的問題,系統(tǒng)采用分時TDMA(Time Division Multiple Access)技術(shù),把系統(tǒng)發(fā)號主機與任意一臺從機之問的通信采用時分的方式分開,發(fā)號主機通過掃描的方式與各臺從機設(shè)備進行單臺通信,這樣系統(tǒng)中的發(fā)號主機與從機的通信方式就成為點對點的通信方式。程序采用C51單片機語言編寫,其主控程序流程圖如圖4、圖5所示
5 系統(tǒng)軟件設(shè)計
一次完整的排隊系統(tǒng)運作過程如下:主機等待著顧客按下取票按鈕,鍵盤掃描到按下的鍵值后,根據(jù)取票類型生成排隊號,并且讀出當前系統(tǒng)時間、排隊情況、業(yè)務類型等信息,打印成排隊票。這時,如果某窗口的操作員服務完一位顧客,按下窗口鍵盤上的"下一位",這個信息就會傳輸給主機,主機根據(jù)當前排隊隋況和業(yè)務情況,將排隊序列上能服務的最近客戶排隊號回應給窗口,窗口鍵盤收到回應后,立刻更新鍵盤上的顯示為要服務的排隊號。同時,主機還把這個排隊號發(fā)送給部分其他從機:窗口LED顯示屏,讓它也顯示最新的排隊號;語音播報從機,讓其播報該排隊號,以提醒顧客前來服務。發(fā)號主機按時間輪流查詢各從機狀態(tài),并進行控制,其主要處理流程如圖6。
6 結(jié)束語
基于nRF401的無線排隊系統(tǒng)具有硬件電路簡單、成本低廉、編程方便、通信可靠性高的特點,改善了以往有線排隊系統(tǒng)安裝線路復雜、故障不易排查等問題。本文提出的通信協(xié)議能夠在多臺單片機問安全地傳送數(shù)據(jù),實現(xiàn)了通信雙方非接觸式的數(shù)據(jù)傳送,也可用于其他遙控、遙測的單片機應用場合。