>
首页 » 业界动态 » TCP/IP协议在挤奶机自动控制系统中的应用

TCP/IP协议在挤奶机自动控制系统中的应用

作者:  时间:2007-11-29 06:53  来源:

1 挤奶机控制系统简介

随着近年来我国乳制品产业的不断发展,挤奶机应用日益广泛。挤奶机的自动控制显得越来越重要,他能够完成管道自动清洗、自动挤奶、自动按摩、自动告警提示以及挤奶罩杯自动脱落等功能。目前的控制系统大都采用嵌入式设备作为控制器,驱动程序烧写在FLASH,E2PROM等存储设备里面,添加新的功能时,只需要把新的程序下载到存储器中就可以了。本文介绍的是一种基于ARM7LPC2210的挤奶机控制系统,他采用嵌入式操作系统μC/OSⅡ作为软件平台,具有高度集成,可扩展性强的特点。为了提高程序下载的效率和可靠性,增强控制系统的软件升级能力,程序的下载升级采用以太网通讯方式,由网口芯片RTL8019AS控制。这种通讯方式基于TCP/IP协议,数据传送效率和可靠性都优于已有的串口通讯方式,便于实现挤奶机控制系统的集中管理。

2 LPC22210和RTL8019AS

LPC2210是Philips公司生产的ARM7 LPC2200系列的32位微控制处理器。他拥有基于一个支持实时仿真和跟踪的32位ARM7TDMI-SCPU。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。LPC2210内置了宽范围的串行通信接口,他们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其他各种类型的应用。器件还提供了以太网、802.11以及USB功能。

RTL8019AS是由台湾Realtek公司生产的以太网控制器。他符合Ethernet II与IEEE 802.3标准,100脚的PQFP封装,采用全双工收发并可同时达到10 Mb/s的速率,内置16 kB的SRAM,支持8/16位数据总线,8个中断申请线以及16个I/O基地址选择等。

RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、数据编解码逻辑和其他端口。其中MAC逻辑能通过以下的过程来实现以太网数据包的发送和接收。当单片机向网络发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓冲区,然后发出传送命令,当RTL8019AS完成了上一帧的发送后,再开始下一帧的发送。RTL8019AS接收数据时,首先把接收到的数据通过MAC比较和CRC校验,然后由FIFO存到接收缓冲区,收满一帧后,以中断或寄存器标志的方式通知主处理器。在RTL8019AS中FIFO逻辑对收发数据作16字节的缓冲以减少对本地DMA请求的频率。

RTL8019AS通过16位总线与LPC22210的外部总线接口连接,数据总线D1~D15与芯片SD0~SD15连接,由于RTL8019AS工作电压是5 V而LPC2210的I/O电压为3.3 V,所以在总线上串接470 Ω保护电阻。RTL8019AS芯片的Vih最小值为2.0 V,所以与LPC2210连接不需要加电平转换芯片。

RTL8019AS芯片工作在跳线模式,基地址为0x300,所以SA6,SA7,SA10~SA19均接地,SA9,SA8接电源。SA0~SA4与LPC2210的地址线A1~A5连接,SA5与片选信号nCS2相连,nCS2片选信号由LPC2200的CS3,A23,A22,A21进行地址译码后得到,SA5为0时,选中RTL8019AS芯片,其操作地址为0x82000000~0x8200001F。详细的接口电路图如图1所示。

3 μC/OSⅡ和ZLG/IP

嵌入式操作系统μC/OSⅡ只是一个实时操作系统的内核,没有集成TCP/IP协议栈,需要一个合适的TCP/IP协议栈移植到他上面。

ZLG/IP由周立功单片机公司开发,他基于μC/OSⅡ,是面向嵌入式系统的小型TCP/IP协议栈,使用μC/OSⅡ实时操作系统的信号机制来实现一个多任务并行可重人的协议栈。他采用ANSIC编写,支持TCP,UDP,IP,ICMP,ARP和Ethernet等协议。

图2是ZLG/IP软件系统结构框图,其中灰底部分表示一个任务,所以ZLG/IP一共有3个任务。第一个是接收ICMP,ARP处理任务,第2个是UDP接收处理任务,第3个是

TCP接收处理任务。接收任务与UDP和TCP任务的通信是通过消息队列来进行的。而UDP和TCP任务是通过SOCKET接口与应用层的程序进行通信的。

4 ARP协议处理程序

4.1 ARP协议介绍

地址解析协议(Adddress Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDI IP网络中使用。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据链路层(MAC层,也就是相当于OSI的第二层)的MAC地址。

假设:

计算机A的IP为192.168.1.10,MAC地址为00-01-0F-30-19-01;

计算机B的IP为192.168.1.22,MAC地址为00-11-43-1F-30-0E;

ARP工作原理如下:

在TCP/IP协议中,A给B发送IP报文,在报文头中需要填写B的IP地址为目标地址,但这个IP报文在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址。

计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP协议。

在A不知道B的MAC地址的情况下,A就广播一个ARP请求报文,请求报文中填有B的IP地址(192.168.1.22),以太网中的所有计算机都会收到这个请求,而正常的情况下只有B会单播发送ARP应答报文,报文中就填上了B的MAC地址(00-11-43-1F-30-0E),并回复给A。与此同时,计算机B会根据请求报文中的源IP地址和源MAC地址,更新自己的ARP表表项。

A得到ARP应答后,将B的MAC地址加入本机的ARP表,便于转发使用。

本机的ARP表表项是有生存期的,生存期结束后,将再次重复上面的过程。

4.2 ARP协议处理程序的开发

下面以ARP协议报文发送和接收处理为例,介绍网口驱动程序的开发。

ARP协议处理主要是针对ARP表的处理,包括对接收到的ARP请求报文的应答、ARP表表项的添加和刷新,以及网关MAC地址的保存等。ARP报文结构内容如下所示:

驱动程序编写分3部分:ARP初始化,ARP请求的发送和ARP报文的接收处理。

4.2.1 ARP初始化

ARP初始化函数的主要功能是,初始化各个网络接口默认网关的MAC地址的生存时间;然后对各个网络接口的网关发送ARP请求报文,请求获取对应的MAC地址。

程序流程图如图3所示。

4.2.2 ARP请求

ARP请求函数的输入参数是指针*ip address,用于指出目的IP地址和指向发送的网络接口号(默认值是0)。该函数的的功能是,将相应参数写入ARP报文的缓冲区(即初始化结构体ARP中的成员),然后发送出去。

4.2.3 ARP报文处理

在接收到ARP报文以后,需要调用ARP报文处理函数。该函数的输人参数包括接收到数据的起始指针*ARP PTR,以及指向接收的网络接口号(默认值是0)。函数的主要功能是判断接收到的ARP数据报文是属于ARP请求还是ARP应答(判断ARP结构体中的Operation)。如果是ARP应答,则调用ARP应答报文处理函数进行处理;如果是ARP请求,则调用ARP请求报文处理函数进行处理。

程序流程图如图4所示。

ARP请求处理函数主要负责对ARP表的更新和对ARP请求的应答,他的输入参数包括接收到数据的起始指针*ARP_REC_ PTR,以及指向接收的网络接口号(默认值是0)。该函数的处理过程是,首先检查接收到的ARP请求报文中的目的IP地址是否为本网络接口对应的IP地址,然后根据接收到的ARP请求返回一个对应的ARP应答报文,再检查该报文的源IP地址是否与本机IP属于同一子网。如果是,则检查ARP表是否有对应的表项。若有,则刷新表项的生存时间,否则,增加ARP表表项。程序流程图如图5所示。

ARP应答处理函数主要负责对ARP表项的更新,他的输入参数包括接收到数据的起始指针*ARP_REC_REQ_PTR,以及指向接收的网络接口号(默认值是0)。该函数的处理过程是,首先检查接收到的ARP应答报文中的源IP地址是否为本网络接口的网关IP,如果是,则保存网关的MAC地址,然后再检查源IP地址是否与本机IP地址属于同一子网。如果是,则检查ARP表是否有相应表项。若有,则刷新表项的生存时间,否则,增加ARP表表项。程序流程图如图6所示。

5 软件的调试与验证

调试环境包括SmartARM 2200开发板,PC机带网卡及网线和串口线。在ADS环境下编写并编译程序,将编译后的驱动程序通过JTAG口下载到开发板上,实现数据报的收发功能。实验中,首先通过在PC机上采用Comm-View软件对网络通讯的数据包进行跟踪,通过Comm-View发送ARP请求报文,获取网口芯片的MAC地址,实现ARP协议(地址解析协议)的正常工作,通过串口回送ARM芯片工作情况,效果良好。

6 结 语

通过采用μC/OSⅡ嵌入式操作系统,使用ZLG/IP软件开发包,LPC2210芯片控制RTL8019AS实现TCP/IP协议,系统扩展能力强、稳定性高,具有广阔的应用前景。在实现奶牛场自动化挤奶的解决方案中,能够为PC机远程管理挤奶设备提供技术支持,实现程序的在线升级,也有助于网络平台控制奶牛场的日常挤奶和管理工作。随着技术的进一步发展,以太网通讯也有望成为各个控制器之间自主通信的方式。

相关推荐

统一通信必须要回归本质

IP  通信  2013-08-23

芯片设计全程服务成国内企业切入IP布局关键点

芯片设计  IP  2013-07-01

Gartner公布2012全球IP厂商排名

ARM  IP  2013-06-14

Cadence宣布收购Tensilica

Cadence  IP  2013-03-13

IP RAN将成未来移动承载方向

IP  RAN  2011-09-06

基于TCP/IP及蓝牙技术的家居安防系统设计

家居安防  TCP  IP  蓝牙  2011-08-16
在线研讨会
焦点