用C11T/R模塊設計及實現遠程無線監測系統
摘 要:本方介紹了利用無線數傳模塊結合單片機來進行遠程檢測信息傳輸的開發方法,包括無線數傳模塊的介紹、硬件電路設計、軟件設計等。
關鍵詞:無線傳輸;單片機;遠程監測
前言
工業現場、倉庫、博物館乃至居民小區等經常需要進行多點開關量信號的監測、報警及信號的遠傳,若采用有線方式,會有許多局限性。而采用無線模來進行遠程信號的傳輸,將使系統設計方便、快捷,特別適用于各種架線不方便的監測區域。本文介紹的基于無線模塊的遠程監測與報警系統,利用單片機控制無線數傳模塊,通過無線的方式進行信號的遠程傳輸,簡單靈活,傳輸可靠,可滿足遠距離監測和數據采集系統的需要。
硬件總體結構
基于無線模塊的遠程監測傳輸系統發射部分的控制器選用89C2051,主要作用是存儲檢測到的信號狀態,然后通過控制發射模塊將其發送出去。接收部分的控制器選用89C51,主要作用是將接收模塊傳來的數據信息存儲并顯示。 無線收發模塊是本系統的核心部件,所選用的無線數傳模塊型號為C11,這是一款Jammy(捷麥)公司的產品,它包括一個發送模塊(縮寫為:C11T)和一個接收模塊(縮寫為:C11R),單發單收,分別與各自的控制電路相接后即可進行無線收發工作。該模塊的額定工作頻段為145.150MHz,通信速率為1200bps;通信格式采用異步通信,1個起始位,8個數據位,1個停止位,額定工作電為DC6V。且發送椹 及接收模塊旨腳結構完全相同。 模塊與控制器之間通信的內容有兩類,一類是數據,一類是命令。數據指的是通過無線發送和接收過程,再由接收模塊傳送給其對應的控制器的信息。命令則是指上位機通過串口,發送給模塊讓模塊執行一定的動作或模塊傳送給控制器報送模塊內的一些參數或者狀態的數據信息。特別值得注意的是,當控制器向模塊傳送信息時,若傳送的信息為命令,則必須將模塊的DTR端置為邏輯“0”;若傳送的信息為數據,則必須將模塊的DTR端置為邏輯“1”。控制器對無線模塊的控制是通過專用的控制指令來實現的,其指令非常簡單。
硬件電路設計
本文針對遠程液位進行監測設計出一點對點無線收發監測裝置。其以送端的檢測部分可對16路液位狀態進行檢測,液位到達警戒液位高度后,線路接通,該檢測點電平為低電平。89C2051將檢測到的形狀量狀態收集并存儲起來,然后通過控制發射模塊將其發送出去。接收端通過89C51將接收模塊傳過來的數據信息存儲并轉換后通過LED顯示。相關管理人員通過LED顯示就可以判斷液面是否到達了警戒線或者是壓不夠等。其發送端和接收端的配件電路分別如圖1和圖2所示。 其中發送電路采用了74LS245雙向總線驅動器,由于采集進來的數據流向為B A,故DIR端只有為低電平時才將數據信息采入。其中一片的使能端前接一反相器,改變P3.4電平可以使兩片74LS245交替工作。接收端采用了74FS574鎖存器,要使其正常工作,輸出使能端OC與89C51寫選通端之間要接一反相器為了以后大規模接收的需要,可以采用LED點陣顯示,利用3—8譯碼器進行擴展選通每一列掃描線。發送端和接收端電路都采用了Maxim公司的MAX813看門狗,以防止程序跑飛。本系統可以監測16路信號,假如檢測輸入部分通道不夠的話, 可以通過在發送端選用其他I/O口較多的單片機并擴展I/O口來實現。發送和接收電路跟無線模塊引出的四條通信線直接相連,進行點對點的通信。類似地還可以采用多點發一點收的組網方式來對更多個檢測點進行監測。
軟件設計
按照以上硬件電路設計,對系統軟件編程的基本思路是每隔2秒發送端控制器接收檢測部分傳來的狀態信息,并存儲到固定地址中后準備發送(注:此處存儲16路形狀時信號共用兩個字節)。由于可能在發送過程中會有少量的誤碼產生,故需在接收端由控制器查詢CRC校驗結果。此外,程序設計還考慮了今后硬件檢測點增多后傳送多個字節的狀況,只需對其略加修改即可。發送和接收程序流程圖分別為如圖3和如圖4所示。 模塊初始化子程序主要是利用模塊自帶的控制指令對模塊的身份地址和目的進行調協等工作,特別注意在對模塊進行初始化時,控制器必須先將收接模塊的DTR端置“0”。發送指令時應先發D7H,然后發送后面的命令字節。控制器通過串口依次發送D7H,F5H,××H,××H格式俱可設置身份地址;依次發送D7H,E1H,××H,××H格式俱可設置目的地址。控制器通過串口依次發送D7H,F5H,××H,××H格式命令可設置身份地址;依次發送D7H,E1H,××H,××H格式命令可調協目的地址。若將發減災模塊的身份地址設為0001,目的地址設為0002。準備無線發送數據時,發送端控制器必須先將模塊的DTR端置“1”。假如一次發送多個字節,發送過程中呆能
會有數據丟失現象。但是判斷數據丟失之前需要判斷這次發送過程是否完成了。對此在程序設計中采取超時處理的方法:發 送端每隔2秒檢測一次形狀量狀態并將檢測來的多個狀態字節存儲到固定地址中,然后開始發送。每隔5~10毫秒發送一個字節,這樣全部發送完也只需幾十個毫秒的時間。接收端只要在超過這幾十個毫秒的時間后去判斷數據是否發送完,就可以知道發大獎賽客串上是否有數據丟失現象,按照該方法,接收端只需在第一個字節接收的同時打開定時器進行計時(發磅數據較少時,定時時間一般為100~200毫秒),此后在每次數據來臨前查詢定時器是否溢出。假如定時器沒有溢出且數據沒有完全發磅完則繼續等待接收數據。若定時器流出,程度查詢數據是否發送完,沒有發送完則表示在這次發送過程中有數據丟失,LED繼續顯示上次的狀態并等待下一次接收的到來。若是在發送過程中,接收查詢到已經收到了預期的狀態字節個數,則關閉定時器提前結束計時,轉向CRC校驗,假期校驗結果正確,則顯示這次接收的結果。若錯誤,則繼續顯示上次的狀態并等待下一次接收的到來。
圖3 發送程序流程圖 圖4 接收程序流程圖
結語
利用無線模塊來進行遠程多點信號監測,方便、快捷、適用范圍廣泛。現在已經在很多領域得到了應用。上述設計中所使用的無線模塊傳輸誤碼率較低,查詢 CRC校驗結果方便。控制命令簡單,縮短了項目開發周期。隨著技術的進步,將有更多先進的無線模塊用于以后的遠程監測系統中。
參考文獻
1 程云長,陳學明.C11控制命令及用法.捷麥通信有限公司
2 李朝青.PC機及單片機數據通信技術.北京:北京航空航天大學出版社.2002
3 何立民.MCS-51單片機應用系統設計—系統配置與接口技術.北京:北京航空航天大學出版社.2001
文章版權歸西部工控xbgk所有,未經許可不得轉載。