圖像采集技術隨著科技的不斷進步在全球的應用已越來越廣泛,如軍用工業、醫療、電子等各領域。在國內,各行各業對采用圖像采集技術的工業自動化、智能化需求也廣泛出現,逐步開始了工業現場的應用,比如,制藥行業的藥品檢測分裝、印刷業的印刷色彩檢測、PCB板的表面質量檢測、LCD屏的質量檢測等。所以,以圖像采集功能為核心,開發一款適合工業領域應用且功能齊全、操作方便的圖像采集系統會給用戶帶來很大的實惠。 目前圖像采集方面已有很多且很完善的方案,本文設計選擇了利用FPGA進行圖像采集的方案,設計了一套圖像采集系統。與普通應用于工業方面的圖像采集系統不同,本系統添加了存儲功能,并對傳統的控制操作的方式進行了改進。 1 系統總體設計 系統總體設計如下:圖像通過VGA接口用顯示器顯示,顯示速率可達25 f/s;系統可以將在顯示器上看到的當前圖像以位圖的格式存儲到優盤或其他USB設備中,并可以對存儲的圖像進行回顯;用遙控器代替了按鍵的控制方式,可以在幾米范圍內用遙控器調節曝光、增益、十字線、存圖和讀圖等所有功能,操作靈活方便。系統用美光公司的130萬像素MT9T001作為圖像傳感器;Altera公司的FPGA芯片EP2C8Q208來完成圖像采集和顯示功能的控制,在實時瀏覽圖像時,它從MT9T001中采集出Bayer陣列的黑白圖像數據,然后將采集的數據用插值算法轉換成24位RGB數據,由于采集圖像的速度為40 MHz,而VGA顯示的速度只有25 MHz,所以FPGA將轉換完的數據放到SDRAM中緩存一下再送給驅動VGA顯示的ADV7125芯片;ADV7125為ADI公司的高速數模轉換芯片,將數字真彩色圖像數據轉換成可以用VGA接口傳輸的模擬視頻信號;用Atmel公司的ATmega 8L芯片來完成遙控器的解碼、讀寫USB設備的控制以及位圖格式的創建等;用集成了文件系統的FTDI的VNC1L-1A芯片作為與USB設備通信的接口芯片,單片機加一片接口芯片完成USB的Host功能,省去了對文件系統的處理,節約了軟件的開發時間。將這款帶存儲功能和遙控控制方式的圖像采集系統應用到了工業領域,做成產品,作為工業眾多工業相機中的一種。圖1是其總體設計框圖。 2 存儲模塊設計 目前存儲數據的方式有很多種,如硬盤、FLASH、光盤等,其中容易攜帶且使用方便的應是移動硬盤、優盤、SD卡,這幾種方式都可以通過USB口來傳輸數據(SD卡或CF等可借助相應的讀卡器再通過USB口傳輸數據),可見USB總線的應用已經很普遍,USB總線的即插即用、速度快、可以自供電等優點也的確是其他設備所不能比的。所以系統的存儲部分設計成USB設備,USB設備分為USB主(Host)設備和USB從(Device)設備,USB從設備只能被動地由主設備寫入或讀出數據,不符合本系統的要求。所以選擇了USBHost設備,只要將優盤等USB從設備插到系統的USB口上,就可以將當前要存儲的圖片存儲到U盤等存儲設備中。 USB Host設備的典型例子是PC機,這種Host功能是在操作系統下完成的,所以現在市面上可以移植操作系統的微控制器芯片大多都集成了USB Host功能,像三星和飛利浦的ARM芯片、君正公司開發的MIPS核芯片JZ4740等。這種采用帶操作系統的方案對有一定經驗的開發人員來說開發起來比較容易,但對生手來說需要一定的熟悉過程。只為了實現USB Host功能就選擇用操作系統的方式完成整個系統的控制是沒有必要的,這樣做不僅浪費資源,而且會增加底層驅動的開發時間。所以本設計選擇了比較簡單的方式,只用一片單片機和一個USB接口芯片來完成USB Host功能。這樣只要會用單片機的開發人員都可以做USBHost設備。市場上USB從設備的接口芯片有飛利浦的PDIUSBDl2和ISPl581等,但USB Host接口芯片則比較少。經試驗,最終確定VNClL-1A這款芯片作為USB Host控制器。 2.1 USB Host控制器 VNClL-1A芯片在FTDI公司Vinculum系列中第一個嵌入了USB主控制器,不僅能處理USB Host接口和數據,還內置了MCU和FLASH,而且也封裝了USB Device類。它集成了12~48 MHz的時鐘倍頻器,支持上電復位功能,嵌入了64 KB FLASH ROM,4 KB SRAM,擁有FTDI提供的標準的USB固件庫,支持USB 2.O的全速(12 Mb/s)和低速(1.5 Mb/s)速率。28個GPIO可以做通用I/O和命令監測接口,具有2對USB總線接口,可以用串口或者磁盤方式對其燒寫程序。當芯片作為主設備要與優盤等從設備通信時,它可以處理FAT文件系統,支持FATl2,FATl6,FAT32格式,文件命名方式為傳統的8.3格式,即文件名不超過8個字符,擴展名為3個字符,如文件名可以為text.txt。在執行具體的操作時只需要向VNClL發送一個簡單的命令就能完成像新建文件夾、新建文件、讀文件、寫文件、打開關閉文件等功能。比如要在優盤中創建一個hello.-txt文件,可以用字符方式向VNClL逐一寫入“OPW+空格+hello.txt+回車”的字符,就可以在優盤中看見一個hello.txt的文件,或者用十六進制代碼的方式發送“09 20 file OD”,其中file為hello.txt各字符的相應ASCII碼值。廠家在網站上提供了免費的目標代碼,用戶可以根據不同的需求下載不同的目標代碼,在本設計中,選擇用一個USB口作USBHost功能的VDAPFUL_V3_65.ROM目標代碼,并設計成串口方式將目標代碼燒錄到芯片中。所以用戶不用關心VNClL內部程序是怎么執行的,只關心需要它完成USB主設備還是從設備還是其他功能,去找相應的目標代碼就可以了,燒錄完程序的VNCIL芯片就相當于一顆接口芯片,只要接口連接正確,時序操作正確需要的功能就會正常運行。VNC-lL擁有專門的UART,SPI和并口引腳,所以對它進行控制時可以選用三種接口中的任意一種,如果想看一下操作命令的返回值,可以用串口方式連接到PC機上,在PC機上用串口調試助手向VNClL發送相應的命令后,會看到對應的返回值情況。 2.2 存儲過程的實現 位圖圖像在計算機中使用很廣泛,例如在Windows中,記事本、寫字板中的文字就是用位圖圖像表示出來的。許多以其他格式存儲的圖像,就是在位圖圖像的基礎上,進行優化處理后得到的,例如JPEG圖像等。在數字圖像處理中,許多算法就是針對24位真彩色位圖或灰度位圖設計的。因此,將采集的圖像以位圖的格式存儲便于后期對圖像的處理。位圖的存儲格式分為24位真彩色格式和灰度位圖格式,24位真彩色格式比灰度位圖格式大2/3,因為灰度圖像是用一個字節表示一個像素,而24位真彩色位圖是用三個字節表示一個像素,所以本設計用灰度位圖格式存儲圖像。 當要存儲一幀圖像時,ATmega8L向VNClL發送新建文件命令,在存儲設備中就會新建一個.BMP文件,然后ATmega8L再將位圖的14 B的文件頭、40 B的信息頭、1 024 B的顏色索引表寫入.BMP文件的開始部分,寫完后ATmega8L給FPGA一個ready信號,FPGA收到此信號后直接將圖像數據通過VNC1L送到存儲設備的.BMP文件中;FPGA送完一幀圖像數據后再給ATmega8L一個結束信號,之后ATmega8L執行關閉當前文件命令,至此一個BMP圖存儲結束。本設計希望此系統采集的所有圖像在存儲設備中用單獨的文件夾存儲,這樣每次在新插入存儲設備時ATmega8L要先向VNC1L發送一個查詢命令,查詢當前根目錄中是否已存在本系統專用的文件夾,如果沒有則新建此文件夾,有則在此文件夾中查詢是否已經有.BMP文件,如果沒有則新建,并且文件名以數字編號O開始命名,如果有則要查詢當前哪個文件名的編號最大,然后以最大編號數加一的方式作為要新建文件的文件名。當要從存儲設備中讀取一幅圖像時,ATmega8L同樣要執行查詢文件夾和文件是否存在的命令,如果都存在則從文件名編號最大的那張圖片開始讀取。讀取過程與寫過程類似,只是用的命令不同,而且讀的時候要等VNC1L將位圖的1078B的文件信息讀完后才能將圖像數據傳給FPGA。VNC1L與FPGA和ATmega8L用并口的方式進行通信,只需8條數據線和4根信號線即可完成數據傳輸,接口連接如圖2所示。 3 遙控功能設計 目前大多數的電子產品采用的控制方式都是開關式按鍵或觸摸的方式,如數碼相機、手機等,工業用的設備也是如此。本文所述的控制方式采用了無線的遙控方式,這種遙控方式在電視機領域已應用多年,技術已經很成熟,原理簡單,易于實現。由于選用的遙控器適用于30 kHz載波頻率的紅外接收器,所以設計中選用了36 kHz紅外接收器,ATmega 8L接收紅外接收器的信號,從中解析出遙控器上各個按鍵的碼值,并會轉去執行遙控器上相應按鍵上的功能。遙控器上設計了21個按鍵,代表了此系統擁有的所有功能,分別為: 圖像存儲功能 按下存儲鍵就可以將當前看到的畫面存儲到存儲設備中; 圖像預覽即讀圖功能 將存儲在存儲設備中的圖片重新讀出,在顯示器上顯示,預覽圖片時可以在當前圖片的基礎上,上翻或下翻即可循環瀏覽已存儲的所有圖片; 紅、綠、藍增益及曝光值的調節功能 可以對這4個參數進行增大和減小的控制; 雙十字線的控制和調節功能 當想要十字線功能時只要按一下十字線按鍵就會在當前實時顯示的畫面上看到兩條十字交叉的線,十字線的位置可以根據用戶的需要任意移動,當需要雙十字線時需要兩個控制十字線的按鍵都按下,使用雙十字線可以圈定整幅畫面上重點觀察的范圍; 圖像凍結功能 當凍結鍵按下時顯示器上的整個畫面凍結,此時不能進行存圖、讀圖或其他任何操作; 當前參數值保存功能 此鍵按下后會對當前的增益、曝光、十字線位置等參數的當前值存儲到ATmega8L的E2PROM中,這樣在下次啟動系統時,系統會將E2PROM保存的各參數值一一讀出; 復位初始參數值功能 如果用戶不小心將某一參數值調亂了,可以按下此鍵來恢復系統最原始的參數值。 4 結語 本文所述的圖像采集系統中存儲方案的選擇和設計對于數據量稍大又不是很復雜的系統的設計具有借鑒作用,而且將遙控器技術作為系統控制操作的方式,讓人耳目一新,此圖像采集系統應用于工業領域,操作方便且實惠新穎。 |