以太网控制器接□模块的设计思路
发布时间:2008/11/25 0:00:00 访问次数:514
1 硬件部分
大部分嵌入式系统都有一个用来进行状态和系统诊断的外部界面,传统上是用串口终端的形式实现的,但在⊥业控制巾远程诊断有很大优势。因为web浏览器使用广泛,所以它是用户界面的合理选择。从技术上讲,浏览器就是web客户端,这就意味着嵌入式系统必须是web服务器。本模块是一个微型、可用的web服务器,它可以监控连接在系统lo口总线上的家用电器和各种传感器的状态。
在本模块中,微处理器选择microchip公司的8位单片机plc16f877。为了驱动以太网控制器,微拄制器必须模拟pc isa总线的读写周期。
(l)设昔地址.
尽管以太网控制器有20条地址线(a0~a19),但除了5条以外都能以硬连接方式进行调塑,以捉供信号或接地,剩下的5条线用来选择感兴趣的寄存器。
(2)设置数据线.
在 个读周期里,微控制器的数据线一定作为输入;在一个写周期里它们一定是输出,并且设置为数据的字节值。
(3)维持读或写的信号。
信号是活动低电平,所以无论读或写都必须设置为低电平。
(4)读获取数据。
如果是读周期,获取数据。如果读数据线维持信号并且地址正确,以太网控制器将驱动数据总线,于是就 可以读取数据。
(5)撤销读写信号。
如果是一个读周期,以太网控制器将会停止驱动数据总线;如果是写周期,将会锁住从微控制器接收来的 数据。
(6)取消对数据线的设置。
使微控制器输出驱动程序无效,为其他应用释放数据总线。
微控制器上需要下列i/o线:
· 1条读输出线和1条写输出线:
· 5条地址输出线,它们只有在以太网芯片被访问时才有意义,因此也可以被用作其他用途;
· 8条双向数据线,同样地,它们也只有在以太网芯片被访问时才有意义。
2.软件部分
由于本实例采用的是一个单片机系统,处理速度和存储容量都十分有限,所以,在tcp/ip协议的选用方面 ,采用下列4种tcp/ip协议。
(1)arp协议。
在以太网上把报文从一台机器发送到另一台机器,如果不知道目的机器的物理地址就会发生问题。为了解 决这个问题,开发了地址解析协议(arp)。arp的任务是把ip地址转化成物理地址,这样做就消除了应用程 序需要知道物理地址的必要性。
arp请求是以广播的形式发送的。因此,同一网络的所有主机都能接收到arp请求。当nic接收到网络上的广 播帧并经过判断是arp请求后,要进一步判断是否是目的ip,是否与自己的ip地址一致。如果是,发出arp应 答,否则,丢弃该帧。
本模块中,嵌入式web服务器不会主动向某一p地址发出数据帧,因为它是被动的,它只接收来自客户的服 务请求,为客户提供服务。因此,web服务器只需处理arp请求,发回arp应答即可。
在arp协议中,只对arp应答部分进行实现。在arp数据报中,将以太网首部算在内也只有42字节,首先将其 向pic单片机的内置ram中发送,然后按照arp协议,如果是自己的ip请求的话,将arp应答送出。
(2)ip协议。
ip协议是tcp/ip协议族中最为核心的协议。其他的协议都要靠ip传送或接收数据,亦即不管数据的最终应 用,所有流进流出的数据都要经过ip。
针对嵌入式web服务器的特点,对ip协议作如下处理。
首先对接收到的ip数据报进行处理,向上层协议进行提交。
然后对rap报文、icmp报文进行封装,交给数据链路层进行装帧。当网卡收到发给自己的数据帧后,对以太 网首部中的帧类型字段进行判断,如果该字段为0x0800,说明后面的数据为ip数据报,将该数据报交ip层处理。p协议判断此数据报的ip首部中目的ip地址字段与本地ip地址是 否一致,如不一致,丢弃该数据包;如一致,进行p首部校验和检查,当其无误时,去掉ip首部,将数据提 交上层处理。
在本模块中,首先从rtl8019as中将ip首部的1个字节发送,在该首部1个字节中,记录有ip首部的长度, 然后,继续发送剩余部分字节。虽然ip首部通常有20个字节,但如果包含选项字段的话,其首部将会变长, 因此,必须检查ip首部的长度。接收ip首部后,根据ip首部中的协议字段决定交给icmp协议还是rap协议处 理。
(3)icmp协议。
icmp是internet控制报文协议,是ip的一个附件,用于帮助网络上所有节点实现简单的诊断并返回错误消 息。它传递差错报文以及其他需要注意的信息。icmp报文通常被p层或更高层协议(tcp或udp)使用。
ping程序是对两个tcp/ip系统连通性进行测试的工具。它只利用icmp回显请求和应答报文。构造回显应答 报文比较简单,代码字段总是0,标识符和序号字段设置成请求的发送方,回答中也不作修改。源系统可以 用这些字段匹配请求和回答。
在
1 硬件部分
大部分嵌入式系统都有一个用来进行状态和系统诊断的外部界面,传统上是用串口终端的形式实现的,但在⊥业控制巾远程诊断有很大优势。因为web浏览器使用广泛,所以它是用户界面的合理选择。从技术上讲,浏览器就是web客户端,这就意味着嵌入式系统必须是web服务器。本模块是一个微型、可用的web服务器,它可以监控连接在系统lo口总线上的家用电器和各种传感器的状态。
在本模块中,微处理器选择microchip公司的8位单片机plc16f877。为了驱动以太网控制器,微拄制器必须模拟pc isa总线的读写周期。
(l)设昔地址.
尽管以太网控制器有20条地址线(a0~a19),但除了5条以外都能以硬连接方式进行调塑,以捉供信号或接地,剩下的5条线用来选择感兴趣的寄存器。
(2)设置数据线.
在 个读周期里,微控制器的数据线一定作为输入;在一个写周期里它们一定是输出,并且设置为数据的字节值。
(3)维持读或写的信号。
信号是活动低电平,所以无论读或写都必须设置为低电平。
(4)读获取数据。
如果是读周期,获取数据。如果读数据线维持信号并且地址正确,以太网控制器将驱动数据总线,于是就 可以读取数据。
(5)撤销读写信号。
如果是一个读周期,以太网控制器将会停止驱动数据总线;如果是写周期,将会锁住从微控制器接收来的 数据。
(6)取消对数据线的设置。
使微控制器输出驱动程序无效,为其他应用释放数据总线。
微控制器上需要下列i/o线:
· 1条读输出线和1条写输出线:
· 5条地址输出线,它们只有在以太网芯片被访问时才有意义,因此也可以被用作其他用途;
· 8条双向数据线,同样地,它们也只有在以太网芯片被访问时才有意义。
2.软件部分
由于本实例采用的是一个单片机系统,处理速度和存储容量都十分有限,所以,在tcp/ip协议的选用方面 ,采用下列4种tcp/ip协议。
(1)arp协议。
在以太网上把报文从一台机器发送到另一台机器,如果不知道目的机器的物理地址就会发生问题。为了解 决这个问题,开发了地址解析协议(arp)。arp的任务是把ip地址转化成物理地址,这样做就消除了应用程 序需要知道物理地址的必要性。
arp请求是以广播的形式发送的。因此,同一网络的所有主机都能接收到arp请求。当nic接收到网络上的广 播帧并经过判断是arp请求后,要进一步判断是否是目的ip,是否与自己的ip地址一致。如果是,发出arp应 答,否则,丢弃该帧。
本模块中,嵌入式web服务器不会主动向某一p地址发出数据帧,因为它是被动的,它只接收来自客户的服 务请求,为客户提供服务。因此,web服务器只需处理arp请求,发回arp应答即可。
在arp协议中,只对arp应答部分进行实现。在arp数据报中,将以太网首部算在内也只有42字节,首先将其 向pic单片机的内置ram中发送,然后按照arp协议,如果是自己的ip请求的话,将arp应答送出。
(2)ip协议。
ip协议是tcp/ip协议族中最为核心的协议。其他的协议都要靠ip传送或接收数据,亦即不管数据的最终应 用,所有流进流出的数据都要经过ip。
针对嵌入式web服务器的特点,对ip协议作如下处理。
首先对接收到的ip数据报进行处理,向上层协议进行提交。
然后对rap报文、icmp报文进行封装,交给数据链路层进行装帧。当网卡收到发给自己的数据帧后,对以太 网首部中的帧类型字段进行判断,如果该字段为0x0800,说明后面的数据为ip数据报,将该数据报交ip层处理。p协议判断此数据报的ip首部中目的ip地址字段与本地ip地址是 否一致,如不一致,丢弃该数据包;如一致,进行p首部校验和检查,当其无误时,去掉ip首部,将数据提 交上层处理。
在本模块中,首先从rtl8019as中将ip首部的1个字节发送,在该首部1个字节中,记录有ip首部的长度, 然后,继续发送剩余部分字节。虽然ip首部通常有20个字节,但如果包含选项字段的话,其首部将会变长, 因此,必须检查ip首部的长度。接收ip首部后,根据ip首部中的协议字段决定交给icmp协议还是rap协议处 理。
(3)icmp协议。
icmp是internet控制报文协议,是ip的一个附件,用于帮助网络上所有节点实现简单的诊断并返回错误消 息。它传递差错报文以及其他需要注意的信息。icmp报文通常被p层或更高层协议(tcp或udp)使用。
ping程序是对两个tcp/ip系统连通性进行测试的工具。它只利用icmp回显请求和应答报文。构造回显应答 报文比较简单,代码字段总是0,标识符和序号字段设置成请求的发送方,回答中也不作修改。源系统可以 用这些字段匹配请求和回答。
在
上一篇:以太网控制器接□模块的元器件选型
上一篇:CAN总线接□模块的程序设计