基于PIC18F4580的糧食稱重系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時隨地手機(jī)看文章
摘要:在糧食品質(zhì)檢測分級過程中,為了測量樣品的含雜率和容積密度,設(shè)計(jì)了一種高精度稱重系統(tǒng)。以PIC18F4580為主控單元,采用四臂電橋式負(fù)荷傳感器,用AD7799進(jìn)行模數(shù)轉(zhuǎn)換及傳感器微弱信號的放大。差動式輸入?yún)⒖茧妷簻p小電源低頻漂移時帶來的系統(tǒng)誤差。實(shí)際測試表明,系統(tǒng)測量重復(fù)誤差不超過0.005%,系統(tǒng)非線性度誤差小于0.007%,可以滿足糧食檢測過程的需求。
關(guān)鍵詞:PIC18F4580;AD7799;稱重;負(fù)荷傳感器
糧食含雜率及容積密度是檢測糧食品質(zhì)的主要技術(shù)指標(biāo),不僅決定了糧食的等級和價格,還會直接影響其加工品質(zhì)和食用品質(zhì)?!禛B/T 5494-2008糧油檢驗(yàn)糧食、油料的雜質(zhì)、不完善粒檢驗(yàn)》和《GB/T 5498糧食、油料檢驗(yàn)容重測定法》中規(guī)定稱重的精度要達(dá)到0.1 g,為了使糧食含雜率及容積密度測量儀器整體的性能達(dá)到國標(biāo)要求,本文設(shè)計(jì)了基于PIC單片機(jī)的高精度稱重系統(tǒng),該系統(tǒng)測量由雜質(zhì)分離器分離出的大小雜的重量和容積密度測定器中糧食的重量,進(jìn)而快速得到樣品的含雜率及容重等用于糧食分級的關(guān)鍵指標(biāo)參數(shù)。
1 系統(tǒng)工作原理
高精度稱重系統(tǒng)的原理如圖1所示,在糧食含雜率及容積密度測量儀中,安裝在料筒下方的負(fù)荷傳感器將樣品重量轉(zhuǎn)換為電信號,電信號先經(jīng)過一個無源低通濾波器以濾除線材引入的噪聲,再由AD7799自帶的儀表放大器對其進(jìn)行放大并實(shí)現(xiàn)AD轉(zhuǎn)換。以PIC18F4580作為主控單元,通過SPI接口讀寫AD上的各個寄存器來控制AD進(jìn)行采樣。人機(jī)界面用LCD液晶顯示采樣得到的數(shù)據(jù),按鍵實(shí)現(xiàn)功能的輸入。USART模塊用來與上位機(jī)進(jìn)行數(shù)據(jù)交互、調(diào)試和數(shù)據(jù)存儲。低噪聲電源用來驅(qū)動系統(tǒng)模擬部分及負(fù)荷傳感器,提供穩(wěn)定的工作環(huán)境以降低系統(tǒng)采樣時電源帶來的噪聲。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 PIC18F4580核心控制器
PIC18F4580是Microchip公司生產(chǎn)的8位FLASH微控器。片上自帶32 K編程空間、1 536 bytes的SRAM和256bytesEEPROM,同時具有mW級低功耗技術(shù),睡眠模式下只消耗0.2μA的工作電流。片上自帶系統(tǒng)時鐘可達(dá)到32 MHz的處理速度,可完全替代外部晶振,簡化電路板設(shè)計(jì)。此外還帶有SPI,USART,TIMER等多種外設(shè)資源,將復(fù)雜的軟件命令操作改為對相關(guān)寄存器的賦值,簡化了設(shè)計(jì)進(jìn)程。在軟件調(diào)試和編程方面,只需占用4個I/O引腳就可以完成程序的下載及在線調(diào)試,大大減少在底層硬件調(diào)試上花費(fèi)的時間。
本設(shè)計(jì)中,PIC18F4580作為核心控制器連接了多個子模塊:1)三線SPI接口的AD采集模塊;2)USART串口模塊;3)用并口操作的12864液晶模塊:4)流程控制中用到的的8路擴(kuò)展I/O口;5)程序下載及調(diào)試接口。實(shí)際電路原理圖中,芯片的引腳連接網(wǎng)絡(luò)的定義如圖2所示。
2.2 傳感器及AD轉(zhuǎn)換電路
負(fù)荷傳感器作為系統(tǒng)信號采集的最前端,其性能直接決定了稱重系統(tǒng)的準(zhǔn)確性和穩(wěn)定性。為了滿足實(shí)際稱重時的精度要求,本系統(tǒng)中選用四線電橋式壓力傳感器,敏感度為1 mV/V,精度等級為0.05、量程為1kg。
AD7799是一款高精度、寬動態(tài)范圍、△-∑型3通道24位ADC,該芯片自帶低噪聲、可編程增益的儀表放大器,可以與mV級輸出信號的傳感器無縫相連,簡化電路板設(shè)計(jì),提高系統(tǒng)可靠性。此外片上可直接實(shí)現(xiàn)內(nèi)部自校準(zhǔn)、系統(tǒng)校準(zhǔn)等,可以消除零點(diǎn)誤差、滿量程誤差及溫度漂移的影響,為系統(tǒng)軟件設(shè)計(jì)提供方便。
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)換精度的要求。
實(shí)際模數(shù)轉(zhuǎn)換部分的電路設(shè)計(jì)如圖3所示,PIC18F4580通過三線SIP接口來讀寫片上寄存器,實(shí)現(xiàn)數(shù)據(jù)采樣和標(biāo)定等操作,其中AD7799上的SCK、MOSI、MISO信號分別與單片機(jī)上的RC3、RC4、RC5相連。數(shù)字和模擬部分的電源引腳都接上合適的去耦電容降低系統(tǒng)噪聲。參考電壓VREF+和VREF-由電源通過電阻分壓后得到。差分信號輸入端AIN1+及AIN1-通過無源低通濾波器后連接在負(fù)荷傳感器的差分輸出端。
2.3 人機(jī)界面及USART電路
LCD顯示采用QC12864B漢字圖形點(diǎn)陣液晶顯示模塊,采用并行連接的方式。液晶工作電壓及背光電源為5 V供電,數(shù)據(jù)線DB0-DB7與IC181 74580的RA口相連,控制線RS、RW、E與RE口相連。用來顯示相關(guān)調(diào)試結(jié)果,加上單片機(jī)的部分RB口作為按鍵的輸入組成人機(jī)界面。
USART電路采用MAX232進(jìn)行電平轉(zhuǎn)換以實(shí)現(xiàn)PIC18F4580與上位機(jī)之間電壓及驅(qū)動電流的匹配。在實(shí)際調(diào)試中,需要通過USART接口向上位機(jī)發(fā)送數(shù)據(jù)以調(diào)試單片機(jī)的實(shí)際工作狀態(tài)以及對AD采樣數(shù)據(jù)進(jìn)行分析和測試。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)采用HI-TECH公司針對PIC18系列設(shè)計(jì)的C語言編譯器進(jìn)行程序設(shè)計(jì),該編譯器支持多種數(shù)據(jù)變量類型和數(shù)據(jù)存儲位置的設(shè)定,并能高效的壓縮代碼長度。提高系統(tǒng)的運(yùn)行效率。
3.1 系統(tǒng)主程序設(shè)計(jì)
單片機(jī)系統(tǒng)在上電后主程序首先初始化單片機(jī)內(nèi)部資源,包括各個IO的輸入輸出狀態(tài),默認(rèn)輸出值;SPI接口的采樣點(diǎn)、數(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所示。
3.2 系統(tǒng)中斷程序設(shè)計(jì)
系統(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)值,將計(jì)算得到的平均值存儲在EEPROM中進(jìn)行永久保存。中斷程序流程圖如圖5所示。
4 實(shí)驗(yàn)結(jié)果與分析
4.1 系統(tǒng)噪聲實(shí)驗(yàn)
實(shí)際應(yīng)用中,負(fù)荷傳感器及線材本身會引入一部分噪聲,此外傳感器和AD轉(zhuǎn)換芯片本身也會隨溫度發(fā)生一定量的漂移,同樣由于采樣分辨率較高,人為操作上的誤差及環(huán)境變化也會造成采樣值的偏移。因此,以標(biāo)準(zhǔn)砝碼對稱重系統(tǒng)噪聲進(jìn)行測試。
1)實(shí)驗(yàn)方法:加載400 g標(biāo)準(zhǔn)砝碼,以4.17 Hz采樣率進(jìn)行數(shù)據(jù)采集。
2)實(shí)驗(yàn)結(jié)果:1 kg負(fù)荷傳感器加載400 g標(biāo)準(zhǔn)砝碼時的采樣值如圖6所示,以采集1 000個點(diǎn)過程中輸出變化的峰峰值通過計(jì)算可得:
4.2 線性度實(shí)驗(yàn)
1)實(shí)驗(yàn)方法:先使用500 g標(biāo)準(zhǔn)砝碼進(jìn)行標(biāo)定,然后加載100~400 g標(biāo)準(zhǔn)砝碼,以4.17 Hz采樣率分別采集5次。
2)實(shí)驗(yàn)結(jié)果:測量整數(shù)值的砝碼得到的實(shí)驗(yàn)結(jié)果如表1所示,以表中的最大誤差值計(jì)算得到:
故稱重的非線性誤差不大于0.007%FS。
5 結(jié)論
本文以單片機(jī)為控制器、AD7799為AD轉(zhuǎn)換模塊設(shè)計(jì)了一種高精度稱重電路,用于糧食品質(zhì)測量分級。試驗(yàn)結(jié)果表明,采用量程為1 kg的負(fù)荷傳感器時,系統(tǒng)測量重復(fù)誤差不超過0.005%,系統(tǒng)非線性度誤差小于0.007%,達(dá)到了較高的精度和穩(wěn)定性要求,滿足了糧食品質(zhì)評定裝置中總含雜率及容積密度測量的需要。