基于TMS320 C6455的以太网通信程序的设计

发布者:alpha12最新更新时间:2014-04-19 来源: 21IC关键字:DSP  以太网通信 手机看文章 扫描二维码
随时随地手机看文章

    随着以太网技术的普及和发展,以太网的通信速率从百兆网逐渐进入了千兆网,甚至万兆网,其通信速率已经满足了常用信号处理机所需要的吞吐率。而以前仅用来做信号处理的DSP器件逐渐也加入了以太网通信功能,常见的如TI公司的DM642,C6455,C6678等DSP器件都带有以太网接口,这给一些需要高速通信接口的信号处理板的设计提供了极大的便利。本文利用某处理板上的TI公司高端DSP器件TMS320 C6455,完成了信号处理板与人机界面之间的高速以太网通信功能。系统测试结果表明,利用C6455实现的以太网通信接口完全满足系统设计要求,并且系统具有组成简单、系统集成度高等优点。

1 硬件平台
    
信号处理板的主要硬件包括两路高速DAC,两路高速ADC以及一块Xilinx V5的FPGA和一块TMS320 C6455DSP处理器,其中网络通信接口部分主要包括C6455、PHY芯片和RJ45接口,如图1所示。C6455的EMAC接口与信号板上的PHY芯片以GMII方式连接,支持千兆双工通信模式。

a.JPG



2 C6455 EMAC接口介绍
    
C6455的EMAC接口主要由3部分构成,包括MDIO模块、EMAC模块、EMAC控制模块。其中MDIO模块通过802.3协议规定的串行通信接口,完成以太网物理层芯片的配置和管理:EMAC模块负责以太网数据包的发送和接收;EMAC控制模块作为DSP核和EMAC接口之间的桥梁,实现DSP核对EMAC模块和MDIO模块的控制。
    如图2所示,EMAC接口通过C6455提供的外设总线与DSP核连接,外设总线中的配置总线提供DSP核对EMAC寄存器的访问,数据总线完成DSP核与EMAC接口之间的以太网通信包的交换。此外,EMAC控制模块将EMAC模块和MDIO模块产生的18个中断信号综合在一起,对外提供一个中断信号,发往C6455的中断控制器,成为C6455处理器的第17号系统事件。C6455的DSP核在接到中断信号后,通过查询EMAC控制模块提供的中断状态寄存器判断中断产生的中断源。

b.JPG


    包缓存描述符(Packet Buffer Descriptors)在C6455的网络通信中起到关键的作用,应用程序和EMAC接口之间的信息交换主要是通过包缓存描述符来实现。包缓存描述符的结构如图3所示,每个包缓存描述符大小为16个字节,其中各个域的意义如下:Next Descriptor Poin ter表示指向下一个描述符的指针,这样多个包缓存描述符可以形成一个单向链表;Buffer Pointer表示指向接收或者发送数据内存空间的指针,EMAC模块根据该指针,启动内部的DMA引擎将数据放入到内部FIFO以便发送,或者从内部FIFO读出到该地址,以便应用程序处理;Buffer Offset表示从Buffer Pointer指向的地址到有效数据之间的距离;Buffer Length表示该缓存器指向数据的大小;Flags表示该缓存器指向的数据是否是应用程序数据包的起始包,或是结束包;Packets Length表示应用程序数据包的总长度,应用程序包可能是由一个或者多个包缓存描述符构成。

c.JPG


    EMAC模块以链表的形式处理包缓存描述符,描述符链表的第一个地址需要写入EMAC的头描述符寄存器(head descriptor pointer),EMAC从头描述符寄存器指向的描述符开始,逐个处理链表中所有的描述符,直到遇到Next Descriptor Pointer为零的描述符。当链表中所有的描述符都处理完成时,EMAC向DSP核发出一个中断,并将处理完的最后一个描述符的地址写入发送/接收完成寄存器,DSP核通过中断和完成寄存器与EMAC进行发送或接收数据的同步。

3 以太网通信程序设计
    
文中设计的以太网通信程序是基于TI公司提供的DSP操作系统DSP/BIOS之上,由该操作系统提供时钟定时、任务同步、硬件中断管理等功能。如图4所示,以太网通信程序主要由DSP/BIOS操作系统、网络驱动程序和用户程序构成。DSP/BIOS操作系统为其他模块提供定时、任务同步等服务;网络驱动程序完成以太网通信功能;用户程序负责解释并执行人机界面发送的命令和数据。网络驱动程序主要包括以太网硬件驱动程序和几个基本的网络协议,包括ICMP,ARP和UDP协议,其中,以太网硬件驱动程序的设计是文中描述的重点,其主要包括MDIO驱动程序与EMAC驱动程序。MDIO驱动程序完成C6455 EMAC与物理芯片的交互,而EMAC驱动程序为用户程序提供了以太网通信接口。

d.JPG


3.1 MDIO驱动模块的设计
    MDIO模块主要负责搜索、配置和监控外部以太网物理收发芯片。该模块主要包括如下几个部分:MDIO硬件初始化;PHY芯片搜索和配置;PHY芯片状态监控。详细的设计描述如下:
3.1.1 MDIO硬件初始化
    MDIO硬件初始化包括如下步骤:
    1)读取C6455设备状态寄存器(DEVSTFAT)中的MACSEL位,确定EMAC与PHY芯片之间的连接方式。文中所涉及的信号处理板上的C6455 EMAC与PHY芯片之间采用GMII方式连接。
    2)初始化MDIO状态机,将状态机置为初始化状态。
    3)配置MDIO访问PHY芯片的时钟并使能MDIO模块。
3.1.2 PHY芯片搜索和配置
    
由于PHY芯片的搜索过程并无确定的时间,因此PHY芯片搜索和配置的实现采用状态机来实现,该状态机每隔100 ms根据查询到的PHY芯片的状态完成相应的操作并更新到下一状态,如图5所示。PHY芯片的搜索经过芯片复位,通信速率自协商等过程,最终与通信对端建立以太网物理层连接。

e.JPG


3.1.3 PHY芯片状态监控
    
在以太网物理层链路的建立后,有可能由于用户拔出网线、对端机器改变通信接口速率等情况而导致链路状态改变,因此MDIO模块需要每隔一段时间对网络进行监控。文中设计的状态监控模块由DSP/BIOS操作系统每隔100 ms查询一次网络状态,状态监控程序一旦发现链路状态有所变化,则根据引起链路变化的不同原因,进入相应的处理流程。该流程如图5中“链路连接”状态以及相应的转移状态所示。
3.2 EMAC驱动模块的设计
    EMAC驱动模块主要负责以太网数据包的接收和发送,它是以太网驱动程序的主要组成部分。该模块主要包括如下几个部分:EMAC硬件初始化;EMAC接收模块;EMAC发送模块。各个模块详细的设计描述如下:
3.2.1 EMAC硬件初始化
    EMAC硬件初始化主要的目的是将EMAC模块置于就绪状态,此时EMAC已经可以接收和发送以太网数据包。初始化过程主要包括如下步骤:
    1)禁止EMAC中断,复位EMAC的HDP寄存器、统计寄存器等,设置EMAC的MAC地址,挂接应用程序提供的回调函数等操作。
    2)根据需求为发送模块和接收模块分配相应的包缓存描述符,并初始化接收模块的包缓存描述符,使之指向应用程序提供的数据接收存储块。文中设计的以太网驱动程序为接收模块分配了32个包缓存描述符,为发送模块分配了480个包缓存描述符,为发送和接收模块共分配了64块存储块,每个存储块大小为4 096个字节。图6是接收模块初始化完成后,接收描述符和接收存储块之间的关系。

f.JPG


    如图6,文中用EMAC_Ch_Struct结构体涵盖了接收模块所用到的链表指针。其中,DescQueue表示空的接收存储块链表,EMAC在接收到一块数据时,启动EMAC内部的DMA,将数据放入当前描述符指向的存储块,并通过中断通知应用程序有数据到达;pDescFirst指向接收描述符链表的首地址,pDescLast指向接收描述符链表的末地址;pDescRead指向第一个可使用的描述符;pDescWrite指向最后一个可使用的描述符;
    3)配置MAC的是否为多播地址,使能以太网中断,EMAC处于就绪状态。
3.2.2 EMAC接收模块
    EMAC接收模块主要由EMAC中断来驱动。当EMAC硬件接收完一个或多个包数据时,会向DSP核发出一个接收完成中断。DSP核在接收到中断后,调用应用程序提供的接收数据回调函数处理接收到的数据,并返回给中断服务程序一个空闲的存储块,中断服务程序将该存储块重新链接到接收存储块链表,完成接收数据流程。
3.2.3 EMAC发送模块
    EMAC发送模块主要由一个发送接口函数ethSendPacket(char*Buffer,int Length)构成,用户程序通过调用该函数完成以太网数据的发送。该函数参数中,Buffer表示应用程序需要发送的数据,Length表示发送数据的长度。该函数首先将Buffer中的数据拷贝到空闲的存储块,并将该储存块加入如图7所示的WaitQueue队列中,WaitQueue队列表示等待加入EMAC发送队列(DescQueue)的存储块。ethSendPacket函数接着检查EMAC发送队列DescQueue是否有空闲的发送描述符,如果有,将WaitQueue链表中的存储块加入到DeseQueue。EMAC硬件将通过相应的描述符,将DescQueue中的数据发送出去。

g.JPG


    当数据发送完成后,EMAC向DSP核发出一个发送完成中断。发送完成中断服务程序将发送后的存储块从DescQueue中移除并交还给应用程序,然后将使用过的发送描述符置为空闲状态,以便下次发送数据时使用。
3.3 ARP/ICMP/UDP网络协议模块的设计
    
为了与上位机完成网络通信,信号处理机还必须提供基本的网络通信协议。文中在设计时,主要提供了ARP/ICMP/UDP 3种网络协议。ARP协议主要完成信号处理机IP地址和MAC地址的转换;ICMP协议主要完成测试信号处理机与上位机之间的网络连通性;UDP协议主要完成实际指令和数据的通信。
    文中简化了这些网络协议模块的设计,设计的主要思路是解析3种协议的包格式,并根据不同协议,封装相应的回应包,发送给上位机。在UDP协议设计中,为了保证数据能够准确送达上位机,加入了CRC校验和出错重传机制。协议处理流程如图8所示。

h.JPG



4 结束语
    
文中以TMS320C6455为核心芯片,通过对C6455 EMAC硬件的研究,参考相关的以太网驱动程序,完成了C6455的以太网通信程序的设计。结果表明,文中设计的以太网驱动程序以及网络协议模块较好的满足了处理机对实时高效数据通信的基本需求,省却了对信号处理机硬件的修改,降低了系统的复杂度,为其他项目的开发提供了很好的借鉴。
    但在对信号处理机网络吞吐性能的测试过程中发现实际的网络吞吐速率与千兆以太网的理论速率还是有较大的差距。如何进一步优化驱动程序的架构和关键数据结构的算法,以便进一步提高网络吞吐率,是笔者下一步的研究方向。

关键字:DSP  以太网通信 引用地址: 基于TMS320 C6455的以太网通信程序的设计

上一篇:FPGA+DSP的高速通信接口设计与实现
下一篇:使用TI 的低功耗C5x DSP的指纹识别方框图和解决方案

推荐阅读最新更新时间:2024-05-02 23:04

双口RAM在DSP与ICCD通信系统中的应用
摘要:提出了利用双口RAM实现高时间分辨率光谱测量系统中DSP与ICCD并行接口的设计方案。以确保使双方的高速通信。介绍了双口RAM器件IDT7007的原理与使用规划,并针对方案,给出了接口电路和软件流程。针对二者交换数据的仲裁方式,提出了解决冲突争端的方法。整体系统通过调试,证明文中采取的中断,忙逻辑,软件协调三种模式,有效解决了两个系统之间的通信争端。信息处理系统与ICCD可良好协调工作,系统运行稳定,构成合理,保证了整体系统的实时性。 关键词:双口RAM;DSP;IDT7007;ICCD 0 引言     增强型电荷耦合器件(Intensified Charge Coupled Device,简称ICCD)作为一种数据采
[嵌入式]
Altera发布新一代DSP Builder工具8.0。
2008年7月2号,面向高性能数字信号处理(DSP)设计,Altera公司(NASDAQ: ALTR)今天发布具有第二代模型综合技术的DSP Builder工具8.0。该技术使DSP设计人员第一次能够自动生成基于高级Simulink设计描述的时序优化RTL代码。借助这一新的DSP Builder,设计人员在几分钟内就可以实现接近峰值FPGA性能的高性能设计。和手动优化HDL代码需要数小时甚至数天时间相比,这大大提高了效能。 The MathWorks信号处理和通信市场总监Ken Karnofsky评论说:“DSP Builder是第二代基于模型的综合技术,在设计高性能DSP时,客户可以借助该技术使用Simulin
[嵌入式]
STM32开发笔记50:STM32F4+DP83848以太网通信指南系列(四)
本章为系列指南的第四章,这一章将正式进入以太网的配置和使用。首先我们关注一下PHY的配置,前面讲到,我们的工程使用了开发板上的一颗DP83848芯片。 RMII和ADDR的确定 接下来我们来看开发板的原理图: 通过电路原理图可以看到接线方式是使用RMII接口模式接线的,因此接下来我们在配置PHY的时候注意要是用RMII。 我们知道DP83848,以及任何一个PHY芯片,都是有5个bit的地址信号的,RMII通信时会携带ADDR数据,只有ADDR吻合的PHY才会有响应。先来看看原理图上DP83848的管脚定义,原理图上DP83848的42号脚标注的PHYAD0,并且引脚悬空了,没有特别的处理。我们再来看看DP83848的数据手
[单片机]
STM32开发笔记50:STM32F4+DP83848<font color='red'>以太网</font><font color='red'>通信</font>指南系列(四)
一种基于HD-SDI技术的高清图像处理系统设计
  引言   随着数字视频的迅速发展,高清数字图像代替模拟图像成为必然趋势。光电系统采用全高清图像技术,不仅能大大提高显示效果,而且能显著提高系统的跟踪精度。因此,高清图像处理系统的开发成为光电系统技术发展必须突破的关键技术之一。SDI(Serial Digital Inter face)即串行数字接口,其标准由移动图像和电视工程师协会(SMPTE)制定,在当今的广播和视频产品领域得到了广泛的应用。标准规定如何通过同轴电缆在设备间传送未经压缩的串行数字视频数据。   在非编后期制作、广播电台等领域,基于 HD-SDI (High Definition-Serial Digital Interface)高清电视应用较为广泛,在1.4
[嵌入式]
一种基于HD-SDI技术的高清图像处理系统设计
基于PCI总线和DSP的步进电机运动控制卡的设计和实现
引言     当今,开放式数控系统正在工业领域得到广泛应用。其中,工控机通过PCI总线连接专用运动控制卡的数控系统最为流行。在运动控制卡中,由于DSP采用多总线哈佛结构使得处理指令和数据可以同时进行,因此相比传统控制中的单片机具有更多的优势。同时,运动控制卡与PC机通过PCI局部总线通信,能够达到很高的数据传输速率,从而还保证了数控系统的实时性。 图1运动控制系统功能框图 系统概述     系统的功能框图如图1所示。该系统的核心是TI公司的16位定点DSP芯片TMS320LF2407A。DSP芯片负责接收PCI局部总线的命令和参数,然后经过特定的运动控制算法,如系统位置、速度调节、插补算法等,从而完成对步进电
[嵌入式]
基于DSP TMS320LF2407的PWM整流技术研究
      引 言   整流器作为一种AC/DC变换装置,其发展经历了由不可控整流器(二极管整流)、相控整流器(晶闸管整流)到PWM整流器(门极可关断功率开关管)的发展历程。晶闸管相控整流和二极管不可控整流对电网谐波污染严重,且网侧功率因数低。PWM整流器已对传统的相控及二极管整流器进行了全面的改进。TMS320LF2407具有快速的数据处理能力和丰富的硬件资源,作为控制芯片可以提高系统的实时响应能力和控制精度,已经被广泛应用于电气自动化控制的各个领域。    1 总体设计及硬件电路   图1为PWM整流器系统硬件框图。在这个系统中,TMS320LF2407为数字控制芯片,整流器采用SVPWM控制策略。系统硬件由主电路、
[嵌入式]
基于DSP的DTMF信令的产生分析与检测
 双音多频DTMF(Dual Tone Multi-Frequency)信令,逐渐在全世界范围内使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。近年来DTMF也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM终端等。将DTMF信令的产生与检测集成到任一含有数字信号处理器(DSP)的系统中,是一项较有价值的工程应用。   DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。电话机键盘上每一个键通过由图1所示的行频与列频唯一确定。DTMF的编解码方案无需过多的计算量,可以很容易的在DSP系统里与其他任务并发执行。
[嵌入式]
基于<font color='red'>DSP</font>的DTMF信令的产生分析与检测
纵览全球半导体,从容走过中国电子业“严冬”
在深圳第八届高交会开幕前一天,一场由创意时代会展主办,国际著名半导体分析机构iSuppli与著名半导体厂商德州仪器、飞思卡尔、NXP、NEC等公司参加的全球半导体市场大会,使得高交会的热潮提前到来,这些半导体产业的专家引导听众从全球半导体的趋势看中国OEM/ODM未来的机会、并帮助中国电子业制定未来的市场战略。 “从全球半导体需求来看,2006年来自DRAM、闪存、DSP、标准线性IC(电源IC)以及图像传感器领域的增长率最大,均达到了2位数以上增长率,从这个趋势可以看出需要这些器件的电子产品是最热的产品,比如PC、手机、便携设备、数字电视等。”iSuppli副总裁Dale Ford在大会开场白中首先指出。他接着分析说,2006
[焦点新闻]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved