基于ARM9和USB攝像頭的網絡視頻采集系統設計
系統處理器采用高性能ARM9處理器S3C2440,S3C2440是基于ARM920T核心的RISC處理器,主頻為400 MHz,實現了MMU,具有AMBA總線和哈佛結構高速緩沖體系結構,有獨立的16 KB的指令緩存和16 KB的數據緩存。主要應用于高性能,低價格,低功耗的嵌入式設備和手持設備。處理器內部集成了完備的硬件資源,外部存儲控制器,4通道DMA,3通道的UART,2通道SPI,2通道USB主機和1通道USB設備,4通道PWM定時器和內部看門狗定時器,130個GPIO等。
NAND FLASH采用K9F2G08,該存儲芯片容量大,高達256 MB,改寫速度非???,易于使用,具有可靠的耐用性,適合用于大量數據存儲,該FLASH以512 B為塊進行讀寫操作,通過輸入輸出接口傳送地址和命令,傳遞專門的數據接口與CPU相連,數據總線為8 b,寫入操作必須在空白區域進行,所以在改寫數據時要先進行擦除,然后再寫入。
NAND FLAsH在本系統中用來存放bootloader引導代碼,Linux內核代碼以及Yaffs文件系統。SDRAM為同步動態隨機存儲器,類似于PC機的內存,在系統啟動時,先將內核代碼從FLASH復制到SDRAM中,用來程序的讀取,存儲,執行,從而提高CPU讀取和寫入數據的速度。本采用2片32 MB的HY57V作為系統內存,把他們并聯起來形成32位的數據總線,提高CPU的訪問速度,增加運行Linux系統的流暢性。由于SDRAM掉電不能保存數據,所以要不斷的進行動態刷新來保存數據,使用之前要進行初始化。
目前最流行的以太網控制器是DAVICOM公司的DM9000網卡芯片,該芯片自適應10 Mb/s和100 Mb/s的網絡,處理器通過GPIO與網卡相連,支持3.3 V接口電壓,32位接口存儲器可以方便直接與S3C2440相連,在連接RJ-45接口,即可實現以太網物理層和數據鏈路層的連接。設備驅動程序在Linux操作系統下可以方便的移植,故選擇此網卡芯片作為以太網控制器。攝像頭采用市場普通USB攝像頭,即插即用,處理器通過USB控制器控制攝像頭。
3 系統軟件設計
本系統軟件可分為Bootloader,Linux內核,Yaffs文件系統和MJPG-streamer視頻服務器,系統框圖如圖3所示。本文引用地址:http://www.104case.com/article/194189.htm
“Bootloader是在操作系統運行之前運行的一段小程序,來完成硬件設備的初始化,從而將系統軟硬件環境帶到合適狀態,為最終調用操作系統做好準備”。Bootloader可以從SAMSUNG公司官方網站下載,經過交叉編譯生成Bin文件,下載到板子上。
Linux內核采用Linux 2.6.32版本,運行make menuconfig配置萬能驅動USB攝像頭,在Device Drivers下,選擇Multimedia device,選擇Video Capture adapters,選擇V4L USB devices,選擇GSPA based webcams,即可選擇萬能驅動USB攝像頭。
系統采用Yaffs文件系統,Yaffs是專為嵌入式系統使用NAND型閃存而設計的一種日志型文件系統。它減少了一些功能,速度更快,掛載時間很短,對內存的占用較小,所以系統采用Yaffs文件系統。
評論