TMS320DM643的网络接口原理框图如图2所示。图2描述了EMAC+MDIO与DSP中间有一个EMAC控制模块。它主要包含一些必备的、使EMAC更加有效使用DSP的存储空间,控制其复位、中断的一些逻辑。 这些寄存器的地址空间为:0x1C请看如下
TMS320DM643的网络接口原理框图如图2所示。图2描述了EMAC+MDIO与DSP中间有一个EMAC控制模块。它主要包含一些必备的、使EMAC更加有效使用DSP的存储空间,控制其复位、中断的一些逻辑。
这些寄存器的地址空间为:0x1C800000~0x1C803FFF。
图2TMS320DM643的网络接口原理框图
网络接口控制模块
本系统用BroADCom公司的BCM5221作为10/100Base-TX以太网收发器,BCM5221的MII接口与TMS320DM643的MII接口对接。具体接口如图3所示。RJ45连接器选用AMP公司的409-1,其上带两个LED灯,右边的LED为绿色,用作连接状态。左边的为$,正常情况下用来数据传输。
图3TMS320DM643与PHY设备连接框图
电源模块
系统包括4组电源:系统外接稳压电源,把220V的交流电源电压转换成5V直流电压;PLD模块电源由两种电源供电,分别是3.3V和1.5V;TMS320DM643需要两种电源,分别为CPU核心和周边的I/O接口供电。周边I/O电压要求3.3V,CPU核心电压只要1.4V;网络接口控制模块采用3.3V电源供电。
系统软件设计
系统的软件设计主要是通过TCP/IP网络开发包NDK来实现的。该开发包支持TCP/IP协议,并占用较少的系统资源。NDK仅用200kB~250kB的程序空间和95kB的数据空间即可支持常规的TCP/IP服务。所以,NDK很适合目前嵌入式系统的硬件,是实现DSP网络开发的重要工具。
系统软件的框图如图4所示。
图4软件系统图
具体流程:系统配置主要在初始化函数中完成,此初始化函数将在.cinit初始化后,并在DSP/BIOS初始化和main函数之前调用。系统配置需要INT8中断,也就是EDMA传输中断,并设置GPIO7引脚为高电平,从而使PLD模块始终处于初始状态。TCP/IP协议配置在任务线程中完成,主要实现服务器IP地址和网关的配置。当其完成后,系统就会触发一个软件中断,在软件中断程序中,服务器会产生一个用于侦听的端口,并开始侦听网络上的请求。此时,服务器已经处于待命状态,等待客户机的传输请求。
当客户机的传输请求到来时,系统首先会使GPIO7引脚变为低电平,PLD模块开始发送数据。当其接收到一个完整的传输流数据包后,就会发一个中断给DSP,DSP启动EDMA,用ping-pong的方式接收数据进入特定的存储器,当接收完一个完整的传输流数据包后,会产生硬件EDMA中断,中断程序主要是设置特定的标志位为1,然后退出硬件中断,重新回到软件中断程序。当软件中断程序检测到特定的标志位为1时,就会开始传输在存储器中的传输流数据包给客户机。当一个数据包传输完毕后,特定的标志会被置0,系统等待下一个数据包的到来。
当客户机要求停止传输的请求到来时,系统会重新使GPIO引脚变为高电平,PLD模块回到初试状态。此时,系统也会处于待命状态,继续侦听网络。
系统初始化
初始化配置主要包括EMIF总线配置、中断配置和底层网络配置3个部分。初始化工作首先在DSP/BIOS的全局参数配置窗口进行设置,然后调用初始化函数进行配置。
在DSP/BIOS的全局配置窗口主要设置了DSP的工作时钟频率为600MHz,选择使用的片级支持库CSL为DM643的库,选用小端访问模式,片内256kB的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方式的目的是为了使接收操作和发送操作分开进行,增强程序的操作性和可读性。
限于篇幅,网络发送部分不再赘述。
结语
本系统的硬件和软件功能已经实现,网络传输的速度为2MBps。按照此速度,假设传输流中的空包百分比为40%,可以传输5MBps的传输流数据,至少可以传输2~3路的TS流节目。因此,可以证明本系统的设计方法合理、有效。
来源:中电网
·国图和歌华推出“国图空间”
·CMMB车载数字电视系统应用解决方案[图]
·3SD1800A-FG676+TMS320DM6437:数字视频开发方案[图]
·四达时代获13国数字电视运营牌照
·MIPS专注中国市场助力新兴产品量产
·上海高清戴杨:地面数字电视市场份额超50%
·普天孙良:东南亚多国采用中国数字电视标准
·数字电视中国峰会落幕
·沃达丰一季度流失64000用户
·巴蒂电信4月新增本地用户200万
·爱立信因违反美国对古巴出口被罚175万美元
·爱立信缅甸设立办事处开拓亚太区落后市场
·ABI:HTC华为或加入手机平板市场今年全球出货量激增10倍
·Ovum点评惠普重组计划缺少长期策略
·思科Juniper华为占据一季度核心路由器市场96%收入
·巴帝电信收购高通印度公司49%股份获LTE频谱
tags:192.168.0.2