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