陳 瀚,黃 斐,薛 萌,朱亮慶,郭漢明
(上海理工大學光電信息與計算機工程學院,上海 200093)
近年來,拉曼光譜技術已成為重要的分子分析方法,在生物學、化學、醫學、材料工程、藥品及危化品鑒別、文物鑒定等領域,都顯現出廣闊的應用前景。傳統拉曼光譜分析儀器往往造價昂貴、體積龐大、難以攜帶,且關鍵技術主要掌握在少數發達國家手中,國內單位研制的產品在技術指標上與進口設備仍有差距。因此,國內急需開發一款體積小巧、集成度高,能夠進行現場快速檢測的便攜式拉曼光譜儀。
光譜采集系統作為拉曼光譜儀的核心模塊,其技術指標對拉曼光譜儀的整體性能有著至關重要的影響。為此,本文設計一款基于面陣CCD的光譜采集系統[1]。系統以Altera FPGA 芯片為控制核心,用來產生CCD的驅動時序,以及相關雙采樣芯片和模數轉換芯片的控制時序,對光譜數據進行存儲與傳輸[2]。本系統充分利用了FPGA 高速并行且可編程的特點,簡化了硬件設計的復雜程度,不僅能實現對CCD 信號的高速采集,而且成本大幅降低。
在實驗測試中發現,隨著CCD 積分時間的增加及環境溫度的升高,CCD 輸出信號中的暗噪聲會隨之變大,導致光譜曲線出現基線漂移現象,嚴重影響拉曼光譜儀探測的動態范圍,同時會對后續光譜分析算法的準確性造成很大影響。由于各種現實因素,很少有文獻公開報道如何在不使用制冷型CCD 和各種制冷設備的低成本條件下,有效控制CCD 暗噪聲引起的基線漂移。為抑制CCD 暗噪聲并對基線漂移進行控制,本文在采用相關雙采樣技術減小CCD輸出信號中復位噪聲的基礎上,設計一種信號補償電路,采用分立的相關雙采樣芯片和A/D 芯片,并在兩者中間加入信號調理電路,對CCD 輸出的模擬信號進行補償,同時在FPGA 控制程序中設計了CCD 殘留電荷自動清空功能。這些措施有效解決了與積分時間和環境溫度有關的暗噪聲導致的光譜基線漂移問題,保證了光譜采集系統的穩定運行。
電荷耦合器件(Charge-Coupled Device,CCD)是一種靈敏度很高的光電探測器,具有體積小、響應速度快、動態范圍大等優點[3]。本設計采用背照式CCD,相比于前照式CCD,背照式CCD的像元前方無任何遮擋,避免了入射信號的吸收損失。以這種方式入射的CCD 整體量子效率較高,峰值量子效率可達80% 以上,非常適用于探測微弱拉曼光譜信號[4]。
由于面陣CCD 需要多路驅動信號,且驅動信號時序比較復雜,同時其輸出信號為相關信號,需要進行相關雙采樣,因此本系統的設計重點在于CCD 驅動設計以及對CCD輸出信號的采樣、調理與模數轉換。
對于CCD 輸出的相關信號,可采用帶有相關雙采樣功能的A/D 芯片,這種芯片可直接對CCD 輸出信號進行采樣,硬件電路比較簡單,適用于積分時間變化范圍較小的CCD 應用[5]。但在拉曼光譜儀中,積分時間需要根據不同樣品進行調節,對于拉曼散射特別微弱的樣品,積分時間甚至需要幾秒鐘。此時拉曼信號的基線會出現比較明顯的漂移,如果選用自帶相關雙采樣功能的A/D 芯片,想要對基線進行外部補償很困難[6]。
為實現對基線進行補償,本系統采用獨立的相關雙采樣芯片和A/D 芯片。優點是靈活性更好,可在相關雙采樣芯片與A/D 芯片之間增加信號調理電路,不僅可實現對基線進行外部補償,而且能夠對信號進行放大,同時增益系數可調[7]。
該系統在工作時,CCD 將入射的光信號轉換為模擬電信號,通過相關雙采樣電路、信號調理電路和A/D 轉換電路,利用相關雙采樣原理對CCD 輸出的模擬信號進行采樣,此方法能夠較好地濾除復位噪聲。之后光譜數據通過FPGA 串口傳至PC 上位機,最終在上位機軟件中生成光譜強度分布曲線[8]。該系統結構框圖如圖1 所示,其中箭頭表示CCD 信號和光譜數據傳輸方向。

Fig.1 Structure block diagram of spectrum acquisition system圖1 光譜采集系統結構框圖
該光譜采集系統采用Hamamatsu 公司的S11510-1106型CCD,其包含2 048列×64行,共計131 072個有效像素[9]。
根據該型CCD的數據手冊,要驅動CCD 正常工作,需要多種電壓和多路時序信號。因此,所需的供電電源種類較多,如水平和垂直驅動信號所需的+6V、-5V 和-8V 電源,溢出門需要的+12V 電源,輸出門需要的+5V 電源,輸出晶體管漏極需要的+24V 電源等[10]。該系統使用蓄電池供電,其額定輸出電壓為+8.4V,CCD 所需電壓使用電源轉換芯片由+8.4V 轉換得到[11]。
對于該型CCD,共需要七路時序驅動信號,其中包括兩路垂直驅動信號P1V 和P2V&TG,四路水平驅動信號P1H、P2H、P3H 和P4H&SG,以及一路復位信號RG。具體時序如圖2 所示。
CCD 一次完整的工作過程分為積分時間、垂直裝箱周期和讀出周期3 個階段:
(1)積分時間。在四路水平信號(P1H、P2H、P3H、P4H&SG)和一路垂直信號(P1V)的驅動下,CCD 對入射光進行曝光,同時進行光電轉換產生電荷,曝光時長稱為積分時間。
(2)垂直裝箱周期。在垂直信號(P1V,P2V&TG)的驅動下,對CCD 內部的每一列像素分別進行垂直裝箱操作,將每一列64 個像素中存儲的電荷全部轉移到該列像素對應的水平移位寄存器中,等待水平轉移輸出。
(3)讀出周期。在四路水平信號和復位信號(P1H、P2H、P3H、P4H&SG、RG)的驅動下,CCD 將已垂直裝箱的2 048 個電荷包依次轉移輸出,形成CCD 輸出信號。

Fig.2 Driving signal timing of S11510-1106 CCD圖2 S11510-1106 型CCD 驅動信號時序
該系統在工作時,首先會通過上位機給FPGA 發送CCD 使能指令,FPGA 收到該指令后開始給CCD 發送時序驅動信號,CCD 便開始工作。CCD 會依次執行以上3 個工作周期并且不斷循環執行,可將CCD 中產生的電荷不斷輸出。此時,A/D 電路不會對CCD 輸出的信號進行采集。CCD的這種工作模式稱為“清空模式”,其作用是在進行正式的光譜采集前,將CCD 中殘留的電荷全部清空,因而不會對后面的光譜采集造成干擾[12]。
當需要采集光譜信號時,上位機會給FPGA 發送光譜采集指令,并且可設定積分時間的時長。之后FPGA 會根據設定的時長給CCD 發送時序驅動信號,并給相關雙采樣芯片和A/D 芯片發送控制時序,以實現光譜采集。在一般情況下,當FPGA 接收到上位機的光譜采集指令時,CCD的工作狀態很可能還處在3 個工作周期中的某一個,此時FPGA 會讓CCD 將當前的3 個工作周期執行完畢,使CCD 內部電荷被清空,然后再按照上位機設定的積分時間進行正式的光譜采集。完成光譜采集操作后,FPGA 會使CCD 重新進入“清空模式”,再等待下一次的光譜采集指令。
CCD 完成一次光譜采集過程后,會將每一列像素產生的電荷依次輸出,輸出信號為相關信號,呈階梯狀,如圖3所示。其中,階梯①為復位緩沖電平,階梯②為復位電平,階梯③為信號電平[13]。階梯②與階梯③之間的電壓差值大小與該列像素接收到的光信號強弱直接相關,表達式為:

其中,Vs2為階梯②的穩定電壓,Vs3為階梯③的穩定電壓,Vsignal表示有效信號大小,這兩個階梯電壓中都含有相同的復位噪聲,因此這種信號被稱為相關信號。分別對這兩個電壓進行采樣,然后將兩者相減即可抵消復位噪聲,得到CCD的有效輸出信號,這便是相關雙采樣法(Correlated Double Sample,簡稱CDS)[14]。

Fig.3 Waveform of CCD output signal圖3 CCD 輸出信號波形
根據相關雙采樣法,本設計采用相關雙采樣芯片(Correlated Double Sampler,CDS)AD9823 和模數轉換芯片(Analog to Digital Converter,A/D)ADS8381 相配合對CCD 信號進行采集。AD9823 是ADI 公司生產的相關雙采樣芯片,其最大采樣頻率為40MHz,而CCD的輸出信號頻率為62.5kHz,因此完全可以滿足應用要求。
根據相關雙采樣原理,AD9823 在每個像素周期內對階梯信號進行兩次采樣。采樣時鐘信號分別為SHP 和SHD,其中在SHP 信號的上升沿對復位電平進行采樣,在SHD 信號的上升沿對信號電平進行采樣。SHP 和SHD的時序波形如圖4 所示。其中,CCD SIGNAL 表示CCD的輸出信號,DATACLK 表示A/D 芯片的轉換時鐘。在DATACLK的上升沿,A/D 芯片開始對模擬信號進行轉換。
AD9823 對一個像素周期的階梯信號進行相關雙采樣后,會同時輸出兩個電壓信號REFOUT 和DATAOUT。其中,REFOUT是參考電壓信號,其是一個固定值,大小為+0.5V;DATAOUT 是數據電壓信號,典型范圍為0.5~1.5V。用DATAOUT 減去REFOUT,即為CCD 信號的有效值。
在AD9823 與A/D 芯片之間的信號調理電路要對DATAOUT 和REFOUT 兩個信號作差分處理,以得到CCD輸出信號的有效值[15]。同時,由于該信號有效值的幅值較小,典型幅值范圍為0~1V,而A/D 芯片的輸入信號量程較大。為使兩者盡可能接近,要求信號調理電路能夠對信號進行放大,且增益系數可精確調節,另外還能對CCD 有效信號的基線進行調節,以更好地消除背景噪聲干擾[16]。綜合以上要求,本設計選用儀表放大器芯片INA849 對信號進行調理。

Fig.4 Timing waveform of AD9823 sampling clock signals圖4 AD9823 采樣時鐘信號時序波形
INA849 是一款超低噪聲儀表放大器,具有很小的電壓噪聲、輸入偏移電壓和偏移電壓漂移。其輸入阻抗很大,可達1GΩ,同時輸出阻抗很小,開環輸出阻抗僅為10Ω。其電路原理如圖5所示,其中IN+和IN-是差分信號輸入引腳。

Fig.5 Circuit scheme diagram of INA849圖5 INA849 電路原理
INA849 可通過一個外部電阻器精確地調節信號增益系數,其計算公式為:

其中,G為信號增益系數,RG為外部電阻器阻值。REF是參考電壓輸入引腳,REF 電壓可調節輸出信號的基線。
綜上,輸出信號計算公式為:

其中,VO是INA849 輸出電壓,V+IN和V-IN是差分輸入信號,VREF是輸入參考電壓。
接下來,在經過信號調理電路之后,CCD 信號進入A/D芯片ADS8381。
ADS8381 模數轉換芯片的最大采樣率為580kHz,而CCD 輸出信號的頻率為62.5kHz,因此完全可滿足要求。ADS8381 具有18 位分辨率,能夠以二進制格式輸出全并行數據。其內部電路結構如圖6 所示。

Fig.6 Internal circuit structure of ADS8381圖6 ADS8381 內部電路結構
在圖6 中,+IN 和-IN 為模擬信號輸入端口,根據數據手冊,-IN 端的輸入電壓范圍為-0.2~+0.2V,+IN 端的輸入電壓范圍與外部參考電壓VREFIN有關,大小為-0.2~VREFIN+0.2V。在本設計中,信號調理電路輸出的是單端信號,因此直接將-IN 端連接到GND,+IN 端接入信號調理電路的輸出信號。
ADS8381 工作時需要一個外部參考電壓,電壓范圍為2.5~4.2V。REFIN 端口為外部參考電壓輸入端口,+IN端輸入的信號電壓必須小于參考電壓VREFIN,否則會出現量程飽和現象,損失數字精度[17]。在本設計中選用REF3125參考電壓芯片,其可提供2.5V的穩定參考電壓。因此,要合理調節信號調理電路的放大倍數和外部參考電壓,使進入到ADS8381的模擬信號既不要超過0~2.5V的量程范圍,又要盡量占滿此范圍[18]。
ADS8381工作過程主要由CONVST、CS、RD、BUS、BYTE 5 個信號控制。其中,BUS、BYTE 兩個信號用來切換數字信號的輸出方式。通過切換這兩個信號的組合狀態,可分別實現用18 個端口、16 個端口或8 個端口輸出18 位二進制數據。
CONVST、CS、RD 3 個信號用來控制模擬信號轉換以及數字信號讀取,控制方式比較靈活,開發者可根據自己的習慣和實際需要選擇不同控制方式。由于當ADS8381對模擬信號進行轉換以及輸出數字信號時,CS 信號都必須處于低電平狀態,因此在本設計中,選擇直接將CS 信號置低,使其一直有效。
當CONVST 信號出現下降沿時,ADS8381 會開始對輸入信號進行轉換。CONVST 信號的下降沿應與AD9823 時序圖中DATACLK 信號的上升沿對齊。
當RD 為高電平時,并行輸出端口會被置位高阻態。當RD 信號出現低電平時,并行輸出端口即會輸出數據。當FPGA 接收到ADS8381 輸出的數據后,會先進行緩存,然后通過UART 接口(Universal Asynchronous Receiver/Transmitter)將數據發送給上位機。
現場可編程門陣列(Field Programmable Gate Array,FPGA)是一種數字集成電路,開發者可通過硬件描述語言將FPGA 芯片設計成具有特定邏輯功能的數字系統,并且可對其邏輯功能進行反復修改,調試非常方便[19]。
本設計采用Altera 公司(現已被Intel 公司收購)的EP4CE22E22C8N 型FPGA 芯片,其內部包含22 320 個邏輯單元、594 KB 嵌入式內存。外部共有144 個引腳,其中包含79 個I/O 引腳,足以滿足本系統的使用要求。I/O 端口是FPGA 芯片內部邏輯系統與外界進行信息交互的橋梁,能夠進行信號輸入或輸出。FPGA的每個I/O 端口都是獨立的,可將其配置為高電平、低電平和高阻態3 種狀態中的任一種。FPGA 芯片的系統時鐘由外部有源晶振提供,頻率為50MHz,即周期為1/50MHz=20ns,這是整個FPGA 系統運行的基本時間單位。
FPGA 程序使用QuartusⅡ軟件,以Verilog 硬件描述語言編寫,采用自上而下模塊化的編程方法。程序主要分為UART 接口收發、上位機指令解碼、CCD 時序和AD 時序產生、片上數據緩存4 個功能模塊。FPGA 程序邏輯功能框圖如圖7 所示。

Fig.7 Logic function block diagram of FPGA program圖7 FPGA 程序邏輯功能框圖
首先根據程序邏輯,上位機發送指令給FPGA,FPGA讀取指令,得到積分時間數據;然后開始產生CCD的積分時序,當積分時間結束,CCD 開始輸出電荷時產生A/D 時序,驅動相關雙采樣芯片和A/D 芯片采集CCD 信號;最后,FPGA 接收到轉換后的數字信號,將其緩存后,通過UART接口將數據發送到上位機。
FPGA 程序設計完成后,要用專門的仿真工具對其進行功能仿真,驗證程序的邏輯功能是否符合設計要求,本文使用的仿真軟件是Siemens 公司的ModelSim 10.1。ModelSim 功能仿真時序圖如圖8 所示,從上到下各波形依次為 P1V、P2V&TG、P1H、P2H、P3H、P4H&SG、RG、SHP、SHD、CS、CONVST、RD、BUS、BYTE。

Fig.8 Timing diagram of ModelSim function simulation圖8 ModelSim 功能仿真時序圖
其中,P1V 和P2V&TG 為CCD的垂直驅動信號,用來將每一列像素中的電荷垂直轉移到對應的水平移位寄存器中;P1H、P2H、P3H 和P4H&SG 為CCD的水平驅動信號,RG為復位信號,用來將所有水平移位寄存器中的電荷進行水平轉移并輸出。P1V 和P2V&TG的周期為64us,占空比為50%,P2V&TG的相位比P1V 滯后180°。P1H、P2H、P3H 和P4H&SG的周期為16us,占空比為50%,其之間的相位關系為:依次比相鄰前一個滯后90°。RG的周期也為16us,占空比為25%,其上升沿與P4H&SG的上升沿對齊。以上7路信號是CCD的驅動信號,CCD 輸出信號周期與RG 一致,為16us,因此CCD 輸出信號頻率為62.5 kHz。
SHP 和SHD 是相關雙采樣芯片AD9823的采樣時鐘信號,在SHP 和SHD 信號的上升沿處分別對CCD 輸出信號的復位電平和信號電平進行采樣。
CS、CONVST 和RD 是ADS8381模數轉換芯片的轉換和輸出控制信號,CS 信號被一直拉低,ADS8381 檢測到CONVST的下降沿后即會開始轉換,檢測到RD的低電平時則輸出數據。BUS 和BYTE 是ADS8381的輸出方式控制信號,這兩個信號都被拉低,表示讓ADS8381 用18 個并行端口輸出數據。
當ADS8381 完成模數轉換后,會輸出18 位二進制數據。對于本系統而言,16 位精度已足以滿足應用需要,并且為使數據傳輸與保存更加簡單,FPGA 會接收并保存其中的高16 位數據,而將最低的兩位數據舍棄。但如果有更高的精度要求,也可通過升級程序實現18 位精度。之后,FPGA 會通過串口將16 位數據發送到上位機,上位機軟件接收到數據后對數據進行處理,生成光譜強度分布曲線[20]。
為驗證CCD 對光信號的采集效果,對CCD的感光面進行部分遮光,將積分時間設置為10ms,然后觀察上位機軟件中的光譜強度分布曲線,確認光譜強度分布情況與遮光位置是否一致。CCD 實物及其遮光位置如圖9 所示,相應光譜曲線如圖10 所示。
服務不可否認性主要針對服務后抵賴問題。服務不可否認性實施的重點是避免系統內部欺詐行為,具體包括源不可否認和接收不可否認。源不可否認是指確保信息發送方在完成數據傳送后不能否認曾經的數據發送行為;接收不可否認是指信息接收方在接收到數據之后不能否認曾經的數據接收行為。

Fig.9 Physical diagram of CCD圖9 CCD 實物圖
在上位機軟件界面中,橫坐標表示CCD 像素的列數,共有2 048 列像素,因此橫坐標范圍為0~2 047。縱坐標表示光譜相對強度,由于上位機軟件接收到的是16 位二進制數據,因此縱坐標范圍為0~65 535。
當CCD 沒有任何遮擋時,所有像素都會達到飽和,光譜強度超出系統量程。當CCD 被完全遮蓋,處于無光狀態時,上位機軟件中的光譜強度平均值約為80 左右。圖10(a)為遮蓋CCD 中間區域采集得到的光譜曲線,曲線中間的凹陷對應黑色膠帶的遮光位置;圖10(b)為遮蓋CCD 兩側區域采集得到的光譜曲線,曲線中間的凸起對應CCD 中間無遮蓋的位置。
由此可見,光譜曲線強度分布與CCD 遮光位置符合。另外,如果使用更寬或更窄的膠帶進行遮光,則光譜曲線凹陷和凸起區域寬度也會隨之變化。同時,由于CCD 遮光區域邊緣漏光,導致光譜曲線在遮光邊緣處會出現緩慢上升或下降的現象。經過計算可以得出,該系統的信噪比最高可達58dB 以上,表明該系統具有較好的噪聲抑制能力。

Fig.10 Spectral curves圖10 光譜曲線
結合光路結構對光譜采集系統進行測試。使用汞氬燈作為信號源,燈光先通過光路結構,經光柵分光,分光之后的光譜照在CCD 感光面上。通過調整CCD 與光柵的相對位置,可改變照在CCD 上的光譜波長范圍。根據光路結構設計,CCD 接收到的光譜波長范圍為796~1 048nm。
然后,通過上位機軟件給FPGA 發送采集指令,觀察軟件界面。如果上位機軟件中顯示的光譜強度分布曲線與汞氬燈的實際光譜相符合,則說明該光譜采集系統可實現預期功能。上位機軟件生成的汞氬燈光譜圖如圖11 所示。

Fig.11 Spectrogram of mercury argon lamp圖11 汞氬燈光譜圖
在圖11 中,將光譜強度分布圖中的CCD 像素列數與波長范圍進行對應,確定圖中各個光譜峰位置所對應的波長。經觀察,圖中有11 個比較明顯的峰,對應波長分別為794.82nm、800.61nm、811.53nm、826.45nm、840.5nm、842.46nm、852.14nm、912.3nm、922.45nm、965.78nm、1 013.98nm,這與汞氬燈的實際光譜特征峰基本符合,說明該光譜采集系統實現了預期功能。
在測試過程中,通過設置信號調理電路中INA849 儀表放大器的放大倍數和外部參考電壓大小,可使進入到A/D芯片ADS8381的輸入信號大小與其有效檢測范圍盡可能吻合,以實現最大的動態范圍和檢測精度,從而驗證了該設計方案的有效性。
由測試結果可知,本文設計的以面陣CCD 為探測器、以FPGA 為控制核心的光譜采集系統具有良好的光譜采集效果,噪聲在可接受范圍內,并且具有很好的靈活性,能夠很方便地調節光譜基線和信號放大倍數,從而實現最大的動態范圍和檢測精度。在此基礎上,還可增加濾波電路并對供電電路進行優化,以進一步減小噪聲,實現更高的信噪比。
綜上,本設計能夠為拉曼光譜儀提供一個可靠的光譜采集方案。同時,本設計具有一定通用性,對于相似的CCD,只需將電源模塊和CCD 驅動程序稍作修改即可。