丁 偉
(愛特梅爾半導(dǎo)體科技(上海)有限公司,上?!?00233)
?
基于單片機和FPGA的CCD數(shù)據(jù)采集與處理
丁偉
(愛特梅爾半導(dǎo)體科技(上海)有限公司,上海200233)
摘要為滿足現(xiàn)代測量對高精度、高速和高穩(wěn)定性的需求,提出了一種基于單片機和FPGA的CCD數(shù)據(jù)采集與處理方案。文中對CCD數(shù)據(jù)采集與處理系統(tǒng)進行了總體設(shè)計,并且分別進行了各自的電路模塊化設(shè)計。在硬件電路設(shè)計方面,文中進行CCD的驅(qū)動電路和信號采集與處理電路的設(shè)計,包括了外部接口電路、內(nèi)部時序脈沖電路、數(shù)據(jù)處理電路、系統(tǒng)與鍵盤和上位機等接口電路的設(shè)計。試驗測試結(jié)果表明,文中設(shè)計達到了預(yù)期效果。
關(guān)鍵詞FPGA;單片機;CCD;模塊化電路設(shè)計
CCD(電荷耦合器件)是近年來發(fā)展出的新型半導(dǎo)體器件,其以電荷為基本參數(shù),可在器件的外圍電路和信號處理方面具有良好的性能。利用CCD作為感光元件的激光三角測量法,在工業(yè)測量領(lǐng)域中得到了廣泛應(yīng)用。在CCD數(shù)據(jù)采集和處理系統(tǒng)中[1],要有CCD驅(qū)動電路、數(shù)據(jù)采集電路、數(shù)據(jù)處理電路、結(jié)果顯示電路,常見的CCD測量系統(tǒng)均是以單片機或FPGA(現(xiàn)場可編程門陣列)作為控制核心連接各個電路去完成測量過程。以單片機作為控制核心硬件連接復(fù)雜,在一個單片機上,端口數(shù)量與中斷源等均有數(shù)量限制,能完成的測量工作較少,單片機處理指令的方法是指令排隊,其耗時較長,且可靠性較差。以FPGA作為控制核心克服了單片機作為控制核心的缺點,FPGA集成了眾多相互獨立的邏輯門電路,可多任務(wù)并行處理,并能集成加法器、乘法器等器件,處理速度較快。但FPGA核心的缺點也很明顯,在鍵控、顯示和系統(tǒng)協(xié)調(diào)方面較差。本文討論了將單片機和FPGA相結(jié)合作為控制核心的方法,FPGA負責(zé)測量速度、精度和穩(wěn)定性等指標的高性能實現(xiàn),單片機負責(zé)鍵控、顯示和系統(tǒng)協(xié)調(diào),克服兩者的缺點,發(fā)揮各自的優(yōu)點,具有較好地測量性能,開發(fā)兩者結(jié)合作為控制核心的CCD數(shù)據(jù)采集和處理系統(tǒng)具有重要的實用價值[2]。
1雙通道CCD數(shù)據(jù)采集和處理系統(tǒng)
1.1系統(tǒng)的整體設(shè)計
基于單片機和FPGA的CCD數(shù)據(jù)采集與處理系統(tǒng)的整體設(shè)計思路是:對激光照射到物體兩面的雙面光路標記,不同物體對光的反射程度不同,從而反射回來的光強也不同,這樣CCD輸出的模擬電壓峰值就會在所要求的范圍內(nèi),然后進行數(shù)據(jù)分析與處理,得到要求的測量結(jié)果。該系統(tǒng)應(yīng)包括CCD時序驅(qū)動模塊、輸出信號的預(yù)處理模塊、A/D轉(zhuǎn)換模塊、FPGA數(shù)據(jù)采集與處理模塊、單片機控制模塊5類[3]。CCD時序驅(qū)動模塊主要是為CCD器件提供時鐘脈沖。CCD輸出信號的預(yù)處理模塊主要是對輸出信號進行放大和濾波,去除雜波的干擾,得到清晰穩(wěn)定的視頻信號。A/D轉(zhuǎn)換模塊將得到的模擬信號轉(zhuǎn)換為數(shù)字信號傳遞給FPGA,然后進行數(shù)據(jù)處理。FPGA數(shù)據(jù)采集與處理模塊是該系統(tǒng)的主要模塊,其主要作用是采集A/D轉(zhuǎn)換模塊輸出的信號,然后進行數(shù)據(jù)的分析處理并通過與單片機的接口將數(shù)據(jù)傳遞給單片機控制模塊。單片機控制模塊主要是進行鍵控、顯示并與上位機進行通信,對系統(tǒng)的調(diào)試也是通過單片機控制模塊進行的。圖1為基于單片機和FPGA的CCD數(shù)據(jù)采集與處理系統(tǒng)的整體框圖。
圖1 基于單片機和FPGA的CCD數(shù)據(jù)采集與處理系統(tǒng)的整體框圖
1.2CCD輸出信號的處理
由于CCD輸出的信號既有數(shù)字信號的特點,又有模擬信號的特點,這兩個特點導(dǎo)致基于CCD的信號在應(yīng)用上也有差異,第一種方法先對視頻信號進行采樣,然后進行量化編碼,最后傳輸?shù)轿⑻幚硐到y(tǒng);第二種方法先對信號進行二值話處理,然后再進行信號的采集[4]。
CCD信號的量化處理是指采集光強后將光信號轉(zhuǎn)化為對應(yīng)的電壓信號,然后轉(zhuǎn)換為數(shù)字編碼送到微處理器,從而得到精確的數(shù)值,量化處理法得到的數(shù)字信號不會發(fā)生丟失現(xiàn)象,且與測量電路無關(guān),因此分辨率和精度均較高。圖2是CCD視頻信號的量化過程。
圖2CCD視頻信號的量化過程
采樣是獲得數(shù)字信號的過程,其是將連續(xù)的模擬信號按照規(guī)定的時間間隔抽取瞬時值,從而能用數(shù)字去量化表示不規(guī)則的模擬信號,再系統(tǒng)采樣后,將數(shù)字信號進行量化編碼,將編碼的數(shù)字信號發(fā)送到微處理器去進行數(shù)字信號的處理,整個過程完成了CCD視頻信號的量化。數(shù)字信號不僅在時間上是不連續(xù)的,在幅值上也是離散的,任何一個數(shù)字信號量的大小只能是最小電壓的整數(shù)倍,因此在數(shù)模轉(zhuǎn)換過程中,還需進行數(shù)值量化的過程[5]。
在對采樣精度要求較低的系統(tǒng)中,為了利用對精度的低要求從而得到較快的處理速度且降低成本,一般會采用二值化進行處理,二值化處理將系統(tǒng)所需信息和背景進行區(qū)別顯示,以0和1來區(qū)分不同的區(qū)域,系統(tǒng)只需采集高電平和低電平,這樣會顯著提高系統(tǒng)的處理速度,二值化處理的方法一般用電壓比較器去實現(xiàn)[6]。在基于單片機和FPGA的CCD數(shù)據(jù)采集與處理系統(tǒng)中,為了保證系統(tǒng)對精度的要求,采用量化處理的方法來進行CCD信號的采集。
2CCD數(shù)據(jù)采集與處理系統(tǒng)FPGA設(shè)計
2.1FPGA電路
FPGA的外部電路均為提供系統(tǒng)正常工作的硬件電路,圖3是FPGA外部硬件電路結(jié)構(gòu)框圖。
圖3 FPGA外部硬件電路結(jié)構(gòu)框圖
所有的外部電路模塊均是圍繞FPGA工作的。AD9048是將采集到的量化編碼數(shù)據(jù)發(fā)送到FPGA進行運算處理的芯片;外部時鐘提供全局的時鐘網(wǎng)絡(luò),確保系統(tǒng)的工作頻率;電源負責(zé)對FPGA進行供電;與單片機通信的接口是信號輸出接口,同時單片機也可通過該接口對FPGA進行控制;JTAG是將可執(zhí)行文件通過計算機傳送到FPGA;AS下載口一般用來確保程序在掉電時不丟失[7]。
FPGA的功能是為了完成CCD正常工作的各種模塊,包括兩路驅(qū)動電路模塊、邏輯控制模塊、單片機與FPGA的接口模塊、運算電路模塊以及存儲器模塊等。圖4是該系統(tǒng)上FPGA的內(nèi)部配置圖。FPGA為半定制器件,需要對內(nèi)部電路進行設(shè)計才能實現(xiàn)具體的邏輯功能。
圖4 FPGA的內(nèi)部配置圖
2.2CCD驅(qū)動電路模塊
驅(qū)動電路的功能是為了保證CCD在正常工作下的轉(zhuǎn)移脈沖、傳輸時鐘和A/D轉(zhuǎn)換所需的脈沖信號像元時鐘,設(shè)計CCD驅(qū)動時序的方法有單片機驅(qū)動法、通用數(shù)字驅(qū)動法等幾類。單片機驅(qū)動受限于單片機的驅(qū)動時鐘,使其不能應(yīng)用于高頻率的場合,通用數(shù)字驅(qū)動法功耗大、設(shè)計復(fù)雜、故障率高。為避免以上缺點,本文采用FPGA來完成CCD驅(qū)動電路的設(shè)計。
2.3控制邏輯模塊
由于CCD要先輸出32個暗電流信號后才能輸出2 048個圖像脈沖信號,在最后一組脈沖結(jié)束后還要輸出14個暗電流脈沖作為結(jié)尾。采用邏輯控制模塊的作用是為了保證系統(tǒng)采集到的信號是2 048個有效脈沖信號,并提供脈沖的計數(shù)功能,控制邏輯模塊還要保證在利用重心法計算時分子與分母是同一刻的數(shù)據(jù)[8]。
2.4運算電路模塊
運算電路模塊要解決的問題是CCD像點位置的提取,在本系統(tǒng)中,采用數(shù)字化求重心的方法來解決這一問題。所以在FPGA中,應(yīng)有計數(shù)器、累加器、乘法累加器、除法器來實現(xiàn)所需求的功能。這些邏輯器件應(yīng)保證同樣幅度的電壓供應(yīng)。圖5是累加器和乘法累加器的電路圖。
圖5 累加器和乘法累加器
2.5存儲器模塊
在利用重心法得到被測物體的像點在CCD上的位置后,必須要經(jīng)過后續(xù)運算才能得到物體的真實參數(shù),所以要設(shè)置存儲器模塊來保存之前得到的數(shù)據(jù)。存儲器模塊有現(xiàn)成的模板可套用,故在此不再贅述。
3單片機電路設(shè)計
3.1顯示模塊與單片機的接口
用P0口作為顯示器數(shù)據(jù)線,用P20和P21作為控制線,BL1提供背光,EN是使能信號,DB0~DB7是數(shù)據(jù)端,RS為命令選擇端[9-10]。
3.2鍵盤輸入接口
鍵盤與單片機接口的方式較多,常用的有獨立式按鍵接口和行列式按鍵接口,由于本系統(tǒng)采用鍵盤的控制較少,所以采用獨立式按鍵較為合適。本系統(tǒng)能用到的按鍵有4個,圖7是單片機與按鍵的接口圖。
圖6 液晶顯示模塊與單片機的接口
圖7 單片機與按鍵的接口圖
鍵1用來讀取物體的參數(shù);鍵2用來控制整個系統(tǒng)的開始和結(jié)束;鍵3用來完成對EEPROM的讀寫操作;鍵4用來調(diào)用相應(yīng)的菜單程序。
3.3EEPROM的接口設(shè)計
EEPROM能存儲數(shù)據(jù),用來保證系統(tǒng)在斷電時數(shù)據(jù)不丟失。而在本系統(tǒng)中采用93LC46B來實現(xiàn)這一要求,該芯片能做到在線改寫,電源通斷過程中對數(shù)據(jù)進行保護,滿足系統(tǒng)的要求。
3.4單片機系統(tǒng)流程圖
單片機系統(tǒng)主要包括通信、顯示、鍵盤處理和存儲這4個功能,圖8是本系統(tǒng)單片機的流程圖。
圖8 單片機的流程圖
4結(jié)束語
由于現(xiàn)有基于CCD的測量系統(tǒng)多數(shù)為單一的基于單片機或FDTD,本文結(jié)合兩者的優(yōu)點,以FDTD作為控制核心,以單片機提供與外圍電路的接口,設(shè)計了一種基于單片機和FDTD的CCD數(shù)據(jù)采集與處理系統(tǒng)。對FDTD作為控制核心的驅(qū)動電路模塊、控制電路模塊、運算電路模塊進行了分析,并給出了部分關(guān)鍵設(shè)計。同時,也對單片機中的鍵盤、顯示、EEPROM等接口模塊進行了分析與設(shè)計。實際結(jié)果表明,該系統(tǒng)具有高精度、高速和高穩(wěn)定性的特點,達到了設(shè)計要求。
參考文獻
[1]李柱,徐振高,蔣向前.互換性與測量技術(shù)[M].北京:高等教育出版社,2004.
[2]薛寒光,朱衡君.一種基于FPGA的線陣CCD驅(qū)動器的設(shè)計[J].中國儀器儀表,2005(12):97-99.
[3]劉春浩.雙通道自動增益不等時曝光 CCD 數(shù)據(jù)采集與處理[D].武漢:華中科技大學(xué),2006.
[4]邱勇,宋心琦.CCD 技術(shù)及其在光譜學(xué)和多道分析中的應(yīng)用[J].感光科學(xué)與光化學(xué),1994(3):263-267.
[5]李長貴,劉敬海,林幼娜,等.線陣 CCD 用于實時動態(tài)測量技術(shù)研究[J].光學(xué)技術(shù),1999(2):4-7.
[6]鐘志堅,施婉芳.位置敏感器件在非接觸測量中的應(yīng)用分析[J].西安工業(yè)學(xué)院學(xué)報,1998(2):69-72.
[7]郭華,邵向東,楊淑華.CCD 輸出信號的電處理方法[J].傳感器技術(shù),1999(1):39-41.
[8]劉樂善,歐陽星明,劉學(xué)清.微型計算機接口技術(shù)及應(yīng)用[J].武漢:華中科技大學(xué)出版社,2000.
[9]李嘯宇,趙敏.KAI-02150的CCD模擬前端采集電路設(shè)計[J].電子科技,2012,25(3):113-116.
[10]李正剛,袁紅艷,吳一輝.通用線陣CCD采集系統(tǒng)設(shè)計[J].電子設(shè)計工程,2009,17(12):18-20.
CCD Data Acquisition and Processing Based on Single Chip Microcomputer and FPGA
DING Wei
(Atmel Semiconductor Technology (Shanghai) Co.,Ltd.,Shanghai 200233,China)
AbstractA method for CCD data acquisition and processing based on MCU and FPGA is proposed to meet the needs of high precision,high speed and high stability of modern measurement.The overall design of CCD data acquisition and processing system is given together with the circuit design.The hardware circuit design consists of the design of the CCD driving circuit and the signal acquisition and processing circuit,including the external interface circuit,an internal timing pulse circuit,the data processing circuit,and the interface circuit between the system and keyboard and PC.The test results show that the design achieves the desired effect.
KeywordsFPGA;dingle chip microcomputer;CCD;modular circuit design
doi:10.16180/j.cnki.issn1007-7820.2016.05.040
收稿日期:2015-09-05
作者簡介:丁偉(1982—),男,碩士,工程師。研究方向:集成電路設(shè)計。
中圖分類號TN79
文獻標識碼A
文章編號1007-7820(2016)05-149-05