基于PCI總線的印品質(zhì)量檢測系統(tǒng)設(shè)計(jì)
1 概述
本文引用地址:http://m.butianyuan.cn/article/155810.htm印品質(zhì)量檢測系統(tǒng)是一種基于視覺在線的檢測系統(tǒng),通過攝像機(jī)在線掃描印品圖像,然后送至內(nèi)存通過圖像處理軟件處理, 結(jié)果與標(biāo)準(zhǔn)數(shù)據(jù)比較,找出兩者之間的差異并分析產(chǎn)生誤差原因,進(jìn)而重新設(shè)計(jì)參數(shù)。實(shí)際中,通常需要對大面積印品進(jìn)行高精度的檢測,而單個(gè)攝像頭只適于攝取小范圍的圖像,為了保證精度、同步測量、協(xié)作狀態(tài)檢測,本文使用了多個(gè)CCD攝像頭同步獲取不同位置信息,利用CPLD的邏輯控制功能配合PCI總線以DMA方式同步傳輸數(shù)據(jù)供上層的應(yīng)用軟件對采集到的數(shù)據(jù)進(jìn)行實(shí)時(shí)處理。從而很好地滿足尺寸、精度和實(shí)時(shí)性的要求。
2 系統(tǒng)硬件結(jié)構(gòu)與工作原理
系統(tǒng)框圖如圖1所示,該圖像采集系統(tǒng)由四路CCD相機(jī)、PCI圖像采集卡和計(jì)算機(jī)組成。其中,四路高速CCD攝相機(jī)同步獲取大面積被檢測印紙圖像信息;PCI多路采集卡由PCI接口芯片、配置EEPROM、CPLD邏輯控制芯片、高速緩存(FIFO)、視頻解碼芯片等構(gòu)成,主要實(shí)現(xiàn)CCD圖像的采集、緩存和傳輸;PC機(jī)完成采集工作的控制、圖像數(shù)據(jù)的傳輸控制、圖像處理、存儲及在顯示器上顯示的功能。
其工作原理如下: PC機(jī)應(yīng)用程序通過PCI總線向CPLD控制邏輯電路發(fā)出“采集開始”命令,CPLD控制邏輯收到開始采集指令后通過虛擬I2C總線控制方式來控制四路視頻解碼器開始解碼,解碼后同步輸出的高速圖像數(shù)據(jù)及同步信號到FIFO數(shù)據(jù)輸入端緩存,當(dāng)存儲空間將要滿時(shí),向PCI總線控制器發(fā)出中斷請求信號,PCI總線控制器將中斷信號轉(zhuǎn)發(fā)到PCI圖像采集卡,PC機(jī)響應(yīng)此中斷信號,通過PCI總線控制器讀取FIFO中的數(shù)據(jù),直至讀取FIFO空為止,數(shù)據(jù)經(jīng)由PCI總線,以DMA方式將圖像數(shù)據(jù)快速送入計(jì)算機(jī)的內(nèi)存緩沖區(qū),由應(yīng)用程序根據(jù)需要提供對其進(jìn)行數(shù)據(jù)圖像處理,及在屏幕上顯示處理后的結(jié)果。
系統(tǒng)由硬件部分和軟件部分構(gòu)成。硬件部分設(shè)計(jì)主要指四路CCD攝像機(jī)圖像采集卡的電路設(shè)計(jì)、CPLD的邏輯控制功能設(shè)計(jì);軟件部分設(shè)計(jì)包括底層的設(shè)備驅(qū)動程序設(shè)計(jì)和上層的應(yīng)用程序設(shè)計(jì),其功能是控制硬件電路實(shí)現(xiàn)對四路CCD圖像數(shù)據(jù)的采集、圖像處理、存儲和顯示。3 系統(tǒng)各功能模塊介紹 3.1 CCD選型 CCD器件采用加拿大DALSA公司的IL-E2線陣2048像素的TDICCD,它以3500行/s速度對印品逐行掃描。四路CCD相機(jī)通道同步采樣,采樣信號數(shù)據(jù)塊大小默認(rèn)為:20484150=1.17Mb。這里150為掃描行數(shù)(根據(jù)五號字體計(jì)算得出),行數(shù)程序可調(diào),即掃描塊面積可調(diào)。掃描這樣一幅圖像所需要的時(shí)間為 150/3500=42.85ms。
3.2 PCI接口設(shè)計(jì)
PCI接口是外部總線與PCI總線的通信接口,完成PCI總線與外部總線間的通信,PCI總線協(xié)議復(fù)雜,接口電路實(shí)現(xiàn)比較困難。目前實(shí)現(xiàn)PCI接口的方案一般分為兩種:一種是全部用可編程邏輯器件完成;另一種是用PCI接口芯片與邏輯電路配合實(shí)現(xiàn)。相對而言,后者設(shè)計(jì)簡單,開發(fā)周期短,兼容性好。本系統(tǒng)采用AMCC公司專用的PCI接口芯片AMCCS5933,其復(fù)雜的PCI接口規(guī)范完全由S5933實(shí)現(xiàn),只需將其PCI接口信號與PCI總線相連,不需要額外的驅(qū)動電路,從而加快了設(shè)計(jì)進(jìn)程。
采集卡利用S5933通過DMA實(shí)現(xiàn)采集數(shù)據(jù)的實(shí)時(shí)傳輸。S5933支持3個(gè)物理總線接口, PCI總線、ADD-ON總線及一個(gè)可選的非易失性存儲器總線接口,其中PCI接口完全符合PCI總線規(guī)范,它的引腳和PCI總線信號一一對應(yīng),用戶可以根據(jù)自己的需要選擇其中部分管腳和總線相連。用戶真正所需要做的就是設(shè)計(jì)S5933與ADD-ON總線接口相連接的邏輯電路和配置空間的初始化,而不用去考慮PCI總線規(guī)范上面眾多的協(xié)議。
3. 3 視頻解碼器
采用Philps公司提供的可編程數(shù)字圖像視頻解碼芯片SAA7110對視頻圖像信號進(jìn)行采集, 它應(yīng)用I2C總線的配置方式。內(nèi)部包括6通道的模擬輸入,能實(shí)現(xiàn)視頻源的選擇、模數(shù)變換、自動嵌位、自動增益控制、抗混疊濾波、多制式(PAL、PALN、PALM、NTSCM、NTSC-Japan、NTSC4.43和SECAM ) 解碼、放大或縮小數(shù)字圖像以及亮度、飽和度和對比度的控制等。為視頻采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)提供了極大的方便。
3.4 高速緩存(FIFO)
高速緩存FIFO,在CCD輸出信號和S5933之間作為數(shù)據(jù)緩沖,防止數(shù)據(jù)的丟失。采用IDT公司的雙端口異步FIFO IDT7207作為外接FIFO,其容量為32k×9bit(其中8bit是數(shù)據(jù),1bit是做奇偶校驗(yàn))。該FIFO具有很高的存取速度(12ns);標(biāo)準(zhǔn)的滿標(biāo)志位( FF)、空標(biāo)志位( EF),可禁止數(shù)據(jù)繼續(xù)寫入或讀出。同時(shí),還有可編程快滿標(biāo)志(PAF)以及可編程快空標(biāo)志(PAE)。3.5 CPLD邏輯控制電路設(shè)計(jì) 采用Altera公司的MAX7000A系列的復(fù)雜可編程邏輯器件(CPLD)EPM7128A芯片實(shí)現(xiàn)數(shù)據(jù)傳輸通道的邏輯控制,完成對四路CCD攝像機(jī)控制、FIFO控制以及S5933的控制。利用QuartusII6.0軟件進(jìn)行設(shè)計(jì)、調(diào)試、和仿真,實(shí)現(xiàn)各種復(fù)雜的組合邏輯和時(shí)序邏輯,大大提高了控制電路的集成度。
3.5.1 CPLD對四路視頻解碼器的控制
對四路SAA7110, 我們設(shè)計(jì)了利用CPLD虛擬I2C總線技術(shù)來實(shí)現(xiàn)SAA7110的初始化控制。首先根據(jù)I2C總線的原理寫出啟動、結(jié)束、發(fā)送應(yīng)答信號及讀、寫一個(gè)字節(jié)的程序,然后根據(jù)SAA7110的寄存器操作格式寫出讀、寫寄存器的程序,最后根據(jù)以上子程序?qū)懗龀跏蓟绦騿T段。系統(tǒng)復(fù)位完成CPLD程序加載,先由CPLD的I2C總線模塊對SA7110初始化,然后等待采集圖像的命令。初始化成功后,SAA7110實(shí)時(shí)處理模擬視頻信號,輸出亮度和色度信號,同時(shí)輸出像素時(shí)鐘信號,行、場同步信號和參考信號等。本系統(tǒng)只需要灰度圖像,不用色度信號,所以數(shù)據(jù)線為8位。
3.5.2 CPLD對FIFO的控制
對FIFO的控制主要是涉及到讀取數(shù)據(jù)的時(shí)序匹配和FIFO存儲器滿或空后的電路控制問題。從SAA7110來的數(shù)據(jù),當(dāng)幀同步信號VSYNC由低變高時(shí),表示一個(gè)有效的數(shù)據(jù)幀開始,在每幀數(shù)據(jù)的開頭, CPLD 都要置FIFO復(fù)位,同時(shí)設(shè)置偏移量。然后等待行同步信號HSYNC由低變高(表示輸出一行有效數(shù)據(jù)),忽略開頭和末尾幾十個(gè)時(shí)鐘周期內(nèi)的無效數(shù)據(jù),取中間2048個(gè)有效像元,在每個(gè)像元時(shí)鐘PIXCLX的下降沿采集像元數(shù)據(jù)。
CPLD對采集到的四路有效像元數(shù)據(jù)具體操作為: CPLD將像元數(shù)據(jù)放到FIFO輸入數(shù)據(jù)線上,同時(shí)設(shè)定FIFO的寫允許信號W#有效,并給出WCLK信號,在WCLK信號的上升沿把FIFO輸入數(shù)據(jù)線上的數(shù)據(jù)存入FIFO。當(dāng)本行的數(shù)據(jù)傳輸完畢,HSYNC就變低,等HSYNC再次變高,即下一行數(shù)據(jù)到來時(shí)再開始對下一行的像元數(shù)據(jù)進(jìn)行同樣的操作。這里置W#信號有效與否要受FIFO滿信號(FF#)控制,如果FIFO已滿則W#信號無效,即只有在FIFO不滿的情況下才能將數(shù)據(jù)寫入。當(dāng)VSYNC和HSYNC都變低時(shí),表示一幀數(shù)據(jù)輸出完畢。當(dāng)VSYNC再次變高,就可以開始下一幀圖像的采集了。
3.5.3 CPLD對S5933的控制
由于SAA7110來的數(shù)據(jù)位為8位,我們把S5933的32位數(shù)據(jù)線分四路分別與四路8位數(shù)據(jù)線相接。當(dāng)S5933發(fā)起一次DMA讀FIFO數(shù)據(jù)到計(jì)算機(jī)時(shí),則CPLD置FIFO讀允許(REN)、輸出允許(OE)有效,同時(shí)給出讀時(shí)鐘(RCLK),在RCLK的每一個(gè)上升沿,F(xiàn)IFO會把內(nèi)部存儲中的圖像數(shù)據(jù)輸出到S5933的數(shù)據(jù)線上,這里RCLK信號的給出與否受FIFO空信號(FE#)的控制,如果FIFO已經(jīng)為空,則RCLK信號不應(yīng)該給出,即只有在FIFO非空的情況下才能將其中數(shù)據(jù)讀出。此后的處理由S5933來實(shí)現(xiàn)。
3.6 串行EEPROM的配置
系統(tǒng)上電后,PCI總線的RST#信號有效,同時(shí),S5933 輸出局部復(fù)位信號 DEVSET#,并且檢查 EEPROM 是否存在,若存在,則S5933根據(jù)預(yù)先燒入EEPROM的內(nèi)容設(shè)置內(nèi)部寄存器,否則設(shè)為缺省值,PCI配置寄存器只能通過EEPROM或PCI主機(jī)CPU進(jìn)行設(shè)置,因此有必要要對寄存器進(jìn)行說明。要注意各屬性寄存器和控制寄存器的設(shè)置不要前后矛盾,地址范圍和基址寄存器的設(shè)置要符合要求。EEPROM的內(nèi)容很重要,它直接關(guān)系到PCI圖像采集卡能否正常工作。
系統(tǒng)選用2K的ST93CS56串行EEPROM作為S5933的配置芯片,其中存儲的是廠家標(biāo)識、設(shè)備標(biāo)識以及局部總線的基地址空間、I/O空間、中斷控制信號等信息。
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)包括兩部分:底層的設(shè)備驅(qū)動程序和上層的應(yīng)用程序設(shè)計(jì)。
編寫驅(qū)動程序需要開發(fā)環(huán)境的支持,現(xiàn)在流行的開發(fā)環(huán)境有:Device Driver Kit,DDK系列、DriverStudio系列和WinDriver系列,由于開發(fā)套件對底層函數(shù)的封裝要引入額外的延時(shí),所以對于這種實(shí)時(shí)性強(qiáng)、高質(zhì)量的設(shè)備,我們選擇Microsoft提供的DDK。
底層的設(shè)備驅(qū)動軟件編程主要對PCI接口芯片S5933進(jìn)行相關(guān)的底層操作,如:向系統(tǒng)申請物理地址連續(xù)的內(nèi)存塊;為采集卡申請板上中斷;設(shè)備的初始化;端口的讀寫操作;內(nèi)存的直接讀寫以及中斷的設(shè)置、響應(yīng)和調(diào)用;啟動DMA向內(nèi)存送數(shù)據(jù),DMA完成后響應(yīng)DMA中斷,并通知應(yīng)用程序數(shù)據(jù)準(zhǔn)備好等。如圖2驅(qū)動程序流程圖 上層的應(yīng)用程序主要對采集到的四路CCD圖像數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)Windows位圖文件格式(本文采用了非壓縮格式的BMP文件格式),然后對位圖文件數(shù)據(jù)進(jìn)行圖像處理及顯示。具體過程是:首先將由DMA通道從FIFO送到送到內(nèi)存數(shù)據(jù)送入圖像處理模塊,經(jīng)二值化,傾斜校正,行字切分等圖像頂處理操作后,得到待識文字的點(diǎn)陣,漢字識別模塊從點(diǎn)陣中提取識別特征,通過分類,精確匹配得出識別結(jié)果,然后送人編輯模塊進(jìn)行識別后的人工校對。
5 結(jié) 束 語
本文作者創(chuàng)新點(diǎn)是提出了一種基于PCI總線的印品質(zhì)量檢測系統(tǒng)能實(shí)時(shí)采集和處理、分析多通道數(shù)據(jù),實(shí)現(xiàn)大容量數(shù)據(jù)的傳送。采集卡已制作完成, 經(jīng)測試性能完全達(dá)到設(shè)計(jì)要求,由于采用了專用的PCI接口控制芯片, 簡化了設(shè)計(jì)工作, 縮短了設(shè)計(jì)周期。而且現(xiàn)場可編程器件CPLD,實(shí)現(xiàn)了對PCI、FIFO、虛擬I2C、SA7110的控制,使這一設(shè)計(jì)方案集成度和自動化程度高、檢測控制周期短、人為因素干擾少等優(yōu)點(diǎn),在印品工業(yè)自動化中會起到很重要的作用,有著很好的發(fā)展前景。
評論