基于ADSL的视频传输系统
西安电子科技大学ISN国家重点实验室 雷杰 吴成柯 周有喜 李云松
引言
信息技术的不断发展使得人们不再满足于文字、语音等通信手段,融合文字、语音、图片、视频等媒介的多媒体通信应运而生,适应了当前人们的通信需求。而目前ADSL接入网技术已经成熟,并得到了广泛的应用,随之成为人们相互交流、获取各种信息的有效途径。ADSL接入网带宽大,为实时可靠地传输视频提供了很好的硬件基础。因此在ADSL网络上的视频传输成为了一个迫切需要解决的难点。
本文讨论基于IP2022的ADSL接入网视频传输系统。将本地的视频图像传送到Internet上,使连接到Internet的远程主机可以随时随地地浏览本地视频。我们按照MPEG-4视频压缩标准,在DSP芯片上实现高效视频压缩处理;根据PPPoE、PPP、TCP/IP等协议,使用IP2022网络处理芯片,提出了通过ADSL网络传输视频的完整解决方案,并对系统的硬件接口以及软件设计做了详细的描述,经实际测试,此系统实用性强,将在网络视频会议、小区家居智能化以及安防监控等领域具有非常好的应用前景。
系统模型
图1是本文讨论的系统模型。摄像头获取的图像以MPEG-4标准在DSP中进行压缩处理,生成低码流的视频数据,经过IP2022打包处理,由ADSL调制解调器发送到Internet上。
工作流程可概括如下:
(1)本地PC通过RS232串口,将用户名、密码、远程主机的IP地址及端口等信息写入IP2022的内部FLASH中保存下来。
(2) IP2022读出FLASH中的数据,配置相关的网络参数,使用ADSL用户名和密码按照PPPoE协议进行ADSL拨号连接。
(3) 拨号连接成功后,IP2022通过SPI数据接口接收视频数据,经过TCP、IP、PPP和PPPoE层等各层打包处理后,将数据通过10Base-T以太网接口传送给ADSL调制解调器,由其发送到Internet上。
(4) 连接到Internet的远程主机(视频接收端),通过接收软件可以实时浏览本地视频。
系统设计
硬件设计
IP2022是美国UBICOM推出的一颗功能强大的网络通信处理器,处理器速度可达120~160MIPS,片上有64K Flash、16K SRAM(program)、4K SRAM(data)、10位ADC。它采用软件模块的方式在芯片上实现多种通信接口,是业界的单芯片网络通信处理器,可以实现802.11b、802.11g、802.11a、Bluetooth、HomePlug、Ethernet、 USB、 MII、 I2C、 SPI、GPSI、 UART等协议,适用于无线通信和embedded Internet的应用。IP2022内含全双工硬件串/并(SerDes)模块,能直接与各种常用网络接口连接。可实现片内10Base-T 以太网( MAC 和PHY)USB,以及其他各种快速串行协议。由于其内含两个SerDes部件,能方便地从一种格式转换为另一种格式,所以也能作协议转换器。IP2022的工作频率为100MHz,大多数指令均为单周期执行,其吞吐量能满足各种新型网络连通应用的要求。IP2022以软件模块(ipModules) 形式实现外设通信和控制功能,比传统硬件具有更大的系统设计灵活性,还提供了传输控制协议、网际协议、网络协议栈,并具有一系列完整的端到端连通方案所必须的附加软件。
本文所设计系统的就是IP2022网络处理器,基于IP2022的系统原理框图如图2所示。系统时钟模块为硬件系统提供工作所需要的时钟脉冲,这部分比较简单,我们选择4.8MHz的无源晶振,经测试可保证系统稳定工作。
程序的写入和调试是通过在线编程接口实现的,IP2022支持在线编程和调试,该部分主要把IP2022的编程接口引出,加以适当的隔离保护,并通过SPI和主机并口的转换电路与调试主机的并口相连接。
在本系统中,内部电压有两种,一种是接口设备所需要的3.3V,另一种是IP2022内核所需要的2.5V。这两种电压是经过电源转换模块转换而成。
DSP视频处理器主要负责采集摄像头获取的图像,并对其进行压缩编码,得到低码率的视频数据,通过内部的主SPI接口模块把视频数据发送给IP2022网络处理器。
软件设计
软件设计的主要任务是按照PPPoE协议、PPP协议、TCP/IP协议实现ADSL网络接入,包含有本地RS232串口配置、拨号连接、SPI口数据接收处理、TCP层数据传输等四个部分。首先对所使用的相关协议作一简单介绍,然后分别详细阐述软件四个组成部分的功能及实现。
涉及协议介绍
ADSL(Asymmetrical Digital Subscriber Line,非对称数字用户环路)是一种能够通过普通电话线提供宽带数据业务的技术,是目前极具发展前景的一种接入技术。ADSL接入技术中,的是PPPoE协议。
PPPoE(Point To Point Protocol Over Ethernet)是以太网上传送PPP数据包的协议,它提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种标准。PPPOE协议共包括两个阶段,即PPPOE的发现阶段(PPPOE Discovery Stage)和PPPOE的会话阶段(PPPOE Session Stage)。在发现(Discovery)过程中,用户主机以广播方式寻找可以连接的所有的接入集线器,并获得其以太网MAC地址。然后选择需要连接的主机并确定所要建立的PPP会话识别标号。在会话阶段,用户主机与接入集线器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。依次进行PPP层的LCP包的配置、PAP包的配置、IPCP包的配置,在协商好PPP协议的各选项之后,就可以进行IP数据包传输了。为保证视频传输的高可靠性,我们采用TCP/IP协议传输视频数据。
系统软件的四个重要组成模块
(1)本地串口配置软件模块
接收PC机通过RS232串口发送的数据,这些数据包括IP2022网络处理器的MAC地址、IP地址、子网掩码等网络参数,还包括需要连接的远程主机的IP地址、端口号等信息,同时还有ADSL拨号上网的用户名及密码等数据;接收正确后,IP2022将这些数据存储在它内部的Flash中,便于掉电或系统重启后能按原有的配置模式正常工作。
(2)拨号连接软件模块
按照PPPoE协议,初始化IP2022网络处理器的网络设置,选择PPP协议的各项参数,使用有效的ADSL用户名和密码连接到Internet网络上,如果未能连接上,则延时后自动重连,直到连上为止;若由于网络拥塞或远程主机故障导致网络连接断开,则需要延时后继续尝试连接。此软件模块主要就是负责建立与Internet之间的连接链路。
(3)SPI数据接收处理软件模块
作为SPI从设备,以中断方式接收DSP视频处理器发送过来的视频数据,存放在IP2022的内部存储区内,当一个数据块接收完成后,再读出视频数据并发送到网络上。此软件模块主要完成与DSP视频处理器之间的数据传输,为确保数据不丢失,DSP在发数据前先给IP2022发送请求信号,IP2022开辟一定大小的存储空间成功后,判断DSP发来的请求信号,并反馈一个确认信号,通知DSP可以开始发送数据了;而DSP数据发送完成后会等待IP2022的确认接收完成信号。这样的交互过程可以保证数据准确可靠地通过SPI口传输。其时序图如图3。
(4)TCP层数据传输软件模块系统拨号连接到Internet之后,根据远程主机的IP地址和端口号请求与其建立TCP连接,此过程包括定义并初始化tcp_socket,发送建立TCP连接请求,若成功则允许系统将SPI口接收到的视频数据发送到网络上,否则释放tcp_socket占用的内存空间并将其删除,延时后再次新建tcp_socket并请求建立TCP连接,如此反复直到TCP连接建立成功。若由于其他原因TCP连接断开了,则此软件模块在判断并确认连接断开后,自动请求再次建立TCP连接,以确保视频数据不间断地传送到远程主机。
系统软件工作流程如图4所示。
经过实际测试,系统的视频处理部分能以每秒20帧以上的速度实时处理视频图像,对于视频质量的评测,我们采用Foreman序列作为固定的视频源输入进行相应的测试,图像质量良好,其PSNR值平均大于34dB以上如图5所示;系统在512kbps带宽下实测的帧率统计,如图6所示。
[1]. IP2022 datasheet https://www.dzsc.com/datasheet/IP2022_1136870.html.
[2]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.
[3]. MAX232 datasheet https://www.dzsc.com/datasheet/MAX232_1074207.html.
[4]. PAP datasheet https://www.dzsc.com/datasheet/PAP_2058949.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。