微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于DSP的嵌入式以太网接口转换器

基于DSP的嵌入式以太网接口转换器

时间:09-15 来源:互联网 点击:
3 接口转换器的软件设计

3.1 自定义网络协议

在嵌入式网络系统中,可以使用TCP/IP协议,但不够经济。原因是TCP/IP协议过于庞大,过于复杂,以至于效率低下。一方面是嵌入式系统各单元内部CPU的处理速度受限;另一方面,在某些特定场合特定任务的应用环境中TCP/IP功能冗余,阻碍了硬件效能的最大发挥。为此,针对特定的应用,制定相应的自定义网络协议,灵活方便,针对性强,经济实用。

下面单从数据应用的角度,定义一个简单、实用的以太网传输协议。

3.2 协议层次

系统参照ISO的OSI模型,采用缩减的网络体系结构。如图3所示,网络体系结构分为3层:物理层、数据链路层和应用层。物理层规定网络的拓扑形式及通信信号的电气特性;数据链路层实现点到点的通信规程,完全执行IEEE802.3的CSMA/CD协议。



3.3 帧结构  

以太网帧结构如下:



物理层的前同步码(即物理帧前导符+物理帧界定符)8字节由硬件自动生成。除去这8个字节,将其余字段的长度加起来,可以得到以太网帧的最大长度为1 518字节,最小长度则为64字节;加上8字节的前同步码,即可得到最小帧长度为576位。这样长度的帧能够保证所有冲突都可以检测到。这是因为IEEE 802.3标准中,两个站点的最远距离小于2 500 m,由4个中继器连接而成,其冲突窗口为2倍电缆传播延迟加上4个中继器的双向延迟之和,合计为51.2μs。就10 Mbps以太网而言,这个时间段内等于发送64字节(即512位)的数据。  

使用CSMA/CD作为一种访问控制方式,意味着最短数据帧长度与网络上最长传输延迟时间间隔有着密切的关系。要保证在发送过程中出现冲突时,冲突域内的所有结点都应该知道发生了冲突,以便采取适当的措施。这就需要最短数据帧长度必须大于网络上的最长传输延迟时间间隔,再加上阻塞附加时间和同步延迟时间等。这就是IEEE 802.3标准中最短帧长度为64字节的由来。

其中应用层帧类型分为数据帧和数据确认帧两种,具体结构如下:



由于数据帧长度可变,又由于数据确认帧的MAC层长度仅为18字节,故在网络控制器初始化时须设置MAC层PAD填充功能(即MAC帧长度少于64字节时,网络控制器自动将其填充至64字节后再交给物理层)。  

自定义数据帧的预留管理单元还可以制定一些简单的控制或管理信息帧,以便更好地扩充功能和组织软件。限于篇幅,兹不赘述。如想连入Internet,需要在系统中加入一个能够转换本协议和TCP/IP协议的前端网关(实质上是一个交互翻译的软件系统)。

3.4 程序设计流程

本接口转换器所要实现的功能是把从RS232串口接收到的串口数据转换成以太网帧格式发送到以太网,并把从以太网上接收到的帧数据解包转换到串口传送。程序设计中包含初始化程序、主循环、串行接口程序和网络通信接口程序。  

程序运行首先进行初始化工作,包括初始化CS8900A、初始化串口和初始化一些参数,然后进入主循环。主循环内循环运行CS8900A中断服务查询程序和串口缓冲区查询程序,若有CS8900A中断申请,则中断调用网络通信接口程序;若串口缓冲区有数据,则中断调用串行接口程序。流程如图4所示。



(1)串行接口程序

串行接口程序是DSP通过16C2550向外部数据口进行数据接收、发送的程序,目的是进行数据传输。此程序包括串口发送接收程序及数据组织程序。发送和接收通过中断并发处理。整个串口发送程序在主循环中调用。其模块的流程为:

发送 收到网络串口数据→打开数据口→中断发送;

接收 中断接收→整理串口数据→发送到网络上去。发送和接收逻辑流程如图5所示。



(2)网络通信接口程序

网络接口程序是DSP通过CS8900A对系统的其他单元发送命令和接收信息的程序,目的是与系统的其他单元通信,接收与发送数据包和信令数据包。此程序包括网络数据接收程序、网络数据发送程序、数据组织程序。发送与接收服务程序流程如图6所示。



结语

该接口转换器已成功地应用于车内的数字式语音通信系统之中。结果表明,本方案成功地实现了数据的实时传输,可以给各种应用RS232串口进行数据传输的嵌入式系统的联网操作提供接口解决方案。本方案预留了升级扩展的功能。接入PCM编码器并对程序作出相应改动,可实现语音的数字化网络通信;接入A/D转换器和各种传感器可实现数据采集系统的联网。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top