摘 要:工业领域的设备集成化、数字化、网络化、智能化已是必然趋势,“信息孤岛”早已不能适应当今的信息化,急需将现场设备的控制与数据采集网络化,那么具有通信作用的智能节点是使设备网络化的关键。CP2200是工业领域最小的以太网控制器,它再与单片机相结合,便可实现以太网智能节点,来完成工业领域中现场数据采集与控制的任务。
关键词:智能节点;以太网;CP2200;TCP/IP协议
1.引言 随着信息技术的发展,互联网已经越来越深入人们的工作和生活,测控系统也逐渐趋于网络化。在当今的测控系统中,连接在现场总线网络上的每一个节点,即传感器、变送器、执行器等都不再是单一功能的传统仪表,而是集数据采集、转换、控制、计算、报警、诊断及数字通讯等功能为一体的智能化设备亦称智能化模块或称智能节点[1]。 智能节点在实现通讯功能时应遵守一定的协议,在这一方面,以太网和TCP/IP协议己经成为使用最广泛的协议,而其它总线协议如RS485,RS232,CAN,LANWORKS,都只是一些局部系统的总线。如何实现以太网智能节点并进行传输数据,如何加载TCP/IP协议连接到互联网,成为嵌入式研究领域的一个新热点。 智能节点在网络测控中起着承上启下的作用。它位于传感器和执行机构所在的现场,一方面可以自主完成现场信息采集、处理及存储;另一方面又可将采集的信息通过以太网上传到PC机的人机交互界面进行数据的分析及显示,同时还可接受PC机的命令,根据系统需要对现场的执行机构实现多种控制功能。如若能够设计这样的智能节点,则应用领域非常广阔。
2.以太网控制芯片CP2200 2.1 CP2200简介 CP2200是以太网控制器[2],它包括了一个集成了IEEE802.3 Ethernet的媒体访问控制器(MAC),10ba
se-T物理层(PHY),8kB非易失性Flash存储器。48脚TQFP封装。CP2200可以为具有11个以上端口I/O引脚的任何微控制器或主处理器增加以太网通信功能。8位并行总线接口支持Intel和Motorola总线方式,可以使用复用或非复用方式寻址。有方式选择引脚,用于配置总线接口方式。在非复用方式,数据传输速率可以超过30Mbps。 片内FLASH存储器可用于存储用户常数、Web服务器内容或作为通用非易失性存储器。FLASH存储器的最后6个存储单元已在出厂前被预先写入了唯一的48位MAC地址,消除大多数嵌入式系统的生产过程中必不可少的序列化步骤。 CP2200有4种不同水平的功能功率模式,允许主处理器管理总的系统功耗。中断选择引脚还允许主处理器进入“sleep”模式,并且当数据包到达或者是当CP2200被插入到网络时有自动唤醒的功能。全/半双工自适应。[align=center]
图2-1 CP2200系统框图[/align] 2.2 CP2200系统框图 2.3 CP2200的缓存和Flash存储器组织结构[align=center]
图2-2 CP2200的缓存及Flash存储器组织结构图[/align] 如图2-2所示,CP2200拥有2K的发送缓存和4K接受缓存,发送缓存和接受缓存共享相同的地址空间,都通过RAMADDRH:RAMADDRL指针来存取;以及拥有独立地址空间的8K片内FLASH,通过FLASHADDRH:FLASHADDRL指针存取。 2.4 CP2200的寄存器 主控可通过并行接口访问CP2200的直接或间接寄存器,进而控制CP2200。CP2200/1有114个内部直接寄存器和9个间接寄存器。这些寄存器基于功能被分成11个类别组:中断状态和控制寄存器、复位源寄存器、功率模式寄存器、发送状态和控制寄存器、接受接口状态和控制寄存器、接受缓存状态和控制寄存器、FLASH存取寄存器、MAC访问寄存器、MAC间接寄存器和PHY状态和控制寄存器。[align=center]
图3-1 C8051F020与CP2200的连接原理图[/align]
3.智能节点的连接原理图 本系统采用非复用方式,C8051F020的P7口作为数据总线连接CP2200的D[0:7];P6口作为地址总线连接CP2200的A[0:7];P5.7作为CP2200的片选;C8051F020的P4.5连接CP2200的 来进行复位操作,而且至少要维持15μs的低电平。CP2200工作于中断方式。CP2200有14个中断源,当某一事件发生时,通过 向C8051F020的 发出中断请求。
4.以太网通信接口软件设计[align=center]
图4-1 典型以太网帧[/align] 本系统设计采用的是IEEE802.3以太网协议。它的帧结构如图4-1所示。物理信道上的收发操作均使用这个帧格式。其中,前导序列、帧起始位、CRC校验及必要的填充均有由硬件自动添加/删除,与上层软件无关。Length/Type是类型字段,表明该帧的数据类型,不同的协议的类型字段不同。如:0800H表示数据为IP包,0806H表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包(小于0600H的值是用于IEEE802的,表示数据包的长度)。Data是数据字段,该字段数据不能超过1500字节。因为以太网规定整个传输包的最大长度不能超过1514字节。由于以太网帧传输的数据包最小不能小于64字节,除去(Destination MAC Address, Source MAC Address, Length/Type及CRC共18字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补0填充至最小帧长64字节。 4.1 CP2200初始化流程 系统上电后必须初始化,才能够正常的工作,图4-2为初始化流程。 [align=center]
图4-2 CP2200初始化流程[/align] 4.2帧的接收发送流程 一旦系统初始化完成,C8051F020即可向主控PC发送采集的数据或响应主控PC的ARP请求,向主控PC发送自己的IP地址与MAC地址。 系统复位初始化完成后,若接受缓存、过滤器及散列表也被初始化,智能结点即可接受主控PC送来的命令、调控数据、下载更新程序或主控PC的ARP请求。当CP2200收到一个新帧,就通过中断通知C8051F020,然后如图4-3 帧收发送流程来读取帧。[align=center]
图4-3 帧收发送流程[/align] 帧异常中止只出现于半双工模式,典型的原因是网络拥塞。 4.3 TCP/IP裁剪与设计 智能节点部分实际上是一个相对独立的单片机系统,要完成上传下达的任务,经常与主控PC通信,在有些应用环境中还要进行数据采集与处理的任务,相对来说就显得单片机系统资源有限。 而网络协议通常分层设计,TCP/IP协议一样也是一种分层结构。它是由基于硬件层次上的四个概念性层次构成[3],即网络接口层、互联网层、传输层和应用层。为了能够与主控PC在对等层上实现通信,为此在我们的智能节点中至少还应该设计并实现IP协议与TCP或UDP协议。 但是TCP/IP协议是一个非常庞大的体系,不可能将所有协议进行集成,只能在对TCP/IP进行裁剪的基础上,将它作为一种嵌入式应用,固化到单片机系统的ROM中,使数据传输按TCP/IP协议格式封装,从而达到在Internet上传输的目的。实现TCP协议需要大容量的数据存储器来存储等待应答的数据信息。如果多个TCP连接同时建立,就需要提供额外的RAM来存储连接信息,如IP地址、端口号、缓冲指针等。而UDP的首部仅仅8字节,相对于TCP首部20~60字节,显得更加紧凑,它有较高的数据传输效率,而且UDP是无连接协议,它允许使用一种更轻便、更快速的接口,更能够适应于工业中的实时性,这在单片机的嵌入式应用中更具有优越性。因此,我们在智能节点的高层协议设计中选择UDP作为传输层协议,而没有采用TCP。此外还实现了ARP,ICMP及IP协议,其它协议和TCP协议一起均被裁剪。 在设计时我们在充分考虑实时性要求同时,还应兼顾网络的拥塞状态与利用率。因此不能每采集一个数据就马上实施通讯过程,这样因要携带过多的各层协议首部而降低线路利用率。若每次都组织数据达到1500字节大小的数据包再发送,那么又降低了实时性,所以我们取256字节作为一帧数据为单位实施一次通信过程。
5.智能节点主程序流程图[align=center]
图5-1 智能节点主程序流程图[/align]
6.小结 在当今工业领域急切追求设备的集成化、数字化、网络化、智能化,如何来实现现场设备的网络化呢?以太网智能节点在这样的应用中就显得特别重要。本文作者创新点:利用以太网控制器芯片CP2200实现了以太网智能节点硬件到软件的设计,在应用于某一领域时只要稍加修改,便可以发挥它强大的通信与数据采集及控制功能。
参考文献: [1] 冯冬芹.以太网与TCP/IP[J].自动化仪表.2003.24(5):67-70 [2] User Manual of cp220/1. http://www.silabs.com. [3] 谢希人.计算机网络(第四版)[M].北京:电子工业出版社.2003.6 [4] 门磊等,李玉强等.基于以太网嵌入式系统研究[J].沈阳工业大学学报,2004.4. [5] User Manual of C8051F020/1/2/3. http:// www.silabs.com. [6] 习博 方彦军. 工业以太网中网络通信技术的研究. 微计算机信息.2005.21(2):148-149 [7] 罗智佳等. 基于以太网的分布式数据采集
监控系统的应用. 微计算机信息.2006.22(1):22-24