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