段曉曼
摘 要 本文針對固定貨柜庫位狀態(tài)采集問題,開發(fā)出以AVR為控制核心的狀態(tài)采集系統(tǒng),以實現(xiàn)對文件柜狀態(tài)的實時采集和監(jiān)控。本系統(tǒng)具有結構簡單,穩(wěn)定性高,成本較低的特點。本系統(tǒng)包括庫位狀態(tài)采集、數(shù)據(jù)傳送、ModBus通信等各部分組成。
【關鍵詞】AVR 狀態(tài)檢測 ModBus通信
隨著信息社會的發(fā)展,信息資料的存儲呈現(xiàn)出多量化、密集化的發(fā)展趨勢,信息管理的高效性和實時性越來越引起人們的關注。本發(fā)明涉及一種多點狀態(tài)檢測技術,ModBus通訊技術等,設備用于政府工作部門、企事業(yè)單位、檔案館等機構的檔案管理室和固定庫位的小型庫房。
1 研究背景
現(xiàn)有產(chǎn)品的狀態(tài)采集技術多用傳感器采集模塊直接將數(shù)據(jù)送入單片機中,在數(shù)據(jù)檔案多量化密集化的今天,這種已經(jīng)很難滿足檔案管理的需求。傳統(tǒng)產(chǎn)品使用的單片機多為STC52單片機,其通訊速率已經(jīng)很難完成大量檔案柜的實時監(jiān)測功能。
2 系統(tǒng)總體設計
本系統(tǒng)使用紅外傳感器檢測密集文件柜的狀態(tài),利用AVR單片機完成對文件柜狀態(tài)的采集,然后通過RS485總線實現(xiàn)數(shù)據(jù)傳送,對單一文件柜而言,有檔案放置時,相應LED指示燈為綠色;無檔案放置時,相應LED為紅色。每個文件柜都會根據(jù)文件的不同進行命名,并在上位機標明。這樣不僅可以在監(jiān)控室遠程查看文件柜的信息,而且可以在現(xiàn)場直接判斷文件柜的狀態(tài),方便快捷實現(xiàn)文件的管理。
3 系統(tǒng)的硬件設計
3.1 最小系統(tǒng)板的設計
Atmega128是一款高性能、低功耗的新型單片機,具有53個可編程I/O端口,4KB片內(nèi)SRAM,128KB片內(nèi)可編程Flash,并內(nèi)置多種串行通信接口,具有高速的反應速度,豐富的內(nèi)部資源等特點。最高數(shù)速率達1MIPS/M h,能有效減緩系統(tǒng)功耗和處理速度之間的矛盾。滿足該系統(tǒng)的設計要求。
3.2 采集電路的設計
本系統(tǒng)設計出矩陣掃描式采集電路,解決了傳統(tǒng)設計因狀態(tài)變量過多而導致的“硬件設計難”的問題。傳統(tǒng)設計直接將文件柜的狀態(tài)輸入單片機IO口,一片單片機很難滿足大量文件柜的采集,本產(chǎn)品設計矩陣掃描式采集電路,只需16位輸入和16位輸出共32個IO口就能對256個狀態(tài)進行采集。
3.3 光電隔離電路設計
在實際工程當中,由于所處的環(huán)境的不同,干擾對于系統(tǒng)的影響也有很大的差別。在距離工廠、學校等較近的地方,噪音可能會對系統(tǒng)的準確性產(chǎn)生較大干擾,使單片機采集的數(shù)據(jù)與實際產(chǎn)生較大差異,甚至會影響單片機系統(tǒng)工作的穩(wěn)定性。
針對上訴問題本系統(tǒng)在16路io輸出端和16路io輸入端的每一路都使用光電耦合器進行光電隔離,將外電路與單片機電路徹底隔離,使外電路的干擾在進入單片機之前徹底消除,提高了采集數(shù)據(jù)的準確性。同時,在io輸出端的光耦后增加了一個s8550三極管,有效地提高了電路輸出端的驅(qū)動能力。
4 系統(tǒng)的軟件設計
4.1 單片機主程序設計
AVR單片機上電工作以后首先進行設備的初始化,包括端口初始化、波特率設置、串口初始化、開啟接收中斷等工作。接著進行循環(huán)式掃描,每掃描一行將采集數(shù)據(jù)按照字節(jié)的方式存在SRAM區(qū)。直到完成對16行的掃描后,進入?yún)f(xié)議解析函數(shù)。然后在解析函數(shù)中會完成主機命令的解析、從機命令的回應、上傳采集數(shù)據(jù)等工作。
4.2 ModBus通信協(xié)議
ModBus通訊協(xié)議分為RTU協(xié)議和ASCII協(xié)議,本次設計采用ModBus RTU通訊協(xié)議。下面就ModBus RTU協(xié)議簡要介紹如下:
4.2.1 通訊協(xié)議
4.2.2 通訊傳送方式
通訊傳送分為獨立的信息頭,和發(fā)送的編碼數(shù)據(jù)。地址碼:地址碼為通訊傳送的第一個字節(jié)。這個字節(jié)表明由用戶設定地址碼的從機將接收由主機發(fā)送來的信息。并且每個從機都有具有唯一的地址碼,并且響應回送均以各自的地址碼開始。主機發(fā)送的地址碼表明將發(fā)送到的從機地址,而從機發(fā)送的地址碼表明回送的從機地址。功能碼:通訊傳送的第二個字節(jié)。ModBus通訊規(guī)約定義功能號為1到127。本儀表只利用其中的一部分功能碼。作為主機請求發(fā)送,通過功能碼告訴從機執(zhí)行什么動作。作為從機響應,從機發(fā)送的功能碼與從主機發(fā)送來的功能碼一樣,并表明從機已響應主機進行操作。如果從機發(fā)送的功能碼的最高位為1(比如功能碼大與此同時127),則表明從機沒有響應操作或發(fā)送出錯。數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)是根據(jù)不同的功能碼而不同。數(shù)據(jù)區(qū)可以是實際數(shù)值、設置點、主機發(fā)送給從機或從機發(fā)送給主機的地址。CRC碼:二字節(jié)的錯誤檢測碼。
4.2.3 通訊規(guī)約
當通訊命令發(fā)送至儀器時,符合相應地址碼的設備接通訊命令,并除去地址碼,讀取信息,如果沒有出錯,則執(zhí)行相應的任務;然后把執(zhí)行結果返送給發(fā)送者。返送的信息中包括地址碼、執(zhí)行動作的功能碼、執(zhí)行動作后結果的數(shù)據(jù)以及錯誤校驗碼。如果出錯就不發(fā)送任何信息。
地址碼:地址碼是信息幀的第一字節(jié)(8位),從0到255。這個字節(jié)表明由用戶設置地址的從機將接收由主機發(fā)送來的信息。每個從機都必須有唯一的地址碼,并且只有符合地址碼的從機才能響應回送。當從機回送信息時,相當?shù)牡刂反a表明該信息來自于何處。
數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含需要從機執(zhí)行什么動作或由從機采集的返送信息。這些信息可以是數(shù)值、參考地址等等。例如,功能碼告訴從機讀取寄存器的值,則數(shù)據(jù)區(qū)必需包含要讀取寄存器的起始地址及讀取長度。
5 上位機軟件的設計
為了使工作人員在監(jiān)控界面上直觀的查看到各個柜子的狀態(tài),上位機采用友好的人機交互界面,本設計中使用KingView對監(jiān)控界面進行設計。為提高監(jiān)測系統(tǒng)的可視化程度,監(jiān)控界面由主界面和16個子界面組成:將256個文件柜進行編號,分成16組,每組有16個文件柜。主界面有16組子界面圖標構成,在每個子界面中,文件柜狀態(tài)由指示燈顏色顯示,紅色表示有文件,綠色表示無文件。
6 結束語
本文立足于檔案館文件管理實際,自主設計了對大量文件柜的狀態(tài)采集、數(shù)據(jù)傳輸以及實時顯示的監(jiān)測系統(tǒng),創(chuàng)造性的設計了大量開關量的矩陣式電路采集方式,實現(xiàn)了對密集文件柜的智能化、可視化管理,可廣泛應用于檔案館、圖書館、公司資料存儲室等場所,具有一定的市場推廣潛力。
參考文獻
[1]嚴雨,廉潔.AVR單片機C語言應用100例[M].北京:電子工業(yè)出版社,2012.
[2]胡漢才.高檔AVR單片機原理及應用[M].北京:清華大學出版社,2008.
作者單位
中南民族大學 湖北省武漢市 430074