咨詢電話
ENGLISH0755-88840386發(fā)布時間:2020-04-26 15:39:51 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
隨著嵌入式系統(tǒng)和微電子技術(shù)的發(fā)展,全自動定量稱重系統(tǒng)的實(shí)現(xiàn)技術(shù)也在不斷地發(fā)展。可編程片上系統(tǒng)(SOPC)是一種靈活高效的SOC設(shè)計方式,它根據(jù)系統(tǒng)設(shè)計的需要將CPU、存儲器、I/O等各種IP核集成到一個可編程邏輯芯片(FPGA)上,構(gòu)成一個可編程的片上系統(tǒng)。采用SOPC設(shè)計方式可以很容易對已有的設(shè)計進(jìn)行修改,靈活性高[1]。
針對稱重儀表的自動定量稱重系統(tǒng)所要求的高精度、高可靠性、多功能等特性,給出了基于多Nios II嵌入式軟核處理器的全自動定量稱重系統(tǒng)的可編程片上系統(tǒng)(SOPC)軟硬件設(shè)計方法。采用稱重傳感器、模數(shù)轉(zhuǎn)換器AD7730、去極值平均濾波算法和預(yù)測控制算法,實(shí)現(xiàn)了顆粒、粉末狀等物料的高精度測量及自動定量包裝控制。該系統(tǒng)具有開發(fā)周期短、成本低、可靠性高、易于擴(kuò)充等特點(diǎn),現(xiàn)場測試結(jié)果表明,系統(tǒng)測量稱重誤差小于0.2%。
在化工、水泥、糧食、飼料等行業(yè)的生產(chǎn)過程中,需要對物料進(jìn)行定量稱重控制,完成自動稱重包裝。物料可以劃分為顆粒、粉末、液體等類型。采用人工進(jìn)行的定量稱重定量包裝不但效率低,而且計量精度低。全自動定量稱重系統(tǒng)不但滿足很高的計量精度,而且具有很強(qiáng)的穩(wěn)定性,且具有精度高、功能強(qiáng)大、操作簡便等特點(diǎn)。
本文設(shè)計的定量稱重系統(tǒng)采用Altera公司的SOPC解決方案,它基于嵌入式軟核Nios II多核結(jié)構(gòu), Nios II軟核是一個32位RISC嵌入式處理器,性能超過200MIP,在性能上Nios II可滿足當(dāng)前的大部分嵌入式產(chǎn)品的設(shè)計。Altera公司提供了完整的開發(fā)套件:Quartus II 、SOPC Builder、Nios II IDE和仿真工具等軟件,并將它們無縫地集成在一起,這為當(dāng)前嵌入式系統(tǒng)設(shè)計提供了新方法,并帶來了巨大的便利,可輕松實(shí)現(xiàn)從底層的硬件設(shè)計到上層的軟件開發(fā),縮短開發(fā)周期,降低開發(fā)的復(fù)雜性。
系統(tǒng)總體設(shè)計概況
本稱重系統(tǒng)要求稱重測量誤差小于0.2%,且系統(tǒng)的功能比較復(fù)雜,既要實(shí)時處理采集過來的數(shù)據(jù),還要實(shí)現(xiàn)控制、顯示、存儲以及與上位機(jī)通訊等功能,同時還要實(shí)現(xiàn)復(fù)雜的稱重預(yù)測控制算法[2],一般在幾秒中之內(nèi)要完成物料的動態(tài)稱重測量和定量包裝,特別地,系統(tǒng)若要控制多路稱重傳感器的測量和包裝,采用單CPU來控制的話,勢必會影響到系統(tǒng)的速度,很難實(shí)現(xiàn)高精度的稱重測量和控制需求??梢钥紤]采用多CPU系統(tǒng)來實(shí)現(xiàn)。傳統(tǒng)的SOC多處理器系統(tǒng)使系統(tǒng)結(jié)構(gòu)復(fù)雜,可靠性降低,且增加了系統(tǒng)的開發(fā)難度。
采用SOPC的實(shí)現(xiàn)方案,很好地解決了系統(tǒng)實(shí)現(xiàn)功能復(fù)雜性和系統(tǒng)設(shè)計復(fù)雜性的矛盾,Nios II 5.0及以上版本支持多處理器系統(tǒng)的創(chuàng)建和調(diào)試。多個Nios II處理器能夠有效地共享系統(tǒng)資源,由于SOPC Builder允許用戶輕松添加多個處理器到系統(tǒng)中,建立多處理器系統(tǒng)的難點(diǎn)已不再是硬件的排列和連接,而在于多個處理器的軟件的設(shè)計,使它們正常操作,相互之間不產(chǎn)生沖突。
為防止多個處理器的相互干擾,在Nios II開發(fā)套件中包含一個硬件互斥核(mutex core)。這個硬件互斥核允許不同的處理器在某一時間段聲明對共享資源的所有權(quán)。一個處理器對資源的臨時所有權(quán)防止共享資源被其他處理器破壞。在Nios II IDE中,對多處理器系統(tǒng)的調(diào)試也比較容易[2]。
采用多處理器系統(tǒng)實(shí)現(xiàn)的全自動稱重系統(tǒng),CPU功能劃分如下:CPU1完成鍵盤參數(shù)輸入、數(shù)據(jù)顯示、打印、與上位機(jī)通訊等功能,CPU2,CPU3,…,CPUn分別完成每路的物料的動態(tài)稱重測量和控制,具體包括數(shù)據(jù)采集、數(shù)據(jù)濾波,稱重預(yù)測控制算法軟件或硬件實(shí)現(xiàn)以及自動定量包裝控制等功能。圖1給出了包含2個Nios II CPU 的系統(tǒng)硬件結(jié)構(gòu)圖。CPU各自運(yùn)行獨(dú)立的軟件,之間通過片上存儲器實(shí)現(xiàn)數(shù)據(jù)的共享。
3 系統(tǒng)硬件設(shè)計與實(shí)現(xiàn)
本設(shè)計采用Altera 公司的新一代低成本FPGA —Cyclone II實(shí)現(xiàn)SOPC設(shè)計,系統(tǒng)硬件主要包括FPGA上的Nios II處理器系統(tǒng)和FPGA外的接口和外設(shè)兩部分。Nios II處理器系統(tǒng)主要由基于Avalon Bus 的Nios II CPU1、串行接口、PIO、存儲器控制器;Nios II CPU2、定時器、PIO控制器以及片上RAM、互斥核等IP組成。與FPGA相連的外設(shè)包括串行配置器件、Flash、SDRAM、鍵盤、LCD顯示器、打印機(jī)、AD7330、料位、料門開關(guān)等,稱重傳感器與AD7330直接相連,通過定時器提供系統(tǒng)的定時時鐘和定時中斷請求信號;串口通過RS485總線與上位機(jī)通訊,實(shí)現(xiàn)多Nios II系統(tǒng)的上位機(jī)監(jiān)控。通過PIO可實(shí)現(xiàn)對AD7330、料門開關(guān)、鍵盤、LCD顯示器、打印機(jī)等外設(shè)的控制,存儲器控制器分別與片外SDRAM和Flash連接,實(shí)現(xiàn)對存儲器的訪問。
本控制系統(tǒng)硬件設(shè)計與實(shí)現(xiàn)的步驟如下:
首先在SOPC Builder中,使用Altera公司提供的IP Core,對Nios II CPU和各外設(shè)模塊的特性、參數(shù)大小及在系統(tǒng)中地址分配等進(jìn)行設(shè)定;然后啟動SOPC Builder中的Generate,使之生成用于綜合和仿真的文件;最后,使用Quartus II軟件鎖定端口引腳,對生成的Nios II系統(tǒng)進(jìn)行仿真、綜合、適配、下載和FPGA 配置。
3.1 數(shù)據(jù)采集及其處理
數(shù)據(jù)采集及其處理由稱重傳感器、模數(shù)轉(zhuǎn)換AD7730和CPU2完成,AD7730的數(shù)據(jù)采集電路如圖2所示。圖中,由橋式壓力傳感器輸出電壓信號進(jìn)入到輸入通道AIN+和AIN-,經(jīng)過模數(shù)轉(zhuǎn)換,再經(jīng)過AD7730中的數(shù)字濾波器進(jìn)行濾波,濾波后的數(shù)據(jù)通過SCLK、DIN、DOUT等信號通過中斷的方式送給Nios II進(jìn)行相應(yīng)的處理,得到期望的精確數(shù)據(jù)。
AD7730 是美國ADI 公司推出的一款高分辨率的A/D 轉(zhuǎn)換器, 采用雙通道全差分模擬輸入,可直接和傳感器輸入信號相連,并可自校準(zhǔn)和系統(tǒng)校準(zhǔn)[3]。AD7730 特別適合用于寬動態(tài)范圍內(nèi)的低頻信號A/D 轉(zhuǎn)換, 具有優(yōu)良的抗噪聲性能。在稱重控制器中使用AD7730 分別與稱重傳感器和CPU2直接接口。為了能夠得到高精度的采集數(shù)據(jù),CPU2要有很高的工作頻率。CPU2的工作頻率設(shè)為50MHz,專門負(fù)責(zé)數(shù)據(jù)采集及算法的處理。每隔10ms,CPU2從AD7730中讀取A/D轉(zhuǎn)換值, 然后進(jìn)行數(shù)字濾波處理,得到期望的近似數(shù)據(jù)。
3.2 CPU功能的實(shí)現(xiàn)
CPU1主要完成顯示、存儲、打印和通訊等功能。這些功能由CPU1控制外圍I/O設(shè)備來實(shí)現(xiàn)。稱重開始前,先通過液晶顯示屏和鍵盤進(jìn)行人機(jī)界面交互,輸入控制參數(shù),系統(tǒng)稱重開始后,CPU1通過共享存儲器獲取并顯示CPU2檢測的稱重數(shù)據(jù),CPU2把檢測值和標(biāo)定的參數(shù)值進(jìn)行比較,根據(jù)比較的結(jié)果進(jìn)行稱重預(yù)測控制算法[4]的計算,根據(jù)計算結(jié)果輸出控制信號進(jìn)行稱重控制。稱重結(jié)束后可以由CPU1把本次稱重以及累積稱重的結(jié)果打印出來,同時把結(jié)果記錄在Flash中。CPU1可同時控制幾臺甚至十幾臺稱重控制器,且通過RS485與上位機(jī)通訊,實(shí)現(xiàn)定量稱重系統(tǒng)的遠(yuǎn)程監(jiān)控。
3.3 多路控制的實(shí)現(xiàn)
要實(shí)現(xiàn)多路控制,只需在圖1的基礎(chǔ)上增加Nios II和相關(guān)IP核來實(shí)現(xiàn),這對于FPGA 來說是很方便的。例如要實(shí)現(xiàn)2路控制,只需增加一個Nios II軟核CPU3,添加和CPU2相同的定時器和PIO IP核,再增加相應(yīng)的數(shù)據(jù)采集和控制電路就可以實(shí)現(xiàn),注意多個處理器可共用片外的Flash和SDRAM,只要其容量足夠大,也即不需要重新制作FPGA 控制電路板。CPU3負(fù)責(zé)該路數(shù)據(jù)的采集、濾波和稱重控制算法的計算和控制量的輸出,以此類推,可以用同樣的方法設(shè)計3路、4路等等。這樣我們就可以用一臺控制系統(tǒng)去完成多路測量,實(shí)現(xiàn)一臺控制系統(tǒng)控制多個定量包裝系統(tǒng),從而在不影響稱重精度的基礎(chǔ)上大幅度降低成本。
軟件系統(tǒng)總體設(shè)計4.1 軟件總體設(shè)計
軟件是基于Nios II 集成開發(fā)環(huán)境(IDE)[5] ,采用C語言開發(fā)完成的,CPU1主要是完成參數(shù)的輸入、打印、顯示和通信等功能,CPU1軟件主要包括鍵盤管理與參數(shù)輸入,狀態(tài)測試,稱量系統(tǒng)校正和與上位機(jī)通信等模塊。為了節(jié)約系統(tǒng)功耗,在設(shè)定完系統(tǒng)參數(shù)后,LCD顯示可關(guān)閉。在稱量參數(shù)設(shè)置完成后,就可以啟動自動稱量。在自動稱量完成后,可以顯示靜重值和扣重值。CPU2主要是完成數(shù)據(jù)采集和預(yù)估控制算法的計算及稱重控制,數(shù)據(jù)采集采用中斷方式,中斷時間設(shè)置為10 ms。
4.2 去極值平均濾波算法
稱重測量的精度直接影響系統(tǒng)的定量包裝控制的準(zhǔn)確性,所以采集數(shù)據(jù)的精度對保證系統(tǒng)的精度至關(guān)重要。
工業(yè)現(xiàn)場環(huán)境惡劣,為了準(zhǔn)確地進(jìn)行稱重數(shù)據(jù)的采集,必須對采集的數(shù)據(jù)進(jìn)行濾波處理,濾掉干擾信號。在實(shí)際應(yīng)用中采用了去極值平均濾波算法,既可以消除由系統(tǒng)外部環(huán)境偶然因素引起的突變性擾動造成的尖脈沖干擾,又能夠使數(shù)據(jù)平滑。去極值平均濾波算法是一種比較典型的復(fù)合濾波算法,它是由中值濾波算法和滑動平均濾波算法復(fù)合而來。由于它具有簡單實(shí)用的特點(diǎn),所以得到廣泛運(yùn)用。
去極值平均濾波算法的原理是:建立一個固定長度為N的隊(duì)列,對每一組新的采樣值,先用中值濾波算法濾除采樣值中的脈沖性干擾,即剔除M 個最大值和M個最小值(M
5現(xiàn)場測試分析
通過現(xiàn)場測試,得到對設(shè)定值為25kg 的大米進(jìn)行稱重定量包裝的數(shù)據(jù)如表1所示。結(jié)果表明:系統(tǒng)誤差小于0.2%。
表1 比較實(shí)際誤差
第一袋 | 第二袋 | 第三袋 | 第四袋 | 第五袋 | 第六袋 | |
給定值/㎏ | 25.000 | 25.000 | 25.000 | 25.000 | 25.000 | 25.000 |
測量值/㎏ | 25.000 | 24.999 | 25.001 | 25.000 | 24.999 | 25.001 |
誤差/㎏ | --0.000 | -0.001 | 0.001 | 0.000 | 0.000 | 0.001 |
6 結(jié) 論
現(xiàn)場測試結(jié)果表明,系統(tǒng)測量稱重誤差小于0.2%。
本系統(tǒng)的創(chuàng)新點(diǎn)在于:基于SOPC的定量稱重系統(tǒng)具有開發(fā)周期短、成本低、可靠性高、易于擴(kuò)充等特點(diǎn),其SOPC實(shí)現(xiàn)稱重技術(shù)可廣泛適用于各種測量與控制系統(tǒng)。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除