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