關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 一種遙控式可存儲的圖像采集系統(tǒng)的設計與實現(xiàn)

一種遙控式可存儲的圖像采集系統(tǒng)的設計與實現(xiàn)

作者: 時間:2010-08-09 來源:網(wǎng)絡 收藏
2 模塊
目前數(shù)據(jù)的方式有很多種,如硬盤、FLASH、光盤等,其中容易攜帶且使用方便的應是移動硬盤、優(yōu)盤、SD卡,這幾種方式都可以通過USB口來傳輸數(shù)據(jù)(SD卡或CF等可借助相應的讀卡器再通過USB口傳輸數(shù)據(jù)),可見USB總線的應用已經(jīng)很普遍,USB總線的即插即用、速度快、可以自供電等優(yōu)點也的確是其他設備所不能比的。所以部分成USB設備,USB設備分為USB主(Host)設備和USB從(Device)設備,USB從設備只能被動地由主設備寫入或讀出數(shù)據(jù),不符合本的要求。所以選擇了USBHost設備,只要將優(yōu)盤等USB從設備插到的USB口上,就可以將當前要存儲的圖片存儲到U盤等存儲設備中。
USB Host設備的典型例子是PC機,這種Host功能是在操作系統(tǒng)下完成的,所以現(xiàn)在市面上可以移植操作系統(tǒng)的微控制器芯片大多都集成了USB Host功能,像三星和飛利浦的ARM芯片、君正公司開發(fā)的MIPS核芯片JZ4740等。這種采用帶操作系統(tǒng)的方案對有一定經(jīng)驗的開發(fā)人員來說開發(fā)起來比較容易,但對生手來說需要一定的熟悉過程。只為了USB Host功能就選擇用操作系統(tǒng)的方式完成整個系統(tǒng)的控制是沒有必要的,這樣做不僅浪費資源,而且會增加底層驅動的開發(fā)時間。所以本選擇了比較簡單的方式,只用一片單片機和一個USB接口芯片來完成USB Host功能。這樣只要會用單片機的開發(fā)人員都可以做USBHost設備。市場上USB從設備的接口芯片有飛利浦的PDIUSBDl2和ISPl581等,但USB Host接口芯片則比較少。經(jīng)試驗,最終確定VNClL-1A這款芯片作為USB Host控制器。
2.1 USB Host控制器
VNClL-1A芯片在FTDI公司Vinculum系列中第一個嵌入了USB主控制器,不僅能處理USB Host接口和數(shù)據(jù),還內置了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和命令監(jiān)測接口,具有2對USB總線接口,可以用串口或者磁盤方式對其燒寫程序。當芯片作為主設備要與優(yōu)盤等從設備通信時,它可以處理FAT文件系統(tǒng),支持FATl2,F(xiàn)ATl6,F(xiàn)AT32格式,文件命名方式為傳統(tǒng)的8.3格式,即文件名不超過8個字符,擴展名為3個字符,如文件名可以為text.txt。在執(zhí)行具體的操作時只需要向VNClL發(fā)送一個簡單的命令就能完成像新建文件夾、新建文件、讀文件、寫文件、打開關閉文件等功能。比如要在優(yōu)盤中創(chuàng)建一個hello.-txt文件,可以用字符方式向VNClL逐一寫入“OPW+空格+hello.txt+回車”的字符,就可以在優(yōu)盤中看見一個hello.txt的文件,或者用十六進制代碼的方式發(fā)送“09 20 file OD”,其中file為hello.txt各字符的相應ASCII碼值。廠家在網(wǎng)站上提供了免費的目標代碼,用戶可以根據(jù)不同的需求下載不同的目標代碼,在本設計中,選擇用一個USB口作USBHost功能的VDAPFUL_V3_65.ROM目標代碼,并設計成串口方式將目標代碼燒錄到芯片中。所以用戶不用關心VNClL內部程序是怎么執(zhí)行的,只關心需要它完成USB主設備還是從設備還是其他功能,去找相應的目標代碼就可以了,燒錄完程序的VNCIL芯片就相當于一顆接口芯片,只要接口連接正確,時序操作正確需要的功能就會正常運行。VNC-lL擁有專門的UART,SPI和并口引腳,所以對它進行控制時可以選用三種接口中的任意一種,如果想看一下操作命令的返回值,可以用串口方式連接到PC機上,在PC機上用串口調試助手向VNClL發(fā)送相應的命令后,會看到對應的返回值情況。
2.2 存儲過程的
位圖在計算機中使用很廣泛,例如在Windows中,記事本、寫字板中的文字就是用位圖表示出來的。許多以其他格式存儲的,就是在位圖圖像的基礎上,進行優(yōu)化處理后得到的,例如JPEG圖像等。在數(shù)字圖像處理中,許多算法就是針對24位真彩色位圖或灰度位圖設計的。因此,將的圖像以位圖的格式存儲便于后期對圖像的處理。位圖的存儲格式分為24位真彩色格式和灰度位圖格式,24位真彩色格式比灰度位圖格式大2/3,因為灰度圖像是用一個字節(jié)表示一個像素,而24位真彩色位圖是用三個字節(jié)表示一個像素,所以本設計用灰度位圖格式存儲圖像。
當要存儲一幀圖像時,ATmega8L向VNClL發(fā)送新建文件命令,在存儲設備中就會新建一個.BMP文件,然后ATmega8L再將位圖的14 B的文件頭、40 B的信息頭、1 024 B的顏色索引表寫入.BMP文件的開始部分,寫完后ATmega8L給FPGA一個ready信號,F(xiàn)PGA收到此信號后直接將圖像數(shù)據(jù)通過VNC1L送到存儲設備的.BMP文件中;FPGA送完一幀圖像數(shù)據(jù)后再給ATmega8L一個結束信號,之后ATmega8L執(zhí)行關閉當前文件命令,至此一個BMP圖存儲結束。本設計希望此系統(tǒng)的所有圖像在存儲設備中用單獨的文件夾存儲,這樣每次在新插入存儲設備時ATmega8L要先向VNC1L發(fā)送一個查詢命令,查詢當前根目錄中是否已存在本系統(tǒng)專用的文件夾,如果沒有則新建此文件夾,有則在此文件夾中查詢是否已經(jīng)有.BMP文件,如果沒有則新建,并且文件名以數(shù)字編號O開始命名,如果有則要查詢當前哪個文件名的編號最大,然后以最大編號數(shù)加一的方式作為要新建文件的文件名。當要從存儲設備中讀取一幅圖像時,ATmega8L同樣要執(zhí)行查詢文件夾和文件是否存在的命令,如果都存在則從文件名編號最大的那張圖片開始讀取。讀取過程與寫過程類似,只是用的命令不同,而且讀的時候要等VNC1L將位圖的1078B的文件信息讀完后才能將圖像數(shù)據(jù)傳給FPGA。VNC1L與FPGA和ATmega8L用并口的方式進行通信,只需8條數(shù)據(jù)線和4根信號線即可完成數(shù)據(jù)傳輸,接口連接如圖2所示。


評論


相關推薦

技術專區(qū)

關閉