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