近些年信息通信領域中發(fā)展最快,、應用最廣的就是無線通信技術,。而無線通信技術又有著集成化、低功耗,、易操作的發(fā)展趨勢,。微功率短距離無線數據傳輸技術作為一種無線通信實用技術,,一般使用單片射頻收發(fā)芯片,加上微控制器和少量外圍器件構成專用或通用無線通信模塊,,只要依據命令字進行操作即可實現基本的數據無線短距離抄表功能,。本文提出了 一種基于CC1100的無線自動抄表系統(tǒng),其通信質量好,、成本低,、工作可靠、經濟實用,,可以準確及時地將用戶三表數據抄送上來,,是一種理想的自動抄表解決方案,同時也是抄表收費系統(tǒng)發(fā)展的趨勢,。
1抄表系統(tǒng)結構
抄表系統(tǒng)主要由主站,、GPRS通信信道、集中器,、低壓電力線網絡,、數據采集器、用戶電表組成,。系統(tǒng)工作原理是利用低壓電力線或者RS一232總線將電表數據由采集器傳輸到集中器,,然后集中器將信號定時或實時地傳送至GPRS網絡,經網關支持節(jié)點(GatewayGPRSSupportNode,,GGSN)完成與Internet網絡的數據交換,,最后由主站的計算機接收Internet上的數據并進行用戶電表數據匯總,、電費計量,、線損分析等相關處理。
系統(tǒng)可用于家庭內部三表或多表數據的抄送,。系統(tǒng)下層直接與水表,、電表、煤氣表等連接,,上層與抄表中心主機連接,,實現數據的遠程抄送。系統(tǒng)一般使用被動抄表方式,。上層模塊接收到儀表中心的抄表命令時,,通過無線方式向下層模塊發(fā)送抄表指令。無線抄表系統(tǒng)的總體框架如圖l所示,。
2主要器件的介紹
2.1AT89S52的主要特點
A89S52是一種低功耗,、高性能CMOS8位微控制器,具有8k在系統(tǒng)可編程F1ash存儲器,。片上F1ash允許程序存儲器在系統(tǒng)可編程,,亦適于常規(guī)編程器,。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供了高靈活,、超有效的解決方案。
A89S52與MCS一5l單片機產品兼容,,具有8k字節(jié)在系統(tǒng)可編程F1ash存儲器,、1000次擦寫周期、全靜態(tài)操作:OHz~33Hz,、三級加密程序存儲器,、32個可編程I/O口線、三個16位定時器/計數器,、八個中斷源,、全雙工UART串行通道、低功耗空閑和掉電模式,、掉電后中斷可喚醒,、看門狗定時器、雙數據指針,、掉電標識符,。
2.2CC1100主要性能
CC1100是一種低成本真正單片的UHF收發(fā)器,為低功耗無線應用而設計,。電路主要設定為在315,、433、868和915MHz的ISM(工業(yè),,科學和醫(yī)學)和ISRD(短距離設備)頻率波段,,也可以容易地設置為300~348MHz、400~464MHz和800~928MHz的其他頻段,。RF收發(fā)器集成了一個高度可配置的調制解調器,。其數據傳輸速率可達500kbps。通過開啟集成在調制解調器上的前向誤差校正選項,,能使性能得到提升,。CC1100為數據包處理、數據緩沖,、突發(fā)數據傳輸,、清晰信道評估、連接質量指示和電磁波激發(fā)提供廣泛的硬件支持,。CC1100的主要操作參數和164位傳輸/接收FIF0(先進先出堆棧)可通過SPI接口控制,。3硬件設計
單片機對發(fā)射模塊和接收模塊的控制,首先都要對單片機的接口進行初始化(SPI總線接口技術是一種高速,、高效率的串行接口技術,,主要用于擴展外設和進行數據交換,。),然后要對射頻模塊初始化,,在這部分的初始化中要上電復位芯片和對它的片內寄存器進行配置,。發(fā)射端發(fā)射一組數據中首先要通過口對,緩沖區(qū)設置單次發(fā)送的數據個數,,然后寫入要發(fā)送的數據包,,數據自動加前導碼和校驗,接著進入發(fā)送模式發(fā)送數據包,,等待本次發(fā)送結束,,最后沖洗緩沖區(qū),本次發(fā)送完畢,。接收端接收一組數據中首先進入接收模式,,等待接收信息完成,然后接收到的數據包被分解,,讀出所有接收到的數據并存儲,,最后清洗緩沖區(qū),本次接收完畢,。CC1100具有包處理機制,、發(fā)送、接收FIF0,、WOR模式(WakeonRadio)等諸多特點,。在CC1100之前的無線收發(fā)芯片都是采用同步方式將數據按位發(fā)送出去,這種方式在發(fā)送與接收數據時處理起來比較麻煩,,接收時還要判斷前導字與同步字,。而CC1100把這些繁瑣的工作承擔下來,當需要發(fā)射數據時,,只需將發(fā)射的數據按照一定的格式通過SPI口寫入到發(fā)射FIF0,,然后把CC1100配置成發(fā)射狀態(tài),,數據就會按照要求發(fā)射出去,;當需要接收數據時,首先將CC1100配置成接收狀態(tài),,一旦收到符合要求的數據,,CC1100就會把收到的數據存入接收FIF0,同時引腳GD00或GD02會有一個脈沖出現,,這個脈沖可以用來通知MCU有一個數據包已被CC1100收到,,MCU就可以通過SPI口將CC1100收到的數據取出來。硬件連接如圖2所示,。
4軟件設計
CC1100通過4線SPI兼容接口(SI,、S0,、SCLK和CSn)配置,這個接口同時用作寫和緩存數據,。SPI接口是一種同步串行通信接口,,CSn是芯片選擇管腳,當該管腳為低電平時,,SPI接口可以通信,,反之不能通信。SI和SO為數字傳輸管腳,,分別用于數據輸入和數據輸出,。SCLK為同步時鐘,在時鐘的上升沿或下降沿數字數據被寫入或讀出,。在讀或是寫寄存器,,首先要在SI管腳寫入寄存器地址(Address)字節(jié)。地址字節(jié)有8位,,最高位為讀寫位,,后7位為地址位。當執(zhí)行寫寄存器操作時,,讀寫位為O,,當執(zhí)行讀寄存器操作時,讀寫位為1,。無論是讀操作還是寫操作,,在地址字節(jié)被寫入時,CC1100S0腳上輸出一個芯片狀態(tài)字節(jié),,狀態(tài)字節(jié)包含關鍵狀態(tài)信號,,對MCU是有用的。CC1100的TXFIF0(發(fā)射先進先出堆棧)和RXFIF0(接收先進先出堆棧)也可以用同樣的讀寫方式進行訪問,,只是使用與配置寄存器不同的地址段加以區(qū)別,。另外,CC1100的指令也是通過SPI接口傳送,,CC1100有14個內部指令,。這些指令用來關閉晶體振蕩器,開啟傳輸模式,,狀態(tài)轉換和電磁波激活等,。軟件流程如圖3所示。
通過SI寫入特定的字節(jié)使CC1100執(zhí)行不同的命令,,CC1100共有20個引腳,,可通過4線SPI兼容接口配置(包括數據線SI、S0、時鐘線SCLK,、使能線CSn),。其中CSn可以連接到一個IO口來模擬時序,而其他三個腳則接到主MCU的SPI接口,。通過重復使用SPI接口上的SI,、SCLK和CSn,可使通信的主要狀態(tài)執(zhí)行一個簡單的三腳控制,,即休眠,、空閑、RX和TX,。CC1100有兩個專用的配置引腳和一個共享引腳,,能用于輸出對控制軟件有用的內部狀態(tài)信息,并能用來對MCU產生中斷,,其引腳名為GD00和GD01,。共享引腳為SPI接口上的S0腳。GDOl/SO的默認設置為3狀態(tài)輸出,。通過選擇任意其他的控制選項可使GD01/SO腳成為一般引腳,。當CSn為低時,此引腳的功能如一般S0腳,;而在同步和異步連續(xù)模式下,,處于傳輸模式時,GD00腳被用作連續(xù)TX數據輸入腳,。
5結論
無線自動抄表系統(tǒng)是未來發(fā)展的必然趨勢,,而對于抄表系統(tǒng)的改造,由AT89S52單片機和CC1100構成的無線自動抄表系統(tǒng)具有使用方便,、成本低,、應用靈活、價格適中的優(yōu)點,。家庭內部的三表可以統(tǒng)一抄送,。還可以應用在低功率遙感勘測,住宅和建筑自動控制,,無線警報和安全系統(tǒng),,工業(yè)監(jiān)測和控制,無線傳感器網絡,,遙控遙測系統(tǒng)中,,而且適用于電子消費產品、住宅,、建筑物自動控制等諸多無線應用領域。