摘要:為實現終端呼叫數據的無線傳輸,設計采用STC89C52RC單片機作為控制芯片,低功耗芯片nRF905作為無線收發模塊。最后給出該系統的相關硬件組成電路和數據傳輸流程圖。經測試,系統運行穩定可靠,通信距離很遠,且響應時間短,具有很廣泛的應用前景。
關鍵詞:STC89C52RC;無線呼叫;nRF905;數據傳輸
隨著科技的進步以及生活質量的不斷提高,人們要求在消費中得到的服務更加快捷、方便、舒適;同時處于激烈競爭中的服務性企業也需要進一步吸引顧客,提高企業自身的服務檔次和形象。在這樣的背景下,產生了各種不同類型的呼叫系統。傳統的呼叫系統多是有線的,比如采用分布控制方式的單片機系統,主機和呼叫器的應答通過一根三芯導線,包括電源線、信號線、地線來完成,各呼叫器并行掛接。這樣的系統存在著布線繁瑣,安裝麻煩、成本高等問題,針對這些問題,無線呼叫系統逐漸發展起來,越來越多的研究者將目光投向了無線領域。
1 系統設計方案
低功耗無線呼叫系統的發送和接收模塊的框圖如圖1,圖2所示。
其中圖1為無線發送模塊,以STC89C52RC為主控制核心,及時響應終端的呼叫信息,然后利用nRF905無線傳輸模塊將呼叫信息發送給無線接收模塊進行處理。
圖2為無線接收模塊,以STC89C52RC為主控制核心,利用nRF905無線傳輸模塊接收呼叫信息,然后利用串口轉USB線上傳給PC,利用上位機軟件可以實時監測。
2 系統硬件電路設計
2.1 3.3 V供電電源模塊
該設計可用3.3 V電壓供電,故采用ASM1117-3.3電源供電系統,如圖3所示。無線發送模塊和STC89C52RC單片機皆為低功耗器件。對發送端而言,在對通信距離要求較遠時,也可采用5 V供電。接收端可通過與PC連接的USB提供5 V電源。核心部件LM1117-3.3是一個低壓差電壓調節器系列。壓差在1.2 V輸出,此時相應的負載電流為800mA。
2.2 單片機控制電路
從電源供給及功耗等各方面的考慮,數據處理部分采用STFC89C51RC/RD+系列的STC89C52RC單片機。STC89C52RC單片機除具有MCS-51系列單片機FLASH、RAM、分頻器、位定時器/計數器等結構外,具有如下主要特點:加密性強,無法解密;超強抗干擾;對外部的電磁輻射低;超低功耗,正常工作模式時典型功耗為4~7mA。
STC89C52RC單片機與單片射頻收發器nRF905連接如圖4所示。
2.3 數據傳輸模塊的選擇
數據傳輸模塊采用NewMsg_RF905SE模塊,該模塊采用挪威Nordic公司推出的單片射頻收發器nRF905芯片開發而成。NewMsg RF905單片無線收發器工作電壓為1.9~3.6 V,工作在433/868/915 MHz的ISM頻段,最大數據速率為100 Kb/s。芯片內部由1個完全集成的頻率調制器、1個帶解調器的接收器、1個功率放大器、1個晶體振蕩器和1個調節器組成。ShockBurst工作模式的特點是自動產生前導碼和CRC可以很容易通過SPI接口進行編程配置電流消耗很低,在發射功率為+10 dBm時,發射電流為30 mA接收電流為12.5 mA。進入POWERDOWN模式可以很容易實現節電。nRF905是單工工作方式,且在待機模式、接收模式、發送模式之間切換需要延時,所以在無線通信過程中,通信軟件應該有合理的時序。表1為nRF905的工作模式及相應功能。
3 系統的軟件設計
系統軟件選用德國Keil公司推出的Cx51編譯器,在nVision 2集成開發環境下完成從源程序編輯、編譯調試,直到生成最終可執行文件代碼的全部過程。該系統的重點是控制nRF905的程序設計。首先應對nRF905進行初始配置,配置完成后按需要編寫用戶數據的發送和接收程序。
3.1 初始化配置
初始化配置分為以下3個部分:
(1)編寫SPIWRITE和SPIREAD子函數,即通過軟件為單片機配置SPI功能。
(2)初始化nRF905的射頻配置寄存器。這些寄存器中有很多信息,必須根據實際情況進行配置。設計中nRF905外接16 MHz晶體,XOF應配置為01,PA2PWB為發射功率,RX2 RED2 PWB為接收靈敏度,可根據需要配置。另外還有發送地址、接收地址、發送數據和接收數據的長度,可根據實際應用配置。
(3)配置nRF905的發送地址,最多4 B發送端的發送地址應與接收端設備的接收地址相同。在實際工作中,nRF905可以自動濾除地址不相同的數據,只有地址匹配且校驗正確的數據才會被接收,并存儲在接收數據寄存器中。
3.2 發送數據
nRF905發送數據前,通過條用SPI寫函數,在待機模式下先把待發數據填進發送數據寄存器。然后把nRF905的TRX_CE、TX_EN引腳都置為高電平,數據就會自動通過天線發送出去。為了數據可靠地傳輸,將射頻配置寄存器中的自動重發位(AUTO_RE_TRAN)設為有效,這樣在TRX_ CE被置高的時間內數據一直在重復不斷的發送。程序中設計延時500 ms,之后拉低TRX_CE引腳,回到待機模式。
3.3 接收數據
STC89C52RC把nRF905的TRX_CE引腳置為高電平,TX_EN引腳置為低電平后,即開始接收數據。在設計中可設定在一定的時間內一直判斷nRF905的DR引腳是否變高,若為高,則證明接收到了有效數據,可以退出接收模式;若一直沒有接收到,待時間到也退出接收模式。退出后在待機模式,CPU把nRF905內部的接收數據寄存器中的數據讀出,即接收到的有效數據。
3.4 主程序設計
在該系統中,主程序包括兩部分:第一部分是主機(單片機)部分,通過無線模塊接收下位機(呼叫器)的信息。程序流程圖如圖5所示;第二部分是下位機(呼叫器)部分,響應客戶的呼叫,并通過無線模塊將信息傳送至主機(單片機)。程序流程圖如圖6所示。
4 結語
該呼叫系統運行穩定可靠,并運用無線射頻控制技術,通過軟件更新可迅速增容,根據企業的規模隨時更新軟件,保證系統有最優的服務質量。該系統的運用,降低了運行維護費用、節約管理成本,具有較大的經濟效益。