教室電器智能節(jié)能系統(tǒng)主要由人體檢測、亮度檢測、溫度檢測、單片機模塊、電力線載波通信模塊、上位機控制軟件6個功能模塊組成。
該系統(tǒng)以PC機作為上位主機,各下位機由單片機組成,各下位機之問無數(shù)據(jù)傳輸,只與主機產(chǎn)生數(shù)據(jù)交換,系統(tǒng)結(jié)構(gòu)如圖1所示。
1.1 紅外檢測模塊
教室人數(shù)統(tǒng)計由2個人體檢測電路實現(xiàn),分別安裝于教室門口內(nèi)、外兩側(cè)。門內(nèi)外兩側(cè)的紅外傳感器只要檢測到有人進教室或出教室,其輸出將有電平跳變,從而先后觸發(fā)單片機的中斷,單片機根據(jù)中斷次數(shù)和順序統(tǒng)計教室人數(shù)。紅外傳感器采用熱釋電紅外傳感器D203S,其外圍電路如圖2所示,IClA是一級低頻信號的放大電路,放大后信號濾波電路選出信號0.2~10 Hz的信號。
在靜態(tài)時,6,7腳的電壓也是1/2VCC,當有信號后,6腳的電壓就會在1/2VCC上下擺動,這個電壓再通過IClB進行放大,輸入到后面的比較電路,該門限電路不管輸入信號是在1/2VCC上偏還是下偏,都將在上下門限值之間輸出一個高電平,此高電平經(jīng)過光耦后的信號作為單片機INT0外部中斷的請求信號。
1.2 電力載波通信模塊
上位機須根據(jù)單片機的檢測數(shù)據(jù)自動控制教室照明和風扇的開通與關(guān)斷,而上位機與各個單片機之間的信號傳輸是通過2片電力載波芯片LM1893將信號在電網(wǎng)上調(diào)制或解調(diào)來實現(xiàn)。
LM1893是美國*半導體公司生產(chǎn)的高性能專用電力載波通信芯片,具有使用方便、價格低廉、精度高和可靠性好的特點,采用移頻鍵控的調(diào)制解調(diào)方式,抑制噪音的FSK調(diào)制方式,可實現(xiàn)任意編碼方式的數(shù)字序列半雙工通信,載波頻率在50~300 kHz之間可選擇。
單片機機與電力載波通信芯片LM1893連接電路如圖3所示,上位機與LM1893的外圍電路基本與此類似。LM1893的5腳為TX/RX發(fā)送接收控制端,由單片機的P1.0端控制,高電平為發(fā)送狀態(tài),低電平為接收狀態(tài)。LM1893輸入端17管腳與單片機的串行發(fā)送端相連,當控制端為電平時,由單片機輸入的數(shù)據(jù)經(jīng)LM1893芯片內(nèi)部的調(diào)制振蕩單元,調(diào)制為125 kHz的正弦模擬信號,經(jīng)過功率放大后從芯片的I/O(第10管腳)輸出,*通過信號耦合變壓器將此模擬信號耦合到電網(wǎng)上,實現(xiàn)數(shù)據(jù)的傳送。
當控制端為低電平時,接收端12管腳與單片機的串行輸人口接收端相連。從電力線上來的信號經(jīng)高壓耦合電容和變壓器T組成的耦合電路從LM1893的10腳送入內(nèi)部平衡限幅放大器,經(jīng)芯片內(nèi)部電路的解調(diào)處理,從數(shù)據(jù)輸出端12腳輸出數(shù)據(jù)信號(TTL電平),從而實現(xiàn)單片機的接收。上位機的發(fā)送接收的方式和原理與此相同,不贅述。
2 系統(tǒng)的軟件設(shè)計
2.1 通信協(xié)議
為了保證電力線通訊的順利進行,本系統(tǒng)采用的通信協(xié)議遵守《地區(qū)電網(wǎng)數(shù)據(jù)采集與監(jiān)控系統(tǒng)通用技術(shù)條件》,并且參照X-10協(xié)議。在電力線載波通信的過程中,因為采用異步半雙工工作方式,所以一定要有包含控制機制的傳輸協(xié)議以確保數(shù)據(jù)的可靠傳輸。上位機和下位機需采用適當?shù)膮f(xié)議和時序配合。該設(shè)計中,每次通訊過程總是由上位PC機首先發(fā)起,通訊時單片機先進入通訊狀態(tài),等待與計算機通訊。上位機向下位機發(fā)送的命令為系統(tǒng)碼、地址碼、命令碼和校驗碼。
由于采用共用的電力線通訊,為避免電力線上的雜波載波信號對本系統(tǒng)主機和各從機的誤接收,在發(fā)送地址信號前,加了一個系統(tǒng)碼。而校驗碼是對此碼前所傳送的所有數(shù)據(jù)進行簡單加法,保留1個字節(jié),進位自然溢出得到的數(shù)值,數(shù)據(jù)傳輸?shù)慕邮辗綄λ盏降臄?shù)據(jù)的正確性進行判斷。同理,從機向主機發(fā)送命令為起始碼、地址碼、數(shù)據(jù)塊和校驗碼。
2.2 上位機軟件實現(xiàn)
上位機采用Delphi 7作為開發(fā)環(huán)境,對數(shù)據(jù)的存儲采用數(shù)據(jù)庫Paradox,此單端數(shù)據(jù)庫由Borland公司開發(fā),可采用BDE引擎,與Delphi 7融合較好。對串口RS 232直接使用Windows API函數(shù)和多線程技術(shù)實現(xiàn)通信功能,串口通信軟件由負責人機交互的主線程和對串口進行處理的后臺輔助線程組成。
通信軟件構(gòu)架如圖4所示,主線程是串口通信程序的管理者,用來初始化串口(通過調(diào)用Win32 API函數(shù)),自定義通信事件消息,創(chuàng)建、刪除輔助線程,進行人機交互的操作及協(xié)調(diào)好各線程運行。輔助線程是串口通信軟件的核心,包括讀線程和寫線程。輔助線程對串口進行實時監(jiān)視,當監(jiān)測到預定義的事件時,立即調(diào)用相應的線程進行處理并向主線程發(fā)相應的消息,如串口出錯,則退出線程并向主線程報錯;如接收到數(shù)據(jù)就調(diào)用讀線程自動接收數(shù)據(jù)并進行處理。
本系統(tǒng)由于對實時性要求不高,波特率選用在600~1 200 b/s之間,上位機的自定義幀格式為1位起始位,8位數(shù)據(jù)位,1位地址幀識別位,1位停止位,無奇偶校驗位。上位機工作流程如圖5所示,上位機通過RS 232串行發(fā)送口TXD以廣播形式向下位機先發(fā)系統(tǒng)碼后發(fā)地址碼,經(jīng)LM1893調(diào)制成125 kHz的正弦信號,通過耦合變壓器,耦合至電力線上。上位機發(fā)送后將設(shè)置LM1893為解調(diào)狀態(tài)處,準備接收數(shù)據(jù)。而所有從機的LM1893已處于解調(diào)狀態(tài),完成接收數(shù)據(jù),此數(shù)據(jù)通過中斷服務子程序由單片機串行接收口RXD輸入各自CPU,如果起始碼和地址碼都正確,從機將LM1893設(shè)置為調(diào)制狀態(tài),將地址確定信號返回信息給主機。主機收到數(shù)據(jù),對正誤標識進行判斷,如收到正確返回信號,則繼續(xù)與此從機通信;如遇錯誤標識或在一定時間內(nèi)沒收到回送信息,則進行命令重發(fā)。
2.3 下位機軟件實現(xiàn)
由于涉及到單片機多機通訊,因此單片機串行口工作方式選為方式3,通訊格式為每11位構(gòu)成一串行幀:1位起始位(0),8位數(shù)據(jù)位(*有效位在前),1位地址幀識別位(1),1位停止位(1),無奇偶校驗位(上位機的地址幀的識別位將進入單片機R