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