在机顶盒中的应用
摘 要:本文阐述了pSOS操作系统中的pNA+模块在机顶盒中的具体应用方法。首先介绍了pNA+的结构体系,接着详细分析了SC2000与8019的接口,最后介绍了软件流程和实际应用。 关键词:pSOS操作系统;pNA+模块;机顶盒
引言 美国集成系统公司(ISI)开发的嵌入式实时多任务操作系统pSOS集成了一整套嵌入式软件模块、工具和服务。它包括pSOS+内核、pNa+ TCP/IP协议支持包、pRISM集成开发环境、pROBE+调试代理等部分。pSOS+内核作为操作系统的核心,负责执行所请求的服务;安排、管理和分配资源;协调多个异步活动。本文主要讨论pNA+模块在机顶盒中的应用。
pNA+模块概述 pNA+的结构体系如图1所示。网络接口(NI)层将IP层与低层网络介质的物理特性隔离开,它依赖于硬件。网络接口并不属于pNA+,而是pNA+与用户驱动之间的接口。 IP层用于传输数据块,这种数据块被称作数据报。该层提供了长数据报通过网络或互联网传输时,对数据包进行路由、分段以及重组的技术。 ARP用来建立在网络物理地址和IP地址的映射关系。 传输层支持两种传输协议,TCP以及用户数据报协议(UDP),它们在IP之上。除此以外,还有互联网控制报文协议(ICMP)以及Internet组管理协议(IGMP)。ICMP用于错误报告以及其他网络管理任务。它在IP层之上,但在逻辑上仍然是IP的一部分,并且通常不能被用户访问。 socket层提供用户编程接口。该层提供访问Internet协议所需的具有重入属性的各种过程、服务程序;它遵循UNIX 4.3 BSD socket接口语法的工业标准。
网络接口 pNA+模块通过网络接口来访问网络资源,网络接口是应用pNA+模块的基础。 机顶盒采用以太网接口,接口芯片是Realtek的RTL8019,CPU采用SC2000。RTL8019AS是10M全双工的ISA以太网接口芯片,工作在8位模式(使用8位数据线、5位地址线),挂接在SC2000的e-bus总线上。RTL8019AS通过INT3向SC2000的GPIO29发送中断请求,SC2000通过WRn(A9)和RDn(C10) 向RTL8019AS的IOW和IOR发送读或写指令,SC2000通过CSn2向RTL8019AS的AEn发送片选指令。sc2000与8019的接口图2所示。 e-bus是一个具有32位数据能力54M总线时钟的总线,通过合理的配置,可以使其满足8019所需要的时序要求。其配置主要涉及将8019配置到哪一段地址空间,e-bus对该段地址空间操作的时序。网络接口的结构如图3所示。 pNA+对驱动程序的调用全部通过网络接口进行,而驱动程序向pNA+传送的所有数据都是通过AP(Announce Point)进行的。AP是一个指向pNA+内部包接收处理程序的指针,它在网络接口初始化的时候由pNA+赋予,同时pNA+还会赋予驱动程序一个指向消息管理函数的指针,驱动程序通过该指针申请和释放消息数据结构。 网络接口在驱动程序中通过NiLan(ULONG fn_code, union nientry *p)函数实现。该函数带有两个参数,功能号fn_code和指向参数控制块的指针p。功能号fn_code表示pNA+该次调用要实现的功能,功能号从1到9,所对应的服务依次为: 1:NI_INIT,网络接口初始化; 2:NI_GETPKB,向缓冲池申请获得一个数据包缓冲; 3:NI_RETPKB,返还一个数据包缓冲给缓冲池; 4:NI_SEND,向驱动程序申请发送一个数据包; 5:NI_BROADCAST,向驱动程序申请广播一个数据包; 6:NI_POLL,轮询; 7:NI_IOCTL,向驱动程序申请执行对网卡的控制; 8:NI_STOP,在本驱动中没有执行任何操作,可以根据需要添加; 9:NI_SETUP,建立网络接口。 本应用中,pNA+模块和网络接口的数据交换采取消息方式,没有用到NI_GETPKB和NI_RETPKB,NI_IOCTL可以执行对8019的控制,但可以根据具体要求添加。 应用程序的编写 应用程序通过socket层与pNA+模块进行数据交互。根据socket支持通信的特点,可以将socket分为三种类型。 stream socket:使用TCP协议并提供基于连接的通信服务,当数据通过流传输socket发送前,必须在它们之间建立连接。 datagram socket:使用UDP协议并提供无连接的通信服务,不能保证数据传输的可靠性。 raw socket:使用原始socket能使用户访问IP层、ICMP层和IGMP层。 本文采用TCP协议创建stream socket。在应用程序间使用stream socket进行通信,必须建立服务器和客户端,它们对socket的调用不同。运用socket编写通信应用程序的流程如图4所示。 常用的socket函数有: socket过程:创建一个socket并返回一个整型描述符, descriptor = socket(protofamily,type,protocol); close过程:告诉系统终止对一个socket的使用, close(descriptor); bind过程:服务器使用bind过程提供协议端口号, bind(descriptor,localaddr,addrlen); listen过程:在说明了协议端口以后,服务器必须通过操作系统将这个socket设置为被动模式以使它能被用来等待客户的通信,服务器通过调用listen过程实现, listen(descriptor,queuesize); accept过程:服务器调用accept过程来接受请求, newdescriptor= accept (descriptor,caddress,caddresslen), 该调用返回一个新描述符,服务器使用这个新描述符与客户进行通信; connect过程:客户使用connect过程与指定服务器建立连接, connect(descriptor,saddress,saddresslen); send,recv过程:收发数据, send(descriptor,data,length,flags),recv(descriptor,buffer,length,flags)。
实际应用 在实际应用中,利用以太网接口进行机顶盒程序的下载升级,丰富了机顶盒的下载接口。 在此应用中PC机作为服务器端,机顶盒作为客户端。在服务器端建立端口2000,等待客户端请求,一旦客户端有连接请求,服务器端将BIN文件发送给提出请求的客户端。在客户端,如果接到下载程序的指令,则建立socket。然后向服务器端提出连接请求,连接成功后,开始接收数据,数据接收完毕,关闭连接。如果下载是RAM.BIN,则转去执行下载到RAM中的程序;如果是ROM.BIN文件,则将程序写到FLASH中,然后转去执行新下载的程序。 机顶盒的以太网接口速度快,同时由于采用TCP连接进行数据的传输,增加了数据的可靠性。利用以太接口下载程序,大大提高了程序的调试速度。 另外,利用带以太接口的机顶盒还可以进一步开发成音视频节目的转发机。 结语 利用pSOS的pNA+模块开发的以太接口机顶盒,方便开发人员的开发调试,提高了程序的调试速度。由机顶盒开发的音视频节目的转发机还可以进一步使之成为未来家庭的多媒体网关。随着我国广播电视数字化发展和数字电视市场的逐渐成熟,这种类型的机顶盒将有很好的市场价值。■
参考文献 1 pSOSystem System Concepts. Integrated Systems Inc,1999 2 [美]Gilbert Held. 以太网(第三版). 人民邮电出版社,1999.8 3 [美]Larry L.Peterson Brouce S.Dave. 计算机网络(原书第二版). 机械工业出版社,2001.6
会员服务热线: |
深圳矽通科技版权所有 © Copyright 2005-2007, ic-cn.com.cn All Right Reserved. |
|
深 圳:13410210660 QQ : 317143513 |
|
客服联系: MSN:CaiZH01@hotmail.com E-mail:CaiZH01@163.com |
|
|