3UF7103-1BA00-0 自定义网络协议
在嵌入式网络系统中,可以使用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所示。
3UF7103-1BA00-0
3UF7103-1BA00-0 IC693MDL753 IC693MDL754 IC693MDL760
IC693MDL916 IC693MDL930 IC693MDL931
IC693MDL940 IC693MDR390 IC693MLX000
IC693MSC301 IC693NIU004 IC693PBM200
IC693PBS201 IC693PCM300 IC693PCM301
IC693PCM311 IC693PIF301 IC693PIF350
IC693PIF400 IC693PRG300 IC693PTM100
IC693PTM101 IC693PWR321 IC693PWR322
IC693PWR324 IC693PWR328 IC693PWR330
IC693PWR331 IC693PWR332 IC693TCM302
IC693TCM303
IC697ACC621 IC697ACC624
IC697ACC644 IC697ACC700 IC697ACC701
IC697ACC702 IC697ACC715 IC697ACC720
IC697ACC721 IC697ACC722 IC697ACC723
IC697ACC724 IC697ACC726 IC697ACC727
IC697ACC728 IC697ACC729 IC697ACC730
IC697ACC732 IC697ACC735 IC697ACC744
IC697ACC775 IC697ACC800 IC697ACC801
IC697ACC802 IC697ACC803 IC697ACC804
IC697ACC805 IC697ACC820 IC697ACC821
IC697ACC822 IC697ADC701 IC697ADS701
IC697ALG230 IC697ALG234 IC697ALG320
IC697ALG324 IC697ALG440 IC697ALG441
IC697ALG444 IC697ALG445 IC697BEM711
IC697BEM713 IC697BEM721 IC697BEM731
IC697BEM733 IC697BEM741 IC697BEM761
3UF7103-1BA00-0