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