基于TMS320F2812的快速以太网通信系统平台
时间:11-25
来源:互联网
点击:
4 快速以太网硬件接口设计
Ax88796内部集成有10/100Mb/s自适应的物理层收发器和8K×16位的SRAM,支持MCS-51系列、80186系列、ISA以及MC68K系列等多种CPU总线类型。Ax88796提供基于IEEE802.3/IEEE 802.3u局域网标准的10Mb/s和100Mb/s以太网控制功能,并采用IEEE 802.3u兼容的媒质无关接口MII(Media Independent Interface)。此外,Ax88796还提供可选的标准打印接口,用于连接打印设备或作通用I/O端口。
①Ax88796的ISA接口设计
Ax88796有两个输入引脚CPU[1:0]设置不同的工作模式,用于和不同的CPU总线相连。在与TMS320F2812连接时,将CPU[1:0]都拉低,设置为ISA总线接口。Ax88796的地址总线SA与数据总线SD分别与TMS320F2812的地址/数据总线相连,TMS320F2812通过I/O读写Ax88796的寄存器来控制其状态,通过远程DMA FIFOs与Ax88796的内部SRAM进行数据交换。Ax88796的基地址默认值200H,所以基地址范围为200H~21FH。Ax88796的ISA接口有10根地址线,SA[9:0]。
②Ax88796电源设计
Ax88796具有多种电压类型:VDD、VDDA、VDDPD和VDDO,分别为芯片内部的数字电路、模拟电路、相位侦测模块、收发器驱动模块提供电源。虽然同为3.3V电压,但为了防止各个模块通过电源线发生串绕,要求各电源独立供电,于是设计了电源隔离、滤波电路,将系统的3.3V供电电压,通过LC滤波分为Ax88796所需的四路电压。
系统软件设计
1 系统软件结构
除应用层用户程序外,系统软件可看做操作系统μC/OS-Ⅱ的功能扩展:Ax88796驱动程序屏蔽底层硬件,为操作系统扩展了访问网络设备的能力;TCP/IP协议软件为操作系统扩展了网络通信能力。
TCP/IP通常被划分为一个四层协议系统,每一层负责不同的功能。
● 接口层:Ax88796的驱动程序,直接访问Ax88796硬件设备,控制Ax88796的行为模式。
● 网络层:处理分组在网络中的活动,例如分组的选路。
● 运输层:为两台主机上的应用程序提供端到端的通信。
● 应用层:负责处理特定的应用程序细节。
在DSP上实现的100M快速以太网通信,关键要考虑两个方面:
● 如何控制硬件设备将数据发送到以太网中(或者将以太网中的数据接收到DSP内)。
● 如何生成待发送的数据(或者如何解释接收到的数据)。
二者分别由网络设备驱动程序和TCP/IP协议软件解决。
本系统的软件部分包含3个方面:快速以太网驱动程序、μC/OS-Ⅱ操作系统和TCP/IP协议栈软件。
2 快速以太网驱动程序开发
①Ax88796的寄存器
Ax88796的寄存器映射在从基地址200H到21FH地址空间内,共32个地址空间,因此Ax88796采取了分页机制,各寄存器分别存放在不同寄存器页内。
对Ax88796的寄存器进行正确的设置是系统运行的基础,下面是几个重要寄存器:
● CR(命令寄存器):用于选择寄存器页,启动和停止网卡。
● ISR(中断状态寄存器):反映Ax88796当前状态,CPU通过读取它判断引起中断的原因。
● DCR(数据控制寄存器):字节顺序、DMA字节/字传输模式选择。
● PSTART、PSTOP、BNRY、CPR:这四个寄存器与接收缓冲区有关。PSTART设置起始页,PSTOP设置停止页,这两个寄存器设置了接收缓冲区的首尾。BNRY指示最后一个被取走的缓冲区页,CPR指示第一个用于接收的缓冲区页。
● TPSR、TBCR0、TBCR1:这三个寄存器与发送缓冲区有关。TPSR设置发送缓冲区的起始页,TBCR0、TBCR1设置发送字节数。
● RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通过远程DMA和系统交换数据,前两个寄存器设置远程DMA的起始地址,后两个设置远程DMA数据字节数。
②接收过程
接收数据帧的过程涉及到的寄存器主要有两个:CPR和BNRY。CPR寄存器指向新接收到的数据帧要存放的起始页地址,作为本地DMA的写指针;BNRY寄存器指向还未读取的数据帧的起始页地址,作为远程DMA的读指针。当CPR追上BNRY时,表示接收缓冲区已满,后续的数据帧将会被丢弃;当BNRY追上CPR时,表示接收缓冲区已空。
③发送过程
图3 发送过程
发送过程比较简单,发送过程的流程如图3所示。
3 嵌入式多任务操作系统μC/OS-Ⅱ的移植
所谓移植,就是使μC/OS-Ⅱ内核能在某个微处理器或微控制器上运行。为了方便移植,大部分的μC/OS-Ⅱ代码是用C语言写的;但仍需要用C和汇编语言写一些与处理器相关的代码,这是因为在读写处理器寄存器时只能通过汇编语言来实现。因此要使 μC/OS-Ⅱ正常运行,处理器必须满足以下要求:
● 处理器支持中断,并且能产生定时中断(通常在10~1kHz之间)。
● 使用C语言可以打开和关闭处理器的中断。
● 处理器支持能够容纳一定量数据的硬件堆栈。
● 处理器有将堆栈指针和其他寄存器读出和存储到堆栈或内存中的指令。
μC/OS-Ⅱ的移植工作主要包括两个内容:
● OS_CPU_C.C文件中的一个C语言函数
● OS_CPU_A.ASM文件中的四个汇编语言函数
由于篇幅有限,这里就不详细说明这两个文件的具体编写了。
Ax88796内部集成有10/100Mb/s自适应的物理层收发器和8K×16位的SRAM,支持MCS-51系列、80186系列、ISA以及MC68K系列等多种CPU总线类型。Ax88796提供基于IEEE802.3/IEEE 802.3u局域网标准的10Mb/s和100Mb/s以太网控制功能,并采用IEEE 802.3u兼容的媒质无关接口MII(Media Independent Interface)。此外,Ax88796还提供可选的标准打印接口,用于连接打印设备或作通用I/O端口。
①Ax88796的ISA接口设计
Ax88796有两个输入引脚CPU[1:0]设置不同的工作模式,用于和不同的CPU总线相连。在与TMS320F2812连接时,将CPU[1:0]都拉低,设置为ISA总线接口。Ax88796的地址总线SA与数据总线SD分别与TMS320F2812的地址/数据总线相连,TMS320F2812通过I/O读写Ax88796的寄存器来控制其状态,通过远程DMA FIFOs与Ax88796的内部SRAM进行数据交换。Ax88796的基地址默认值200H,所以基地址范围为200H~21FH。Ax88796的ISA接口有10根地址线,SA[9:0]。
②Ax88796电源设计
Ax88796具有多种电压类型:VDD、VDDA、VDDPD和VDDO,分别为芯片内部的数字电路、模拟电路、相位侦测模块、收发器驱动模块提供电源。虽然同为3.3V电压,但为了防止各个模块通过电源线发生串绕,要求各电源独立供电,于是设计了电源隔离、滤波电路,将系统的3.3V供电电压,通过LC滤波分为Ax88796所需的四路电压。
系统软件设计
1 系统软件结构
除应用层用户程序外,系统软件可看做操作系统μC/OS-Ⅱ的功能扩展:Ax88796驱动程序屏蔽底层硬件,为操作系统扩展了访问网络设备的能力;TCP/IP协议软件为操作系统扩展了网络通信能力。
TCP/IP通常被划分为一个四层协议系统,每一层负责不同的功能。
● 接口层:Ax88796的驱动程序,直接访问Ax88796硬件设备,控制Ax88796的行为模式。
● 网络层:处理分组在网络中的活动,例如分组的选路。
● 运输层:为两台主机上的应用程序提供端到端的通信。
● 应用层:负责处理特定的应用程序细节。
在DSP上实现的100M快速以太网通信,关键要考虑两个方面:
● 如何控制硬件设备将数据发送到以太网中(或者将以太网中的数据接收到DSP内)。
● 如何生成待发送的数据(或者如何解释接收到的数据)。
二者分别由网络设备驱动程序和TCP/IP协议软件解决。
本系统的软件部分包含3个方面:快速以太网驱动程序、μC/OS-Ⅱ操作系统和TCP/IP协议栈软件。
2 快速以太网驱动程序开发
①Ax88796的寄存器
Ax88796的寄存器映射在从基地址200H到21FH地址空间内,共32个地址空间,因此Ax88796采取了分页机制,各寄存器分别存放在不同寄存器页内。
对Ax88796的寄存器进行正确的设置是系统运行的基础,下面是几个重要寄存器:
● CR(命令寄存器):用于选择寄存器页,启动和停止网卡。
● ISR(中断状态寄存器):反映Ax88796当前状态,CPU通过读取它判断引起中断的原因。
● DCR(数据控制寄存器):字节顺序、DMA字节/字传输模式选择。
● PSTART、PSTOP、BNRY、CPR:这四个寄存器与接收缓冲区有关。PSTART设置起始页,PSTOP设置停止页,这两个寄存器设置了接收缓冲区的首尾。BNRY指示最后一个被取走的缓冲区页,CPR指示第一个用于接收的缓冲区页。
● TPSR、TBCR0、TBCR1:这三个寄存器与发送缓冲区有关。TPSR设置发送缓冲区的起始页,TBCR0、TBCR1设置发送字节数。
● RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通过远程DMA和系统交换数据,前两个寄存器设置远程DMA的起始地址,后两个设置远程DMA数据字节数。
②接收过程
接收数据帧的过程涉及到的寄存器主要有两个:CPR和BNRY。CPR寄存器指向新接收到的数据帧要存放的起始页地址,作为本地DMA的写指针;BNRY寄存器指向还未读取的数据帧的起始页地址,作为远程DMA的读指针。当CPR追上BNRY时,表示接收缓冲区已满,后续的数据帧将会被丢弃;当BNRY追上CPR时,表示接收缓冲区已空。
③发送过程
图3 发送过程
发送过程比较简单,发送过程的流程如图3所示。
3 嵌入式多任务操作系统μC/OS-Ⅱ的移植
所谓移植,就是使μC/OS-Ⅱ内核能在某个微处理器或微控制器上运行。为了方便移植,大部分的μC/OS-Ⅱ代码是用C语言写的;但仍需要用C和汇编语言写一些与处理器相关的代码,这是因为在读写处理器寄存器时只能通过汇编语言来实现。因此要使 μC/OS-Ⅱ正常运行,处理器必须满足以下要求:
● 处理器支持中断,并且能产生定时中断(通常在10~1kHz之间)。
● 使用C语言可以打开和关闭处理器的中断。
● 处理器支持能够容纳一定量数据的硬件堆栈。
● 处理器有将堆栈指针和其他寄存器读出和存储到堆栈或内存中的指令。
μC/OS-Ⅱ的移植工作主要包括两个内容:
● OS_CPU_C.C文件中的一个C语言函数
● OS_CPU_A.ASM文件中的四个汇编语言函数
由于篇幅有限,这里就不详细说明这两个文件的具体编写了。
嵌入式 DSP 电路 电压 电流 电容 振荡器 MIPS 收发器 总线 模拟电路 C语言 相关文章:
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)