防數(shù)據(jù)碰撞的無線呼叫系統(tǒng)設計
摘要:在多點對單點無線通信領域中,為防止多個發(fā)射器同時向接收器發(fā)送數(shù)據(jù)而產(chǎn)生的相互干擾(碰撞),提出一種具有反碰撞功能的無線呼叫系統(tǒng)模型,給出單片機與無線收發(fā)模塊的硬件接口設計;詳細介紹所用的通信協(xié)議和呼叫接收器,以及收發(fā)雙方的軟件設計,為多點對單點的無線呼叫系統(tǒng)軟硬件設計提供一種有效可靠的解決方案。
關鍵詞:中央服務器 無線呼叫系統(tǒng) 防碰撞技術 同步信號
隨著科技的進步以及對生活質(zhì)量要求的不斷提高,人們要求在消費中得到的服務更加快捷、方便、舒適;同時處于激烈競爭環(huán)境中的服務性企業(yè)也需要吸引顧客,提高企業(yè)自身的服務檔次和形象。無線呼叫系統(tǒng)能夠為顧客創(chuàng)造良好的消費環(huán)境,使其得到方便及時的服務;企業(yè)也能隨時掌握顧客需要的服務,提高服務效率。它可以廣泛應用于酒店、銀行、醫(yī)院、娛樂場所等服務性行業(yè)中。因此,研究出一種簡單可靠、高效率的無線呼叫系統(tǒng),對于提高我服務行業(yè)的服務水平,改進人們的生活方式,促進社會生活的信息化,具有重要的理論、實用和商用價值。
1 無線呼叫系統(tǒng)的結構與功能
圖1所示給出了由一臺中央服務器CSS(Central Sever System)和多臺終端呼叫器MTCU(Multiple Terminal Call Unit)構成的多點對單點無線通信系統(tǒng)。中央服務器CSS與每一臺呼叫器CU(Call Unit)之間以雙向方式傳遞數(shù)據(jù),傳輸數(shù)據(jù)量大,實時性要求高。同傳統(tǒng)的線呼叫系統(tǒng)相比,無線呼叫系統(tǒng)的使用更加靈活,無需在工作環(huán)境中鋪設有線物理網(wǎng)絡,極大降低了投資成本。
系統(tǒng)工作在ISM頻段433MHz附近,該頻段無需申請許可證。呼叫器作為數(shù)據(jù)載體通常由用戶即服務的申請方來控制,每個呼叫器有一個唯一的識別碼。當用戶按其上的發(fā)射鍵后,識別碼被發(fā)射出去,等待中央接收器的響應;中央服務器接收到服務申請后,根據(jù)識別碼鑒定出是由哪一臺呼叫器發(fā)出的申請,并給出聲音提示和顯示呼叫器的識別號。
在酬、醫(yī)院、娛樂業(yè)等經(jīng)營場所中,中央服務器置于服務臺或值班室中,呼叫器安放在客戶里、病床邊或顧客身邊。顧客隨時可以發(fā)出服務申請,中央服務器接收到申請后,發(fā)出提示音和顯示識別號碼,通知服務員向提出服務申請的顧客提供服務。
2 防碰撞技術
2.1 防碰撞問題的提出
在服務行業(yè)的營業(yè)場所中,顧客需要服務人員能夠提供準確、及時的服務,因此要求所設計的系統(tǒng)有很好的實時性和可靠性。一方面,顧客提出的申請能夠很快地得到響應,使顧客感覺不到時間的浪費;另一方面,中央服務器不能由于接收到的是錯誤信息,使服務員打擾并未提出服務申請的顧客。
針對系統(tǒng)的要求,可以得出導致服務中出現(xiàn)錯誤的原因有二:一是由于無線信道的復雜性,信息在無線信道的傳輸過程極易受到干擾而產(chǎn)生錯誤,接收端不能接收到正確的信息;其二是由于多個呼叫器同時競爭通信信道向中央服務器發(fā)出呼叫,各個呼叫器發(fā)出的數(shù)據(jù)相互干擾,使中央服務器不能正確地辨別是哪一臺呼叫器發(fā)出的申請。這兩種錯誤可能使沒有發(fā)出呼叫申請的顧客得到了不需要的服務,而有服務要求的顧客又得不到滿足,反而降低了服務的效率和準確度,起不到服務行業(yè)中需要的無線呼叫系統(tǒng)的作用。對于前一種情況可以采用適當?shù)男<m錯方式,降低中央服務器向服務員提供錯誤呼叫信息的概率,無需本文詳細討論。而對后一種情況,需要找到一種合適的反碰撞方法,這正是本文要解決的問題。
2.2 無線呼叫系統(tǒng)的防碰撞技術
數(shù)據(jù)的碰撞問題即無線通信中的多路存取問題。我們把多個通信通路競爭一個通信信道的最大數(shù)據(jù)傳輸率以及供它使用的時間片確定的,故分配給每個用戶的通路容量必須滿足:當有多個發(fā)射器同時把數(shù)據(jù)傳輸給同一個接收器時,不能出現(xiàn)互相干擾(碰撞)。在無線電技術中,多路存取問題的存在由來已久。因此,出現(xiàn)了許多方法,可以把不同的用戶信號分開。比較典型的方法有四種:空分多路法、頻分多路法、時分多路法以及碼分多路法。這些經(jīng)典的多路存取問題解決方法用于移動通信、衛(wèi)星通信等系統(tǒng)中時,可以將不間斷的數(shù)據(jù)流傳輸給用戶,并且保證一次分配的通信容量能夠保持足夠長的時間,如同話音通信所需要的那樣(例如在一次通話的整個交談過程)。
圖3 系統(tǒng)通信時序圖
對無線呼叫系統(tǒng)來說,中央服務器與呼叫器之間只存在很短的動作周期,這種周期被較長的不等非工作間歇所中斷。呼叫器發(fā)出的數(shù)據(jù)在數(shù)十ms的時間內(nèi)被鑒別,讀出和寫入;接著,中央服務器在較長的時間內(nèi)不會上到呼叫器發(fā)出的信號。但這并不意味我們不需要考慮多個呼叫器同時向服務器傳輸數(shù)據(jù)的可能性。我們需要的是一種高效的多路存取法,使用戶感覺不到時間的損失就完成了數(shù)據(jù)的區(qū)分、顯示及對用戶的響應。見圖2,許多呼叫器試圖“圖時”將數(shù)據(jù)傳輸給服務器。
現(xiàn)在比較常用的多路存取方法有頻分復用和時分復用法。頻分復用法(FDM,F(xiàn)requency-Division Multiplexing)是在呼叫器與接收器之間建立多條不同帶的通信信道。但這種方法實現(xiàn)上過于復雜,硬件上需要增加濾波器組;并且由于信道的非線性會產(chǎn)生交調(diào)失真和高次諧波,引起信號的串路,因而不適合所設計的無線呼叫系統(tǒng)在本系統(tǒng)使用的是時分復用法(TDM,Time-Division Multiplexing)。TMD同F(xiàn)DM相比較具有電路實現(xiàn)簡單可靠,對系統(tǒng)的非線性失真要求不高。
2.3 中央服務器與呼叫器之間的通信過程
時分復用的主要特點是利用不同時隙來傳送各路不同的信號,每路信號在時域上是分割開的。我們?yōu)槊颗_呼叫器分配的,可與中央服務器通信的時間段是不同的。因此,要求我們所設計的系統(tǒng)具有良好的同步機制,解決中央服務器與所有呼叫器之間時鐘的步問題。在同步信號的指揮下,每個呼叫器都能在分配給自己的時間段內(nèi)發(fā)送信息。
系統(tǒng)由中央服務器產(chǎn)生的步信號作為整個系統(tǒng)同步的基準信號,這就為所有呼叫器建立了一個能夠計算出各自可以發(fā)出呼叫申請時間的起點。這里的同步信號是使整個系統(tǒng)協(xié)調(diào)工作的同步信號,而并不要求單個呼叫器與中央服務器采用同步通信方式的幀同步信號,呼叫器與央服務器之間的通信仍然可以采用異步通信的方式。呼叫器從收到系統(tǒng)同步信號后,開始計算可以發(fā)送信號的延遲時間。延遲時間的長度是在系統(tǒng)設計時就已經(jīng)約定的,每臺呼叫器對應不同的延遲時間,使各個呼叫器與服務器通信的時間是錯開的,不會產(chǎn)生重疊,也就防止了中央服務器時收到多臺呼叫器的服務申請,避免了數(shù)據(jù)之間的碰撞。中央服務器產(chǎn)生的系統(tǒng)同步信號是周期性的,這個周期的大小與系統(tǒng)中呼叫器的個數(shù)、呼叫器與服務器之間完成一次通信所需要的時間有關,也與硬件設計的系統(tǒng)時鐘大小和數(shù)據(jù)傳輸?shù)牟ㄌ芈视嘘P。圖3給出了中央服務器與呼叫器之間通信的時序圖。
從圖3中,我們按照時分復用的原則,得出系統(tǒng)能夠正常工作的條件:
系統(tǒng)處于工作狀態(tài)后,中央服務器先發(fā)出同步信號SYN。該信號是周期信號,在兩個同步信號之間,服務器處于接收狀態(tài)。呼叫器CUi接收到同步脈沖后等待Ti時間,并在這臺呼叫器有顧客發(fā)出服務申請的情況下才能向服務器傳輸信息。呼叫器CUi與中央服務器通信一次的時間片的長度為ti,在時間片內(nèi)呼叫器可向服務器重復傳送n次信息,時間片內(nèi)數(shù)據(jù)的傳輸仍然采用異步通信的方式。由于所有呼叫器在兩個SYN之間均有一次機會可與中央服務器通信,所以劃分的時間片越長,同步信號的周期也截止大。但若同步信號的周期時間太長,超過顧客對服務等待時間的滿意程度,也就不能滿足系統(tǒng)的實時性要求。所以在保證通信質(zhì)量的前提下,應提高數(shù)據(jù)傳輸?shù)牟ㄌ芈?,縮短通信時間片的長度,確定系統(tǒng)中呼叫器的適當?shù)臄?shù)量。
3 系統(tǒng)的硬件設計
圖4給郵了無線呼叫系統(tǒng)的硬件結構框圖。系統(tǒng)的中央服務器與呼叫器的控制功能由單片機實現(xiàn),射頻收發(fā)模塊主要由一塊射頻集成芯片構成。此外,中央服務器還有LED顯示電路以及發(fā)音電路。
單片機使用Atmel公司的AT89C51,其中集成了4KB FlashROM,主要用來控制射頻集成芯片的收發(fā),數(shù)據(jù)的識別和提取,進行反碰撞處理。此外,還要控制LED顯示呼叫器的識別號碼及給出提示音。
射頻集成芯片選用Nordic公司的nRF401。NRF401j 單片機集成收發(fā)芯片,可工作于433.92MHz/434.33MHz兩個頻道,最大數(shù)據(jù)傳輸率為20kbps,調(diào)制方式為FSK,功耗低,且發(fā)射功率可以調(diào)整,最大發(fā)射功率為+10dBm。當工作于等機模式,待機電流僅為8μA,因此很適合用于便攜式的無線通信設備中。連接nRF401的天線是以差分方式連接到nRF401的。在實際設計中,呼叫器的天線采用差分環(huán)型天線,這種天線可直接刻蝕在PCB板上。中央服務器的天線采用高靈每度的單端天線,但是單端天線與nRF401之間也必須通過一個差分轉(zhuǎn)換匹配網(wǎng)絡連接起來。圖5所示的硬件連接原理圖中的各個引腳的功能如下所列。
CS:頻道選擇,CS=0選擇工作頻道1,即433.92MHz;CS=1選擇工作頻率2,即434.33MHz。連接AT89C51的P2.5腳。
DOUT:數(shù)據(jù)輸出,連接AT89C51串口RXD。
DIN:數(shù)據(jù)輸入,連接AT89C51串口TXD。
PWR_UP:節(jié)能控制,PWR_UP=1正常工作狀態(tài),PWR_UP=0低功耗節(jié)能狀態(tài)。連接AT89C51的P2.6腳。
TXEN:發(fā)射接收控制,TXEN=1時,nRF401為發(fā)射狀態(tài);TXEN=0時,nRF401為接收狀態(tài)。連接AT89C51的P2.7腳。
NRF401射頻模塊硬件電路的具體設計。為了獲得最佳的RF性能,推薦使用1.6mm FR4板材的雙面PCB;nRF401的直流供電必須使用高性能的RF電容去耦;在PCB板上應該避免長的電源走線;所有的開關數(shù)字信號和控制信號都不能經(jīng)過nRF401的PLL環(huán)路濾波元件和VCO電感附近。
4 無線呼叫系統(tǒng)的軟件設計
4.1 通信協(xié)議
為了保證通信成功,通信雙方必須嚴格遵循通信協(xié)議的約定。由于nRF401的最大數(shù)據(jù)傳輸率為20kbps,為獲得中央服務器和呼叫器之間大的通信速率,單片機的系統(tǒng)時鐘頻率為11.0582MHz時,我們將串口的波特率選定在19.2kbps。
由中央服務器向所有呼叫器發(fā)系統(tǒng)同步信號。根據(jù)設計要求和測試結果,我們將同步信號序列SYN定義為雙同步字符:0xAA和0xAA。所有呼叫器接收到該字符串后,開始計算各自的可以發(fā)送呼叫信息等時間Ti。
當對應呼叫器與中央服務器建立起通信關系后,在可通信時間片內(nèi)采用異步通信的方式。呼叫器向服務器發(fā)出握手信號:0xBB;服務器接收到握手信號后發(fā)回應答信號:0xCC,接收到應答信號后呼叫器開始傳送數(shù)據(jù)塊。設計中的數(shù)據(jù)塊可以直接是使用VCD碼表示的呼叫器的識別號,能很方便地在服務器的LED上顯示出來,還可以傳輸對其它相應服務編碼得到數(shù)據(jù)。收、發(fā)雙方的數(shù)據(jù)校驗方式采用計算發(fā)送數(shù)據(jù)塊的“校驗和”。呼叫器對所發(fā)數(shù)據(jù)求出“校驗和”,在數(shù)據(jù)塊發(fā)完后將其發(fā)到中央服務器中;服務器計算所收數(shù)據(jù)塊的“校驗和”,并與從呼叫器發(fā)來的“校驗和”相比較。若兩者相等,收正確,服務器應答一個“0x00”;叵不等,說明接收器接收到“0x00”的答復后,結束發(fā)送。又因為呼叫器發(fā)出的服務請求只能在規(guī)定時間片段內(nèi)完成,故必須的服務請求。系統(tǒng)直到等待時間最長的那個呼叫器的時間片過去以后,中央服務器又再次向所有呼叫器發(fā)出系統(tǒng)同步信號.
圖6 收發(fā)程序流程
4.2 收發(fā)程序設計
因為系統(tǒng)分配給各個呼叫器的可與中央服務器完成一次呼叫申請的時間片的長度是固定的,這個時間長度既要保證呼叫器發(fā)出的申請能準確的傳到服務臺上,又要盡量短,才可縮小同步信號的周期。因此收發(fā)程序的執(zhí)行時間十分關鍵,必須短而高效。圖6給出了中央服務器和呼叫器的收發(fā)程序流程。
結語
本設計中的硬件設計、軟件設計方案已通過實驗檢驗。對在多發(fā)單收情況下產(chǎn)生的數(shù)據(jù)磁撞一解決良好,系統(tǒng)運行穩(wěn)定,通信誤碼率低。由于電路的結構簡單,功能完善,這種低成本的無線呼叫系統(tǒng)在酒店、醫(yī)院及娛樂場所中有很好的實用價值。