久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的嵌入式視覺客流檢測系統

基于DSP的嵌入式視覺客流檢測系統

作者: 時間:2009-05-06 來源:網絡 收藏

2.2 與FIFO存儲器的無縫連接與圖像采集的實現
FIFO與和OV7141的無縫連接如圖2所示。OV7141的工作頻率是27 MHz,每秒鐘能輸出30幀(VGA模式)或者60幀(QVGA模式)。由于性能有限,而且實際上很多情況下也不需要如此高的幀率,因此并不是所有采集到的圖像數據都需要DSP進行處理(例如在的實際應用中只要求每秒鐘能處理5幀即可),但是必須保證DSF進行處理的圖像為一幅完整的圖像。可以利用OV7141的3個輸出信號來完成這個功能,分別是PCLK(像素時鐘信號)、VSYNC(場同步信號)和HREF(行有效信號)。并且OV7141可通過改變片內控制寄存器的值來調整輸出圖像的窗口大小,窗口可在4×2到652×482像素之間任意選擇。HREF、只在所選擇窗口內的像素信號輸出時才置高電平,這使得圖像的非完整模式下的處理也變為了可能。另外,0V7141的片內控制寄存器配置功能由SCCB總線實現,由于DSP不具有SCCB總線接口,因而為了通過DSP實現對0V7141的寄存器配置,利用DSP的2根數據線DO和D1借助CPLD實現sCcB總線時鐘線SCL和數據線SDA的模擬以實現虛擬SCCB總線。
控制FIF0的信號主要是寫信號和讀信號,它們都由DSP根據FIF0的狀態信號及DSP對圖像的處理結果來控制對FIFO的讀/寫。讀/寫操作時序如圖3所示。CM0s圖像傳感器采集獲得的圖像數據在CPLD控制下逐行寫入FIFO,當FIFO的存儲容量達到半滿時,FIFO的半滿標志位以外部中斷方式通知DSP,DSP,檢測到外部中斷后開啟DMA,利用DMA通道將FIFo中的圖像數據搬移到DSP的片內圖像緩沖區中。需要注意的是,在DMA從FIFO搬運圖像數據的過程中CMOS圖像傳感器并沒有停止向FIFO寫入圖像數據,由于CMOS寫入FIFO速度Vw。比DMA從FIFO中讀出數據的速度Vr慢(Vw=(1/2)Vr),使得CMOS和DMA在對FIFO進行雙向訪問時FIFO的實際存儲容量始終保持在0和最大存儲量之間,既不會上溢也不會下溢;從而保證一幀完整的圖像可以被DMA控制器順利的轉移至DSP的片內圖像緩沖區中。當一幀完整的圖像搬運完成后,DMA會開啟處理使能標志,當DSP發現處理使能標志開啟后將從片內圖像緩沖區中獲得圖像數據以完成圖像處理算法,在DSP進行圖像處理的同時,DMA控制器可以同時進行下一幀圖像數據的搬移工作以提升系統的并行處理能力。DSP對于當前幀圖像處理完成后將等待處理使能標志的再次開啟以繼續下一幀圖像的處理。DSP對于當前幀圖像的處理結果將在當前幀處理完成后采用以太網傳輸至接收終端。


此外,DMA在執行圖像數據搬移功能時,為了保證數據搬移過程與DSP圖像處理的并行性,通常需要在DSP片內開辟2塊圖像數據緩沖區。由于5416DSP片內DARAM在速度上優于SARAM,因而通常重要的程序代碼以及算法的堆棧都放在DARAM中,為了節省DARAM資源并充分利用SARAM,在DSP程序空間所在的SARAM和數據空間所在的DARAM中各開辟1塊作為圖像數據緩沖區。SARAM中的緩沖區用于DMA通道0從FIF0中讀取當前幀圖像數據,DMA通道1從SARAM緩沖區中讀取上一幀圖像數據,兩個DMA通道的數據搬移功能都可以在DSP完成某個子算法的過程中并行實現。
2.3 TCP/IP協議的以太網傳輸的實現與圖像的實時傳輸
考慮到實際情況中通常采用圖像處理系統與接收終端采用雙絞線直連的方式傳輸圖像數據,因而直接采取TCP/IP協議族中傳輸效率更高的用戶數據包協議(UDP)完成系統與接收終端的數據交互。接收終端可采用套接字(Socket)獲取UDP數據包,并從UDP數據包中還原出圖像數據或其他系統參數。而在圖像處理系統中,UDP數據包的發送主要通過DSP讀寫LAN9115的片內寄存器以及FIF0的方式實現,具體有以下幾個步驟:
(1)初始化。完成LAN9115的喚醒工作,判別其工作狀態,通過讀寫指定內部寄存器,激活他的各項功能。
(2)設置MAC地址。初始化時DSP通過更改LAN9115內部寄存器ADDRH和ADDRL的值,完成對網絡MAC地址的設置。
(3)發送ARP數據包。根據UDP協議,發送數據時要獲取對方機器的IP地址和MAC地址。該程序根據ARP協議,發送ARP數據,再接收圖像接收端發回的RARP數據包,分析里面的數據,即可生成符合要求的UDP數據。
(4)發送圖像數據。在發送數據包(Packet)過程中,DSP先更改LAN9115的寄存器TX_CMD_A和Tx_CMD_B的值,其中包含了要發送的數據大小,數據包(Packet)長度等信息,該系統目前采取的圖像大小為320×240像素。在實際傳輸中,每幀圖像分20塊(1 Frame=20 Block),每塊又分6個數據報傳輸(1 Block=6 Slice),每個數據包中圖像數據為1 280 B(1 Slice=1 280 B)。這樣做是因為以太網協議里規定每個數據包大小不能超過1 514 B,Windows系統中Socket套接字的緩沖區是8 KB。然后DSP利用I/0端口訪問模式將數據依次寫入LAN9115中。要中斷當前傳輸過程,可設置寄存器TX―CFG中sTOP―Tx比特為1。這個傳輸過程就將立即結束。LAN9115與DSP的接口如圖4所示。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


評論


相關推薦

技術專區

關閉