单位文秘网 2021-10-24 08:11:14 点击: 次
摘 要: 为了实现DSP与外围设备进行以太网数据通信,采用了一种基于网络控制芯片DM9000A的DSP以太网接口实现方式。它以TI公司的DSP处理器TMS320F28335和DM9000A网络芯片为硬件平台,通过DSP总线控制DM9000A内部寄存器,完成DM9000A的初始化以及底层以太网数据的发送接收,并对TCP/IP协议进行裁剪,包括IP,ARP,ICMP,UDP和TCP等协议,实现了适用于DSP设备的以太网数据通信功能。
关键词: DM9000A; DSP; 以太网接口; TCP/IP
中图分类号: TN911⁃34; TP393.1 文献标识码: A 文章编号: 1004⁃373X(2013)24⁃0140⁃04
Design and realization of DSP Ethernet interface based on DM9000A
SHEN Hao⁃min1, ZHANG Tao2, WANG Jian1,2
(1. College of Electronic Information, Hangzhou Electronic Science and Technology University, Hangzhou 310018, China;
2. Focused Photonics (Hangzhou) Inc, Hangzhou 310052, China)
Abstract: In order to achieve Ethernet data communication between DSP and peripheral devices, a mde of DSP Ethernet interface based on network control chip DM9000A was adopted. Taking TMS320F28335 DSP of TI and network control chip DM9000A as hardware platform, DM9000A internal registers is controlled with DSP bus to complete DM9000A initialization and the underlying Ethernet data transceiving. The Ethernet data communication functions suitable for DSP devices were achieved by simplifying TCP/IP protocol, including IP, ARP, ICMP, UDP, TCP protocols, etc.
Keywords: DM9000A; DSP; Ethernet interface; TCP/IP
DSP(Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。它强大的数据处理能力和高运行速度,是最值得称道的两大特色。随着网络技术的发展,在工业控制、智能仪器、智能家庭等领域,越来越多的DSP设备要求具有以太网通信功能,以便与外部网络设备进行数据通信。以太网控制芯片是以太网接口的核心器件,其性能是影响网络性能的关键因素之一, 如何正确使用网络控制器是设计以太网接口的关键[1]。本文采用处理器+以太网控制芯片+TCP/IP协议的DSP以太网接入方式,设计并实现了基于DSP的精简TCP/IP协议栈,并固化在DSP内,无需操作系统也可运行[2]。
1 总体设计
本系统使用32位DSP处理器TMS320F28335和以太网控制芯片DM9000A为核心,DSP控制整个系统的运行,DM9000A实现网络传输的底层功能[3]。并对TCP/IP协议栈自行裁剪,构成了DSP的以太网接口,实现了网络通信。其系统总体框图如图1所示。
图1 系统总体框图
2 系统硬件设计
2.1 DM9000A功能结构
DM9000A是DAVICOM公司推出的一款高度集成、低成本的快速以太网控制器,实现以太网媒体介质访问层(MAC)和物理层(PHY)的功能。该芯片具有通用的处理器接口,片内集成了10/100M自适应的PHY,内部含有16 KB SRAM用于接收/发送的F1F0缓存,3.3 V 供电, 并且支持IEEE 802.3 以太网传输和8/16 接口的两种主机工作模式协议[4]。功能结构如图2所示。
图2 DM9000A功能结构框图
2.2 接口电路的连接
接口电路主要由DSP、以太网控制芯片DM9000A、隔离变压器和RJ⁃45构成。DSP控制整个系统的运行,DM9000A实现以太网数据的底层传输。隔离变压器的主要作用:其一,可以增强信号,使其传输距离更远;其二,使芯片端与外部隔离,增强抗干扰能力,并对芯片端起保护作用;其三,当接到不同电平(如有的PHY芯片是2.5 V,有的PHY芯片是3.3 V)的网口时,不会对彼此设备造成影响。RJ⁃45接口可用于连接RJ⁃45接头,适用于由双绞线构建的网络,这种是最常见的以太网接口。DM9000A采用16位接口模式,数据地址复用总线D0~D15与DSP总线XD0~XD15相连;DM9000A的写信号引脚与DSP的XWE0n相连;读信号引脚与DSP的读引脚相连;DM9000A的片选信号引脚与DSP的CS0n相连;DM9000A的访问类型引脚CMD与DSP的普通I/O口GPIO61相连,高电平访问DM9000A的数据端口,低电平访问地址端口;DM9000A的复位引脚 与DSP的GPIO60相连;DM9000A的物理层接口TX+,TX⁃,RX+,RX⁃通过隔离变压器连接RJ⁃45至以太网。其以太网接口硬件连接如图3所示。
图3 以太网接口硬件连接图
3 系统软件设计
网络接口的软件主要有DM9000A驱动程序设计和上层通信协议程序设计两个部分。DM9000A驱动程序设计主要是通过TMS320F28335控制总线配置DM9000A内部寄存器,完成对DM9000A初始化、以太网数据帧的发送和以太网数据帧的接收三部分。上层通信协议程序设计是对TCP/IP栈裁剪移植,主要完成对接收到的以太网数据帧进行解析并处理,并把要发送的数据封装成以太网数据,然后发送。
3.1 DM9000A驱动程序设计
3.1.1 DM9000A初始化
DM9000A正常工作需要在上电后对内部寄存器进行初始化,具体流程如下:
(1)启动PHY。设置通用寄存器GPR(1FH)的GEPIO0=0。
(2)进行两次软启动。设置网络控制寄存器NCR(00H)的RST=1,10 μs后RST=0,同样的操作进行两次。
(3)选择网络模式。设置NCR的LBK=00,设置网络工作模式为正常模式。
(4)清除发送标志。设置网络状态寄存器NSR(01H) WAKEST=1,TX2END=1,TX1END=1。
(5)写6 B的以太网节点地址到物理地址寄存器PAR(10H~15H)中。
(6)设置中断屏蔽寄存器IMR(FFH)的PAR=1,使能指针自动跳回,当SRAM读/写指针超过SRAM 的大小时, 指针自动跳回起始位置;PRI=1,使能数据包接收中断。
(7)设置接收控制寄存器RCR(05H)的WTDIS=1,看门狗定时禁止;DSI_LONG=1,丢弃长数据包;DIS_CRC=1丢弃CRC校验错误的数据包;RXEN =1, 使能接收功能。
初始化流程如图4所示。
图4 DM9000A初始化流程图
完成上述初始化步骤后,DM9000A就处于正常工作状态,可以收发数据包。若有异常发生,就需要重复上述步骤,重启DM9000A以使芯片恢复到正常状态。
3.1.2 数据帧发送
DM9000A 内部有16 KB的SRAM作为接收/发送数据的缓存区, 其中前3 KB的空间,地址从0x0000H~0x0BFFH,用来缓存需要发送的数据。
数据发送的具体步骤如下:
(1)利用写操作寄存器MWCMD(F8H),将需要发送的数据帧写入DM9000A的发送缓存区。
(2)将数据帧长度写入长度寄存器TXPLL(FCH)和TXPLH(FDH)。
(3)设置发送控制寄存器TCR(02H),TXREQ=1, 数据帧开始发送。
(4)检查网络状态寄存器NSR(01H)的TX2END和TX1END位,判断此帧数据是否发送完。
数据帧发送流程图如图5所示。
图5 数据帧发送流程图
3.1.3 数据帧接收
当DM9000A数据接收使能后, DM9000A 就会自动接收数据。DM9000A接收到的数据先保存在地址从0x0C00~0x3FFF 的13 KB内部SRAM缓存空间中, 它是一个环形结构。
利用寄存器MRCMDX( F0H )和寄存器MRCMD(F2H)可获取缓存中的数据帧信息。接收到的数据帧格式如图6所示。
图6 接收到的数据帧格式
其中第1个字节是接收数据标志字节,表征接收到数据帧是否有效。第2个字节是接收数据帧的状态字节,其中的内容与接收状态寄存器RSR中的内容相同,可以用来判断所接收的数据帧是否正常。第3,4个字节是接收到数据的长度字节, 其中低位在前, 高位在后。从第5个字节开始的数据才是真正数据帧内容。
数据接收过程如下:
(1)检查中断状态寄存器ISR(FEH),若PRS位为1,说明有新的数据帧接收,写1清除PRS位;若为0,说明无数据,直接返回。
(2)读取第1个字节,即接收数据标志字节。如果该字节为01,则表示接收下来的是有效数据帧;如果该位为00则表示没有数据到达,或数据已经接收完成;如果既不是01又不是00,则认为有异常发生,这时就要将DM9000A芯片重启以使芯片恢复到正常状态。
(3)读取第2个字节,即接收状态字节。根据接收状态字节判断所接收的数据帧是否正常。
(4)读取第3,4字节,即数据帧长度字节。
(5)读取真正的数据帧内容。
(6)根据获取的长度信息,判断是否读完一帧。如果读完,接着读下一帧,直到遇到首字节是00H的帧,说明接收数据已读完[5]。
数据帧接收流程如图7所示。
图7 数据帧接收流程图
3.2 上层通信协议程序设计
TCP/IP协议模型可以分为四个层次[6],从下到上依次为:链路层、网络层、传输层和应用层。每一层都有不同的功能,低一层为高一层提供服务。
标准的TCP/IP协议栈对处理器的计算、存储要求比较高,然而,DSP系统的计算资源和存储资源通常是非常有限,在DSP中实现标准的TCP/IP协议栈将占用大量系统资源,不利于DSP其他方面的应用,因此必须对它进行简化并优化,尽可能做到代码精简,降低存储开销[7]。本系统设计和实现了TCP/IP通信协议的必要部分,包括:ARP,IP,ICMP,TCP,UDP等协议。
ARP(地址解析协议)为IP地址到对应的硬件地址之间提供动态映射。IP协议是TCP/IP协议的核心,所有的TCP,UDP,ICMP的数据都是以IP数据格式传输的[8]。ICMP(网络控制报文)是用来传递差错报文以及其他需要注意的信息,有各种类型的ICMP报文,本文只用到ICMP的请求回显(类型字段为8、代码字段为0)。TCP提供一种面向连接的、可靠的字节流服务[9],交换数据之前必须先建立一个TCP连接,即“三次握手”。UDP是一个简单的面向数据报的传输层协议,它把应用程序传给IP层的数据发送出去,但是并不保证他们能到达目的地。在链路层,当DM9000A完成一个以太网数据帧接收后,将其读入暂存数组,检查以太网帧类型字段,该字段值为0x0806,表示数据帧为ARP帧;该字段的值为0x0800,表示数据帧为IP帧。接着,分别交由ARP协议处理模块或IP协议处理模块。编程时使用框架如下:
if(完成以太网数据帧接收)
{ if(以太网类型字段==0x0806)
{ARP处理模块}
if(以太网类型字段==0x0800)
{IP处理模块}
}
网络层收到的为ARP数据报,ARP根据操作字段(ARP请求为1,ARP应答为2),或者发送ARP应答或者更新ARP地址映射表。若为IP数据报,IP协议处理模块对数据包解析后,IP首部协议字段若为1就将数据交给ICMP协议处理模块,若为6则交给TCP处理模块,若为17则交给UDP处理模块。传输层得到UDP的报文后,按照UDP协议中的端口,分别送给不同的应用层序。若传输层得到的是TCP报文,则要根据TCP的状态转换图进行处理[10]。在TCP或UDP的处理模块中,根据目的端口号,分别将数据送往不同的用户应用程序。其工作流程如图8所示。
4 结 语
本文把高度集成、低成本的快速以太网控制器DM9000A与数据处理能力强大、高运行速度的DSP(TMS320F28335)相结合,设计出了一种DSP的以太网接口。实验结果表明,DSP系统可以通过该接口实现以太网数据通信,经自行裁剪的TCP/IP协议栈,不仅实现了IP,ARP,ICMP,TCP和UDP协议,而且提高了数据传输效率。该接口具有硬件接口简单、外围器件少、运行稳定可靠、性价比高等特点,同时也能够满足测试、采集等高速数据传输系统的要求,符合当今DSP设备趋于网络化发展的方向。
图8 TCP/IP工作流程图
参考文献
[1] 施勇,温阳东.基于DM9000A 的嵌入式以太网接口设计与实现[J].合肥工业大学学报:自然科学版,2011,34(4):519⁃524.
[2] 赵国峰,邱作雨,张毅.基于单片机的嵌入式TCP/IP协议栈的设计与实现[J].计算机技术与发展,2009,19(3):137⁃140.
[3] 刘亚萍,甄国涌,刘东海.基于MSP430和DM9000的以太网接口设计[J].自动化与仪表,2010(7):17⁃20.
[4] 唐娜.基于TMS320F2812和DM9000A以太网接口设计[J].测量与测试技术,2010,37(11):14⁃16.
[5] 苏耀峰,王德刚,魏急波.DM9000A原理及其与基带信号处理平台的结合应用[J].电子设计工程,2007(4):53⁃56.
[6] 朱升林.嵌入式网络那些事[M].北京:中国水利水电出版社,2012.
[7] 王原丽,王丽.基于ARM的嵌入式TCP/IP协议栈的实现[J].现代电子技术,2005,28(22):4⁃9.
[8] 龙鹏飞,宫蓉蓉.一种新的嵌入式TCP/IP协议栈的研究与实现[J].微计算机应用,2007,28(4):372⁃375.
[9] STEVENS W R.TCP/IP详解卷1:协议[M].范建华,译.北京:机械工业出版社,2000.
[10] 李正军.现场总线与工业以太网及其应用技术[M].北京:机械工业出版社,2011.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-210-96689-1.html
下一篇:基于北斗卫星的野外跟踪定位系统
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用