多媒體教室是現(xiàn)代化教學(xué)環(huán)境和設(shè)施的重要組成部分,目前我國各類學(xué)校都建設(shè)了一批多媒體教學(xué)課室,勇于開展多媒體教學(xué),有力地推動了教學(xué)手段的現(xiàn)代化
正在逐步改變教師的教授和學(xué)生的學(xué)習(xí)模式,加大了教學(xué)信息量,提高了教學(xué)效率和教學(xué)質(zhì)量,加快了教學(xué)改革步伐而基于單片機控制的智能教室控制系統(tǒng)主控制器溝通了控制計算機與教室控制器之間的聯(lián)系,起到橋梁的作用作為分布式控制的系統(tǒng)的核心,主控制器的性能的優(yōu)劣直接影響到整個系統(tǒng)功能的實現(xiàn)因此主控制器的設(shè)計至關(guān)重要,本文將對主控制器的硬件和軟件進(jìn)行設(shè)計研究
2 主控制器硬件總體設(shè)計
主控制器通過RS-232總線與控制計算機相連,接收控制計算機發(fā)出的命令,經(jīng)過單片機的處理,通過RS-485總線發(fā)送操作命令到教室控制器,完成控制計算機的操作動作系統(tǒng)主要功能電路有:主控制電路、與控制計算機接口電路、與教室控制器通訊接口電路、實時時鐘電路、紅外信號發(fā)射電路、存儲器擴展電路及控制器供電電路等其系統(tǒng)組成如圖1
3 硬件電路詳細(xì)設(shè)計
3.1 主控芯片選擇與供電電源設(shè)計
主控制器的核心控制芯片采用深圳宏晶電子公司STC89C52RC單片機該單片機以8051為核心電路,擁有三個定時器/計數(shù)器、兩個外部中斷、32個通用I/O接口并擁有高速的數(shù)據(jù)處理能力,同時內(nèi)部擴展了256字節(jié)的RAM并帶有內(nèi)部看門狗,非常適合于工業(yè)級別的、對實時性要求不是非常高的場合擴展的RAM可以通過單片機外部數(shù)據(jù)讀寫的方式進(jìn)行操作,用來存放紅外自學(xué)習(xí)時大量的零時數(shù)據(jù)
對于一個電氣系統(tǒng),電源是不可缺少的部分STC89C52RC單片機為+5V供電,而外圍觸發(fā)電路需要+12V的電源在這種情況下,所需電壓的得到一般可通過外部開關(guān)電源或交流220V單相電經(jīng)變壓器、經(jīng)過橋式整流后再經(jīng)過電容、電感濾波直接得到一般來講,這樣得到的+12V和+5V電源負(fù)載能力較強但波紋較大,很難直接應(yīng)用到系統(tǒng)中因此,一般要經(jīng)過DC/DC變換將該電壓進(jìn)行隔離穩(wěn)壓處理
圖1 主控制器硬件組成框圖[nextpage]
3.2 復(fù)位電路與看門狗電路設(shè)計
本次設(shè)計采用的復(fù)位芯片為C7705,它是電壓監(jiān)視器件,具有電源投入時的復(fù)位功能,并能夠監(jiān)測出電源瞬時短路和瞬間降壓而產(chǎn)生的復(fù)位信號該芯片內(nèi)部具有電源上升時的復(fù)位信號解除功能,能正確地監(jiān)測降低的電壓(Vs=4.5-4.6V),其內(nèi)部附有溫度補償?shù)幕鶞?zhǔn)電壓,正負(fù)兩種邏輯輸出(集電極開路30mA ),原理圖如圖2所示
圖2 系統(tǒng)復(fù)位電路
電路除了具有上電自動復(fù)位功能外,還可以通過復(fù)位按鍵迫使RESET為低電平當(dāng)系統(tǒng)掉電時,復(fù)位電容里存儲的能量可以以二極管為通路迅速放電,這為單片機在復(fù)位上電的情況下可靠復(fù)位提供了保證
看門狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛硬件看門狗是利用了一個定時器,來控制主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進(jìn)行復(fù)位如果出現(xiàn)死循環(huán),或者說PC指針不能回來那么定時時間到后就會使單片機復(fù)位本次設(shè)計中,采用MAX813L芯片作為硬件看門狗,其RESET端與單片機復(fù)位端相連提供復(fù)位信號,由單片機的P1.0提供喂狗信號看門狗硬件電路如圖3所示
圖3 硬件看門狗電路[nextpage]
3.3 系統(tǒng)通訊接口設(shè)計
8051單片機帶有一個異步通信串行接口,并具有一個通信可編程位,使用它可以很方便地完成單片機之間的多機通信本系統(tǒng)的設(shè)計中,主控制器的主要任務(wù)是把控制計算機中的控制指令進(jìn)行處理,并通過異步通信串行接口把控制命令發(fā)送到下位機但是,由于8051單片機本身只提供了一個串行口,因此為了實現(xiàn)上述目標(biāo),就必須再擴展一個通信接口,本系統(tǒng)就使用8251擴展8051串行通信接口
由于主控制器安裝在主控室內(nèi),與安裝在教室內(nèi)的教室控制器之間距離較遠(yuǎn),且工作環(huán)境復(fù)雜,兩者的通信存在很大的環(huán)境干擾本系統(tǒng)的設(shè)計從經(jīng)濟(jì)條件、施工難度、傳輸距離等方面考慮,選擇了工業(yè)控制系統(tǒng)中常用的RS-485總線使用RS-485總線,一對雙絞線就能實現(xiàn)多節(jié)點聯(lián)網(wǎng),構(gòu)成分布式系統(tǒng)但是如果在工程中需要更長的通信距離,超出RS-485接口能夠提供的可靠傳送數(shù)據(jù)范圍時,單一的RS-485通信控制芯片對就無法完成了這時,必須在傳輸線路中增加中繼器利用RS-485中繼器,可以將一個大型RS-485網(wǎng)絡(luò)分隔成若干個網(wǎng)段RS-485中繼器就如同RS-485網(wǎng)段之間連接的“橋梁”當(dāng)然每個網(wǎng)段還是遵循上面的485規(guī)范,即 1.2公里長度,32個節(jié)點數(shù)
4 主控制器軟件設(shè)計
系統(tǒng)的軟件設(shè)計是整個系統(tǒng)功能實現(xiàn)的關(guān)鍵所在,軟件設(shè)計的優(yōu)劣直接影響系統(tǒng)的性能,在相同硬件基礎(chǔ)上設(shè)計的軟件功能差異可以很大由于本次設(shè)計要頻繁的對數(shù)據(jù)進(jìn)行讀寫和處理大量的數(shù)據(jù),占用了CPU的大量資源,因此在優(yōu)化軟件設(shè)計的同時,還要注重核心芯片的選擇
系統(tǒng)軟件設(shè)計根據(jù)功能要求軟件控制模塊可分為上電后系統(tǒng)開始運行,系統(tǒng)先調(diào)用初始化,對各個接口狀態(tài)進(jìn)行自檢,對各個控制寄存器賦初值,然后進(jìn)入循環(huán)等待操作命令的到來并執(zhí)行命令系統(tǒng)處于循環(huán)狀態(tài)運行時則調(diào)用通訊子程序工作,接收控制計算機發(fā)送的控制命令,同時向教室控制器進(jìn)行轉(zhuǎn)發(fā);系統(tǒng)中斷時調(diào)用定時中斷服務(wù)子程序主控制器程序運行框圖如圖4所示
4.1 通訊子程序設(shè)計
系統(tǒng)采用RS-485總線式網(wǎng)絡(luò)結(jié)構(gòu),主從式通信方式,即主控制器以查詢的方式與各子控制器通信,子控制器相互間不直接通信,而是通過主控制器,間接的相互通信同時,數(shù)據(jù)的交換過程(包括建立連接和交換數(shù)據(jù))采用一問一答的方式,主控制器詢問了子控制器,子控制器才給予應(yīng)答,收到應(yīng)答后,數(shù)據(jù)交換才繼續(xù)進(jìn)行下去這樣的方式可以避免多個子控制器間沒有次序的數(shù)據(jù)通信,擾亂整個網(wǎng)絡(luò)上數(shù)據(jù)的傳輸系統(tǒng)多機通信按以下協(xié)議進(jìn)行:
圖4 主控制器程序運行框圖[nextpage]
(1) 首先初始化,使所有從機處于接收地址幀狀態(tài),即使SM2=1
(2) 主機先置TB8=1,發(fā)一幀地址信息,主機發(fā)出信息后馬上啟動一個等待狀態(tài)定時器(定時幾十ms)
(3) 從機接收到地址幀后,各自產(chǎn)生串口接收中斷將接收到的地址與本機地址比較,地址相符的從機使SM2=0,處于接收數(shù)據(jù)狀態(tài),并屏蔽串口中斷,然后發(fā)回本機地址作為確認(rèn)信號,其余從機不進(jìn)行任何動作,繼續(xù)監(jiān)聽地址
(4) 主機收到對應(yīng)從機地址后,令TB8=0,開始發(fā)送數(shù)據(jù)信號,主機與對應(yīng)從機通信建立此時其他從機均無中斷響應(yīng),若主機長時間未能接收到數(shù)據(jù),而導(dǎo)致等待狀態(tài)定時器中斷,此時主機應(yīng)強制退出與該從機的通信,并使從機復(fù)位
(5) 通信建立后,主機連續(xù)發(fā)送數(shù)據(jù)幀和校驗幀,從機接收后進(jìn)行數(shù)據(jù)校驗,數(shù)據(jù)錯誤接受錯誤則返回錯誤碼,主機重新發(fā)送數(shù)據(jù),重復(fù)三次,若三次均出錯則報上位機系統(tǒng)出錯;若數(shù)據(jù)發(fā)送正確,則返回地址繼續(xù)進(jìn)行通信
(6) 通信結(jié)束后,主從機復(fù)位主機使TB8=1,回到發(fā)送地址狀態(tài);從機使SM2=1,并打開串口中斷,回到接收地址狀態(tài)
4.2 實時時鐘子程序設(shè)計
實時時鐘子程序設(shè)計能向控制計算機提供系統(tǒng)運行時間同時提供定時功能,當(dāng)定時時間達(dá)到時,實時時鐘芯片DS 12887產(chǎn)生一個低電平觸發(fā)單片機中斷程序,完成定時操作功能DS 12887狀態(tài)寄存器的參數(shù)設(shè)置如下:狀態(tài)寄存器A置為20H,表示開啟時鐘并禁止SQW管腳輸出方波狀態(tài)寄存器B置為26H 表示允許鬧鐘中斷,禁止其他中斷;二進(jìn)制數(shù)據(jù)表示;采取24小時格式;禁止方波輸出和夏令時服務(wù)
本文作者創(chuàng)新點
本文設(shè)計了基于單片機控制的智能教室控制系統(tǒng)的主控制的外圍電路采用了DS12887芯片,對系統(tǒng)時間模塊進(jìn)行了設(shè)計重點討論了主控制器的通訊模塊設(shè)計,對RS-485總線在通信節(jié)點擴展方面進(jìn)行了全新的設(shè)計同時對主控制器進(jìn)行了軟件設(shè)計