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