胡繼云 赫劉勤 鄭 維
?
基于FPGA和線陣CCD的麥粒檢測系統研究
胡繼云 赫劉勤 鄭 維
(河南工業大學電氣工程學院,鄭州 450001)
為滿足糧食安全性和麥粒等級劃分的需求,本文提出了一種基于FPGA和線陣CCD的麥粒快速檢測系統的設計方案。選用線陣CCD作為圖像傳感器采集麥粒圖像信號,FPGA產生與控制整個系統時序,通過A/D對采集信號進行處理,并通過串口傳輸到上位機。結果表明,該設計能夠實現對麥粒圖像信息的采集、存儲、處理及顯示。本系統在麥粒圖像數據的高速實時采集和處理上具有采集信號質量好、可靠性高、傳輸速率高等優點,并且具備良好的穩定性與抗噪性,在糧食監測中具有廣泛的應用價值。
線陣CCD;麥粒;FPGA
我國是世界上最大的小麥生產國和消費國,糧食問題關系國計民生。麥粒中的雜質、霉變、病 變[1-2]以及蟲害等都會嚴重影響麥粒品質,麥粒品質的優劣在小麥育種、栽培、深加工和糧食存儲等方面存在安全隱患,嚴重影響著我國糧食和食品安全。在麥粒檢測中,人工檢測易受主觀因素影響、大批量分揀困難逐漸被淘汰,而圖像檢測法[3]成為近幾年來麥粒檢測與識別領域的研究熱點。因此,本設計著眼于麥粒圖像檢測法的基礎研究,尋找出一種效率和準確率高的麥粒檢測方法,提高小麥及其制品的質量安全性。
目前,光電檢測技術已經在糧食行業進行推廣應用,核心控制器大多采用FPGA(現場可編程邏輯陣列)、單片機、DSP(數字信號處理器)等多種嵌入式芯片[4]。權衡各種控制器應用在本系統中的利弊,FPGA作為麥粒分揀系統的核心控制器,控制CCD數據采集芯片、ADC(數模轉換器)以及數據存儲器等各大模塊,具有高速、可靠性高、開發周期短以及具有完善的開發工具等優勢。市面上現有的色選機系統主要采集麥粒的反射光信號,本系統則采集麥粒透射光信號進行檢測,有效提高了檢測精度。
1.1 系統設計原理
麥粒檢測系統是利用光電檢測技術,對溜槽中麥粒進行動態掃描、提取并處理數據,來實現麥粒快速檢測。檢測系統首先將麥粒送到溜槽依次下落,進入CCD傳感器的感應區,光學系統感應到成像區麥粒透射光光強變化并進行動態掃描。利用線陣CCD傳感器將變化的光強信號轉換成相應強度的模擬信號并輸出到A/D轉換器,經A/D轉換后輸出的數字信號送回主控單元FPGA進行數據處理,設定合適的灰度閥值,將最終的判決信號送到串口顯示。
為保證光源模塊的強光輸出、光照均勻性和穩定性,同時避免因光源的照射頻率要小于CCD掃描的頻率,使麥粒表面的圖像亮度(,)在CCD曝光時間內積分值變動很大,而采集到明暗相間的條紋圖像[5],故選用半導體發光二極管組成的點陣背光光源進行照射。光路結構如圖1所示,已知正常麥粒長軸約為6.5mm,短軸約為3.5mm,為保證CCD檢測麥粒動態時形態一致性,設計直徑為5mm的弧形滑槽,并在滑槽底部開啟一個直徑為1mm的圓形檢測視窗,經過光路中多個反射鏡使得CCD接收到所需像元個數。

圖1 光路結構圖
1.2 麥粒檢測系統的設計方案
本系統設計為麥粒在溜槽中速度穩定在1.5m/s左右時進行CCD數據采集,每個麥粒采樣16次,則CCD采樣一次所需時間應小于0.27ms,即CCD工作頻率達到10MHz以上才能滿足設計需求。TOSHIBA公司的TCD1209D共有2088個像元,最大工作頻率為20MHz[6],它的高速、低功耗、高靈敏度的響應特點,能夠滿足麥粒在溜槽中的速度變化、系統檢測精度及穩定性需求。
FPGA主要實現產生CCD和ADC(模數轉換)所需的時鐘信號、采集數據存儲、對模數轉換得到的數據進行處理并通過串口發送到上位機,如圖2所示。ALTERA公司的第一代產品EP4CE10E22C8N作為中央處理器滿足快速、穩定的設計需求,它擁有10320個邏輯單元,645個可配置邏輯模塊,片上RAM共計414KBits,最大運行頻率402MHz,板上提供了大容量的SDRAM和FlashROM等存儲單元。FPGA內部豐富的乘法器結構和鎖相環(PLL)模塊,能精確實現系統所需要的時鐘頻率。

圖2 系統整體結構框圖
2.1 電源電路設計
電源模塊設計將15V直流電源濾波處理后經過穩壓器件得到所需電壓。如圖3(a)所示,系統采用兩片AOZ1284PI(可調范圍為0.8~30V)通過選擇電阻9、11和2、6的阻值分別實現15V到12V和15V到5V的電壓轉換,用來提供CCD供電電壓和工作電壓。降壓轉換器TLV62565通過選擇17為10kW得到3.3V穩定電壓。
為了滿足FPGA2.5V工作電壓的需求,系統選用低壓差線性穩壓器SPX3819輸出1.5V和2.5V兩個固定電壓,避免傳統的線性穩壓器(LDO)重輸出電壓要比輸入電壓低的弊端。如圖3(b)所示,由3.3V電壓經兩片穩壓器SPX3819得到FPGA所需電壓1.5V和2.5V。在電源電路中15V輸入電壓經過穩壓器AOZ1284PI、TLV62565和SPX3819轉化后,得到穩定直流電壓12V、5V、3.3V、2.5V和1.2V,為FPGA、CCD1209D、AD9945等模塊芯片提供電源。

(a)12V電源電路
(b)2.5V電源電路
圖3 電源電路圖
2.2 CCD驅動電路設計
TCD1209D典型供電電壓12V,典型工作電壓為5V。如圖4所示,FPGA提供六路驅動脈沖,由于FPGA的常規I/O口3.3V電壓與TCD1209D工作電壓5V不匹配,若直接使用FPGA輸出信號引腳無法直接驅動線陣CCD,因此本系統使用SN74LVCC3245型邏輯芯片提高FPGA輸出信號的驅動能力和負載能力。
SN74LVCC3245高達40MHz的頻率可以滿足CCD驅動頻率10MHz需求。它的兩個獨立供電電源軌中,其中被用來跟蹤VCCB電壓的B口可以直接接受的電壓范圍為3~5.5V;用來跟蹤VCCA電壓的A口可以直接接受的電壓范圍為1.65V到3.6V。這種結構能實現由供電電壓為3.3V的FPGA的系統環境轉換到供電電壓為5V的CCD的工作環境,從而驅動TCD1209D進行工作。

圖4 CCD驅動電路
2.3 A/D轉換電路設計
線陣CCD采集的麥粒圖像信號需要進行A/D轉換才能進行數據分析處理。1209D輸出信號OS包含飽和輸出電的壓值約為5V麥粒圖像信息的信號電壓和5.5V左右的直流分量。AD9945之所以能以高達40MHz的速度對CCD輸出信號進行12bit精確采樣是因為它的較強的兼容性,且對輸入信號要求很低。如圖5所示,CCD輸出信號OS經放大后通過外接一支0.1PF隔直電容濾除直流分量即可送至AD9945的信號輸入端進行后續處理,其中放大電路用來增強CCD輸出信號的強度和帶負載 能力。
TCD1209D輸出的模擬信號通過輸入端CCDIN進入AD9945,經過相關雙采樣(correlated double sampler, CDS)、模數轉換(12bitADC)等步驟處理后輸出麥粒圖像信息的數字信號。濾出直流分量后的有用信號電壓值約為1.5V,通過電壓調整之后,CCD信號進入CDS過程進行信號采樣。相關雙采樣輸出兩次采樣的差值,有效抑制低頻噪聲,得到更好的信號,相較于單次采樣,信號更精確。

圖5 A/D轉換電路
系統上電后,首先進行FPGA初始化、異步FIFO復位,然后等待命令。當串口接收到讀取數據的命令后,FPGA開始驅動CCD和AD進行工作,ADC陸續將轉換后的12位數據傳送到輸出口。FPGA對采集到的麥粒圖像數據進行處理后,一方面把判斷結果顯示在上位機,另一方面把處理后的數據存入FIFO存儲器。FIFO中存儲的數據由并轉串模塊讀取出來通過串口發送到上位機并顯示,這樣就完成了一次麥粒檢測過程,如圖6所示。

圖6 軟件系統流程圖
3.1 線陣CCD驅動時序設計
由時序圖7可知,TCD1209D需要兩個相位相反的時鐘脈沖j1和j2、轉移脈沖SH、復位脈沖RS和鉗位脈沖CP六路驅動信號[8]。CCD工作需要頻率為10MHz,則j1和j2為10MHz,RS和CP與其一致。CCD1209D的工作周期包括光積分階段和電荷轉移階段。在當前像元信號輸出后到下一個像元信號到來之前,RS和CP兩個脈沖清除像元中的殘余信號,減小相鄰像元之間的相關信號[7]。

圖7 線陣CCD1209D時序圖
本設計的外部晶振為20MHz,使用FPGA內部自帶的PLL倍頻到40MHz頻率,再分頻計數得到10MHz的時鐘。設置時鐘脈沖j1、j2的占空比為1∶1;設置鉗位脈沖CP和復位脈沖RS占空比為1∶4,脈沖寬度為20ns;轉移脈沖寬度為1500ns,j1與SH為高電平之間空閑脈寬,選擇脈寬為500ns,CP脈沖高電平比RS脈沖高電平延時輸出。根據以上分析,通過設置計數器對外部晶振倍頻、分頻的方式實現各驅動脈沖波形[9-10],通過編譯仿真之后所得波形圖如圖8所示。

圖8 CCD1209D驅動時序仿真波形圖
3.2 AD9945驅動時序設計
上電后,AD9945芯片自動執行內部校準程序以及初始化內部寄存器。在此期間,串行數字接口寫的任何數據都不被接收。初始化之后由數據線SDATA、時鐘線SCK、從器件使能信號線SL三線串行數字接口對AD9945芯片內寄存器進行配置以確定相應功能的參數大小。如圖時序圖9所示,SCK上升沿時,寫入SDATA的數據,SL處在低電平,隨后更新寄存器中的值,時鐘信號頻率設為10MHz,可以利用CCD脈沖設計中的時鐘分頻模塊,設置占空比為1∶1。規定了AD的工作方式后,CCD工作頻率為10MHz,采樣時鐘SHP、SHD和DATACLK的信號頻率也設為10MHz,SHP和SHD占空比為3∶1,DATACLK占空比為1∶1。調試時可通過修改具體參數,同時觀察示波器中CCD輸出信號,以保證鎖存時鐘DATACLK必須與TCD1209D像素輸出嚴格同步。設計ID=12ns,S1=1/4,S2=1/2。CLPOB和PBLK主要用于消除CCD輸出信號中無效像元的影響,CLPOB的脈沖寬度應與TCD1209D中暗電平輸出區域一致,即為D13—D28信號輸出,以保證輸出真正的有效數據。由于CCD輸出信號中無空白像素,控制AD9945數字輸出的(DOUT)PBLK一直置高即可。

圖9 AD9945時序圖
本設計通過FPGA內部的PLL將系統20MHz倍頻、分頻得到10MHz,采用兩位計數器對輸出時鐘取反,為AD9945提供驅動脈沖。串行寫操作的時鐘設置與SCK一致,均為10MHz,故SCK直接被賦值為該時鐘。SL高電平復位,分別在第4個和56個時鐘上升沿賦值為0和1,即SL有52個時鐘脈沖處于低電平,在此期間配置4個寄存器,寄存器的值由SDATA設置,初始值設為{4'h0,12'h0,12'h0,12'h040,12'h0}。仿真結果如圖10所示。

圖10 AD9945時序仿真波形圖
3.3 建立存儲器FIFO
本系統數據緩沖器設置為先進先出型(First In First Out)存儲器FIFO。為保持FIFO寬度與AD9945的并行數據輸出位數一致,系統在FPGA設置一個12×2048bit的異步FIFO。程序設置FIFO的深度設為2K,以滿足可以緩存TCD1209的整幀的數據,保證FPGA中FIFO留有部分裕量。由于CCD工作頻率為10MHz,所以設置寫時鐘頻率與CCD工作頻率一致。設置串口傳輸速率9600bit/s,讀出的數據通過串口傳輸到上位機,則FIFO讀時鐘頻率為 9600/12Hz,進而設置寫時鐘頻率與讀時鐘頻率一致,故本系統采用的是異步FIFO存儲器[8]。系統FIFO的結構示意圖如圖11所示,FIFO分為讀時鐘域和寫時鐘域,讀操作和寫操作可以同時進行,通過雙口RAM[11]進行數據存儲。FIFO內部的邏輯電路分配讀、寫地址,而FIFO若能正常工作還需要外部電路給出讀、寫控制信號。

圖11 異步FIFO結構示意圖
3.4 并行數據轉串行數據的設計
從FIFO讀取出來的12位并行數據,需要串口傳輸至上位機,故需要并轉串模塊設置才能傳輸數據到上位機中。系統設置串口傳輸速率為9600bit/s(即為9.6MHz),從FIFO讀取數據頻率為0.8MHz,如此便把串口傳輸速率設置為并行傳輸數據頻率的12倍。數據移位寄存器放置從FIFO中讀取的并行數據,而移位控制寄存器控制并行數據進行移位操作[12]。
根據以上研究,搭建基于FPGA和線陣CCD的麥粒分揀系統硬件實驗平臺,分別將優質麥粒樣本和劣質麥粒樣本進行實驗,并在示波器上觀察CCD采集的麥粒圖像信息,結果如圖12所示,優質麥粒和劣質麥粒有明顯差別。

(a)劣質麥粒??????(b)優質麥粒
采集數據對比結果顯示優質麥粒和劣質麥粒采集處理后的數據有明顯區分:正常麥粒采集到的數據均在35000以上,而不良麥粒的采集數據的結果顯示在35000以下,設置有效閥值進行判斷,結果見表1。

表1 實驗結果分析
實驗實測數據表明,該系統能夠穩定地識別、判斷劣質麥粒和優質麥粒,并顯示判斷結果,為快速篩選優質小麥奠定了基礎。
本文基于高速線陣CCD對麥粒進行非接觸式檢測、采用FPGA實現高速圖像實時處理。圖像處理系統經算法分析后,輸出檢測判定方案,實現麥粒優劣品質的檢測。該硬件平臺設計已在實際的麥粒檢測中得到驗證,能夠實現了病變麥粒的快速、穩定、高精度檢測。文中建立的線陣CCD快速檢測系統的硬件實時圖像處理平臺為后期麥粒分揀處理提供可靠的樣本數據,同時也能拓展應用于其他糧食行業的品質檢測、檢測過程中。
[1] 崔貴金. 赤霉病麥粒光電檢測技術研究[D]. 鄭州: 河南工業大學, 2013.
[2] GB 1351—2008. 小麥[S] .
[3] 郭敏, 秦昕, 馬苗. 基于圖像處理的谷物檢測與識別方法研究進展[J]. 中國糧油學報, 2012, 27(4): 123-128.
[4] 劉玉. CCD數據采集系統的FPGA實現[D]. 合肥: 安徽大學, 2014.
[5] 張洪濤. 鋼板表面缺陷在線視覺檢測系統關鍵技術研究[D]. 天津: 天津大學, 2008.
[6] T0SHIBA CCD LINERA IMAGE SENSOR CCD. Charge coupled device[Z]. 2001.
[7] 高尚. 基于FPGA的線陣CCD圖像測量系統研究[D]. 合肥: 安徽大學, 2011.
[8] 夏真珍. 基于FPGA的線陣CCD光強分布測量系統研究[D]. 重慶: 重慶大學, 2014.
[9] Xu Tiexi, Xiong Xianming, Li Mingjin. Design of FPGA based on Linear Array CCD Driver Circuit[C]// ICEMI'2009, 2009: 276-768.
[10] 張林, 胡學友, 李秀娟, 等. 基于CPLD的線陣CCD驅動時序發生器的設計[J]. 電測與儀表, 2006, 43(8): 23-27.
[11] Yu Guangping, Xie Yangen. Research of automobile speed measuring system based on linear CCD[C]// IITA International Conference on Control, Automation and Systems Engineering. 2009: 148-151.
[12] 劉敏, 陳金鷹, 唐偉, 等. 基于FPGA的并行數據轉SPI接口設計[J]. 電視技術, 2012, 36(5): 31-32, 60.
Grain Detection System of based FPGA and Linear CCD
Hu Jiyun He Liuqin Zheng Wei
(School of Electrical Engineering, He’nan University of Technology, Zhengzhou 450001)
To meet the food safety and grain grading requirements, this paper presents a field program able gate array (FPGA) and linear CCD grain rapid detection system design. Selection of linear CCD as the image sensor to collect grain image signal, FPGA timing generation and control the entire system, the A/D signal acquisition processing, and transmission via the serial port to the PC. The results show that the design can achieve grain image information collection, storage, processing and display. The system has a good quality signal acquisition, high reliability, transmission speed advantages, and have good stability and noise immunity, has a wide range of food monitoring applications in high-speed real-time acquisition and processing of grain image data.
linear CCD; grains; FPGA
國家公益性行業(糧食)專項(201313005-04)