TM1300 DSP系统以太网接口的设计
5 CS8900A网络接口驱动程序设计
本文引用地址:https://www.eepw.com.cn/article/266272.htmpSOS+是WindRiver公司专门为嵌入式系统设计和开发提供的一个模块化、高性能的实时操作系统。它采用模块化结构,包含的一系列软件功能模块有:实时多任务内核pSOS+、多处理器多任务内核pSOS+m、TCP/IP协议栈pNA+、远程调用函数库pRPC+和文件系统pHILE+等。
基于pSOS+实时操作系统的网络接口框图如图3所示。

下面根据网络结构的分层依次进行分析。
(1)物理层
以太网接口的物理实现前面已经分析过。
(2)NI(网络接口)层
pNA+通过一个用户提供的称为网络接口(NI)的软件访问网络。一方面它直接驱动网络接口芯片,控制太网数据帧的收发;另一方面它向pNA+提供符合pNA+要求的函数接口。在pNA+和NI之间的函数接口是标准的,和网络的物理媒介以及网络拓扑无关。这些函数可以使得pNA+不需要知道网络接口底层的细节,可以理解它是pSOS+中的硬件抽象层(HAL)。这些函数如表1所列。
表1 各函数的功能

这些函数的实现是网络驱动程序设计的主要任务,它们的代码在cs8900a.c中。这些函数一方面驱动网卡收发,另一方面为pNA+提供了一套屏蔽硬件底层细节的函数实现。另外,NI还包括一个用于处理数据包中断的中断例程。
每一个NI都应该分配一个唯一的IP地址,可以在pSOS+配置文件sys_conf.h中设定IP地址、网关、掩码等网络接口参数。如:
#define SD_LAN1 YES
#define SD_LAN1_IP 0xca726878 /*202.114.104.120设定IP地址*/
#define SD_LAN1_SUBNET_MASK 0xffffff00
/*设定掩码*/
#define SD_DEF_GTWY_IP 0xca726821 /*202.114.104.33设定网关*/
另外,还要给这个CS8900A网卡设定一个MAC物理地址。这个地址可以在配置文件mybsp.h中设定为不与网上其它网卡冲突的任意值,如:
#define BSP_CS8900_IND_ADDR "00:24:20:10:FF:41"
(3)网络层及传输层pSOS+的pNA+模块集成了网络层和传输层。PNA+在整个网络体系结构中处在第3层,包含IP协议、ARP协议的实理,ICMP协议、IGMP协议的实现;提供了对用户数据报UDP和流式TCP两种传输协议的支持,还提供了符合BSD标准的Socket接口,为应用的实现提供了方便的编程环境。
(4)应用层在应用层实现用户的网络应用。
网络接口的调试是在PC机上PING这个CS8900A的网络接口。如果PING通,表明整个NI层和pNA+已经正常工作了。这个过程中,可以采用tmdbg.exe调试环境支持的DP()来测试一些结果,克服了TM1300系统没有显示支持的不足。
6 小结
本系统在实验室局域网环境下,采用双绞线连接,实现了TM1300与CS8900A的以太网接口的设计,实验结果可以成功PING通。基于Socket的简单的C/S结构的网络测试程序也正常工作,在网络低负荷时,可以用于音视频多媒体数据网上传输,具有一定的使用价值。
tcp/ip相关文章:tcp/ip是什么
评论