本站小編為你精心準備了線陣CCD數據采集論文參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1系統硬件電路設計
1.1TCD1208AP驅動電路TCD1208AP是一種二相雙溝道線陣ccd圖像傳感器芯片,其驅動信號如圖2所示。四路驅動信號分別為:轉移脈沖SH,復位脈沖RS,時鐘脈沖Φ1、Φ2。SH為高電平時信號電荷轉移到CCD模擬移位寄存器,SH跳變為低電平后在時鐘脈沖Φ1、Φ2交變作用下OS逐個按位輸出像元電壓信號,隨后發出RS脈沖去掉信號輸出緩沖器中的殘余電荷為下一像元電壓輸出做準備。根據傳感器結構安排,TCD1208AP在一個采樣周期中首先輸出40個啞元信號,之后輸出2160個有效像元輸出,其后又輸出12個啞元信號后一個輸出周期結束,因此一個采樣周期中至少包含2212次時鐘信號交變和2212個復位脈沖RS。CCD傳感器對驅動信號的頻率有嚴格要求[2],其時鐘特性如表1所示。STM32驅動信號產生方法有兩種:a.設定通用定時器產生;b.直接設置IO口模擬。第一種方法計時準確,通過設置相應定時器的預分頻寄存器精度可達0.05μs,但通用定時器同步困難,需要使用中斷來實現,操作困難且由于CCD交變時鐘信號工作頻率高而難以保證準確同步[3]。系統采用庫函數直接設置CPU寄存器控制IO口的方法輸出驅動信號,通過設置鎖相環PLL,STM32的指令執行速度高達72MHz,克服了以往單片機直接驅動頻率低的問題。IO跳變時間只有28ns,采用CPU空指令_nop()延時,精度為13ns,完成一個采樣周期最快只需5ms左右,通過庫函數設置相應GPIO口的GPIOx_BSRR寄存器實現相應端口同時輸出高或低電平可以確保各端口滿足驅動信號同步性要求。通過分析TCD1208AP驅動信號時序圖可以看出除去SH中斷位在一個Φ1或Φ2周期內可以將信號分為6種狀態[4],如圖3所示,Φ1、Φ2相位相反,周期為2倍的RS。因此可以采用循環狀態分割法讓STM32周期性的輸出大于1106(2212/2)個Φ1周期內的這6種狀態即可完成一次采樣。根據圖3可以列出各狀態的時序變化值,如表2所示。通過調整每種狀態的延時時間進而得到復合CCD傳感器驅動信號頻率要求的信號,在實際測量中,延時函數的輸入參數可以隨時調整,以取得最佳采樣結果。STM32的引腳輸出高電平為3.3V,輸出信號經由74LS04P芯片組成的電平轉換電路放大到5V后接入CCD傳感器相應引腳,以滿足傳感器對驅動信號電平的要求。調整延時函數的輸入參數,在示波器上可以得到輸出驅動信號的時序圖如圖4所示。
1.2傳感器輸出電壓處理電路CCD正常工作時有兩路輸出信號:輸出信號OS和補償信號DOS,但該信號有效信號幅值小,且存在周期性的復位脈沖串擾。系統采用差分運算方式處理輸出信號,差分運算放大器選用AD公司的AD8031芯片,它是一款低功耗、高速的單電源電壓反饋性放大器,小信號帶寬為80MHz,壓擺率為30V/μs,建立時間為125ns。采用+5V電源時,對于2V峰值、1MHz輸出信號的總諧波失真(THD)為-62dBc,完全可以滿足系統需要。將CCD的輸出信號OS和補償輸出信號DOS分別接到芯片的+IN引腳和-IN引腳可以有效去除OS中含有的復位噪聲。由于AD8031差分運算放大器的最小放大倍數為1,CCD傳感器的最高模擬電壓輸出為5V,而STM32芯片內集成A/D轉換器的外接參考電壓VREF+為3.3V,因此需要對經過差分處理的模擬信號進行降壓處理以滿足A/D轉換器的量程要求。輸出電壓信號處理電路如圖5所示,圖中R1=R2=R3=R4=10kΩ,R6=2R5=20kΩ。[5]線陣CCD傳感器輸出信號頻率高,因此需要AD傳感器有較高的轉換速率,系統將時鐘ADCCLK配置為9MHz,同時把所用ADC1通道11配置為7.5個采樣周期,根據STM32的ADC采樣時間計算公式:TCONV采樣周期+12.5個周期[6]得系統所用ADC1轉換通道的轉換時間為:TCONV=(55.5+7.5)×1÷9=7μs,完全滿足線陣CCD傳感器對轉換速率的要求。同時將ADC1設置為自動DMA傳輸模式,每次轉換完成后會自動開啟DMA傳輸功能將所得數據采用硬件方式轉移到STM32內存預設位置的數據存儲數組中,這個過程不需要CPU的參與,不影響CPU產生驅動信號。ADC1采用軟件啟動模式,編程時在時序狀態變化表的特定時刻插入ADC_SoftwareStartConvCmd()庫函數啟動ADC轉換。
1.3觸控液晶顯示器電路設計系統采用2.4寸(240×320)TFT液晶顯示器,由于STM32內部沒有集成專用的液晶屏和觸摸屏的控制接口,所以需要外接專用芯片來控制顯示面板,系統采用ILI9325和TSC2046芯片。由STM32的FSMC(靜態存儲控制器)的NOR/PSRAM模式模擬產生ILI9325的8080接口通信時序,通過對FSMC的操作向ILI9325寫入控制命令或GRAM數據。通過配置STM32的SPI接口向四線電阻觸摸屏控制器TSC2046寫入控制字和接收控制器返回的屏幕X、Y方向的觸電電壓值。
2系統軟件設計
根據系統硬件功能設計,系統軟件主要有3個模塊組成:驅動信號產生模塊、數據處理模塊、液晶顯示模塊。為了使3個模塊協調運行、更好地管理微處理器及縮短軟件開發周期,系統在STM32微處理器平臺上移植了μC/OS-Ⅱ實時操作系統[7]。根據所完成任務性質及特性的不同,3個模塊有不同的優先級及運行頻率,其中驅動信號產生模塊擁有最高優先級,可剝奪型的實時內核在任何時候都運行就緒了的最高優先級任務,數據處理模塊的運行是基于驅動信號產生的基礎之上,優先級次低,窗口顯示模塊對實時性要求最低,可設置最低的優先級。驅動采樣任務、數據處理任務及顯示任務的流程如圖6所示。液晶顯示處理任務負責及時按指定格式顯示出處理后的數據及完成通過觸摸屏控制系統的運行啟停等人機交互任務,為了簡化開發步驟和提高程序開發效率,系統在μC/OS-Ⅱ操作系統的基礎上移植了uCGUI嵌入式圖形支持系統。uCGUI設計用于為任何使用LCD圖形顯示的應用提供高效且獨立于處理器及LCD控制器的圖形用戶接口。uCGUI可以在任何的CPU上運行,因為它是100%的標準C代碼編寫的。系統的控制顯示界面如圖7所示。
3結語
系統采用高分辨率、高靈敏度的CCD傳感器,低成本、易實現的STM32微控制器,配以μC/OS-Ⅱ和uCGUI操作及圖形處理系統,因此該嵌入式CCD數據采集系統可以不依賴于上位機實現任意時間、地點的靈活性數據采集。試驗表明,該數據采集系統簡單易行、成本低、分辨率高、開發方便,可為基于線陣CCD的數據采集工作提供一種有效便捷、運行可靠的解決方法。
作者:李亞威陸永華劉斌單位:南京航空航天大學機電學院