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