基于單片機控制的新型智能控制系統(tǒng)設(shè)計
1 引言
本文引用地址:http://cafeforensic.com/article/82237.htm多媒體教室是現(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)重要,本文將對主控制器的硬件和軟件進行設(shè)計研究。
2 主控制器硬件總體設(shè)計
主控制器通過RS-232總線與控制計算機相連,接收控制計算機發(fā)出的命令,經(jīng)過單片機的處理,通過RS-485總線發(fā)送操作命令到教室控制器,完成控制計算機的操作動作。系統(tǒng)主要功能電路有:主控制電路、與控制計算機接口電路、與教室控制器通訊接口電路、實時時鐘電路、紅外信號發(fā)射電路、存儲器擴展電路及控制器供電電路等。其系統(tǒng)組成如圖1。
3 硬件電路詳細設(shè)計
3.1 主控芯片選擇與供電電源設(shè)計
主控制器的核心控制芯片采用深圳宏晶電子公司STC89C52RC單片機。該單片機以8051為核心電路,擁有三個定時器/計數(shù)器、兩個外部中斷、32個通用I/O接口并擁有高速的數(shù)據(jù)處理能力,同時內(nèi)部擴展了256字節(jié)的RAM并帶有內(nèi)部看門狗,非常適合于工業(yè)級別的、對實時性要求不是非常高的場合。擴展的RAM可以通過單片機外部數(shù)據(jù)讀寫的方式進行操作,用來存放紅外自學(xué)習(xí)時大量的零時數(shù)據(jù)。
對于一個電氣系統(tǒng),電源是不可缺少的部分。STC89C52RC單片機為+5V供電,而外圍觸發(fā)電路需要+12V的電源。在這種情況下,所需電壓的得到一般可通過外部開關(guān)電源或交流220V單相電經(jīng)變壓器、經(jīng)過橋式整流后再經(jīng)過電容、電感濾波直接得到。一般來講,這樣得到的+12V和+5V電源負載能力較強但波紋較大,很難直接應(yīng)用到系統(tǒng)中。因此,一般要經(jīng)過DC/DC變換將該電壓進行隔離穩(wěn)壓處理。
圖1 主控制器硬件組成框圖
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)電壓,正負兩種邏輯輸出(集電極開路30mA ),原理圖如圖2所示。
圖2 系統(tǒng)復(fù)位電路
電路除了具有上電自動復(fù)位功能外,還可以通過復(fù)位按鍵迫使RESET為低電平。當(dāng)系統(tǒng)掉電時,復(fù)位電容里存儲的能量可以以二極管為通路迅速放電,這為單片機在復(fù)位上電的情況下可靠復(fù)位提供了保證。
看門狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。硬件看門狗是利用了一個定時器,來控制主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復(fù)位如果出現(xiàn)死循環(huán),或者說PC指針不能回來。那么定時時間到后就會使單片機復(fù)位。本次設(shè)計中,采用MAX813L芯片作為硬件看門狗,其RESET端與單片機復(fù)位端相連提供復(fù)位信號,由單片機的P1.0提供喂狗信號??撮T狗硬件電路如圖3所示。
圖3 硬件看門狗電路
3.3 系統(tǒng)通訊接口設(shè)計
8051單片機帶有一個異步通信串行接口,并具有一個通信可編程位,使用它可以很方便地完成單片機之間的多機通信。本系統(tǒng)的設(shè)計中,主控制器的主要任務(wù)是把控制計算機中的控制指令進行處理,并通過異步通信串行接口把控制命令發(fā)送到下位機。但是,由于8051單片機本身只提供了一個串行口,因此為了實現(xiàn)上述目標(biāo),就必須再擴展一個通信接口,本系統(tǒng)就使用8251擴展8051串行通信接口。
由于主控制器安裝在主控室內(nèi),與安裝在教室內(nèi)的教室控制器之間距離較遠,且工作環(huán)境復(fù)雜,兩者的通信存在很大的環(huán)境干擾。本系統(tǒng)的設(shè)計從經(jīng)濟條件、施工難度、傳輸距離等方面考慮,選擇了工業(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ù)進行讀寫和處理大量的數(shù)據(jù),占用了CPU的大量資源,因此在優(yōu)化軟件設(shè)計的同時,還要注重核心芯片的選擇。
系統(tǒng)軟件設(shè)計根據(jù)功能要求軟件控制模塊可分為。上電后系統(tǒng)開始運行,系統(tǒng)先調(diào)用初始化,對各個接口狀態(tài)進行自檢,對各個控制寄存器賦初值,然后進入循環(huán)等待操作命令的到來并執(zhí)行命令。系統(tǒng)處于循環(huán)狀態(tài)運行時則調(diào)用通訊子程序工作,接收控制計算機發(fā)送的控制命令,同時向教室控制器進行轉(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ù)進行下去。這樣的方式可以避免多個子控制器間沒有次序的數(shù)據(jù)通信,擾亂整個網(wǎng)絡(luò)上數(shù)據(jù)的傳輸。系統(tǒng)多機通信按以下協(xié)議進行:
圖4 主控制器程序運行框圖
(1) 首先初始化,使所有從機處于接收地址幀狀態(tài),即使SM2=1。
(2) 主機先置TB8=1,發(fā)一幀地址信息,主機發(fā)出信息后馬上啟動一個等待狀態(tài)定時器(定時幾十ms)。
(3) 從機接收到地址幀后,各自產(chǎn)生串口接收中斷將接收到的地址與本機地址比較,地址相符的從機使SM2=0,處于接收數(shù)據(jù)狀態(tài),并屏蔽串口中斷,然后發(fā)回本機地址作為確認信號,其余從機不進行任何動作,繼續(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ù)幀和校驗幀,從機接收后進行數(shù)據(jù)校驗,數(shù)據(jù)錯誤接受錯誤則返回錯誤碼,主機重新發(fā)送數(shù)據(jù),重復(fù)三次,若三次均出錯則報上位機系統(tǒng)出錯;若數(shù)據(jù)發(fā)送正確,則返回地址繼續(xù)進行通信。
(6) 通信結(jié)束后,主從機復(fù)位。主機使TB8=1,回到發(fā)送地址狀態(tài);從機使SM2=1,并打開串口中斷,回到接收地址狀態(tài)。
4.2 實時時鐘子程序設(shè)計
實時時鐘子程序設(shè)計能向控制計算機提供系統(tǒng)運行時間。同時提供定時功能,當(dāng)定時時間達到時,實時時鐘芯片DS 12887產(chǎn)生一個低電平觸發(fā)單片機中斷程序,完成定時操作功能。DS 12887狀態(tài)寄存器的參數(shù)設(shè)置如下:狀態(tài)寄存器A置為20H,表示開啟時鐘并禁止SQW管腳輸出方波。狀態(tài)寄存器B置為26H, 表示允許鬧鐘中斷,禁止其他中斷;二進制數(shù)據(jù)表示;采取24小時格式;禁止方波輸出和夏令時服務(wù)。
本文作者創(chuàng)新點
本文設(shè)計了基于單片機控制的智能教室控制系統(tǒng)的主控制的外圍電路。采用了DS12887芯片,對系統(tǒng)時間模塊進行了設(shè)計。重點討論了主控制器的通訊模塊設(shè)計,對RS-485總線在通信節(jié)點擴展方面進行了全新的設(shè)計。同時對主控制器進行了軟件設(shè)計。
參考文獻:
[1] 郝銘,劉景泰,盧桂章.基于RS485總線分布式智能控制系統(tǒng)的設(shè)計與實現(xiàn)[J].自動化與儀表,2005,(2): pp. 23-25
[2] 劉富強.單片機在多媒體系統(tǒng)中多功能控制卡的應(yīng)用研究[[J].東南大學(xué)學(xué)報,1998年第三期,p66-70
[3] 張小梅,陸俊,彭冰沁,劉宏. 嵌入式智能家居控制系統(tǒng)的設(shè)計與實現(xiàn)[J]. 微計算機信息, 2007, 1-2: pp.55-56.
[4] 姜地..RS-485多機通訊技術(shù)[J].中國科技信息,2006,(17):126-129
評論