嵌入式數(shù)字?jǐn)z像機(jī)配置系統(tǒng)設(shè)計(jì)
0 引 言 本文以basler a202k面陣ccd攝像機(jī)的配置為目標(biāo)設(shè)計(jì)嵌入式攝像機(jī)配置系統(tǒng)。basler公司提供了2種攝像機(jī)配置方案:一是利用該公司提供的攝像機(jī)配置軟件cct+(camera configuration tool plus),二是利用該公司提供的二進(jìn)制配置命令,由用戶編程實(shí)現(xiàn)。本文采用二進(jìn)制配置命令,通過設(shè)計(jì)的嵌入式系統(tǒng)配置攝像機(jī)。該攝像機(jī)的二進(jìn)制配置命令幀格式如下: 起始字 描述字 數(shù)據(jù)段 bcc 結(jié)束字 bcc是塊檢查字(block check character),需要由用戶計(jì)算。 此外還有測(cè)試圖像命令、選擇啟動(dòng)點(diǎn),視頻輸出格式選擇、水平binning和豎直binning等命令。攝像機(jī)配置和攝像機(jī)特性的關(guān)系為:aoi(area of interesting)用于局部掃描的控制,binning用于分辨率的控制,定時(shí)器用于曝光時(shí)間的控制等。1 系統(tǒng)結(jié)構(gòu)與原理 設(shè)計(jì)的攝像機(jī)配置系統(tǒng)所在的圖像處理系統(tǒng)框架?! ∑渲衦s232和rs644是控制通道所用的協(xié)議,即攝像機(jī)配置系統(tǒng)的通道;lvds和camera link是數(shù)據(jù)通道用到的協(xié)議?! 「鶕?jù)所在系統(tǒng)的通道協(xié)議和攝像機(jī)的配置命令,同時(shí)考慮到必要的人機(jī)交互,設(shè)計(jì)了攝像機(jī)配置系統(tǒng)3大模塊:數(shù)據(jù)處理模塊,對(duì)二進(jìn)制配置命令進(jìn)行必要的處理;通信模塊,通過rs232串口收發(fā)攝像機(jī)配置命令;人機(jī)接口模塊,用于對(duì)攝像機(jī)配置的調(diào)節(jié)更改以及配置參數(shù)的顯示。此外還有支持處理器工作的時(shí)鐘、電源等。 系統(tǒng)的工作原理為:處理器接收數(shù)據(jù)輸入,根據(jù)接收到的輸入執(zhí)行相應(yīng)的操作,通過串口讀寫配置命令,從而達(dá)到對(duì)攝像機(jī)的配置調(diào)節(jié),并根據(jù)需要顯示配置參數(shù)。2 硬件設(shè)計(jì) 由于高的性價(jià)比,單片機(jī)廣泛應(yīng)用于信號(hào)檢測(cè)、信號(hào)處理、數(shù)據(jù)采集和控制系統(tǒng)中。設(shè)計(jì)的系統(tǒng)以at89c51ac2單片機(jī)為處理器,以撥碼開關(guān)、鍵盤陣列為調(diào)節(jié)輸入,以數(shù)碼管作為顯示輸出。同時(shí)利用了鍵盤/顯示芯片intel 8279簡(jiǎn)化系統(tǒng)設(shè)計(jì)。串口芯片選用max232a。系統(tǒng)工作時(shí)鐘為11.059 2 mhz,整個(gè)系統(tǒng)采用+5 v單電源供電?! ∫韵陆榻B開關(guān)電路、鍵盤顯示電路的設(shè)計(jì)和功能分配;串口電路和其他電路為單片機(jī)系統(tǒng)的常規(guī)電路,故此從略。2.1 開關(guān)電路 利用單片機(jī)p1口的直接輸入/輸出功能,接開關(guān)和led,單片機(jī)復(fù)位時(shí),p1口皆為高電平,常態(tài)為高電平,led不亮。當(dāng)某一開關(guān)接通時(shí),對(duì)應(yīng)的p1.i口被拉成低電平,對(duì)應(yīng)的led亮。2.2 鍵盤/顯示電路 intel 8279有鍵盤處理和自動(dòng)顯示功能。在8279內(nèi)部有2個(gè)ram:一是鍵盤fifo堆棧/傳感器ram,具有自動(dòng)消抖動(dòng)和雙鍵互鎖功能;另一個(gè)是顯示ram,最多可為16個(gè)數(shù)碼管提供ram?! ≡O(shè)計(jì)的系統(tǒng)需要用到6個(gè)數(shù)碼管,因此需要擴(kuò)展8279的掃描輸出線。選用3~8譯碼器74ls138來擴(kuò)展,同時(shí)設(shè)8279的工作方式為外部譯碼方式。由于8279的驅(qū)動(dòng)能力較弱,采用74ls06驅(qū)動(dòng)。數(shù)碼管編號(hào)為d0~d5。d0和d5分別表示顯示數(shù)據(jù)的最低位和最高位,其余類推。3 軟件設(shè)計(jì) 軟件系統(tǒng)的總體思想如下:首先對(duì)單片機(jī)和8279進(jìn)行初始化,然后通過單片機(jī),把不需要調(diào)整的命令送到攝像機(jī)對(duì)攝像機(jī)進(jìn)行控制;再寫進(jìn)另一部分命令,先給一定的初值,送到攝像機(jī),可以根據(jù)需要隨時(shí)通過鍵盤進(jìn)行調(diào)整,這部分命令一直存儲(chǔ)于單片機(jī)的ram。然后單片機(jī)不斷查詢鍵盤和開關(guān),一旦有動(dòng)作,就調(diào)用與動(dòng)作相對(duì)應(yīng)的子程序進(jìn)行相應(yīng)的處理。3.1 存儲(chǔ)單元的分配 at89c51ac2內(nèi)部有256 b的片內(nèi)ram,其中有一半為特殊寄存器,剩下的另一半可供用戶自由使用。128 b的ram不能存儲(chǔ)所有的攝像機(jī)配置命令。為簡(jiǎn)化電路,硬件電路不外接ram,系統(tǒng)采用分時(shí)復(fù)用策略使用這128 b的ram。ram的分配如下:00h到07h是寄存器r0到r7。08h到0fh用以傳送開關(guān)命令和暫存從攝像機(jī)讀回的命令;10h到15h用以暫存經(jīng)過調(diào)整要傳送給8279的顯示ram的數(shù)據(jù);16h到18h用以暫存從命令幀中提取的數(shù)據(jù);19h到1ch用以暫存命令數(shù)據(jù)的上下限。20h之后的ram,用以存放經(jīng)常調(diào)整的攝像機(jī)配置命令。3.2 數(shù)據(jù)處理3.2.1 顯示預(yù)處理 從攝像機(jī)讀回的命令中提取的命令值在寫進(jìn)8279顯示ram之前要做一定的調(diào)整。為簡(jiǎn)化程序,在顯示子程序中,數(shù)據(jù)的顯示代碼(共陰極)只列了從00h到0fh的16個(gè)。而命令值的一個(gè)字可以是00fh到ffh中的任意一個(gè),從10h到ffh的數(shù)值必須轉(zhuǎn)換為00h到0fh的組合來顯示,如ffh一個(gè)字變?yōu)閮蓚€(gè)字:0fh和0fh。3.2.2 數(shù)據(jù)判限和計(jì)算 對(duì)于大部分的攝像機(jī)配置命令,數(shù)據(jù)段的值只有在一定的范圍內(nèi)或是一定值的組合時(shí)才是有效的。但是攝像機(jī)本身并不執(zhí)行這些數(shù)據(jù)限制的檢查。這項(xiàng)功能由軟件編程實(shí)現(xiàn)。數(shù)據(jù)計(jì)算包括數(shù)據(jù)值的加一操作和數(shù)據(jù)值的減一操作。<