新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于SOPC的定量稱(chēng)重控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

基于SOPC的定量稱(chēng)重控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2008-04-21 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:針對(duì)全自動(dòng)所要求的高精度、高可靠性、多功能等特性,給出了基于多NiosII嵌入式軟核處理器的全自動(dòng)的可編程片上系統(tǒng)()軟硬件設(shè)計(jì)方法。采用傳感器、模數(shù)轉(zhuǎn)換器AD7730、去極值平均濾波算法和預(yù)測(cè)控制算法,實(shí)現(xiàn)了顆粒、粉末狀等物料的高精度測(cè)量及自動(dòng)包裝控制。該系統(tǒng)具有開(kāi)發(fā)周期短、成本低、可靠性高、易于擴(kuò)充等特點(diǎn),現(xiàn)場(chǎng)測(cè)試結(jié)果表明,系統(tǒng)測(cè)量稱(chēng)重誤差小于0.2%。
關(guān)鍵詞;NiosII軟核處理器;FPGA;AD7730;動(dòng)態(tài)稱(chēng)重

Abstract: For the needs of high accuracy, high reliability and multifunction of a weighting control system, the software and hardware design methods of a based on multiple Nios II Embedded softcore CPUs are given. Weighing senor,A/D converter AD7730, the mean filter algorithm which can remove extreme values and the predictive control algorithm are used to implement the high precision measurement and the automatic pack control of the pulverized material. The system has the advantages of low cost, high stability, short development period and good extensibility and so on. The field test result indicates that the weighting error of the system is less than 0.2%.

Key words: SOPC;Nios II softcore processor;FPGA;AD7730;dynamic weighing

1引 言

在化工、水泥、糧食、飼料等行業(yè)的生產(chǎn)過(guò)程中,需要對(duì)物料進(jìn)行稱(chēng)重控制,完成自動(dòng)稱(chēng)重包裝。物料可以劃分為顆粒、粉末、液體等類(lèi)型。采用人工進(jìn)行的定量稱(chēng)重包裝不但效率低,而且計(jì)量精度低。全自動(dòng)定量稱(chēng)重不但滿(mǎn)足很高的計(jì)量精度,而且具有很強(qiáng)的穩(wěn)定性,且具有精度高、功能強(qiáng)大、操作簡(jiǎn)便等特點(diǎn)。

隨著嵌入式系統(tǒng)和微電子技術(shù)的發(fā)展,全自動(dòng)定量稱(chēng)重控制系統(tǒng)的實(shí)現(xiàn)技術(shù)也在不斷地發(fā)展??删幊唐舷到y(tǒng)(SOPC)是一種靈活高效的SOC設(shè)計(jì)方式,它根據(jù)系統(tǒng)設(shè)計(jì)的需要將CPU、存儲(chǔ)器、I/O等各種IP核集成到一個(gè)可編程邏輯芯片(FPGA)上,構(gòu)成一個(gè)可編程的片上系統(tǒng)。采用SOPC設(shè)計(jì)方式可以很容易對(duì)已有的設(shè)計(jì)進(jìn)行修改,靈活性高[1]。

本文設(shè)計(jì)的定量稱(chēng)重控制系統(tǒng)采用Altera公司的SOPC解決方案,它基于嵌入式軟核Nios II多核結(jié)構(gòu), Nios II軟核是一個(gè)32位RISC嵌入式處理器,性能超過(guò)200MIP,在性能上Nios II可滿(mǎn)足當(dāng)前的大部分嵌入式產(chǎn)品的設(shè)計(jì)。Altera公司提供了完整的開(kāi)發(fā)套件:Quartus II 、SOPC Builder、Nios II IDE和仿真工具等軟件,并將它們無(wú)縫地集成在一起,這為當(dāng)前嵌入式系統(tǒng)設(shè)計(jì)提供了新方法,并帶來(lái)了巨大的便利,可輕松實(shí)現(xiàn)從底層的硬件設(shè)計(jì)到上層的軟件開(kāi)發(fā),縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)的復(fù)雜性。

2 系統(tǒng)總體設(shè)計(jì)

本系統(tǒng)要求稱(chēng)重測(cè)量誤差小于0.2%,且系統(tǒng)的功能比較復(fù)雜,既要實(shí)時(shí)處理采集過(guò)來(lái)的數(shù)據(jù),還要實(shí)現(xiàn)控制、顯示、存儲(chǔ)以及與上位機(jī)通訊等功能,同時(shí)還要實(shí)現(xiàn)復(fù)雜的稱(chēng)重預(yù)測(cè)控制算法[2],一般在幾秒中之內(nèi)要完成物料的動(dòng)態(tài)稱(chēng)重測(cè)量和包裝,特別地,系統(tǒng)若要控制多路稱(chēng)重傳感器的測(cè)量和包裝,采用單CPU來(lái)控制的話(huà),勢(shì)必會(huì)影響到系統(tǒng)的速度,很難實(shí)現(xiàn)高精度的稱(chēng)重測(cè)量和控制需求??梢钥紤]采用多CPU系統(tǒng)來(lái)實(shí)現(xiàn)。傳統(tǒng)的SOC多處理器系統(tǒng)使系統(tǒng)結(jié)構(gòu)復(fù)雜,可靠性降低,且增加了系統(tǒng)的開(kāi)發(fā)難度。

采用SOPC的實(shí)現(xiàn)方案,很好地解決了系統(tǒng)實(shí)現(xiàn)功能復(fù)雜性和系統(tǒng)設(shè)計(jì)復(fù)雜性的矛盾,Nios II 5.0及以上版本支持多處理器系統(tǒng)的創(chuàng)建和調(diào)試。多個(gè)Nios II處理器能夠有效地共享系統(tǒng)資源,由于SOPC Builder允許用戶(hù)輕松添加多個(gè)處理器到系統(tǒng)中,建立多處理器系統(tǒng)的難點(diǎn)已不再是硬件的排列和連接,而在于多個(gè)處理器的軟件的設(shè)計(jì),使它們正常操作,相互之間不產(chǎn)生沖突。

為防止多個(gè)處理器的相互干擾,在Nios II開(kāi)發(fā)套件中包含一個(gè)硬件互斥核(mutex core)。這個(gè)硬件互斥核允許不同的處理器在某一時(shí)間段聲明對(duì)共享資源的所有權(quán)。一個(gè)處理器對(duì)資源的臨時(shí)所有權(quán)防止共享資源被其他處理器破壞。在Nios II IDE中,對(duì)多處理器系統(tǒng)的調(diào)試也比較容易[2]。

采用多處理器系統(tǒng)實(shí)現(xiàn)的全自動(dòng)稱(chēng)重控制系統(tǒng),CPU功能劃分如下:CPU1完成鍵盤(pán)參數(shù)輸入、數(shù)據(jù)顯示、打印、與上位機(jī)通訊等功能,CPU2,CPU3,…,CPUn分別完成每路的物料的動(dòng)態(tài)稱(chēng)重測(cè)量和控制,具體包括數(shù)據(jù)采集、數(shù)據(jù)濾波,稱(chēng)重預(yù)測(cè)控制算法軟件或硬件實(shí)現(xiàn)以及自動(dòng)包裝控制等功能。圖1給出了包含2個(gè)Nios II CPU 的系統(tǒng)硬件結(jié)構(gòu)圖。CPU各自運(yùn)行獨(dú)立的軟件,之間通過(guò)片上存儲(chǔ)器實(shí)現(xiàn)數(shù)據(jù)的共享。

圖1 稱(chēng)重控制系統(tǒng)結(jié)構(gòu)圖

3 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)

本設(shè)計(jì)采用Altera 公司的新一代低成本FPGA ―Cyclone II實(shí)現(xiàn)SOPC設(shè)計(jì),系統(tǒng)硬件主要包括FPGA上的Nios II處理器系統(tǒng)和FPGA外的接口和外設(shè)兩部分。Nios II處理器系統(tǒng)主要由基于Avalon Bus 的Nios II CPU1、串行接口、PIO、存儲(chǔ)器控制器;Nios II CPU2、定時(shí)器、PIO控制器以及片上RAM、互斥核等IP組成。與FPGA相連的外設(shè)包括串行配置器件、Flash、SDRAM、鍵盤(pán)、LCD顯示器、打印機(jī)、AD7330、料位、料門(mén)開(kāi)關(guān)等,稱(chēng)重傳感器與AD7330直接相連,通過(guò)定時(shí)器提供系統(tǒng)的定時(shí)時(shí)鐘和定時(shí)中斷請(qǐng)求信號(hào);串口通過(guò)RS485總線與上位機(jī)通訊,實(shí)現(xiàn)多Nios II系統(tǒng)的上位機(jī)監(jiān)控。通過(guò)PIO可實(shí)現(xiàn)對(duì)AD7330、料門(mén)開(kāi)關(guān)、鍵盤(pán)、LCD顯示器、打印機(jī)等外設(shè)的控制,存儲(chǔ)器控制器分別與片外SDRAM和Flash連接,實(shí)現(xiàn)對(duì)存儲(chǔ)器的訪問(wèn)。

本控制系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)的步驟如下:

首先在SOPC Builder中,使用Altera公司提供的IP Core,對(duì)Nios II CPU和各外設(shè)模塊的特性、參數(shù)大小及在系統(tǒng)中地址分配等進(jìn)行設(shè)定;然后啟動(dòng)SOPC Builder中的Generate,使之生成用于綜合和仿真的文件;最后,使用Quartus II軟件鎖定端口引腳,對(duì)生成的Nios II系統(tǒng)進(jìn)行仿真、綜合、適配、下載和FPGA 配置。這樣即實(shí)現(xiàn)了如圖1所示的SOPC硬件系統(tǒng)。

3.1 數(shù)據(jù)采集及其處理

數(shù)據(jù)采集及其處理由稱(chēng)重傳感器、模數(shù)轉(zhuǎn)換AD7730和CPU2完成,AD7730的數(shù)據(jù)采集電路如圖2所示。圖中,由橋式壓力傳感器輸出電壓信號(hào)進(jìn)入到輸入通道AIN+和AIN-,經(jīng)過(guò)模數(shù)轉(zhuǎn)換,再經(jīng)過(guò)AD7730中的數(shù)字濾波器進(jìn)行濾波,濾波后的數(shù)據(jù)通過(guò)SCLK、DIN、DOUT等信號(hào)通過(guò)中斷的方式送給Nios II進(jìn)行相應(yīng)的處理,得到期望的精確數(shù)據(jù)。

圖2 AD7730數(shù)據(jù)采集電路圖

AD7730 是美國(guó)ADI 公司推出的一款高分辨率的A/D 轉(zhuǎn)換器, 采用雙通道全差分模擬輸入,可直接和傳感器輸入信號(hào)相連,并可自校準(zhǔn)和系統(tǒng)校準(zhǔn)[3]。AD7730 特別適合用于寬動(dòng)態(tài)范圍內(nèi)的低頻信號(hào)A/D 轉(zhuǎn)換, 具有優(yōu)良的抗噪聲性能。在稱(chēng)重控制器中使用AD7730 分別與稱(chēng)重傳感器和CPU2直接接口。為了能夠得到高精度的采集數(shù)據(jù),CPU2要有很高的工作頻率。CPU2的工作頻率設(shè)為50MHz,專(zhuān)門(mén)負(fù)責(zé)數(shù)據(jù)采集及算法的處理。每隔10ms,CPU2從AD7730中讀取A/D轉(zhuǎn)換值, 然后進(jìn)行數(shù)字濾波處理,得到期望的近似數(shù)據(jù)。

3.2 CPU功能的實(shí)現(xiàn)

CPU1主要完成顯示、存儲(chǔ)、打印和通訊等功能。這些功能由CPU1控制外圍I/O設(shè)備來(lái)實(shí)現(xiàn)。稱(chēng)重開(kāi)始前,先通過(guò)液晶顯示屏和鍵盤(pán)進(jìn)行人機(jī)界面交互,輸入控制參數(shù),系統(tǒng)稱(chēng)重開(kāi)始后,CPU1通過(guò)共享存儲(chǔ)器獲取并顯示CPU2檢測(cè)的稱(chēng)重?cái)?shù)據(jù),CPU2把檢測(cè)值和標(biāo)定的參數(shù)值進(jìn)行比較,根據(jù)比較的結(jié)果進(jìn)行稱(chēng)重預(yù)測(cè)控制算法[4]的計(jì)算,根據(jù)計(jì)算結(jié)果輸出控制信號(hào)進(jìn)行稱(chēng)重控制。稱(chēng)重結(jié)束后可以由CPU1把本次稱(chēng)重以及累積稱(chēng)重的結(jié)果打印出來(lái),同時(shí)把結(jié)果記錄在Flash中。CPU1可同時(shí)控制幾臺(tái)甚至十幾臺(tái)稱(chēng)重控制器,且通過(guò)RS485與上位機(jī)通訊,實(shí)現(xiàn)定量稱(chēng)重控制系統(tǒng)的遠(yuǎn)程監(jiān)控。

3.3 多路控制的實(shí)現(xiàn)

要實(shí)現(xiàn)多路控制,只需在圖1的基礎(chǔ)上增加Nios II和相關(guān)IP核來(lái)實(shí)現(xiàn),這對(duì)于FPGA 來(lái)說(shuō)是很方便的。例如要實(shí)現(xiàn)2路控制,只需增加一個(gè)Nios II軟核CPU3,添加和CPU2相同的定時(shí)器和PIO IP核,再增加相應(yīng)的數(shù)據(jù)采集和控制電路就可以實(shí)現(xiàn),注意多個(gè)處理器可共用片外的Flash和SDRAM,只要其容量足夠大,也即不需要重新制作FPGA 控制電路板。CPU3負(fù)責(zé)該路數(shù)據(jù)的采集、濾波和稱(chēng)重控制算法的計(jì)算和控制量的輸出,以此類(lèi)推,可以用同樣的方法設(shè)計(jì)3路、4路等等。這樣我們就可以用一臺(tái)控制系統(tǒng)去完成多路測(cè)量,實(shí)現(xiàn)一臺(tái)控制系統(tǒng)控制多個(gè)包裝系統(tǒng),從而在不影響稱(chēng)重精度的基礎(chǔ)上大幅度降低成本。

4 軟件系統(tǒng)總體設(shè)計(jì)

4.1 軟件總體設(shè)計(jì)

軟件是基于Nios II 集成開(kāi)發(fā)環(huán)境(IDE)[5] ,采用C語(yǔ)言開(kāi)發(fā)完成的,CPU1主要是完成參數(shù)的輸入、打印、顯示和通信等功能,CPU1軟件主要包括鍵盤(pán)管理與參數(shù)輸入,狀態(tài)測(cè)試,稱(chēng)量系統(tǒng)校正和與上位機(jī)通信等模塊。為了節(jié)約系統(tǒng)功耗,在設(shè)定完系統(tǒng)參數(shù)后,LCD顯示可關(guān)閉。在稱(chēng)量參數(shù)設(shè)置完成后,就可以啟動(dòng)自動(dòng)稱(chēng)量。在自動(dòng)稱(chēng)量完成后,可以顯示靜重值和扣重值。CPU2主要是完成數(shù)據(jù)采集和預(yù)估控制算法的計(jì)算及稱(chēng)重控制,數(shù)據(jù)采集采用中斷方式,中斷時(shí)間設(shè)置為10 ms。

4.2 去極值平均濾波算法

稱(chēng)重測(cè)量的精度直接影響系統(tǒng)的定量包裝控制的準(zhǔn)確性,所以采集數(shù)據(jù)的精度對(duì)保證系統(tǒng)的精度至關(guān)重要。

工業(yè)現(xiàn)場(chǎng)環(huán)境惡劣,為了準(zhǔn)確地進(jìn)行稱(chēng)重?cái)?shù)據(jù)的采集,必須對(duì)采集的數(shù)據(jù)進(jìn)行濾波處理,濾掉干擾信號(hào)。在實(shí)際應(yīng)用中采用了去極值平均濾波算法,既可以消除由系統(tǒng)外部環(huán)境偶然因素引起的突變性擾動(dòng)造成的尖脈沖干擾,又能夠使數(shù)據(jù)平滑。去極值平均濾波算法是一種比較典型的復(fù)合濾波算法,它是由中值濾波算法和滑動(dòng)平均濾波算法復(fù)合而來(lái)。由于它具有簡(jiǎn)單實(shí)用的特點(diǎn),所以得到廣泛運(yùn)用。

去極值平均濾波算法的原理是:建立一個(gè)固定長(zhǎng)度為N的隊(duì)列,對(duì)每一組新的采樣值,先用中值濾波算法濾除采樣值中的脈沖性干擾,即剔除M 個(gè)最大值和M個(gè)最小值(MN/2);然后求出余下的N-2M個(gè)采樣值的平均值,選取這個(gè)平均值為本次采樣值。顯然,這種方法既能抑制隨機(jī)干擾,又能濾除明顯的脈沖干擾。

5現(xiàn)場(chǎng)測(cè)試分析

通過(guò)現(xiàn)場(chǎng)測(cè)試,得到對(duì)設(shè)定值為25kg 的大米進(jìn)行稱(chēng)重包裝的數(shù)據(jù)如表1所示。結(jié)果表明:系統(tǒng)誤差小于0.2%。

表1 比較實(shí)際誤差

第一袋

第二袋

第三袋

第四袋

第五袋

第六袋

給定值/K

25.000

25.000

25.000

25.000

25.000

25.000

測(cè)量值/K

25.000

24.999

25.001

25.000

24.999

25.001

誤差/K

­­0.000

-0.001

0.001

0.000

0.000

0.001

6 結(jié) 論

現(xiàn)場(chǎng)測(cè)試結(jié)果表明,系統(tǒng)測(cè)量稱(chēng)重誤差小于0.2%。

本文的創(chuàng)新點(diǎn)在于:基于SOPC的定量稱(chēng)重控制系統(tǒng)具有開(kāi)發(fā)周期短、成本低、可靠性高、易于擴(kuò)充等特點(diǎn),其SOPC實(shí)現(xiàn)技術(shù)可廣泛適用于各種測(cè)量與控制系統(tǒng)。

參考文獻(xiàn):

[1] Qingxu Deng , Hai Xu, Shuisheng Wei, An embedded SOPC system using automation design, Proceedings. 2005 International Conference on Parallel Processing Workshops, 2005, p 232-9

[2] 李蘭英. Nios II 嵌入式軟核 SOPC 設(shè)計(jì)原理及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社, 2006.

[3] 劉書(shū)明. 高性能模數(shù)與數(shù)模轉(zhuǎn)換器件[M]. 西安:西安電子科技大學(xué)出版社, 2000.

[4] 陳寶遠(yuǎn),房國(guó)志,于曉陽(yáng).多級(jí)給料粉狀物料稱(chēng)重系統(tǒng)的預(yù)測(cè)控制算法[J]. 電機(jī)與控制學(xué)報(bào),2005,9(3): 287-290.

[5] Altera Corp.QuartusII Version 6.0 Hardbook. Altera, 2006.

[6] 袁景超,宋廣為. 連續(xù)稱(chēng)重給料系統(tǒng)稱(chēng)重精度的穩(wěn)定提高[J].微計(jì)算機(jī)信息[J].2001,17(11),38-39

稱(chēng)重傳感器相關(guān)文章:稱(chēng)重傳感器原理


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉