應(yīng)用CPLD及EPP技術(shù)對(duì)CCD信號(hào)像素級(jí)的高速采集
采集系統(tǒng)的驅(qū)動(dòng)程序
VC++對(duì)底層的操作能力非常強(qiáng)大,可以方便地實(shí)現(xiàn)對(duì)并行口的讀寫及操作,而且后期對(duì)采集的信號(hào)進(jìn)行分析處理也非常方便,通過VC++封裝動(dòng)態(tài)鏈接庫(DLL)作為采集系統(tǒng)的驅(qū)動(dòng)程序,主要封裝以下幾個(gè)函數(shù)。
BOOL PASCAL EXPORT PTC_Open (PTC_HANDLE *phPTC);//打開并行口
void PASCAL EXPORT PTC_Close(PTC_HANDLE hPTC);//關(guān)閉并行口
BYTE PASCAL EXPORT PTC_Readdata (PTC_HANDLE hPTC);//讀取并行口數(shù)據(jù)寄存器
void PASCAL EXPORT PTC_Writedata (PTC_HANDLE hPTC, BYTE data);//寫并行口數(shù)據(jù)寄存器
BYTE PASCAL EXPORT PTC_Readstatus (PTC_HANDLE hPTC);//讀取并行口狀態(tài)寄存器
BYTE PASCAL EXPORT PTC_Readcontrol (PTC_HANDLE hPTC); //讀取并行口控制寄存器
void PASCAL EXPORT PTC_Writecontrol (PTC_HANDLE hPTC, BYTE data);//寫并行口控制寄存器
詳細(xì)的代碼由于篇幅關(guān)系不再一一列舉了。
結(jié)束語
利用CCD信號(hào)的采集脈沖信號(hào)和數(shù)據(jù)輸入信號(hào)的同步性,采集卡可以實(shí)現(xiàn)對(duì)CCD信號(hào)的每個(gè)像素進(jìn)行采集,使得采集數(shù)據(jù)達(dá)到很高的精度,而且可以通過靈活地更改CPLD的主控電路來實(shí)現(xiàn)FIFO不同的讀取方式,滿足不同工作的要求。此外FIFO的速度和精度都非常高,可以通過更換高速、高精度的AD來達(dá)到更好的采集效果。最好通過并行口和計(jì)算機(jī)通信,避免了計(jì)算機(jī)內(nèi)部電路對(duì)CCD信號(hào)的影響,也大大改善了采集的效果。
評(píng)論