教室電器智能節(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,當(dāng)有信號后,6腳的電壓就會在1/2VCC上下擺動,這個電壓再通過IClB進行放大,輸入到后面的比較電路,該門限電路不管輸入信號是在1/2VCC上偏還是下偏,都將在上下門限值之間輸出一個高電平,此高電平經(jīng)過光耦后的信號作為單片機INT0外部中斷的請求信號。
1.2 電力載波通信模塊
上位機須根據(jù)單片機的檢測數(shù)據(jù)自動控制教室照明和風(fēng)扇的開通與關(guān)斷,而上位機與各個單片機之間的信號傳輸是通過2片電力載波芯片LM1893將信號在電網(wǎng)上調(diào)制或解調(diào)來實現(xiàn)。
LM1893是美國*半導(dǎo)體公司生產(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ā)送端相連,當(dāng)控制端為電平時,由單片機輸入的數(shù)據(jù)經(jīng)LM1893芯片內(nèi)部的調(diào)制振蕩單元,調(diào)制為125 kHz的正弦模擬信號,經(jīng)過功率放大后從芯片的I/O(第10管腳)輸出,*通過信號耦合變壓器將此模擬信號耦合到電網(wǎng)上,實現(xiàn)數(shù)據(jù)的傳送。
當(dāng)控制端為低電平時,接收端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ù)的可靠傳輸。上位機和下位機需采用適當(dāng)?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)通信功能,串口通信軟件由負責(zé)人機交互的主線程和對串口進行處理的后臺輔助線程組成。
通信軟件構(gòu)架如圖4所示,主線程是串口通信程序的管理者,用來初始化串口(通過調(diào)用Win32 API函數(shù)),自定義通信事件消息,創(chuàng)建、刪除輔助線程,進行人機交互的操作及協(xié)調(diào)好各線程運行。輔助線程是串口通信軟件的核心,包括讀線程和寫線程。輔助線程對串口進行實時監(jiān)視,當(dāng)監(jiān)測到預(yù)定義的事件時,立即調(diào)用相應(yīng)的線程進行處理并向主線程發(fā)相應(yīng)的消息,如串口出錯,則退出線程并向主線程報錯;如接收到數(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ù)通過中斷服務(wù)子程序由單片機串行接收口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