新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于NiosII的IP Camera傳輸系統(tǒng)實(shí)現(xiàn)

基于NiosII的IP Camera傳輸系統(tǒng)實(shí)現(xiàn)

作者: 時(shí)間:2009-08-06 來(lái)源:網(wǎng)絡(luò) 收藏

  LW是瑞士計(jì)算機(jī)科學(xué)院的開(kāi)發(fā)的TCP/協(xié)議棧,其開(kāi)發(fā)的初衷是用于嵌入式系統(tǒng),一般它只需要幾十KB的RAM和約40 KB的ROM就可運(yùn)行。 IDE開(kāi)發(fā)環(huán)境內(nèi)部集成了LW協(xié)議棧,用戶在加載操作系統(tǒng)μC/OS-II后,只需選取相應(yīng)的LWIP選項(xiàng),即可加入?yún)f(xié)議棧。工程中,LWIP以系統(tǒng)庫(kù)的形式存在,應(yīng)用軟件只需加上相應(yīng)的頭文件,就可調(diào)用API函數(shù)網(wǎng)絡(luò)連接、數(shù)據(jù)收發(fā)等功能,迅速系統(tǒng)的網(wǎng)絡(luò)接入。

  3.2建立應(yīng)用軟件

  本系統(tǒng)設(shè)計(jì)的嵌入式應(yīng)用軟件流程圖如圖4所示。

基于NiosII的IP Camera傳輸系統(tǒng)實(shí)現(xiàn)

  首先對(duì)堆棧和驅(qū)動(dòng)程序初始化。初始化堆棧,應(yīng)在調(diào)用OSStart啟動(dòng)μC/OS-II調(diào)度程序之前調(diào)用IDE的庫(kù)函數(shù)lwip_stack_int(),該函數(shù)用于設(shè)置協(xié)議棧。堆棧初始化后,再調(diào)用庫(kù)函數(shù)init_done_func(),但該函數(shù)必須調(diào)用庫(kù)函數(shù)lwip_devices_init(),這個(gè)函數(shù)將對(duì)在system.h中定義的所有已安裝的以太網(wǎng)設(shè)備驅(qū)動(dòng)程序進(jìn)行注冊(cè)。函數(shù)lwip_devices_init()還會(huì)調(diào)用函數(shù)get_mac_addr()和函數(shù)get_ip_address()從而獲取系統(tǒng)的mac地址和IP地址。當(dāng)lwip_devices_init()返回一個(gè)非0值則表示注冊(cè)成功。注冊(cè)成功后,LWIP棧可用,從而便可在程序中創(chuàng)建任務(wù)。

  初始化完成后,使用函數(shù)sys_thread_new()創(chuàng)建使用套接字API與LWIP棧對(duì)話的新任務(wù)。系統(tǒng)中,由函數(shù)sys_thread_new(link_task,NULL,link_PRIO)創(chuàng)建的用戶任務(wù)是link_task()。該任務(wù)中,系統(tǒng)調(diào)用函數(shù)listen(fd_listen,1)監(jiān)聽(tīng)上位機(jī)連接是否成功,一旦連接成功,調(diào)用 IDE所提供的IO操作函數(shù)IOWR(OUT_PIO_BASE,0,0x01)控制接收模塊,將視頻數(shù)據(jù)保存到SRAM,當(dāng)存滿一幀后,接收模塊產(chǎn)生一個(gè)中斷,這時(shí)系統(tǒng)可通過(guò)指針讀取SRAM中的值a[i]=*(p+i+N/2*(TIMES-times),每讀取1 450 Byte就調(diào)用套接字API函數(shù)send(clisock,send_buf,N,0)發(fā)送至上位機(jī)。由于保存圖像的分辨率僅是320×240,所以數(shù)據(jù)量并不大。發(fā)送時(shí),通過(guò)函數(shù)IOWR(OUT_PIO_BASE,0,0x00)控制接收模塊何時(shí)停止接收,一幀圖像發(fā)送完畢,再通過(guò)函數(shù)IOWR(OUT_PI-O_BASE,0,0x01)控制接收模塊開(kāi)始接收下一幀圖像,如此反復(fù)循環(huán),直到連接斷開(kāi)為止。


  4 上位機(jī)軟件設(shè)計(jì)

  本系統(tǒng)設(shè)計(jì)的客戶端視頻顯示應(yīng)用程序是利用LabWindows/CVI軟件開(kāi)發(fā),此應(yīng)用程序利用套接字編程,可以作為客戶機(jī)與服務(wù)器系統(tǒng)之間通信。

  本系統(tǒng)設(shè)計(jì)的上位機(jī)的應(yīng)用程序除了顯示視頻功能外,還添加了保存和回放功能。上位機(jī)通過(guò)創(chuàng)建一個(gè)標(biāo)準(zhǔn)的Socket接口完成連接以及接收數(shù)據(jù);當(dāng)接收完一幀數(shù)據(jù)后,對(duì)其進(jìn)行數(shù)據(jù)處理,再調(diào)用函數(shù)CreateDIBitmap()創(chuàng)建一幅位圖,最后再調(diào)用函數(shù)CanvasDrawBitmap()完整顯示。

  5 結(jié)束語(yǔ)

  本系統(tǒng)設(shè)計(jì)是NiosII IP攝像頭的系統(tǒng),介紹了從SOPC Builder創(chuàng)建NiosII軟核處理器、IDE建立底層軟件平臺(tái),到設(shè)計(jì)NioslI應(yīng)用軟件的整個(gè)架構(gòu)。同時(shí),對(duì)上位機(jī)的應(yīng)用程序做了說(shuō)明。經(jīng)過(guò)硬件測(cè)試,整個(gè)系統(tǒng)運(yùn)行良好,實(shí)時(shí)性能良好。


tcp/ip相關(guān)文章:tcp/ip是什么



上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉