基于DSP的以太网通信接口设计方案

发布者:科技梦行者最新更新时间:2014-08-11 来源: eepw关键字:DSP  以太网  通信接口 手机看文章 扫描二维码
随时随地手机看文章

  概述

  TM1300是Philips公司推出的新一代高性能多媒体数字信号处理器芯片。基于TM1300的DSP应用系统适合于实时声音、图像处理,可广泛应用于会议电视、可视电话、数字电视等应用场合。它不仅具有强大的处理能力,同时还具有非常友好的音频和视频以及SSI和PCI等I/O接口,因此可以根据应用的需要灵活地构造各种视频通信系统。鉴于目前计算机网络的普及和网上视频业务的发展,很有必要为TM1300视频编码系统开发一个以太网接口以拓宽其应用范围。开发以太网接口的一种合理思路是利用TM1300集成的PCI接口来驱动专用的以太网接口芯片。由于目前多数以太网接口芯片(如Real- tek8029,Realtek8139等)都采用PCI接口,因此,可以用PCI总线将数据从TM1300传输到这些专用的以太网接口芯片后,再由它们发送数据,而且TM1300可以在嵌入式操作系统pSOS中运行,同时由于系统pSOS带有TCP/IP协议栈因此可以方便地完成编码码流的TCP/IP封装。 根据以上思路笔者在进行了前期测试的基础上进行了电路板的设计并顺利完成了调试。目前这个以太网接口已经基本开发成功。本文将对这个设计的技术要点从硬件和软件两个方面进行详细介绍。

  

 

  2 TM1300及PCI总线接口

  该系统的硬件结构框图如图1所示。本系统硬件设计的重点是PCI总线接口。PCI总线根据数据位的宽度有32位和64位之分,64位的数据线与32位是兼容的。PC机中常见的是32位PCI总线,它的有用引脚总数是110个,可以分成3组。第一组是基本功能信号线,包括32位共享数据地址线AD〔00..31〕、接口控制线、仲裁线、时钟线、系统复位线、中断线;第二组是附加功能信号线,包括错误报告线、cache功能支持线、JTAG边界扫描线;第三组是电源线,包括设备耗电量标识线、3.3V电源线(12根)、5V电源线(13根)、地线(22根)。 因为Realtek8029不具备PCI的附加功能信号线所支持的cache功能和JTAG边界扫描功能,同时虽然它具有奇偶校验错误报告功能引脚,但该脚可以悬空不用。所以,设计时只需考虑第一组功能信号线的连接即可。 PCI接口的设计有以下几个要点: (1)PCI总线的仲裁 这里先说明两个概念。首先,PCI总线是多设备共享的,由于PC机里可以有多个PCI设备,所以需要使用仲裁器;其次,PCI设备有主设备和从设备之分,主设备可以发起PCI数据的传送从设备只能被动地响应主设备的操作以对读操作和写操作做出响应。PCI的仲裁引脚是REQ和GNT,分别为请求线和授权线,而且只有PCI主设备有这两个引脚。一般情况下,REQ通常和GNT成对地连到仲裁器,而设备与设备的REQ和GNT通常是互不相连的。 PCI总线的仲裁过程是这样的:PCI主设备把REQ电平拉低以表示向仲裁器请求占用总线。经仲裁获准后,仲裁器把这个设备的GNT电平拉低以表示请求获准,此后该设备便可以使用总线了。当它不再使用总线时,应使REQ信号变为高电平仲裁器就不再给它分配总线资源。在本系统中,TM1300是PCI主设备,而Realtek8029是PCI从设备。由于它们不存在共享总线的问题,所以不需要仲裁器,而只是简单地把REQ和GNT短接即可,这就相当于TM1300自己给自己授权。

  

 

  (2)PCI_IDSEL信号线在设备的PCI配置读写中的作用 PCI有一种特殊的读写周期,称为配置读写。这是因为在系统引导时,如果没有给设备配置I/O或内存地址,软件就只能通过配置来读写访问设备。配置读写有两种,分别称为0型和1型具体采用哪一种取决于总线的硬件连接。配置读写操作不经过PCI桥时,使用0型,当需要经过PCI桥时,则要用1型,0型读写的地址直接就是总线上的地址,1型读写的地址则要经过PCI桥的译码才能成为最终的总线地址。本设计中,TM1300和Realtek8029是用PCI总线直连的,所以使用0型配置读写。 AD〔00..31〕是PCI总线的共享地址和数据线,每一次PCI传送都分为地址周期和数据周期。在地址周期,采用0型读写时,AD〔00..31〕的内容如下,AD〔00〕和AD〔01〕总为“00”,因为配置读写是以双字为单位的,AD〔02〕~AD〔07〕是要读写的PCI配置空间的寄存器号AD〔08〕~AD〔10〕是设备的功能号在一块PCI卡上有多个功能设备时,为了进一步区分不同的设备就要用到这几位,由于Realtek8029是单功能设备,故这几位全为0,AD〔11〕~AD〔31〕是设备选择位,其中必须有且仅有一位为“1”,如图2所示,这在物理上表现为总线的AD〔11〕~AD〔31〕中有一根为高电平如果输出高电平的这根线与某块PCI卡的PCI IDSEL引脚相连,这块卡就会被激活,这样,在紧接着的数据周期中,它就会将其PCI配置空间相应寄存器中的内容放到总线上以供读取。 (3) PCI_FRAME、PCI_DEVSEL、PCI_IRDY、PCI_TRDY引脚的处理 上述四个引脚均是低电平有效,因此需要接上拉电阻,以保证在设备未驱动该引脚时处于稳定的无效状态,上拉电阻的阻值在1kΩ~10kΩ范围内,阻值越小,则将该信号驱动为有效的时间越短,但太小又会导致电流过大,所以,要权衡考虑,本设计选用4.7kΩ。 上述三点对脱机情况下PCI设备的互连具有较普遍的参考意义,除此之外,本设计还有以下比较特殊的几点: ●应将TM1300的PCI,INTA引脚配置为输入,以便接收Realtek8029的中断; ●PCI时钟由TM1300提供; ●Realtek8029的复位信号也就是TM1300的复位信号,该信号由外部电路提供; ●TM1300的PCI STOP、 PCI SERR引脚悬空,表示Realtek8029不具备相应的附加功能。另外,TM1300的PCI INTB、PCI INTC、PCI INTD引脚可以用作用户中断。

  

[page]

  3 软件设计

  该接口设计的软件结构框图如图3所示。其中TM1300运行于pSOS,它是一个简单的实时多任务嵌入式操作系统,带有pNA+网络组件,其pNA+相当于TCP/IP协议栈的扩展,它向上可提供应用程序编程的socket接口,向下可定义一个与网络接口层交互的接口,其中包括8个函数,分别是:ni_init(接口芯片初始化)、ni_broad-cast(发送广播分组)、ni_send(发送普通分组)、ni_getpkb(申请发送缓冲区)、ni_retpkb(归还接收缓冲区)、ni_ioctl(I/O控制操作)、ni_pool(统计量查询)、Announce(网络接口驱动调用它把接收到的数据包提交给pSOS)。其中网络接口层在本应用中就是Realtek8029的驱动程序,它通过硬件抽象层来驱动Realtek8029(硬件抽象层是PCI总线的配置读写和I/O读写指令集的总称)。 软件执行的流程大致是:系统首先启动pSOS,并由它加载网络接口驱动程序,然后调用驱动程序的ni_init函数,同时初始化Realtek8029的PCI配置空间并设置Realtek8029的工作参数,之后启动用户任务。在这里,用户任务为H.263编码进程。它对VI口读入的源图像进行压缩编码后,将调用socket的接口函数sendto(sendto是UDP套接口专用的发送函数),然后把码流发送给pSOS由pSOS根据UDP协议进行封装后,再调用ni_send函数,并由ni_send完成数据包从系统主内存到Realtek8029片上RAM的拷贝,然后启动Realtek8029发送数据。在接收情况下,Realtek8029收到一个完整的数据包后会用中断通知CPU,然后由CPU执行中断服务程序。当中断服务程序将数据包从Realtek8029片上RAM中拷贝到系统的主内存后,系统将调用Announce函数并把数据块的指针、数据长度和其它信息提交pSOS,最后由pSOS将数据包沿协议栈一层层上传并作出相应的处理。 软件的设计和pSOS操作系统的关系比较密切,限于篇幅,本文不对pSOS作详细介绍。

    本文接下来重点介绍PCI配置空间的配置过程,这部分对于类似的设计有较普遍的参考意义。PCI配置空间有64个字节,PCI片内的这些寄存器存储了该芯片的厂商号、设备号、设备类型等重要代码,还包括命令寄存器、基地址寄存器等控制其总线行为的寄存器,它们必须在设备初始化时正确配置,否则设备不能工作。 对Realtek8029 PCI空间的配置需要三个步骤: 首先是扫描总线,这一步的目的是找到Real-tek8029的配置地址,直观地讲,就是找到它的PCI_IDSEL引脚和哪根AD线相连,因为后续的配置写要根据这个地址来寻址。扫描总线时,要对AD〔11〕到AD〔31〕每根线进行一次扫描,如果哪根AD线连接了一个PCI设备的PCI IDSEL引脚,那么用配置读函数读取PCI配置空间的0号寄存器时,应该返回该设备的设备和厂商代码,如果这根线实际未连接设备,则返回值是0。已知Realtek8029的设备和厂商代码是“0x802910ec”,如果返回值与之相同,说明找到了Realtek8029,这时要记下这根AD线的序号。例如,在硬件上把Realtek8029的PCI IDSEL和AD〔20〕相连,则扫描到的序号就应该是“20”。 其次,用配置写函数配置I/O读写使能,即在command寄存器中写入“0x1”。 最后,用配置写函数配置I/O地址,也就是在I/OBaseAdddress寄存器写入分配给该设备的I/O地址(例如“0xe400”)。具体程序流程图如图4所示。

  

 

  4 调试结果

  根据以上设计,笔者在原TM1300视频编码硬件系统的基础上加入了PCI接口,并编写了pSOS下Realtek8029的驱动程序。然后,在这个硬件平台上对Realtek8029的驱动部分进行了数据传送测试。 笔者首先用一个单独的UDP发送任务进行发送速率测试。这个任务主要是高速地向网络上的一台PC发送数据包,数据包的大小是变长的。PC接收并对丢包数进行统计的结果如表1所列。实验表明,在用网线直连的各种测试速率情况下都没有出错,而当接入局域网后,在发送速率为4.5Mbps时有突发的少量错误。由于UDP是不可靠的传输方式,所以这种错误是正常的。

    测试中,UDP发送的最高速率可以达到5Mbps左右,它与硬件的最高速率(10Mbps)相比还有一定差距,主要原因是数据从系统主内存到Realtek8029片上RAM的拷贝过程目前尚未采用DMA方式,这是需要改进的地方。 表1 丢包数统计表(单位:丢包个数/分钟) 连接方式发 送 速 率 800kbps 1.8Mbps 4.5Mbps 网络直连 0 0 0 接入局域网 0 0 2.5 接下来笔者进行了编码和传送的联合测试。编码任务执行H.263数据压缩后,把码流从以太网接口发出,然后在网络上的另一台PC上接收这个码流,并进行解码播放。通过调整编码器的量化步长可以控制编码的输出码率。在实验环境下发现在量化步长大于等于5、码率在700kbps以下时,基本没有丢包现象,解码得到的图像比较稳定,而当量化步长进一步减小,码率接近1Mbps时,就会出现丢包现象,解码的图像会出现彩色方块。出现这种现象是因为H.263编码器对CPU资源的消耗很大,而且数据在主内存和Realtek8029片上RAM之间的复制采用I/O读写方式也需要一定的CPU资源。这样,当量化步长小于5时,处理的复杂度超过了CPU的能力从而产生了一定的误码。解决的途径一方面是改进数据的传送方式(采用DMA),另一方面是需要对编码任务进行优化。

  5 结语

   本方案介绍了TM1300 DSP 的特点,给出了通过TM1300的PCI接口驱动以太网芯片来实现以太网通信接口的设计方法。该设计将TM1300和以太网结合起来,因而可以方便地实现视频通信,文章详细介绍了该方案的软件和硬件的设计要点,最后给出了对模拟数据和实际视频压缩码流的传送实验结果。

关键字:DSP  以太网  通信接口 引用地址:基于DSP的以太网通信接口设计方案

上一篇:基于FPGA的高带宽存储接口设计
下一篇:基于DSP的网络通信接口设计方案

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

基于TMS320LF2407的变频器设计
1 芯片简介 TMS320LF2407 A是TI公司专为电机控制而设计的单片 DSP 控制器。它具有高性能的C2XLP内核,采用改进的哈佛结构,四级流水线操作,它不仅具备强大高速的运算能力,而且内部集成了丰富的电机控制外围部件,如事件管理器EVA、EVB各包括3个独立的双向定时器;支持产生可编程的死区控制PWM输出;4个捕获口中的2个可直接连接来自光电编码器的正交编码脉冲;2个独立的10位8路A/D转换器可同时并行完成两个模拟输入的转换;片内的串行通信接口可用于与上位机通信;片内串行外设口用于与外设之间通信;40个可独立编程的复用I/O口可以选配成键盘输入和示波器显示的输入/输出口。这些为实现交流电机变频调速控制提供了极大的便利
[嵌入式]
基于TMS320LF2407的变频器设计
ADI推出长距离工业以太网解决方案
Analog Devices, Inc. (Nasdaq: ADI)今日推出长距离工业以太网解决方案,以扩展其ADI Chronous™工业以太网产品系列。该解决方案可以提供从边缘至云端的长距离以太网连接,支持实时可配置,并能够降低能耗和提高资产利用率。新推出的ADI Chronous产品支持10BASE-T1L物理层以太网标准,可在工业设备和楼宇设施应用中从偏远和危险地方的边缘节点传送新的数据流。现在,我们可以通过网络无缝访问这些以前无法获取的数据,并使用它们来评估各种因素,例如资产健康状况、原材料使用情况以及过程参数,使制造过程更加洁净环保。 ADI公司自动化与能源事业部总经理Mark Barry表示:“许多工厂
[嵌入式]
ADI推出长距离工业<font color='red'>以太网</font>解决方案
一种基于FPGA分布式算法的滤波器设计实现
   0 引言   传统数字滤波器硬件的实现主要采用专用集成电路(ASIC)和数字信号处理器(DSP)来实现。FPGA内部的功能块中采用了SRAM的查找表(lo-ok up table,LUT)结构,这种结构特别适用于并行处理结构,相对于传统方法来说,其并行度和扩展性都很好,它逐渐成为构造可编程高性能算法结构的新选择。   分布式算法是一种适合FPGA设计的乘加运算,由于FPGA中硬件乘法器资源有限,直接应运乘法会消耗大量的资源。本文利用了丰富的存储器资源进行查找表运算,设计了一种基于分布式算法低通FIR滤波器;利用线性相位FIR滤波器的对称性减小了硬件规模;利用分割查找表的方法减小了存储空间;采用并行分布式算法结构和流水线技
[嵌入式]
一种基于FPGA分布式算法的滤波器设计实现
DSP/BIOS中的IO设备驱动编程技术
近年来,随着信息技术的飞速发展,DSP在航空、航天、雷达、通信、消费类电子设备等方面都得到了广泛应用;同时,DSP的运算能力也越大越强大,TI公司新推出的TMS320C6400系列的运算能力可以达到8800MIPS。这些都要求开发DSP的应用程序要缩短开发时间,增加软件的可编护性和可重用性。语音压缩、语音识别、图像处理等方面的应用要求DSP的开发尽可能简单,还要求代码的执行效率高。 DSP/BIOS是TI公司推出的一个实时操作系统。DSP/BIOS与TI的CCS(Code Composer Studio)集成在一起。目前最新的版本是CCS 1.2中的DSP/BIOS II。应用DSP/BIOS可以大大简化DSP应用程序的开发和
[嵌入式]
基于DSP 的数据采集系统开发与实现
0 引言   现代工业生产中,生产规模不断扩大,朝着大型化、高速化、自动化和连续化的方向发展。因此对机械设备性能的要求也越来越高。很多大型石油、化工、石化、电力、钢铁等部门都采用了单机、满负荷、连续性的生产操作方式,其中的大型旋转机械就成为了现代化大规模生产中的关键设备。一旦出现停机故障,将导致全厂的停产,其经济损失是十分巨大的。同时还有可能招致重大的伤亡事故。由此,大型旋转机械的在线状态监测和故障诊断技术便应运而生。而如何获得大量而广泛的状态量(振动、力、位移、噪声、温度、压力和流量等)是其中的关键。本文介绍的基于TMS320F2812的多功能同步数据采集卡,利用卡上的DSP控制芯片不仅可以实现多种数据的采集,还可以对所采集
[嵌入式]
基于DSP的数字效果器的研究
摘要:提出了一种基于TMS320VC5402的音频信号处理系统。介绍了该系统的总体方案和硬软件设计,并对音频信号的处理算法进行了论述。实际使用证明,所述的基于DSP的硬件和软件系统是一个很好的音频信号采集与处理系统。 关键词:音频信号 音频效果 数字信号处理 在调音台和各种音响设备上,效果器是一种不可缺少的设备。有了效果器,才有了声音的千变万化。高质量的效果器能达到令人满意的效果,使人有身临其境的感觉。现在效果器上的效果种类越来越多,有的多达几十种。实际上从声学原理考虑,一共只有五种基本效果: (1)延时/延迟类(包括延时、延迟、混响、残响等), (2)压缩类(包括噪声门、均衡器等), (3)失真类(包括各种失真、金属、
[嵌入式]
耳机细分领域潜藏机遇,楼氏电子DSP芯片多重布局突破性能瓶颈
DSP(数字信号处理器)芯片在信息技术的发展下应运而生,作为一种快速强大的微处理器,DSP芯片可以做到即时处理信息,应用场景包括通信领域、计算机领域、消费电子、自动控制、军事/航空、以及工业控制等,其中通信领域的应用占比超过一半,其次是计算机领域、消费电子。 Knowles(楼氏电子)作为MEMS麦克风、DSP音频处理器、微型声学器件和精密器件解决方案全球供应商,可以说是见证了电声技术在消费电子市场的每个发展阶段。那么,楼氏电子在DSP音频芯片领域有哪些布局?站在楼氏电子的角度,DSP芯片新的应用机会又会是在哪些领域?电子发烧友网邀请了楼氏电子AISONIC DSP部门业务负责人廖彬彬 (Robin Liao) 一起交流相关话题。
[嵌入式]
耳机细分领域潜藏机遇,楼氏电子<font color='red'>DSP</font>芯片多重布局突破性能瓶颈
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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