周 鵬,王啟增 ,毛文華,趙 博
(1.中國農(nóng)業(yè)機(jī)械化科學(xué)研究院 土壤植物機(jī)器系統(tǒng)技術(shù)國家重點實驗室,北京 100083;2.黑龍江省前鋒農(nóng)場,黑龍江 佳木斯 156325)
糧食含雜率及容積密度是檢測糧食品質(zhì)的主要技術(shù)指標(biāo),不僅決定了糧食的等級和價格,還會直接影響其加工品質(zhì)和食用品質(zhì)?!禛B/T 5494-2008糧油檢驗 糧食、油料的雜質(zhì)、不完善粒檢驗》和《GB/T 5498糧食、油料檢驗 容重測定法》中規(guī)定稱重的精度要達(dá)到0.1 g,為了使糧食含雜率及容積密度測量儀器整體的性能達(dá)到國標(biāo)要求,本文設(shè)計了基于PIC單片機(jī)的高精度稱重系統(tǒng),該系統(tǒng)測量由雜質(zhì)分離器分離出的大小雜的重量和容積密度測定器中糧食的重量,進(jìn)而快速得到樣品的含雜率及容重等用于糧食分級的關(guān)鍵指標(biāo)參數(shù)[1-2]。
高精度稱重系統(tǒng)的原理如圖1所示,在糧食含雜率及容積密度測量儀中,安裝在料筒下方的負(fù)荷傳感器將樣品重量轉(zhuǎn)換為電信號,電信號先經(jīng)過一個無源低通濾波器以濾除線材引入的噪聲,再由AD7799自帶的儀表放大器對其進(jìn)行放大并實現(xiàn)AD轉(zhuǎn)換。以PIC18F4580作為主控單元,通過SPI接口讀寫AD上的各個寄存器來控制AD進(jìn)行采樣。人機(jī)界面用LCD液晶顯示采樣得到的數(shù)據(jù),按鍵實現(xiàn)功能的輸入。USART模塊用來與上位機(jī)進(jìn)行數(shù)據(jù)交互、調(diào)試和數(shù)據(jù)存儲。低噪聲電源用來驅(qū)動系統(tǒng)模擬部分及負(fù)荷傳感器,提供穩(wěn)定的工作環(huán)境以降低系統(tǒng)采樣時電源帶來的噪聲。
圖1 系統(tǒng)原理框圖Fig.1 Block diagram of system schematic
PIC18F4580是Microchip公司生產(chǎn)的8位FLASH微控器。片上自帶32 K編程空間、1 536 bytes的SRAM和256 bytesEEPROM,同時具有mW級低功耗技術(shù),睡眠模式下只消耗0.2 μA的工作電流。片上自帶系統(tǒng)時鐘可達(dá)到32 MHz的處理速度,可完全替代外部晶振,簡化電路板設(shè)計。此外還帶有SPI,USART,TIMER等多種外設(shè)資源,將復(fù)雜的軟件命令操作改為對相關(guān)寄存器的賦值,簡化了設(shè)計進(jìn)程。在軟件調(diào)試和編程方面,只需占用4個I/O引腳就可以完成程序的下載及在線調(diào)試,大大減少在底層硬件調(diào)試上花費的時間[3]。
本設(shè)計中,PIC18F4580作為核心控制器連接了多個子模塊:1)三線SPI接口的AD采集模塊;2)USART串口模塊;3)用并口操作的12864液晶模塊;4)流程控制中用到的的8路擴(kuò)展I/O口;5)程序下載及調(diào)試接口。實際電路原理圖中,芯片的引腳連接網(wǎng)絡(luò)的定義如圖2所示。
圖2 電路圖中PIC18F4580的網(wǎng)絡(luò)定義Fig.2 PIC18F4580 net definition of circuit diagram
負(fù)荷傳感器作為系統(tǒng)信號采集的最前端,其性能直接決定了稱重系統(tǒng)的準(zhǔn)確性和穩(wěn)定性。為了滿足實際稱重時的精度要求,本系統(tǒng)中選用四線電橋式壓力傳感器,敏感度為1 mV/V,精度等級為0.05、量程為1 kg。
AD7799是一款高精度、寬動態(tài)范圍、△一Σ型3通道24位ADC,該芯片自帶低噪聲、可編程增益的儀表放大器,可以與mV級輸出信號的傳感器無縫相連,簡化電路板設(shè)計,提高系統(tǒng)可靠性。此外片上可直接實現(xiàn)內(nèi)部自校準(zhǔn)、系統(tǒng)校準(zhǔn)等,可以消除零點誤差、滿量程誤差及溫度漂移的影響,為系統(tǒng)軟件設(shè)計提供方便。
AD7799在2.5 V參考電壓,4.17 Hz刷新率,128倍增益時RMS噪聲小于27 nV,如果采用敏感度為1 mV/V的傳感器,在激勵電壓為5 V時的滿量程輸出為5 mV,若要達(dá)到0.1 g的精度,最小可分辨的電壓為:
因此初步估算可以決定該AD芯片可以滿足本系統(tǒng)中轉(zhuǎn)換精度的要求[4-5]。
實際模數(shù)轉(zhuǎn)換部分的電路設(shè)計如圖3所示,PIC18F4580通過三線SIP接口來讀寫片上寄存器,實現(xiàn)數(shù)據(jù)采樣和標(biāo)定等操作,其中AD7799上的SCK、MOSI、MISO信號分別與單片機(jī)上的RC3、RC4、RC5相連。數(shù)字和模擬部分的電源引腳都接上合適的去耦電容降低系統(tǒng)噪聲。參考電壓VREF+和VREF-由電源通過電阻分壓后得到。差分信號輸入端AIN1+及AIN1-通過無源低通濾波器后連接在負(fù)荷傳感器的差分輸出端。
圖3 模數(shù)轉(zhuǎn)換電路圖Fig.3 Circuit digram of AD conversion schematic
LCD顯示采用QC12864B漢字圖形點陣液晶顯示模塊,采用并行連接的方式。液晶工作電壓及背光電源為5 V供電,數(shù)據(jù)線DB0-DB7與PIC18F4580的RA口相連,控制線RS、RW、E與RE口相連。用來顯示相關(guān)調(diào)試結(jié)果,加上單片機(jī)的部分RB口作為按鍵的輸入組成人機(jī)界面。
USART電路采用MAX232進(jìn)行電平轉(zhuǎn)換以實現(xiàn)PIC18F4580與上位機(jī)之間電壓及驅(qū)動電流的匹配。在實際調(diào)試中,需要通過USART接口向上位機(jī)發(fā)送數(shù)據(jù)以調(diào)試單片機(jī)的實際工作狀態(tài)以及對AD采樣數(shù)據(jù)進(jìn)行分析和測試。
系統(tǒng)軟件設(shè)計采用HI-TECH公司針對PIC18系列設(shè)計的C語言編譯器進(jìn)行程序設(shè)計,該編譯器支持多種數(shù)據(jù)變量類型和數(shù)據(jù)存儲位置的設(shè)定,并能高效的壓縮代碼長度,提高系統(tǒng)的運行效率[6]。
單片機(jī)系統(tǒng)在上電后主程序首先初始化單片機(jī)內(nèi)部資源,包括各個IO的輸入輸出狀態(tài),默認(rèn)輸出值;SPI接口的采樣點、數(shù)據(jù)輸出對應(yīng)的時鐘沿、總線空閑時的時鐘狀態(tài)和工作速度;USART接口的工作速度(波特率),片上定時器的定時長度。然后是初始化系統(tǒng)板上資源,包括AD工作狀態(tài)的設(shè)定、AD的自標(biāo)定,并對LCD屏內(nèi)容清空并顯示初始化界面。初始化完成后根據(jù)按鍵輸入產(chǎn)生中斷進(jìn)入采集數(shù)據(jù)或系統(tǒng)標(biāo)定,若沒有中斷則按照定時器設(shè)定的15 Hz來刷新LCD顯示內(nèi)容,并清除看門狗以防止程序跑飛。系統(tǒng)主程序流圖如圖4所示。
圖4 系統(tǒng)主程序流圖Fig.4 Flow chart of system main program
系統(tǒng)的中斷程序包括采樣中斷和標(biāo)定中斷2個部分。采樣中斷程序采集一次AD轉(zhuǎn)換的值后,根據(jù)標(biāo)定值進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將轉(zhuǎn)換結(jié)果顯示在LCD上并通過串口發(fā)送到上位機(jī)。標(biāo)定中斷程序采集16次樣后取平均值作為當(dāng)前砝碼的標(biāo)準(zhǔn)值,將計算得到的平均值存儲在EEPROM中進(jìn)行永久保存。中斷程序流程圖如圖5所示。
圖5 中斷子程序流程圖Fig.5 Flow chart of interruption subroutine
實際應(yīng)用中,負(fù)荷傳感器及線材本身會引入一部分噪聲,此外傳感器和AD轉(zhuǎn)換芯片本身也會隨溫度發(fā)生一定量的漂移,同樣由于采樣分辨率較高,人為操作上的誤差及環(huán)境變化也會造成采樣值的偏移。因此,以標(biāo)準(zhǔn)砝碼對稱重系統(tǒng)噪聲進(jìn)行測試。
1)實驗方法:加載400 g標(biāo)準(zhǔn)砝碼,以4.17 Hz采樣率進(jìn)行數(shù)據(jù)采集。
2)實驗結(jié)果:1 kg負(fù)荷傳感器加載400 g標(biāo)準(zhǔn)砝碼時的采樣值如圖6所示,以采集1 000個點過程中輸出變化的峰峰值通過計算可得:
因此,該稱重電路重復(fù)誤差不大于0.005%FS。
圖6 系統(tǒng)噪聲圖(采集1 000個點)Fig.6 Noise pattern of system(1 k sample)
1)實驗方法:先使用500 g標(biāo)準(zhǔn)砝碼進(jìn)行標(biāo)定,然后加載100~400 g標(biāo)準(zhǔn)砝碼,以4.17 Hz采樣率分別采集5次。
2)實驗結(jié)果:測量整數(shù)值的砝碼得到的實驗結(jié)果如表1所示,以表中的最大誤差值計算得到:
故稱重的非線性誤差不大于0.007%FS。
表1 線性度測量結(jié)果Tab.1 Reuslt of nonlinearity meausrement
本文以單片機(jī)為控制器、AD7799為AD轉(zhuǎn)換模塊設(shè)計了一種高精度稱重電路,用于糧食品質(zhì)測量分級。試驗結(jié)果表明,采用量程為1 kg的負(fù)荷傳感器時,系統(tǒng)測量重復(fù)誤差不超過0.005%,系統(tǒng)非線性度誤差小于0.007%,達(dá)到了較高的精度和穩(wěn)定性要求,滿足了糧食品質(zhì)評定裝置中總含雜率及容積密度測量的需要。
[1]中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局中國國家標(biāo)準(zhǔn)化管理委員會.GB/T 5494-2008糧油檢驗 糧食、油料的雜質(zhì)、不完善粒檢驗[S].2009.
[2]國家標(biāo)準(zhǔn)局.GB/T 5498糧食、油料檢驗 容重測定法[S].1985.
[3]Microchip Technology Inc.PIC18F2480/2580/4480/4580 Data Sheet[EB/OL]. (2009-11-16)[2011-3-30].http://www.microchip.com/downloads/en/DeviceDoc/39637d.pdf.
[4]Analog Devices Inc.AD7798/AD7799 Data Sheet[EB/OL].(2007-03) [2011-3-30].http://www.analog.com/static/importedfiles/data_sheets/AD7798_7799.pdf.
[5]Analog Devices Inc.EVAL-AD7799EBZ TechnicalNote[EB/OL].[2011-3-30].http://www.analog.com/static/imported-files/eval_boards/EVAL-AD7799.pdf.
[6]HI-TECH Software Pty.Ltd..HI-TECH C Tools for the PIC18 MCU Family[EB/OL].(2010-11-16)[2011-3-30].http://www.microchip.com/downloads/en/DeviceDoc/manual.pdf.