孫 濱 , 周育輝
(1.泰山職業(yè)技術(shù)學院,山東 泰安 271000;2.江西生物科技職業(yè)學院,江西 南昌 330200)
記錄儀是智慧農(nóng)業(yè)現(xiàn)場經(jīng)常使用的一種實時數(shù)據(jù)記錄、過程監(jiān)測和數(shù)據(jù)分析的常用設(shè)備,對于智慧農(nóng)業(yè)的環(huán)境檢測及后期數(shù)據(jù)分析具有十分重要的作用。早期的機械式記錄儀效率低下,既無法適應現(xiàn)在智慧農(nóng)業(yè)測量數(shù)據(jù)的大容量、實時查看、直觀分析、圖標顯示、遠程傳送的要求[1],也無法作為智慧農(nóng)業(yè)現(xiàn)場控制網(wǎng)絡的一個節(jié)點使用。隨著智慧農(nóng)業(yè)現(xiàn)場測量技術(shù)的發(fā)展,智慧農(nóng)業(yè)對環(huán)境數(shù)據(jù)的測量和處理要求記錄儀具有智能化、自動化、網(wǎng)絡化、遠程化等特點。
基于智慧農(nóng)業(yè)現(xiàn)場控制的要求,設(shè)計了一款基于以太網(wǎng)接口的無紙實時記錄儀,該記錄儀可以實時在線記錄現(xiàn)場數(shù)據(jù),并可以通過以太網(wǎng)通信方式與上位機進行通信,與上位機進行雙向信息傳送。無紙記錄儀與農(nóng)業(yè)環(huán)境傳感器等組成測量系統(tǒng),可完成各個被測量數(shù)據(jù)的實時采集與記錄。本設(shè)計使用STM32 作為主控制器,配合鐵電存儲器、USB 接口電路、AD 傳感器、以太網(wǎng)接口,使記錄儀具備大容量存儲,實時數(shù)據(jù)記錄、查詢,以太網(wǎng)通信功能,并具有多種顯示界面可切換,實現(xiàn)了友好的人機界面設(shè)計。
無紙記錄儀總體結(jié)構(gòu)框圖如圖1 所示,主要包括以STM32 為核心的現(xiàn)場控制采集電路和上位機[2]。現(xiàn)場控制采集模塊主要由電源電路、內(nèi)部存儲電路、5 mA~10 mA 信號采集電路、隔離輸出4 mA~20 mA電路、USB 接口電路、以太網(wǎng)接口電路、儀表溫度控制電路、顯示觸摸電路組成。
圖1 無紙記錄儀總體結(jié)構(gòu)框圖
系統(tǒng)上電工作時,初始化后系統(tǒng)首先完成中斷向量表的建立,完成堆棧設(shè)置、時鐘選擇,開始執(zhí)行用戶代碼。如果沒有接收到上位機的新的控制命令和參數(shù)設(shè)置要求,則按照上次的設(shè)置或默認設(shè)置開始工作。系統(tǒng)上電完成后將溫度等相關(guān)變送器生成的5 mA~10 mA 測量信號送入AD 轉(zhuǎn)換器,并通過STM32 控制器進行數(shù)據(jù)處理,保存在存儲器FM25CL64 中。如果采集的數(shù)據(jù)量非常多超過本機存儲容量,可以通過U 盤讀取數(shù)據(jù)進行備份,或通過以太網(wǎng)遠程上傳到上位機[3]。
現(xiàn)場數(shù)據(jù)的實時存儲可以方便后續(xù)的數(shù)據(jù)處理及分析,常規(guī)的存儲方式是將數(shù)據(jù)存放在EEPROM中,但是常規(guī)的EEPROM 存在一定的缺點,隨著擦寫次數(shù)的增加,擦寫速度降低,并且存在最大擦寫次數(shù)的限制。在本設(shè)計中采用FRAM 來進行數(shù)據(jù)的存儲。FRAM 具有存儲速度快、掉電后數(shù)據(jù)立即保存、讀寫時需要的功耗低等優(yōu)點[4],并且不存在如EEPROM 的最大寫入次數(shù)問題。根據(jù)實際需要,選用了FM25CL64B(存儲容量8 kB*8 bit),F(xiàn)M25CL64鐵電存儲器接口電路如圖2所示。
圖2 FM25CL64 鐵電存儲器接口電路
本記錄儀可以把采集的數(shù)據(jù)存儲到常規(guī)的U 盤中。常規(guī)情況下,嵌入式系統(tǒng)在進行USB 讀寫數(shù)據(jù)時,需要用戶熟悉USB 相關(guān)的底層協(xié)議,編寫相關(guān)的驅(qū)動程序[5]。為提高系統(tǒng)開發(fā)進度,避免復雜的驅(qū)動程序編寫,系統(tǒng)設(shè)計時采用了一種集成USB 讀寫固件的芯片方案CH376T。CH376T 內(nèi)置了讀寫U 盤和SD 卡中文件的相關(guān)函數(shù),用戶只需要在應用代碼中調(diào)用固件中的函數(shù)即可。CH376T 與控制器進行連接時有8 位并行接口、SPI 接口、異步串口等多種方式[6],為節(jié)省控制器引腳使用,本設(shè)計中的CH376T與控制器之間采用SPI 接口,CH376T 接口電路如圖3 所示。
圖3 CH376T接口電路
本設(shè)計中5 mA~10 mA 電流通過前端電路中的R48、R49、R47、R51 變成差分電壓信號,然后送入AMC1200 全差分隔離放大器進行隔離放大,再送入精密儀器運放INA333 進行電壓放大后輸出電壓VOUT,最后送入控制器的AD 轉(zhuǎn)換器進行模數(shù)轉(zhuǎn)換。隔離電流5 mA~10 mA采集電路如圖4所示。
圖4 隔離電流5 mA~10 mA 采集電路
系統(tǒng)設(shè)計采用ADI 的ADM2582E 方案,體積更小,屬于芯片級,在其芯片內(nèi)部集成了隔離電源,便于應用。經(jīng)過實際測試,采用ADM2582E 的隔離485通信電路在距離1 km 時誤碼率比較低,能夠滿足智慧農(nóng)業(yè)現(xiàn)場通信需求。同時為提高485 通信電路傳輸數(shù)據(jù)的抗干擾能力,在傳輸線路上設(shè)計了瞬態(tài)抑制二極管、高壓放電管。隔離485 電路如圖5 所示,抗干擾電路如圖6所示。
圖5 隔離485電路
圖6 抗干擾電路
本設(shè)計中測量系統(tǒng)需要接收上位機發(fā)送的遠程控制命令并上傳測量數(shù)據(jù)。在智慧農(nóng)業(yè)現(xiàn)場的測量環(huán)境中,電磁環(huán)境比較惡劣,常規(guī)的RS232 串口通信在性能上不能滿足需要。本設(shè)計中上位機與記錄儀之間采用以太網(wǎng)連接方式進行遠程網(wǎng)絡通信[2],利用了以太網(wǎng)通信的高傳輸速度、適應惡劣環(huán)境、電路簡單可靠的優(yōu)點。傳統(tǒng)的以太網(wǎng)接入方式往往采用主控制器連接物理層接口芯片(如DM9000A),在主控CPU 中嵌入以太網(wǎng)通信協(xié)議的方式。這種方式需要編寫煩瑣的網(wǎng)絡協(xié)議程序,并且要耗費大量的時間進行調(diào)試,難以實現(xiàn)系統(tǒng)的快速開發(fā)和穩(wěn)定運行,更不利于系統(tǒng)的更新升級[7]。本文設(shè)計的通信電路采用CH395 以太網(wǎng)芯片,CH395 芯片自帶10/100M 以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY),完全兼容IEEE802.3 10/100M 協(xié)議[8],芯片內(nèi)部已經(jīng)固化了常用的以太網(wǎng)協(xié)議棧,因此利用CH395 單片機系統(tǒng)實現(xiàn)以太網(wǎng)通信非常便捷,避免了復雜的協(xié)議棧移植,非常適合嵌入式系統(tǒng)開發(fā)人員使用。CH395 核心電路如圖7 所示,CH395 接口電路如圖8 所示。
本記錄儀的軟件設(shè)計主要包括以太網(wǎng)通信、USB讀寫文件、系統(tǒng)在線升級程序等。
本記錄儀進行網(wǎng)絡通信時采用了TCP/IP 協(xié)議,使用C/S 模式[9]。在進行以太網(wǎng)通信時,無紙記錄儀工作在Server 模式,上位機工作在Client 模式。工作過程中首先由無紙記錄儀等待上位機(客戶端)發(fā)起連接要求,記錄儀接收到上位機的請求連接要求后,兩者建立連接,然后按照通信流程進行數(shù)據(jù)傳輸[10],以太網(wǎng)通信流程如圖9所示。
圖9 以太網(wǎng)通信流程
本設(shè)計中的USB 通信電路采用了CH376 集成芯片。CH376 支持多種USB 通信方式,內(nèi)部已經(jīng)固化有相應的通信協(xié)議和文件系統(tǒng)[11],CH376 內(nèi)部以命令的形式提供了USB 移動存儲設(shè)備的文件級接口,可方便地移植到各種嵌入式系統(tǒng)中,其主要程序流程如圖10所示。
圖10 USB讀寫文件流程圖
系統(tǒng)設(shè)計完成投入使用后,在設(shè)備運行過程中,由于用戶需求的改變或者系統(tǒng)軟件設(shè)計有問題,就需要進行系統(tǒng)軟件升級,一般的客戶自行升級程序比較困難,為解決這一難題,采用了通過U 盤進行系統(tǒng)固件升級的方法。通過U 盤進行系統(tǒng)固件升級,基本思路是寫一段引導代碼,把代碼起始地址設(shè)置為0X8000000,大小設(shè)置64 K,它的主要功能是復制U盤或者通信中的數(shù)據(jù)寫入到起始地址為0X8010000的用戶程序區(qū),將用戶程序覆蓋,固件升級基本流程如圖11所示。
圖11 固件升級流程圖
課題組設(shè)計了一種基于以太網(wǎng)的智慧農(nóng)業(yè)無紙記錄儀并進行了系統(tǒng)的硬件電路設(shè)計和軟件設(shè)計,系統(tǒng)以STM32 為核心,擴展了USB、以太網(wǎng)接口。上位機可以通過以太網(wǎng)接口將控制命令及采集參數(shù)下發(fā)至記錄儀,并控制各功能模塊完成數(shù)據(jù)測量功能。