TM1300 DSP系统以太网接口的设计
图2中,CS8900A的高8位数据线通过1个8位锁存器和缓冲器连接到8路模拟开关A的一端,CS8900A的低8位数据线连接到8路模拟开关B的一端。8路模拟开关A、B的另一端均连接到TM1300芯片XIO总线的数据线D7~D0上。8路模拟A、B在同一个时刻只有1组是连通的,由A0控制:A0=0时,模拟开关B连通;A0=1时,模拟开关A连通。这样就可以实现XIO总线8位数据线与CS8900A的16位总线的连接。同时,TM1300的A20、A0经译码控制锁存器和缓冲器的操作,逻辑关系如下:
①A20用于控制读写。当A20=0时,CS8900A的高8位数据从缓冲器输入;当A20=1时,高8位数据经锁存器输出到CS8900A的D15~D8。
②A0用于控制8位或16位操作。当A0=0时,对应16位数据读写;A0=1时,对应高8位数据读写。
对CS8900A的16位数据读和写操作有所不同。当TM1300从CS8900A读16位数据时,读16位数据(A0=0、A20=0),CS8900A的低8位数据直接通过8路模拟开关B输入到TM1300的XIO总线的8位数据线D7~D0;同时,高8位数据保存在缓冲器中,紧接着TM1300再读入缓冲器中的高8位数据(A0=1、A20=0)。同样,输出16位数据到CS8900A时,首先将要输出的高8位数据锁存到锁存器中(A0=1、A20=1),然后紧接着直接输出低8位数据到CS8900A的D7~D0(A0=0、A20=1),此时,锁存在锁存器中的高8位数据输出允许,也输出到CS8900A的D15~D8。
A12~A0直接连接TM1300的XIO总线的A12~A0。因此对于TM1300而言没有I/O和存储器的区别,所以WR经与片选取或后直接与CS8900A的IOW、MEMW连接。RD也是直接与CSCS8900A的IOR、MEMR连接。
5 CS8900A网络接口驱动程序设计
pSOS+是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还包括
《TM1300 DSP系统以太网接口的设计(第2页)》