• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于NiosII的IP Camera传输系统实现

基于NiosII的IP Camera传输系统实现

录入:edatop.com     点击:

3 系统软件设计

系统软件设计主要包括:建立底层软件平台一NiosII IDE提供的底层软件开发平台,建立应用软件,创建用户传输任务等功能,从而实现TCP/IP连接和视频数据传输。

3.1 建立底层软件平台-μC/OS-II和LWIP

考虑到嵌入式系统的有限资源及NiosII IDE开发环境对μC/OS-II的支持,系统选择μC/OS-II作为操作系统。在NiosII IDE集成开发环境中,μC/OS-II的加载非常方便,只需在建立工程时选取μC/OS-II库选项即可。更重要的是,它根据用户在SOPC中搭建的硬件平台而动态加载。开发系统时,需不断修改和调整硬件平台,从而获取最佳配置。NiosIIIDE开发环境会自动根据开发者修改后的硬件平台加载μC/OS-II。这样,开发者无需考虑硬件平台就可解决与操作系统μC/OS-II不匹配问题。

LWIP是瑞士计算机科学院的开发的TCP/IP协议栈,其开发的初衷是用于嵌入式系统,一般它只需要几十KB的RAM和约40 KB的ROM就可运行。NiosII IDE开发环境内部集成了LWIP协议栈,用户在加载操作系统μC/OS-II后,只需选取相应的LWIP选项,即可加入协议栈。工程中,LWIP以系统库的形式存在,应用软件只需加上相应的头文件,就可调用API函数实现网络连接、数据收发等功能,迅速实现系统的网络接入。

3.2建立应用软件

本系统设计的嵌入式应用软件流程图如图4所示。

首先对堆栈和驱动程序初始化。初始化堆栈,应在调用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)监听上位机连接是否成功,一旦连接成功,调用NiosII 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软件开发,此应用程序利用套接字编程,可以作为客户机与服务器NiosII系统之间通信。

本系统设计的上位机的应用程序除了显示视频功能外,还添加了保存和回放功能。上位机通过创建一个标准的Socket接口完成连接以及接收数据;当接收完一帧数据后,对其进行数据处理,再调用函数CreateDIBitmap()创建一幅位图,最后再调用函数CanvasDrawBitmap()完整显示。

5 结束语

本系统设计是基于NiosII IP摄像头的系统,介绍了从SOPC Builder创建NiosII软核处理器、IDE建立底层软件平台,到设计NioslI应用软件的整个架构。同时,对上位机的应用程序做了说明。经过硬件测试,整个系统运行良好,实时性能良好。

作者:陈明松,初秀琴,任爱锋 来源:豆豆技术应用

上一篇:宽带移动数据网络的QoS保障
下一篇:基于MRTG的网络流量监测研究与应用

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图