1 EPA主控卡功能介绍
根据图1所示的EPA系统网络拓扑结图可知,EPA主控卡是一个符合EPA协议的现场设备,它将和其他的EPA现场设备一样,参与整个EPA网络组态、互操作、确定性调度等。EPA主控卡是连接各种协议的底层设备、I/O模块与上层软件的平台。模块和主控卡之间通过自定义的接口进行数据交换。因此,主控卡需要实现以下基本功能:
①信息转发功能。通过组态工作站完成信息的上载、显示、处理、发布以及下载。
②过程测量与控制。主控卡向I/O、总线模块传递数据采集命令/控制信息、这些模块作为应答向主控卡传送的过程变量测量数据以及其状态(好/坏)、设备状态信息等,并报告给监控层网络。
③管理功能。实现对现场总线模块、I/O模块的控制、管理。在系统运行过程中,对控制区域的模块进行自动识别、管理,并为其分配地址、空间,同时将新模块设备描述信息向上层组态软件报告。
④总线供电。主控卡总线供电功能,保证主控卡稳定工作。接入主控卡的线缆不仅能传送数据信号,还能给主控卡提供工作电源。
2 EPA主控卡硬件总体方案
根据主控卡功能需求分析,硬件部分主要有5大模块:CPU控制模块、以太网通信模块、USB主机模块、总线供电模块以及存储模块。图2为EPA主控卡硬件设计原理框图。其中CPU控制模块主要实现特定网络接口功能及执行相关控制信息;以太网PHY收发器KSZ8041NL和CPU内部集成的以太网控制器一起组成以太网通信模块,实现EPA主控卡的以太网接入和网络信息数据传输;
USB模块由CPU内部集成的USB主机控制器和外围电路构成,实现USB设备的热插拔、即插即用以及信息交换;总线供电模块RJ45接口在提供数据通信的同时还为现场设备提供总线供电;存储模块主要作为程序存储空间和内存。结合CPU特性,以太网PHY收发器采用RMII连接,存储模块通过总线连接。
2.1 ARM微处理器
CPU选用基于ARM7TDMI—S核的微处理器LPC2478,其运行频率高达72 MHz,具有高性能的32位RISC结构、16位的指令集,具有低功耗等特点。它的内部资源丰富,包括1个10/100M以太网媒体访问控制器(MAC)、1个带4 KB终端RAM的USB全速设备/主机/OTG控制器、4个U1AR-T、1个SPI接口、512KB片上Flash程序存储器。同时还带有1个4 MHz的片内振荡器、98 KB RAM(包括64 KB局部SRAM、16 KB以太网SRAM)以及1个外部存储器控制器(EMC)来支持上述的各种串行通信接口。这些特性使得它非常适用于通信网关和协议转换器,为多种类型的通信应用提供了理想的解决方案。
2.2 以太网PHY收发器
KSZ8041NL是Micrel公司推出的第6代PHY(局域网接口)解决方案。它具有功耗低、体积小、波形稳定、价格便宜等特点。该芯片拥有150 mW的低电耗,以及6kV的针对快速以太网收发器的高静电放电(Electro Static Discharge,ESD)保护功能。
2.3 存储模块
外部存储器采用美国SST公司的SST39VF1601。这是一个1M×16位的CMOS多功能Flash(MPF)器件,尤其适用于要求程序、配置或数据存储器方便和低成本的应用。对于所有的系统,SST39VF1601可以显著增强系统的性能和可靠性,降低功耗。
内存芯片(RAM)HY57V561620CLT—HI是一个32MB、16位的CMOS同步DRAM,它用于高带宽大容量的主存储器。HY57V561620CLT—HI的运行与时钟的高电平同步,所有数据的输入和输出都与输入时钟的上升沿相同步。数据通过内部的管道来达到非常高的数据带宽。所有的输入和输出电压电平都和LVTTL电平相匹配。
2.4 USB主机模块
LPC2478内部具有一个嵌入式USB主机控制器,遵循OHCI(Open Host Controller Interface,开放式主机控制器接口)规范。LPC2478的USB主机控制器结构如图3所示。
如图3所示,整个USB主机控制器都挂接在AHB总线上,内核与USB主机控制器的数据交换通过DMA接口完成,与USB寄存器的通信则通过寄存器接口来实现。该主机控制器具有两路端口,分别对应着两路LPC2478内置的模拟收发器(ATX)。这两路端口是完全一样的,可以根据实际情况自由选择。
2.5 电源模块
EPA控制器的电源通过以太网供电,即以太网在数据传输的同时输送电源,避免系统因电源不稳出现掉电的情况。采用RJ45接口的4/5、7/8作为电源和地传输线,数据收发1/2、3/6一起构成两个双绞线对,存在同一网线内,减少了扰动,增强了系统稳定性。供电输入电压DC-24 V,由于CPU内核和以太网PHY收发器、存储器的工作电压为3.3 V,所以需要对输入电压进行DC—DC转换,以满足系统需求。
2.6 调试模块
通过JTAG调试接口,可以很方便对程序进行跟踪调试。通过通用的串口,可以将调试信息打印到屏幕上,给调试带来了极大的方便。
3 EPA主控卡驱动软件设计
作为工业应用产品,需具有可靠性、准确性、实时性要求。在EPA主控卡软件开发过程中,采用模块化设计思想,以减少程序间耦合,增强代码的可移植性、可读性和可靠性,同时也方便测试、维护和升级。主控卡中软件功能模块的划分如图4所示。图中浅灰色模块为待移植或待开发的模块,深灰色模块为已经存在的模块,白色部分是本文将要实现的模块。
3.1 以太网驱动模块
此模块包含3个部分:
①以太网模块初始化。此模块主要完成PHY读写、以太网SRAM分配、接收和发送缓冲区初始化,以太网MAC的硬件设置、寄存器设置、工作模式配置以及中断配置等。
②以太网接收数据。此模块主要将缓冲区中数据读取并保存到接收缓冲区,并通知上层协议软件进行处理。数据包的接收由硬件自动完成,在接收数据完成后产生中断触发接收任务。
③以太网发送数据。此模块将上层协议(EPA协议、UDP/IP协议)数据包封装并拷贝到发送缓冲区中,然后由以太网PHY收发器自动完成数据发送。
3.2 USB HOST驱动模块
USB HOST驱动设计是基于LPC2478内部集成的嵌入式USB主机控制器的基础上的,该主机遵循OHCI规范。USB HOST设计包含以下两部分:
①OHCI规范的介绍。此模块介绍了OHCI工作范围——HCD(主机控制器驱动)和HC(主机控制器)、数据传输类型、HCD和HC各自的任务以及HCD和HC之间接口HCCA。
②USB HOST驱动设计模块。此模块实现硬件配置、中断配置和USB HOST协议设计。分为PDD(Plat-form-Dependent Driver,与硬件平台相关)层和MDD(Model Device Driver,与硬件平台无关)层。MDD主要包括HCD实现对HC的管理、根集线器的管理、OHCI规范的数据结构(ED/ TD/HCCA)、USB SRAM管理分配,USBD(USB核心驱动)实现USB协议的标准请求以及检测到设备插入后完成设备的枚举。
3.3 时钟模块
实时时钟是实时操作系统的时间基准,没有实时时钟,也就不可能有实时系统的一切活动。此模块包含两个部分:
①系统时钟模块。对定时器0的寄存器进行配置以及中断配置,使定时器0作为系统时钟。
②USB时钟模块。对LPC2478内部PLL(锁相环)寄存器和USB时钟寄存器配置,设置USB时钟频率,使LPC2478的USB主机控制器可以正常运行。
3.4 操作系统
嵌入式实时操作系统将复杂的软件工程分解成多任务,简化了软件设计,有助于提高系统稳定性和可靠性,也使系统实时性得到了保证。考虑EPA主控卡中较多模块实现,简化主控卡软件的设计,所以在EPA主控卡的软件开发中使用μC/OS-II系统。μC/OS-II操作系统有着优秀的稳定性和可靠性,它基于优先级调度的多任务,绝大多数的函数调用和系统服务具有可确定性、独立的任务栈等特点。
4 主控卡以太网通信与USB验证
4.1 以太网通信验证
为测试和验证主控卡硬件电路和以太网驱动的功能正确性,搭建了测试平台,如图5所示。上位机起到监控作用,EPA集线器一端通过网络和PC机相连,一端连接若干EPA标准设备和EPA主控卡。
以太网通信验证设备主要有:一台PC机、一根9针的串口线、一个带总线供电的EPA集线器、一个JTAG调试器、EPA主控卡。EPA主控卡与PC机通过EPA集线器连接在同一局域网内,EPA主控卡的IP地址为192.168.1.2,PC机的IP地址为192.168.1.161。
ICMP是Internet控制报文协议,它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。ICMP是一个“错误侦测与回报机制”,其目的就是检测网路的连线状况,也能确保连线的准确性。通过ICMP的回显请求和回显应答报文组合可以确定PC机和EPA主控卡能否彼此通信。
4.2 USB Host驱动验证
USB Host驱动验证设备主要有:1台PC机、1根9针的串口线、1个JTAG调试器、EPA主控卡、USB设备(U盘)。
为验证硬件USB接口和软件USB Host的正确性,需要选定USB设备,并为这个设备编写USB主机驱动程序。本文中选用了常用移动存储设备——U盘。在编写好U盘驱动后,通过JTAG调试器将USB Host下载到主控卡中,并将主控卡串口0与PC机串口相连,开启超级终端,然后将U盘插入主控卡主机端口。在U盘插入主控卡以后,开始对U盘枚举。枚举成功以后,往U盘内写入数据,然后从U盘读出数据并对读写数据进行比较,所有的枚举信息、读写信息都通过超级终端打印出来。在U盘读写完成以后,将U盘插入电脑,在电脑上读出U盘数据,再次验证主控卡USB主机的功能正确性。
结语
EPA标准成功进入国际标准,为我国工业自动化发展带来新的际遇,产生了巨大的社会效益。本文提出针对EPA主控卡的系统结构,并对主控卡进行功能需求分析,然后对主控卡硬件和软件进行了总体设计以及软件功能模块划分,为EPA的推广与应用打下坚实基础。