摘 要: 介紹了智能儀器" title="智能儀器">智能儀器中海量數(shù)據(jù)的存儲方法,,并設(shè)計了一種海量數(shù)據(jù)存儲模塊" title="存儲模塊">存儲模塊。該模塊采用Compact Flash電子盤實現(xiàn)了大量數(shù)據(jù)的存儲,,并通過串口" title="串口">串口通信與各種現(xiàn)場智能設(shè)備和工控系統(tǒng)進(jìn)行數(shù)據(jù)交換,。最后將其應(yīng)用于智能測產(chǎn)系統(tǒng)中,并進(jìn)行了現(xiàn)場實驗,。實驗結(jié)果表明,,該模塊具有很高的可靠性,滿足了使用要求,。
關(guān)鍵詞: 海量數(shù)據(jù)存儲 電子盤 精準(zhǔn)農(nóng)業(yè) 智能測產(chǎn)
在一些智能儀器中,,經(jīng)常需要進(jìn)行大量的數(shù)據(jù)采集和存儲操作。例如,,在精準(zhǔn)農(nóng)業(yè)作業(yè)中需要采集田地中每一個采樣點的經(jīng)度,、緯度、產(chǎn)量和濕度等信息,。采樣點有成千上萬個,,產(chǎn)生了大量的數(shù)據(jù),保證這些現(xiàn)場數(shù)據(jù)的可靠存儲是測控系統(tǒng)設(shè)計中的關(guān)鍵問題之一,。對基于PC機的智能儀器,,這些數(shù)據(jù)可直接以DOS或Windows文件的形式存入硬盤;而對于基于單片機的現(xiàn)場設(shè)備,則由于系統(tǒng)處理速度慢,、沒有操作系統(tǒng)支持和存儲容量小等原因,,難以滿足上述要求。通常單片機所支持的存儲單元為RAM,、EEPROM或小容量的Flash存儲芯片,,它們的一個共同特點是受尋址空間的限制,不能滿足海量存儲的要求,。
為此本文設(shè)計了一種海量存儲模塊,,它的存儲單元采用大容量電子盤(64MB或更高),也稱CF卡(Compact Flash Card),。CF卡體積小,、重量輕、功耗低,、容量大,、讀寫速度快、機械性能優(yōu),、硬件兼容性好,,非常適合解決野外現(xiàn)場數(shù)據(jù)采集系統(tǒng)中數(shù)據(jù)傳輸及大容量存儲的問題。
該存儲模塊由微處理芯片" title="處理芯片">處理芯片,、擴展I/O" title="I/O">I/O芯片,、電子盤、IDE接口以及串行接口電路等組成,。它通過串口與外部設(shè)備進(jìn)行命令和數(shù)據(jù)的傳輸,,通過IDE接口實現(xiàn)對電子盤的操作,由微處理芯片來協(xié)調(diào)和控制各部分的工作,,這樣便構(gòu)成了基于單片機系統(tǒng)的海量存儲系統(tǒng),。
1 存儲模塊的組成結(jié)構(gòu)
CF卡存儲模塊由串口、微處理芯片,、I/O擴展芯片,、IDE接口、電子盤組成,。圖1是其組成結(jié)構(gòu)圖,。
1.1 CF卡的結(jié)構(gòu)和讀寫控制
如圖1所示,微控制器通過82C55A組成的I/O擴展電路和IDE接口來控制CF卡,。由于CF卡與IDE(Integrated Drive Electronics)設(shè)備接口具有兼容性,,這里IDE接口實際上實現(xiàn)了CF讀卡器的功能,完成了50引腳CF卡接口到40引腳標(biāo)準(zhǔn)IDE接口的轉(zhuǎn)換,。所以借助于該IDE接口電路,,微控制器讀寫CF卡采用的軟硬件結(jié)構(gòu)與控制IDE硬盤完全相同,。下面對IDE接口作一簡單介紹。
IDE接口引腳圖如圖2所示,。其中,,D(15...0)是數(shù)據(jù)線,GND為地線,,IOW,、IOR分別為寫,、讀信號,,RESET為復(fù)位信號,/CS0,、/CS1,、HA(2...0)為地址信號,I/O CHRDY為驅(qū)動器就緒信號,。
IDE接口基于寄存器結(jié)構(gòu),,所有的輸入輸出均通過對相應(yīng)的寄存器進(jìn)行操作來實現(xiàn)。表1為在/CS0,、/CS1,、HA2、HA1,、HA0信號和讀,、寫信號控制下所選擇的寄存器名稱及其地址。
IDE接口的操作時序為:
(1)等待驅(qū)動器將狀態(tài)寄存器中的Bit7(BUSY位)清零,。
(2)向相關(guān)的寄存器寫操作硬盤所需的參數(shù),,即寫扇區(qū)數(shù)寄存器、扇區(qū)號寄存器,、柱面號寄存器,、磁頭寄存器等。
(3)向命令寄存器寫命令代碼,。
(4)使中斷使能位有效,。
(5)等待驅(qū)動器置DRY#,發(fā)中斷請求。
IDE接口有兩種讀寫方式:LBA(邏輯塊地址)和CHS(柱面/磁頭/扇區(qū))方式,。本模塊使用CHS方式,。
1.2 系統(tǒng)硬件組成
微控制芯片采用51系列的SST89E564RD芯片,該芯片中含有1K的RAM(On-Chip RAM)和64K+8K字節(jié)的內(nèi)置電可擦除存儲器(Flash ROM),,支持在線編程(ISP),,系統(tǒng)開發(fā)非常簡便。對于電子盤的讀寫只能以扇區(qū)為單位,,一個扇區(qū)有512字節(jié),,因此一次讀寫最少要有512字節(jié),。這就要求芯片中要有一個大于512字節(jié)的數(shù)據(jù)存儲區(qū),所以采用含有1K內(nèi)存的SST89E564RD芯片是比較合適的,,可以節(jié)省一個外接的數(shù)據(jù)存儲器,。
串口的作用是實現(xiàn)與外部設(shè)備之間的命令和數(shù)據(jù)傳輸。SST89E564RD共有兩個串口,,一個用來實現(xiàn)與單片機系統(tǒng)之間的通信,,另一個用來實現(xiàn)與PC機之間的通信。與PC機相連的串口采用一個MAX232芯片來實現(xiàn)電平轉(zhuǎn)換,。這樣,,該模塊可以在現(xiàn)場接收來自于單片機采集系統(tǒng)的數(shù)據(jù)并實時存儲,而存儲的數(shù)據(jù)也能被PC機讀取,,并進(jìn)行事后數(shù)據(jù)分析,。
標(biāo)準(zhǔn)的IDE接口有40個引腳,其中控制和數(shù)據(jù)引腳共有24個,,這對于51系列芯片來說是無法控制的,,所以需要一個I/O擴展芯片82C55A來將I/O口擴展到24個,以實現(xiàn)標(biāo)準(zhǔn)IDE接口和微控制器的連接,。圖3所示為82C55A的擴展I/O電路,,圖4為CF卡的IDE接口電路。
2 CF卡存儲模塊的程序結(jié)構(gòu)
CF卡存儲模塊的程序采用C51語言編寫,,主要包括主程序和初始化,、寫扇區(qū)、讀扇區(qū)和串口輸入輸出子程序等,。其程序流程圖如圖5所示,。串口輸入采用硬件中斷方式。程序能夠接收來自于兩個串口的命令并執(zhí)行相應(yīng)的數(shù)據(jù)讀寫操作,。
主程序的任務(wù)就是等待從串口中輸入的命令,。當(dāng)串口中有字符輸入時,首先判斷輸入的命令是否為真命令,,當(dāng)為真命令后,,就調(diào)用相應(yīng)的命令函數(shù)。
在初始化子程序中完成初始化串口和電子盤,,設(shè)置串口的工作方式和合適的波特率,,并且使電子盤處于工作狀態(tài)。
當(dāng)接收到來自于串口輸入的寫扇區(qū)命令后,,系統(tǒng)將在規(guī)定時間內(nèi)等待扇區(qū)號的輸入和數(shù)據(jù)的輸入,。如果超出規(guī)定時間,則系統(tǒng)會回到主程序的等待狀態(tài),,這樣防止系統(tǒng)進(jìn)入另一個死循環(huán),。然后系統(tǒng)就會驅(qū)動IDE接口,,把數(shù)據(jù)寫入指定的扇區(qū)中。
對于讀扇區(qū)命令,,同樣它也會在規(guī)定的時間內(nèi)等待扇區(qū)號的輸入,,然后從指定的扇區(qū)中讀出數(shù)據(jù),并從串口將這些數(shù)據(jù)送出,。
3 存儲模塊的應(yīng)用
在精準(zhǔn)農(nóng)業(yè)的谷物產(chǎn)量在線測量過程中,,需要實時采集收割機作業(yè)點的GPS位置信息、收割機行走速度,、谷物的瞬時產(chǎn)量和濕度等信息,,經(jīng)過數(shù)據(jù)處理得到田間每一位置的作物產(chǎn)量信息,并及時存儲起來,。通過農(nóng)業(yè)專家決策系統(tǒng)分析現(xiàn)場采集的田間產(chǎn)量信息,,掌握土地的生產(chǎn)潛力差異,,從而為下一年農(nóng)業(yè)耕作提供指導(dǎo),,以實現(xiàn)“按需投入,提高資源利用率”,。
為了實現(xiàn)現(xiàn)場大量數(shù)據(jù)的存儲,,將上述存儲模塊用于該在線智能測產(chǎn)系統(tǒng),并通過串口實現(xiàn)存儲模塊與測產(chǎn)主控制模塊之間的數(shù)據(jù)通信,。測產(chǎn)主控制模塊由嵌入式微控制器,、GPS接收器、割臺傳感器,、速度傳感器,、產(chǎn)量傳感器、濕度傳感器等組成,,安裝在收割機上,。在小麥、水稻等的收割過程中,,主控制模塊將現(xiàn)場采集的傳感信號經(jīng)過處理之后傳送給存儲模塊保存,。收割結(jié)束后,將存儲模塊上的產(chǎn)量信息讀入到PC機,。PC機與存儲模塊的數(shù)據(jù)通信程序采用VB6.0編寫,,它通過串口讀取數(shù)據(jù),并將其存儲于Access數(shù)據(jù)庫中,。
自2002年5月以來,,多次將該在線測產(chǎn)系統(tǒng)用于小麥和水稻收割過程的在線測產(chǎn)實驗,該系統(tǒng)一直運行穩(wěn)定,,實現(xiàn)了數(shù)據(jù)的可靠存儲和讀取,。實驗中采集了大量現(xiàn)場數(shù)據(jù),,為進(jìn)一步進(jìn)行精準(zhǔn)農(nóng)業(yè)的研究奠定了堅實基礎(chǔ)。
本文討論了基于單片機的智能儀器海量數(shù)據(jù)存儲方法,,并設(shè)計了一種通用模塊,。為了驗證其性能,還將該模塊應(yīng)用于精準(zhǔn)農(nóng)業(yè)的智能測產(chǎn)系統(tǒng)中,。實踐表明,,此模塊不僅成本低,而且運行可靠,,為嵌入式測控系統(tǒng)的數(shù)據(jù)和工作參數(shù)的存儲提供了很好的解決方案,。
參考文獻(xiàn)
1 陳嘉慶.多國單片計算機實用技術(shù).北京:電子工業(yè)出版社,2002
2 張培仁. 基于C語言編程MCS-51單片機原理與應(yīng)用.北京:清華大學(xué)出版社,2003
3 王義方.微型計算機原理及應(yīng)用.北京:機械工業(yè)出版社,,2002
4 金炯泰.KEIL 8051 C編譯器.北京:北京航空航天大學(xué)出版社,,2003