目前將攝像機拍攝的圖像傳送到計算機中進行播放?處理主要有兩種方式:一是通過圖像采集卡;二是利用攝像機自帶的USB接口?第一種方式雖然可以保證圖像采集的實時性,但不能脫離計算機單獨工作,應用領域有局限性;后一種方式在圖像傳輸實時性和圖像播放質量上又不盡人意?隨著網絡技術的發展,使網絡接入技術直接嵌入到攝像機中成為可能?本文介紹一種基于DSP芯片和嵌入式微控制器的網絡數字攝像系統?該系統內部集成了圖像傳感芯片和數字圖像處理芯片,不需要借助計算機,直接連接到互聯網上(見圖1),向互聯網上的計算機傳輸高質量的實時視頻圖像,根據網絡通信狀況和計算機的命令改變傳輸圖像的分辨率和幀率等指標?該系統硬件集成度高?圖像傳輸實時性好?操作簡單?控制靈活?
該系統包括兩大部分:圖像處理模塊和NetMCU模塊?系統框圖見圖2?由圖像處理模塊負責對圖像進行采集和壓縮,先將模擬圖像信號轉變成YUV格式的數字信號,然后由DSP芯片按照JPEG標準進行圖像壓縮編碼?Ne tMCU模塊將接收到的壓縮圖像數據按TCP/IP協議打包,發送至互聯網的計算機上,并接收計算機傳來的控制命令,對系統進行配置?以下分別介紹各個模塊的工作原理和軟件設計方法?
1 圖像處理模塊
1.1 芯片介紹
圖像采集芯片采用OmniVision公司的CMOS彩色圖像傳感器OV6620?在它內部集成了一個356×292的彩色圖像陣列?該圖像傳感器能對所拍攝的圖像進行預處理,包括自動曝光控制?自動白平衡調節?gamma校正?自動圖像增強;并可通過與DSP芯片相連的串行通信接口,對傳感器內部的92個寄存器的參數進行設置?
圖像壓縮芯片采用TI公司的TMS320VC5416定點運算數字信號處理器(DSP),其內部采用一種改進型的哈佛總線結構(一條程序總線,三條數據總線),數據總線寬度為16bit?分開的數據和指令空間使該芯片具有高度的并行操作能力,在單周期內允許指令和數據同時存取,再加上其高度優化的指令集,使得該芯片具有很高的運算速度,最高可達160MIPS?
VC5416芯片的外部程序存儲空間為8M×16bits,外部數據存儲空間為64K×16bits?在芯片內部還集成了128K×16bits片上存儲器?該芯片具有多種片上外部設備單元,包括一個16位計時器,一個6通道DMA傳輸控制器,三個帶緩沖器的串行通信接口(McBSP)和一個8/16位的主機通信接口(HPI8/16)?
1.2 功能介紹
圖像處理模塊主要負責模擬圖像的采集?數字化?壓縮等工作?首先,在系統加電運行后,由NetMCU模塊對VC5416芯片復位,然后VC5416芯片運行固化在芯片內的BootLoader程序,將存儲在外部程序存儲器上的應用程序復制到內部存儲器中,并開始運行應用程序?應用程序的任務主要有以下三個方面:
(1)通過VC5416芯片的1號串行通信接口(McBSP1)對OV6620的內部寄存器進行參數配置?主要參數包括:將輸出圖像分辨率設置為352×288,將輸出圖像幀的速率設置為25幀/秒,將數字圖像的輸出格式設置為YUV分量4:2:2格式?
(2)將OV6620芯片輸出的圖像數據利用JPEG算法進行數字圖像壓縮?在本設計中采用一種改進的JPEG算法[4]?將二維DCT變換分解成兩次一維快速DCT變換?對8×8象素塊的DCT變換,共需176次乘法和464次加法,比標準DCT算法的1024次乘法和896次加法在運算速度上有極大提高?
(3)VC5416芯片通過與NetMCU模塊相連的0號串行通信接口(Mc BAP0),接收改變傳輸圖像的分辨率?幀速?曝光時間等參數的命令,并及時調整OV6620芯片的內部寄存器參數?
OV6620芯片和VC5416芯片之間存在大量的數據傳輸,因此在系統中采用一片ALTERA公司的FPGA(FLEX10K20)芯片作為數據傳輸接口,代替VC5416芯片管理外部數據存儲區?在FPGA芯片中集成了一個512×16bits的FIFO和一個存儲控制器?通過OV6620芯片輸出的圖像象素移位脈沖和圖像的行?場同步脈沖的控制,將原始圖像數據存入FIFO中?由于JPEG圖像壓縮以8×8象素塊基本運算單位,需要存儲控制器將FIFO中以行順序輸入的原始圖像數據進行存儲地址調整,變換成按8×8像素塊順序存入外部數據存儲區?同時,由于受VC5416芯片的外部數據存儲區容量的限制,存儲控制器將一幀原始圖像數據分成上下兩個半區,各占用一個64KB地址空間?當VC5416芯片讀數據時,存儲控制器會自動在這兩個半區之間切換,使得DSP芯片能夠處理一幀圖像?
2 NetMCU模塊
2.1 芯片介紹
本系統采用三星公司的S3C4510B芯片作為主控制器?芯片內部結構見圖3?S3C4510B芯片集成了ARM公司的32位精簡指令集處理器ARM7TDMI核?ARM7TDMI核采用馮?諾依曼體系結構,使用單-32位總線傳送指令和數據,使用三級流水線操作以提高處理器執行速度?ARM7TDMI核可以使用兩種指令集:一種是32位ARM指令集;一種是16位Thumb指令集?Thumb指令集是ARM指令集的子集,但它能提供比16位體系結構更高的性能?比32位體系結構更高的代碼密度?因此,Thumb指令集使ARM7TDMI核非常適合有存儲器寬度和代碼密度限制的嵌入式場合? S3C4510B芯片的存儲空間最大可達16M×32bits(包括程序存儲區?數據存儲區和I/O設備區),它內部集成了一個存儲控制器,具有自動刷新存儲區數據和自動插入可編程等待周期的功能,可以支持多種類型的存儲芯片(包括ROM?SRAM?FLASH和DRAM)?在芯片內部還集成有8K×8bits的指令/數據Cache,采用pseudo-LRU(Least Recently Used)算法,大大提高了芯片的性能?
由于S3C4510B芯片面向網絡應用,因此在芯片內部集成了一個以太網控制器?該控制器工作于MAC層,完全兼容IEEE802.3協議標準?它能運行于10Mbps/100Mbps模式?該控制器包括一個接收/發送單元?一個流控制器?一個用于存放網絡地址的內容可尋址存儲單元和一系列命令/狀態寄存器?
2.2 功能介紹
S3C4510B芯片作為系統的主控制芯片,負責控制嵌入式網絡數字攝像系統的正常工作,包括將壓縮后的圖像數據按照TCPIP協議發送到互聯網中的計算機上并接收計算機的命令修改系統工作參數等?
系統加電后,S3C4510B芯片自動從地址0x00處運行系統程序?系統程序首先初始化異常向量表,之后初始化1K×32bits的系統堆棧區,用于存放出現異常情況(中斷)時的寄存器值?然后,系統程序設置系統正常工作時的各個存儲區起始地址及存儲區容量,將地址0x00000~0x7FFFF共512K×32bits范圍作為程序存儲區(ROM),用于存放系統程序和用戶程序;將地址0x1000000~0x10FFFFF共1M×32bits作為程序/數據存儲區(RAM),又將該段存儲區分為用戶程序段?用戶堆棧段和用戶數據段;將片內存儲區地址映射到0x3FE0000~0x3FEFFFF;將特殊寄存器區地址映射到0x3FF0000~0x3FFFFFF?最后系統程序設置片內寄存器的值,初始化S3C4510BS3C4510B芯片的各個外部接口,包括異步串行通信接口(UART)?計時器?可編程I/O口?以太網控制器等?在系統初始化結束后,自動進入用戶模式,執行用戶程序?
在用戶模式下,攝像系統作為網絡視頻服務器?根據用戶程序設置的MAC地址和IP地址,接收來自互聯網中計算機發出的請求信號?當系統收到請求信號后,用戶程序立即在本地與計算機建立TCP連接?將待傳輸的一幀壓縮圖像數據首先按TCP協議封裝成TCP數據報,然后交付給IP層子程序封裝成IP數據報,最后由S3C4510B芯片內的MAC控制器將其拆分封裝成幀并發送到目的計算機上?當有多個計算機用戶發出請求信號時,用戶程序會在數據存儲區中設置一個用戶列表,自動根據各個計算機的IP地址和建立連接時的端口號分別發送圖像數據?圖4顯示了用戶程序與一臺計算機發送和接收TCP/IP數據報的流程圖?目的計算機將接收到的TCP/IP數據報解封,恢復成JPEG壓縮圖像幀,再解壓縮,完成視頻圖像流的接收和播放?
用戶程序在發送數據幀的同時,會根據圖像數據發送的速度及網絡的擁塞情況,自動通過異步串行通信接口(UART0)向VC5416VC5416芯片發送控制信號,及時改變圖像采集和壓縮的速率?本系統在發送視頻數據的同時,還能夠接收來自計算機的控制命令?根據不同的控制命令,系統也可以完成對圖像分辨率?圖像幀速率等指標的調節?
本文介紹的網絡數字攝像系統目前運行于評估板平臺上,下一步將繼續進行系統的集成和優化并最終實現產品化?由于該設計方案采用高性能的32位微控制器和多個通用可編程器件(FPGA和DSP),因此該系統能夠支持VxWorks嵌入式實時操作系統和更為復雜的應用程序?而且軟件和硬件設計只需稍加改進就能實現無線聯網,使得數字攝像系統能在移動中傳輸實時圖像?該網絡數字攝像系統具有硬件集成度高?圖像傳輸實時性好?操作簡單?維護方便等優點?可以用于電視會議?電訊基站?智能樓宇?銀行的保安監控以及交通違章和流量管理等?
責任編輯:gt
-
dsp
+關注
關注
554文章
8059瀏覽量
350420 -
芯片
+關注
關注
456文章
51170瀏覽量
427252 -
計算機
+關注
關注
19文章
7536瀏覽量
88639
發布評論請先 登錄
相關推薦
基于TMS320VC5416芯片和OV7620實現水表盤字輪號碼讀取系統的設計
![基于<b class='flag-5'>TMS320VC5416</b><b class='flag-5'>芯片</b>和OV7620<b class='flag-5'>實現</b>水表盤字輪號碼讀取<b class='flag-5'>系統</b>的設計](https://file.elecfans.com/web1/M00/CE/3F/pIYBAF-gwdKAJ-1fAACXnekkYcY897.png)
μClinux在S3C4510B上的移植
求助:哪位高手基于TMS320VC5416的語音編碼電路圖
TMS320VC5416 pdf datasheet
基于S3C4510B的應用系統設計與調試
s3c4510b中文手冊,s3c4510b用戶手冊
TMS320VC5416-160,pdf(Fixed-Poi
TMS320VC5416的多路加速采集系統設計方法
![<b class='flag-5'>TMS320VC5416</b>的多路加速采集<b class='flag-5'>系統</b>設計方法](https://file.elecfans.com/web2/M00/48/DA/pYYBAGKhtCmALnGtAAARjsrttLg137.jpg)
TMS320VC5416 數字信號處理器
![<b class='flag-5'>TMS320VC5416</b> <b class='flag-5'>數字</b>信號處理器](https://file.elecfans.com/web1/M00/53/66/pIYBAFshBwOAXBsOAAAZuw2_YHI733.jpg)
評論