基于NDK的数字电视传输流(TS)网络采集系统
时间:06-21
来源:互联网
点击:
系统初始化
初始化配置主要包括了EMIF总线配置、中断配置和底层网络配置三个部分。初始化工作首先在DSP/BIOS的全局参数配置窗口进行设置,然后调用初始化函数进行配置。
在DSP/BIOS的全局配置窗口主要设置了DSP 的工作时钟频率为600MHz,选择使用的片级支持库CSL为 DM642的库,选用小端访问模式,片内256k的SRAM全部用于CACHE高速缓存,并调用初始化函数dm643_init()。
TCP/IP协议配置
初始化程序dm643_init()完成后,从现在起系统将进入各个线程。首先 ,系统会触发任务线程TSK0,在TSK0任务线程中执行函数StackTest(), 其 首先调用NC- SystemOpen()函数完成协议栈及其所需内存的初始 化,然后新件一个系统配置句柄hCfg = CfgNew(),并实现服务器IP地址和网关的配置。在本系统中,IP地 址配 置为“192.168.0.2”;子网掩码为“255.255.255.0”;网关地址为“192.168.0.1”。配置好之后,系统会触发一个软件中断,并做好侦听网络的准备 。
网络侦听
前面在任务线程中已经配置了IP地址和网关,下面就要在软件中断中设置端口和进行侦听。首先在开始使用报路之前,必须分配一个文 件环境fdOpenSession( TaskSelf() )给这个报 路。接着就可以创建一个报路对象stcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP),并设置端口sin1.sin_port =htons(1000),在这里我们设置端口号为1000,当然也可以设置其他的端口号。然后把端口号与报路对象绑定bind( stcp, (PSA) &sin1,sizeof(sin1)。最后进入侦听状态listen( stcp, 1)。
数据的接收
当客户端要求传输数据的信号到来后,系统会使GPIO7引脚变为低电平,PLD模块开始发送数据。DSP通过EDMA方式来接收数据。EDMA可以在没有CPU参与的情况下,由EDMA控制器完成DSP存储空间内的数据搬移。系统主要采用EDMA的ping-pong方式来连续的接收数据。用ping-pong的方式的目的是为了使接收操作和发送操作分开处理,争强程序的操作性和可读性。
网络发送
接收完一帧的数据后会触发硬件中断,在硬件中断函数中会把特定的标志置为1,然后从硬件中断函数中返回,并进入软件中断函数。软件中断函数把刚刚接收到的数据发送到网络中。
软件中断函数会一直侦听是否有新的TCP/IP报路连接请求,当检测到有新的报路连接请求,就会创建一个报路来连接到请求连接的应用程序。建立连接后,软件中断函数会等待客户机的命令。客户机此时会发送一个传输命令给服务器,服务器接收到这个命令后,软件中断函数就会准备发送数据。
软件中断函数会等待一帧传输流数据的到来,也就是等待特定的标志置1。当检测到标志位置1后,软件中断函数就会把刚刚接收到的数据包发送出去。发送成功后,又会把标志位置0,重新等待下一个数据包的到来。如此循环的把数据包发送出去。
当收到结束连接的请求后,会清楚标志位,并设置GPIO7引脚为高电平,从而使PLD模块回到初始状态。然后关闭连接,并回到侦听状态。
结束语
本系统的硬件和软件功能已经实现,网络传输的速度为2Mbytes/s。按照 此速度,假设传输流中的空包百分比为40%计算,可以传输5 Mbytes/s的传输流数据,也就是50Mbit/s的传输流,至少可以传输2~3路的TS流节目。因此,可以证明本系统的设计方法合理、有效。
DSP(TMS320DM643)在数字信号处理方面具有的比其他芯片更为强大优势,现在我们已经在DSP(TMS320DM643)系统中实现了数字电视传输流的网络功能,日后可以在本系统中继续增添新的数字信号处理,特别是视音频处理模块,从而实现更强大的功能。
初始化配置主要包括了EMIF总线配置、中断配置和底层网络配置三个部分。初始化工作首先在DSP/BIOS的全局参数配置窗口进行设置,然后调用初始化函数进行配置。
在DSP/BIOS的全局配置窗口主要设置了DSP 的工作时钟频率为600MHz,选择使用的片级支持库CSL为 DM642的库,选用小端访问模式,片内256k的SRAM全部用于CACHE高速缓存,并调用初始化函数dm643_init()。
TCP/IP协议配置
初始化程序dm643_init()完成后,从现在起系统将进入各个线程。首先 ,系统会触发任务线程TSK0,在TSK0任务线程中执行函数StackTest(), 其 首先调用NC- SystemOpen()函数完成协议栈及其所需内存的初始 化,然后新件一个系统配置句柄hCfg = CfgNew(),并实现服务器IP地址和网关的配置。在本系统中,IP地 址配 置为“192.168.0.2”;子网掩码为“255.255.255.0”;网关地址为“192.168.0.1”。配置好之后,系统会触发一个软件中断,并做好侦听网络的准备 。
网络侦听
前面在任务线程中已经配置了IP地址和网关,下面就要在软件中断中设置端口和进行侦听。首先在开始使用报路之前,必须分配一个文 件环境fdOpenSession( TaskSelf() )给这个报 路。接着就可以创建一个报路对象stcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP),并设置端口sin1.sin_port =htons(1000),在这里我们设置端口号为1000,当然也可以设置其他的端口号。然后把端口号与报路对象绑定bind( stcp, (PSA) &sin1,sizeof(sin1)。最后进入侦听状态listen( stcp, 1)。
数据的接收
当客户端要求传输数据的信号到来后,系统会使GPIO7引脚变为低电平,PLD模块开始发送数据。DSP通过EDMA方式来接收数据。EDMA可以在没有CPU参与的情况下,由EDMA控制器完成DSP存储空间内的数据搬移。系统主要采用EDMA的ping-pong方式来连续的接收数据。用ping-pong的方式的目的是为了使接收操作和发送操作分开处理,争强程序的操作性和可读性。
网络发送
接收完一帧的数据后会触发硬件中断,在硬件中断函数中会把特定的标志置为1,然后从硬件中断函数中返回,并进入软件中断函数。软件中断函数把刚刚接收到的数据发送到网络中。
软件中断函数会一直侦听是否有新的TCP/IP报路连接请求,当检测到有新的报路连接请求,就会创建一个报路来连接到请求连接的应用程序。建立连接后,软件中断函数会等待客户机的命令。客户机此时会发送一个传输命令给服务器,服务器接收到这个命令后,软件中断函数就会准备发送数据。
软件中断函数会等待一帧传输流数据的到来,也就是等待特定的标志置1。当检测到标志位置1后,软件中断函数就会把刚刚接收到的数据包发送出去。发送成功后,又会把标志位置0,重新等待下一个数据包的到来。如此循环的把数据包发送出去。
当收到结束连接的请求后,会清楚标志位,并设置GPIO7引脚为高电平,从而使PLD模块回到初始状态。然后关闭连接,并回到侦听状态。
结束语
本系统的硬件和软件功能已经实现,网络传输的速度为2Mbytes/s。按照 此速度,假设传输流中的空包百分比为40%计算,可以传输5 Mbytes/s的传输流数据,也就是50Mbit/s的传输流,至少可以传输2~3路的TS流节目。因此,可以证明本系统的设计方法合理、有效。
DSP(TMS320DM643)在数字信号处理方面具有的比其他芯片更为强大优势,现在我们已经在DSP(TMS320DM643)系统中实现了数字电视传输流的网络功能,日后可以在本系统中继续增添新的数字信号处理,特别是视音频处理模块,从而实现更强大的功能。
数字电视 嵌入式 DSP 电路 Altera VHDL 总线 收发器 连接器 LED 电源模块 稳压电源 电压 相关文章:
- IPTV技术分析及与数字电视的比较(10-05)
- 德州仪器OMAP? 2 平台助力最新NEC手机(11-14)
- 数字电视终端与芯片的智能化探讨 (03-20)
- 三网融合与数字智能家庭的密切关系(01-26)
- CMMB标准紧急广播服务的研究与应用(02-01)
- 基于AU1200的TS流处理设计(01-22)