以文本方式查看主题 - 曙海教育集团论坛 (http://sun4.cn/bbs/index.asp) -- DSP系统和硬件开发讨论区 (http://sun4.cn/bbs/list.asp?boardid=5) ---- 基于TMS320F2812 DSP的网络通信系统设计 (http://sun4.cn/bbs/dispbbs.asp?boardid=5&id=1306) |
-- 作者:wangxinxin -- 发布时间:2010-11-13 11:53:34 -- 基于TMS320F2812 DSP的网络通信系统设计 摘 要:研究了DSP嵌入式系统连接以太网进行数据传输的方法。本系统采用了TMS320F2812 DSP作为主处理器,利用以太网控制器芯片RTL8019AS实现DSP系统与PC机之间的连接,完成通过网线从PC机传输数据到DSP,DSP再将数据通过网线回传到PC机上显示的基本功能。实验结果表明,基于DSP实现与以太网之间的互联是切实可行的,在嵌入式实时多任务环境中,将以太网通信作为多个任务中的一个,可以根据不同场合的需求进行通信方式的选择。 关键词: DSP; 控制; 以太网; 网络通信 以太网经过20多年的发展,已经成为现代互联网络中底层连接不可或缺的一部分,它组网方便,具有更好的开放性,成为当今最受欢迎的局域网之一。数字信号处理器(DSP)芯片作为一种特殊的嵌入式微处理器系统,是专门为实现各种数字信号处理算法而设计的,具有嵌入式的协处理器和用于快速数据处理的并行数据通道,其卓越的性能、不断上升的性价比及日渐完善的开发方式使它的应用领域越来越广泛,因此嵌入式网络开发的应用前景十分广阔,已经成为研究的热点。如何在DSP与PC机之间高速、可靠地进行通信,如何借鉴PC联网的成功经验将DSP联网,甚至与Internet对接,最直接的想法就是设计DSP与网卡的接口电路,通过对网卡直接编程,即可实现局域网内任意站点之间的通信。 1 总体方案设计 为实现网络通信控制系统的功能,本系统采用模块化结构。系统主要由DSP主控部分、网络接口和UDPTest组成。DSP主控部分主要完成信息处理和记录、控制并调度其他部分正常工作。网络接口部分对传来的信号进行处理,检测DSP、PC机的状态,确认后将信号按要求的传送命令传送出去。UDPTest用于对指定地址的接收和广播的数据包进行显示。以太网接口芯片部分完成数据网上传输的控制。基于DSP的网络传输的实现系统结构框图如图1所示。 2 硬件电路设计 RTL8019AS以太网控制器实现了以太网媒介访问层(MAC)和物理层(PHY)的全部功能。在本系统中,RTL8019AS采用跳线模式,将JP管脚经过一个10 kΩ电阻上拉接到5 V电源上。基地址的选择通过BD0~BD3管脚决定,直接将其悬空,基地址选择300H,其地址范围为0300H~031FH。中断选择由BD4~BD6决定,将其全部接入低电平,选择中断INT0。AUI管脚决定RTL8019AS与以太网连接方式,AUI为低电平表示是BNC或是UTP接口,所以直接将其悬空。网络接口的具体类型由PL0(BA14)、PL1(BD7)决定,将其接低电平,选择自动检测模式,即RTL8019AS会自动检测接口类型,如10Base-T是电缆信号则选择接口类型为UTP, 否则选择接口类型为BNC。 由于RTL8019AS工作电压为5 V,而数字信号处理器TMS320F2812的工作电压为3.3 V,所以RTL8019AS的输出信号要经过电平转换,中断信号也要经过电平转换反向送给DSP。TMS320F2812的输出电平符合RTL8019AS的输入电平范围,但是为了便于DSP与RTL8019AS的逻辑控制,还是通过译码电平变换以后将其连接。译码、电平变换及反向功能由74LVTH16245完成,采用I/O 方式RTL8019AS 交换数据。ISA为了兼容的需要设置了IOCS16B 信号线,DSP与RTL8019AS交换的数据为16位宽,所以将其通过10 kΩ上拉电阻接5 V电源。RTL8019AS的IOWB、IORB、AEN信号线通过DSP的IS、IOSTRB、R/W这三根线译码得到。 TMS320F2812与RTL8019AS的接口如图 2所示。 3 软件系统的设计 3.1主程序的设计 本系统主要是在嵌入式系统中实现TCP/IP协议栈,主要采用以太网IEEE802.3、IP、UDP、ARP等协议作为通信协议,传输数据通过以太网控制器完成。其主程序主要完成从UDP数据包中解析出完整的CAN协议报文,并存入数据缓冲区A中。同时,也可以将数据缓冲区B中完整的CAN协议报文封装成UDP数据报,然后将其发送到以太网上。 在数据发送前,先要对待传输的数据进行协议封装。以UDP数据报为例,首先对原始数据添加UDP头,包括源端口、目的端口、UDP数据长度和校验和4个字段,然后再添加IP头(包括源IP地址、目的IP地址)、校验和等字段,最后封装以太网IEEE802.3帧,包括目的CRC地址、源MAC地址和以太网帧总长度。其中源MAC地址为本地物理地址,由程序在初始化时设定。而IEEE802.3帧结构中的CRC校验由以太网硬件自动完成。至此,构造了一个完整的UDP数据报,就可以交给RTL8019AS进行发送了。对于接收到的数据包,主处理器对其进行拆解,将解包得到的IP地址与本地IP地址相比较,同时进行校验和验证,如果IP一致,则接收该数据包,否则将其丢弃;如果校验和不正确,则表示数据包传输过程中发生差错,但不产生差错报文,由应用层发现丢失的数据包并请求重传。 3.2 主程序流程图 主程序流程图如图3所示,DSP首先初始化网络设备。当有数据从RJ45传过来时,DSP对数据包进行分析,如果是ARP(物理地址解析协议)数据包,则程序转入ARP处理程序。如果是IP(网间协议)数据包且传输层使用UDP(用户数据报协议),端口正确,则认为数据报正确,数据解包后,送入数据缓冲区A,最后把数据部分通过CAN接口输出。反之,如果DSP从CAN接口接收数据,则将数据按照UDP协议格式打包,送入数据缓冲区B,由RTL8019AS将数据输出到局域网中。 3.3 中断服务子程序的设计 本系统采用中断方式来处理RTL8019AS 的收发。当主程序响应RTL8019AS的中断时,根据中断寄存器(ISR)的值来判定程序的走向,中断流程图如图4所示。 DSP 接收到外部INT0中断后检查状态寄存器ISR,如果PTX 位有效,则说明上一帧数据发送完成;如果PRX 位有效,表明接收到新的一帧数据。对于发送数据,先要进行载波冲突检测,在无冲突情况下,主处理器从发送物理帧队列读出一帧已封装好的IEEE802.3 帧数据,通过控制器的远程DMA 通道写到发送缓冲区,然后向命令寄存器CR 写入0x1E 控制字启动发送,控制器发送完一帧数据后再次向主处理器发出发送中断请求信号,如果物理帧队列不为空,则主处理器继续发送,否则返回。对于接收数据,主处理器从接收缓冲区读入一帧数据并对数据解包,将解包得到的IP 地址与本机IP 地址比较,如果一样,则接收该帧数据,否则丢弃该帧数据。读入一帧数据后判断接收缓冲区是否为空,不为空继续读取数据,否则返回。 基于DSP的网络通信系统因其显著的高效传输效果及体积小、重量轻、可靠性高等特点,已经在各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备等领域中得到广泛应用,取得了良好的经济效益和社会效益。实验表明, 本系统能够正确快速地接入以太网,可以从PC机上通过网线传输数据到DSP上,然后DSP再将数据通过网线回传到PC机上显示。采用实时操作系统μC/OS- II 可大幅加快软件的开发和调试进度。使用RTL8019AS 作为嵌入式系统以太网接口芯片是嵌入式设备接入以太网的一种尝试,与使用普通的PC机作Web服务器相比,此种方案节省费用、可移植性好、嵌入式设备和网络服务器的分离、可以方便地连接各种嵌入式设备以及简化了嵌入式网络设备的开发等优点。 |