新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于NiosII的IP Camera傳輸系統實現

        基于NiosII的IP Camera傳輸系統實現

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

          LW是瑞士計算機科學院的開發的TCP/協議棧,其開發的初衷是用于嵌入式系統,一般它只需要幾十KB的RAM和約40 KB的ROM就可運行。 IDE開發環境內部集成了LW協議棧,用戶在加載操作系統μC/OS-II后,只需選取相應的LWIP選項,即可加入協議棧。工程中,LWIP以系統庫的形式存在,應用軟件只需加上相應的頭文件,就可調用API函數網絡連接、數據收發等功能,迅速系統的網絡接入。

          3.2建立應用軟件

          本系統設計的嵌入式應用軟件流程圖如圖4所示。

        基于NiosII的IP Camera傳輸系統實現

          首先對堆棧和驅動程序初始化。初始化堆棧,應在調用OSStart啟動μC/OS-II調度程序之前調用IDE的庫函數lwip_stack_int(),該函數用于設置協議棧。堆棧初始化后,再調用庫函數init_done_func(),但該函數必須調用庫函數lwip_devices_init(),這個函數將對在system.h中定義的所有已安裝的以太網設備驅動程序進行注冊。函數lwip_devices_init()還會調用函數get_mac_addr()和函數get_ip_address()從而獲取系統的mac地址和IP地址。當lwip_devices_init()返回一個非0值則表示注冊成功。注冊成功后,LWIP棧可用,從而便可在程序中創建任務。

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


          4 上位機軟件設計

          本系統設計的客戶端視頻顯示應用程序是利用LabWindows/CVI軟件開發,此應用程序利用套接字編程,可以作為客戶機與服務器系統之間通信。

          本系統設計的上位機的應用程序除了顯示視頻功能外,還添加了保存和回放功能。上位機通過創建一個標準的Socket接口完成連接以及接收數據;當接收完一幀數據后,對其進行數據處理,再調用函數CreateDIBitmap()創建一幅位圖,最后再調用函數CanvasDrawBitmap()完整顯示。

          5 結束語

          本系統設計是NiosII IP攝像頭的系統,介紹了從SOPC Builder創建NiosII軟核處理器、IDE建立底層軟件平臺,到設計NioslI應用軟件的整個架構。同時,對上位機的應用程序做了說明。經過硬件測試,整個系統運行良好,實時性能良好。


        tcp/ip相關文章:tcp/ip是什么



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 香港| 余庆县| 时尚| 察隅县| 孝义市| 洪洞县| 广汉市| 南丰县| 全州县| 新巴尔虎左旗| 龙里县| 辽宁省| 大冶市| 西安市| 宜宾市| 黄龙县| 中牟县| 清丰县| 铁力市| 汽车| 神木县| 淳安县| 河间市| 龙陵县| 甘南县| 石泉县| 抚州市| 吴旗县| 本溪市| 湘乡市| 澎湖县| 冷水江市| 安达市| 大英县| 嘉峪关市| 栖霞市| 旺苍县| 蓝田县| 古蔺县| 揭阳市| 永靖县|