本文介紹的一種基於C8051F02X的無線數據傳輸系統應用了計算機技術和GSM網絡通信技術,是一種新型無線通信系統。該系統依託GSM網絡,採用短消息進行數據通信,即在傳統的單片機數據採集系統中增加支持短消息、數據通信等業務的GPRS模塊,並為其分配一個獨立的SIM卡,結合單片機系統通過串行通信接口,實現了數據的遠程無線傳輸。
這裡介紹的數據傳輸系統是監控系統中重要的一個環節,是一個既有監控功能,又有強大管理功能的完善系統,由主控端系統、GSM通信網絡及遠程監控終端系統組成。監控終端通過GSM網絡和主控端監控中心進行雙向的信息傳輸。它將採集到的數據信息送到監控中心,同時接收監控中心的操作命令,對受控設備實施相應的操作。整個系統實現了以下的主要功能:
數據採集 通過串口接收數據採集器採集的現場數據。
定時發送數據 系統定時(0:OO,8:00,16:00)將實時數據以簡訊息的方式通過GSM網絡發送給主控端。如果在規定的時間內主控端沒有收到簡訊息,主控端將會向系統返回信息,系統收到信息後重發數據。
數據遠程查詢 操作人員可隨時在值班室操作主控端軟體,發送命令查詢遠端數據採集器採集的當前數據,系統接收到該命令後即將採集到的當前數據發送給主控端。
遠程控制 操作人員可操作主控端軟體向系統發送用於監控被控對象的參數值,系統接收到這些參數值後通過串口傳輸給數據採集器,從而實現遠程控制。
數據記錄 主控端軟體將接收到的數據儲存在資料庫中,以備日後檢索查看。
2 系統的硬體結構
系統由控制模塊和數據收發模塊兩部分組成。
控制模塊主要由C8051F021單片機和DSl2887時鐘晶片組成,主要是控制數據收發模塊發送數據的時間,同時也可以通過串口與上位機相連,通過上位機控制數據採集器的相關參數。
數據收發模塊主要由C8051F020單片機,數據採集器以及GPRS模塊三部分組成。數據採集器將採集到的數據通過串口0發送給單片機,單片機對接收的數據進行處理後,通過串口1發送相應的AT指令給GPRS模塊,然後GPRS模塊將數據以簡訊息的形式通過GSM網絡發送到接收端。
控制模塊和數據收發模塊之間通過SPIO進行通信,其中C8051F021為主機,C8051F020為從機。總控模塊主要向數據收發模塊發送兩類控制信息:
(1)當到了採集數據的時刻,向數據收發模塊發送一個字符『S』,數據收發模塊收到該信息以後就將該時刻接收的數據通過GPRS模塊發送給遠程終端;
(2)需要對數據採集器的相關參數進行修改時,將修改好的參數以一定的格式發送給數據收發模塊,數據收發模塊判斷之後通過串口O將該信息發送給數據採集器。
2.1 C8051F02X單片機
美國Cygnal公司的系統型MCU晶片C8051F020是完全集成的混合信號片上系統型MCU晶片,是真正能獨立工作的片上系統(SoC)。與普通單片機相比較,它具有高速、功能強,外設及功能部件齊全,擴展晶片少,升級維護容易等優點,而其具有的片內調試功能,設計人員可通過JTAG接口進行非侵入式、全速的在系統調試,是複雜系統高效、高可靠性的數位訊號處理晶片。
本系統設計選用此款單片機作為MCU的最主要原因,一方面是由於CIP-51與MCS-51指令完全兼容,可使用標準的8051的彙編器、編譯器及軟體包進行軟體開發,同時也方便使用人員進行軟體移植;另一方面可充分利用其豐富的通用數字埠資源,而不用地址/數據線復用,其外圍電路的設計也可以大大簡化。C8051F02X豐富的埠資源及其分配的靈活性通過使用優先權交叉開關解碼器實現,而且所有引腳都採用5 V電壓,且都可以配置為漏極開路或推輓輸出方式和弱上拉。
2.2 DSl2887時鐘晶片
DSl2887是DALLAS公司推出的一款時鐘晶片。該晶片內置晶振及電池,無需擔心掉電停走問題,另外還提供了114 B通用非易失RAM,同時可完成閏年補償和夏令時自動調整功能,支持Motorola和IN2TEL兩種總線時序。這些優點使得該晶片被廣泛應用在工業控制領域中。時鐘晶片與單片機之間的電路連接如圖2所示。
2.3 MC35i模塊
MC35i是西門子公司的第一款GPRS模塊,它不僅支持GPRS技術,還具有TC35i的全部功能:可以在GSM網上進行數據、語音、短消息以及傳真的服務;採用標準的工業接口,易於集成。MC35i支持GSM900和GSMl800雙頻網絡,內置SlM卡閱讀器以及支持即插即用的特性,可以把它作為通用的雙頻帶模塊,用來簡單、快速地傳送數據。
MC35i有40個引腳,通過一個零阻力插座(Zero Insertion Force,ZIF)連接器引出。這40個引腳可以劃分為五類,即電源、數據輸入/輸出、SIM卡、音頻接口和控制。其中第18,19引腳分別作為輸入/輸出引腳與C8051F020的串口1相連;C8051F020通過向MC35i的第18引腳發送AT命令控制數據傳輸,同時根據第19引腳的返回數據來判斷是否有新簡訊並讀取簡訊內容。第15引腳為點火線IGT(Ignition),是控制引腳,與C8051F020的P1.5引腳相連;當MC35i通電後必須給IGT一個大於100 ms的低電平,模塊才啟動。
3 系統的軟體設計
本設計分為主機和從機兩個部分,主機部分主要是實現對數據發送時間以及數據採集器參數的控制,從機部分主要是實現數據的接收和發送。
3.1 通信協議的設置
主機與從機之間要實現相互通信,首先必須規定用以傳輸數據的協議。一般來說,主機發送命令和配置信息給從機,而從機則向主機發送反饋信息。
本系統主要實現的是主機對從機數據發送時間的控制,當主機響應時鐘晶片DSl2887的中斷請求進入INTO中斷服務程序時,主機向從機發送一個字符『s』,從機接收到該指令後就開始發送數據。同時數據收發模塊與接收終端之間同樣需要通信協議以保證傳輸的可靠性。當接收終端在一定的時間內(比如5 min)沒有收到數據時,向數據收發模塊發送一條內容為『N』的簡訊息,示意重發數據。數據收發模塊收到簡訊息後,提取簡訊息內容並判斷是否為『N』,是則重發數據。從機與數據採集器之間的通信也規定了相應的協議,每一組數據前都有相應的起始位和長度位,從機通過判斷每一組數據的起始位和長度位以保證數據接收的正確性。
3.2 主機部分的軟體設計
在主機部分,關鍵點在於如何對時鐘晶片進行初始化。初始化過程中,關閉周期性中斷和時鐘更新結束中斷,而將時間性中斷設為每整點一次,每次產生中斷後,讀取小時值,判斷是否能被8整除,如能整除,說明該時刻為O:00,8:00或16:00,則向從機發送控制信息『S』,通知數據收發模塊發送數據。主機的INTO中斷服務程序流程圖如圖3所示。
3.3 從機部分的軟體設計
在從機部分,通過串口0接收數據採集器的數據並不斷刷新,當從機接收到主機發送的指令『S』時,通過串口1發送相應的AT指令給GPRS模塊,將當前數據以簡訊息的形式發送到遠程終端。由於GPRS只能發送字符數據,如果發送的數據大於127將發送失敗,所以將每個數據都轉換為相應的字符發送,比如十六進位數9F,就轉換為字符9和F再發送,終端接收到以後如需要可再轉換為十六進位數9F。
從機要實現的另一項功能是數據重發,該功能是在串口1中斷服務程序中實現的。因此從機程序中有串口0、串口1、SPIO三個中斷服務程序,其中串口O中斷的優先級別最高,其次是SPIO中斷,串口1中斷優先級別最低。而串口0中斷幾乎是在不停地發生著,因此必須將串口1中斷和SPIO中斷的中斷優先級設置位置1(默認為0),使CPU優先響應串口1中斷和SPIO中斷,否則串口1中斷和SPIO中斷的中斷請求幾乎得不到響應。
4 結 語
本系統採用工業級晶片C8051F02X系列單片機結合GSM網絡實現數據的無線傳輸,系統穩定、可靠性高,在很多應用領域,比如水文監測、地質勘探等,都可以使用本系統通過無線傳輸手段完成遠程數據採集和對採集數據的實時傳輸。