如图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协议的标准请求以及检测到设备插入后完成设备的枚举。