一種高速線陣CCD采集系統的設計
摘要:針對線陣CCD(Charge Coupled Device)及其外圍器件時序復雜的特點,設計了一種高速線陣CCD采集系統。該系統采用MSP430單片機產生PWM信號實現各器件驅動時序,并將采集結果通過串口發送至上位機。介紹了系統組成及各器件時序同步的設計方法。實驗結果表明,該線陣CCD采集系統能夠很好的滿足設計要求,可作為模塊化電路集成到其它測量系統中。
本文引用地址:http://www.j9360.com/article/201809/388345.htmCCD是新型光電轉換器件,具有體積小、高靈敏度、低噪聲、讀出速度快、動態范圍高和全譜響應等特點,已經廣泛應用到圖像傳感和非接觸式測量等領域。正確的CCD驅動需要嚴格的時序對應關系,傳統的CCD驅動方式存在著調試困難、靈活性差等缺點,當驅動電路工作在高頻時鐘時會出現嚴重的干擾現象,各邏輯驅動信號不能滿足其嚴格的相位關系,導致系統工作不穩定,已不能滿足其應用的需要。因此,CCD采集系統設計的好壞直接影響CCD驅動時序和輸出信號的質量,核心是CCD及外圍器件時序產生及同步的設計。
本文結合TI公司16位低功耗單片機MSP430,使用PWM方式產生操作時序,不需外加CPLD等復雜邏輯器件。實驗結果表明:該系統設計中電路和時序均能夠很好的滿足要求,生成波形良好,能很好的滿足各相位關系。
1 系統組成
本系統采用索尼公司ILX511還原型線陣CCD,該CCD內置時鐘發生器與保持電路、具有易于操作等特點。硬件電路主要由線陣CCD與跟隨電路部分、數據處理與存儲部分、電壓轉換部分和MSP430部分組成。軟件由初始化部分、數據處理與存儲部分、通訊部分構成。系統總體框圖如圖1所示。

2 硬件設計
2.1 線陣CCD與跟隨電路部分
ILX511線陣CCD有效像素為2 048個,內部結構如圖2所示。CCD通過模擬移位寄存器在VOUT引腳串行輸出信號到后續電路。Vour以2.8 V為基準,輸出表征光照強度的模擬電壓值,該電壓值滿足后端模數轉換器輸入范圍,故不需要放大電路。此外,本設計中將SHSW與GND直接相連,ILX511使用內部采樣保持模式輸出信號。

由于ILX511輸出阻抗為250歐姆,在ILX511與ADC(模數轉換芯片)之間需增加電壓跟隨器實現阻抗變換。考慮CCD的工作頻率和單電源特性,選擇運放AD8041作為電壓跟隨器芯片。線陣CCD與跟隨器電路圖如圖3所示。

2.2 數據處理與存儲部分
ADC的位數對本設計的精度有重要影響,ADC位數的選擇可依據公式

其中A為輸入信號的動態范圍,M為分辨率要求。
ILX511輸出動態范圍為267,根據公式(1)可得本設計所需ADC位數≥8.06,即需選用有效位數ENOB(Effective Numbers Of Bits)10位以上模數轉換器。本設計采用AD9220,其在1 MHz工作頻率下信噪比最小為69 dB,由公式(2)可得其最小有效位數為11.7,滿足系統設計要求。

其中SNR為ADC信噪比。
AD轉換的輸出數據要通過RS232送入上位機,由于AD產生的數據流速率(12 Mb/s)與RS232通信速率(最高230.4 Kb/s)不配,故AD輸出的數據首先存入數據緩沖器FIFO中。由于ILX511每次轉換產生2048個數據,因此選用IDT公司的IDT7203芯片通過字寬擴展方式使用。AD9220
和IDT7203連接方式如圖4所示。

2.3 電壓轉換部分
由于MSP430為3.3 V供電,而CCD和FIFO及運放部分均為5 V供電,為保證邏輯電平匹配,本設計采用TI公司的8位三態總線電平轉換芯片SN74LVC4245,該芯片傳輸延遲最大不超過10ns,能夠非常好的滿足本設計的時序要求。
2.4 MSP430部分
文中選用MSP430F149單片機作為主控芯片對電路產生驅動信號,通過定時器產生PWM信號。因此,定時器輸出引腳和需要同步操作的時序信號相連。此外,FIFO輸出結果通過電壓轉換后并行連接到單片機IO口。
3 軟件設計
MSP430程序主要由初始化模塊、數據采集與存儲模塊和通訊模塊組成。程序流程圖如圖5所示。

3.1 初始化模塊
初始化模塊包含以下3個部分:MSP430初始化部分、FIFO初始化部分和CCD初始化部分。
MSP430初始化部分包括時鐘初始化、串口初始化和IO初始化。時鐘初始化設定單片機時鐘來源及頻率,此頻率將決定單片機PWM和串口通信速率的計算以及PWM輸出時定時器的設置。串口初始化只需配置相關寄存器、設定好波特率和開啟中斷即可。IO初始化將沒有用到的IO進行配置。
FIFO在上電和每次寫操作之前需進行復位,FIFO復位后EF標志位為低電平,當MSP430單片機檢測到EF為低電平時即可開始產生后續所需工作時序。
CCD初始化工作分為兩部分:在其正式操作前需添加至少22 500個CLK脈沖來穩定輸出;每次工作前由ROG信號和CLK信號完成初始化。
3.2 數據采集與存儲模塊
數據采集和存儲模塊完成對系統中各器件間時序的產生和同步操作,將采集到的光譜數據暫存到FIFO中。

由圖6可知,ILX511在完成初始化工作后,在每一個CLK時鐘下降沿時輸出信號。ILX511一個采樣周期由2087個CLK周期組成,在前33個周期和最后6個周期輸出無用信號(Dummy Signal),中間的2048個信號輸出有用信號。因此,AD9220需要在CLK開始后第34個周期啟動轉換。AD 9220某次轉換的結果在其輸入后3周期輸出,故FIFO需在AD9220第一次轉換結果輸出時啟動寫信號,即在CCD第37個CLK時啟動。又由于CCD在CLK低電平時輸出信號,AD9220在CLK高電平時采樣和輸出,FIFO寫信號低電平時有效,故AD9220的時鐘和CLK反相,FIFO寫信號和CLK同相。
結合MSP430定時器靈活的PWM輸出模式,CCD的CLK信號、AD9220的時鐘和FIFO的寫信號通過定時器B的引腳輸出PWM信號實現,各個時鐘周期之間的延時通過精準的延時函數實現。程序如下。


通過邏輯分析儀實測MSP430各引腳輸出,結果如圖7所示,各驅動信號時序正確,相位匹配良好,完全滿足CCD及外圍電路驅動時序要求。

3.3 通訊模塊
通訊模塊主要通過MSP430的中斷完成發送數據到上位機的功能。通訊模塊程序流程圖如圖8所示。

在ADC將CCD輸出的數據全部轉換完成并將FIFO存滿后,IDT7203的FF標志位變低觸發MSP430的外部中斷服務程序。若需重新發送某次結果,需在進行下一次采集之前,由上位機發送“A”至下位機;若要繼續采集,則由上位機發送“C”至下位機。MSP430產生串口接收中斷后,判斷是否進行重新發送、繼續采集。
4 結束語
文中在分析線陣CCD器件驅動時序和外圍電路特點的基礎上,以MSP430作為主控芯片輸出PWM的方式,創造性地提出了一種線陣CCD驅動電路和時序的設計方法。實驗驗證了所設計的系統能夠很好地滿足時序要求和實現整體功能。由于采用模塊化設計,本系統可以和引腳兼容的同類CCD共用,同時可以結合MSP430低功耗特點作為模塊組合應用在不同背景和需求中。
評論