基于51單片機(jī)的線陣CCD實(shí)時檢測系統(tǒng)的開發(fā)
檢測過程描述:參見圖2的系統(tǒng)電路圖,當(dāng)CCD被驅(qū)動后因其光電特性會有視頻模擬信號Vout輸出,信號如圖4所示??梢钥闯觯耗M信號Vout在CCD掃描到深色區(qū)和白色區(qū)有明顯的幅值大小區(qū)別,要提取的信息就是這個變化的電壓信號,但單片機(jī)不能直接處理模擬信號Vout,因此必須先將Vout通過二值化處理得到數(shù)字信號BIN(見圖2二值化電路部分)。這樣便得到了反映白線左右兩個邊緣的脈沖信號BIN。為了方便上位機(jī)的處理,不直接輸出信號BIN,而是將BIN反饋給AT89C2051,讓其通過程序編制來捕捉其上升沿和下降沿的跳變,再從另外的引腳輸出與BIN上升沿和下降沿同步的負(fù)脈沖信號BIN_OUT。這樣上位機(jī)可方便地通過中斷檢測到白線的左右側(cè)。這里AT89C205l還要輸出一個同步信號FC(即驅(qū)動轉(zhuǎn)移脈沖φTG)。因?yàn)橄到y(tǒng)是在連續(xù)掃描地面信息,故FC脈沖可標(biāo)志CCD上一次掃描的結(jié)束和新一行掃描的開始。新一行開始掃描時,上位機(jī)收到FC負(fù)脈沖后可進(jìn)入中斷對定時器TO、Tl清零并立即開始計(jì)數(shù)。當(dāng)收到BIN_OUT的第一個負(fù)脈沖后進(jìn)入中斷并停止,定時器TO;當(dāng)收到BIN_OUT的第二個負(fù)脈沖后進(jìn)人中斷并停止定時器T1,讀出定時器TO、T1里的數(shù)t0、t1。t0、t1便反映了路面白線的坐標(biāo)位置,很明顯t1與t0之差便是白線寬度。
綜合以上驅(qū)動和檢測信號要求得出:在主程序中用一個死循環(huán)產(chǎn)生連續(xù)的四路驅(qū)動脈沖,并通過嵌入相應(yīng)的其他功能的指令來保證四個驅(qū)動脈沖的相位關(guān)系,對BIN信號的上升沿和下降沿的判斷也在此循環(huán)中完成。對BIN信號的當(dāng)前狀態(tài)還必須有一個狀態(tài)標(biāo)志BIN_STATE。一旦遇到BIN信號有電子變化便給出相應(yīng)的BIN_OUT負(fù)脈沖,而BIN_OUT恢復(fù)高電平是靠定時器TO溢出中斷服務(wù)程序?qū)崿F(xiàn)的。
本系統(tǒng)用一片小型單片機(jī)完全實(shí)現(xiàn)了預(yù)定功能,幾乎沒有復(fù)雜的外圍電路器件,結(jié)構(gòu)簡單可靠,硬件、軟件代價都較低,系統(tǒng)成本預(yù)算較低。整個檢測系統(tǒng)角在機(jī)器人視覺上實(shí)驗(yàn)效果也非常理想。系統(tǒng)可根據(jù)具體的需要和要求進(jìn)行擴(kuò)展和改變,如增加信號輸出、改變檢測系統(tǒng)和上位機(jī)的信號接口等。
評論