本地控制器网络(CAN)[2]由于低成本和高可靠性,已经在工业分布式控制系统中广泛使用。以太网的低成本和易配置特性也使得其在计算机通信网络中广泛应用。本文介绍了基于以太网和控制器区域网总线通信系统的集成通信网关系统的开发。系统开发的目的是在以太网和控制器区域网总线之间交换实时控制信息,以实现分布式控制和监测。
1 硬件平台设计
嵌入式处理器可编程逻辑电路设计方面最大的挑战之一就是为适合速度要求非常广泛的应用。在低端,系统要求可能少于10MIPS;在高端,系统可能要求好几百MIPS。不同系统需要的范围不同。完全满足范围需要的解决方案需要提供可编程设备配置、操作以及精通嵌入式处理器的用户。网关系统的设计建立在Altera Excalibur[3]嵌入式处理器基础上,它可以提供最佳的解决方案,拥有较优的适应性和强大的性能。基于核心部分SOPC[4]的ARM系统设计结构如图 1所示。控制器网关结构如图2所示。
1.1 软核CAN控制器设计
使用AMBA总线接口的Soft CAN控制器是为了进行控制器网络通信设计开发的,它能在网关系统平台上运行。该Soft CAN控制器具备CAN 2.0B[1]规范的所有协议功能,包括错误处理能力、填充位产生、循环冗余码校验(CRC)、主动/被动错误帧和扩展帧技术支持。Soft CAN控制器也能支持如下应用发展:信息过滤、信息封装、信息发送缓冲、信息接收缓冲以及发送、接收和错误事件的中断触发。Soft CAN控制器提供AMBA兼容接口以实现数据高速传输,也提供中断支持实现系统快速响应。
1.2 Soft CAN控制器模拟验证
Soft CAN控制器模拟验证平台设计如图3所示。
Soft CAN控制器的综合模拟/验证输出波形(如图4)说明了其控制器工作状态正确。
从图4所示的验证输出结果,可以得出以下结论:
(1)Soft CAN控制器#1状态:
“00000000000000000000000000001000” -->Soft CAN控制器正在控制CAN数据线信号。
(2)Soft CAN 控制器#2状态:
“00000000000000000000000000001000” --> Soft CAN控制器正在控制CAN数据线信号。
(3)Soft CAN 控制器#1 TX缓冲器:标识 -“11101101000”,数据-“10011001100110011001100110011001”。
(4)Soft CAN 控制器#1 TX缓冲器:标识- NA,数据-NA。
2 软件设计
软件设计包括实时操作系统[5]移植、异常处理支持、设备驱动程序开发和文件系统开发等。
2.1 实时操作系统移植
eCos被成功地移植到网关系统硬件平台,为应用系统的开发提供实时服务。由于eCos的分层结构使得其移植灵活并容易,所有结构和平台的绝对代码都在硬件抽象层(HAL)实现。
2.1.1 系统启动模式
本系统移植提供四种启动模式。
(1)ROM启动模式。在ROM启动模式中,应用程序储存在EPXA1开发板的闪存中,并从那里启动。
(2)ROM-RAM启动模式。在ROM-RAM启动模式中,应用程序存储在闪存中。启动程序将先从闪存中运行,并且初始化系统。在系统初始化后,eCos应用程序将会从闪存中自动复制到SDRAM中,接着在SDRAM中以更高的速度运行。
(3)RAM启动模式。在RAM启动模式中,eCos应用程序会通过EPXA1板上的调试器(例如RedBoot加载到其板的SDRAM内存中)启动。这主要是为了调试。
2.1.2 线程管理
EPXA1 eCos移植完全支持多线程编程模式。除了任务同步支持外,它还提供了一系列可选择的调度算法。
2.1.3 系统定时支持
系统的定时基准由Altera EPXA1平台上的系统定时器提供,定时器频率为150MHz。系统的脉冲周期为10毫秒。在EPXA1 上移植的eCos控制通过内核使用的时钟或计时设备进行暂停、延时和调度服务,供系统内核使用。
2.2 异常处理
所有的异常,包括FIQ和IRQ中断[7],都跳转到矢量0地址,每个中断矢量占4字节。这里仅有一个指令空间,它须立即跳转到内存中更高地址的代码。中断源必须进行解码。由于每一个矢量服务例程都对应一个不同的CPU模式的入口,所以需要对每一个异常有一个不同的VSR,它知道怎样从中断控制器完全正确地保存CPU状态。这个异常处理机制包含一个分离的中断处理方案。在这个方案中,中断处理划分为两部分。第一部分称之为中断服务程序或ISR;第二部分是延迟服务程序或DSR。这种划分明确地顾及到了DSRs与正在执行的中断同时运行,因此允许当正在执行低级别的中断时其他内在具有更高优先级别的中断发生及接受处理。
2.3 设备驱动程序开发
2.3.1 闪存设备驱动程序
本项目开发了基于Intel 28F320C闪存的驱动程序。Boot-loader用它来储存映像、配置信息和闪存内的数据。这个设备驱动程序提供广泛的操作支持。
(1)闪存查询:可从闪存中重新获得厂商和零件号码代码。
(2)闪存区块擦除:擦掉闪存中的模块。
(3)闪存编程缓冲:允许在闪存中写入一缓冲的数据。
(4)闪存区段上锁/开启:允许闪存中的内容受到保护。
2.3.2 以太网接口设备驱动程序
以太网设备驱动程序支持以太网控制器SMC91C111,它可以提供双重速度10/100Mbps的通信支持。以太网设备Lan91C111提供所有发送、接收与事件中断等必要的功能,以支持与BSD TCP/IP 堆栈的集成实现TCP/IP网络协议。
2.3.3 Soft CAN控制器设备驱动程序
此设备驱动程序提供了对控制器区域网络通信的支持,以实现发送、接收及中断处理功能。图5为驱动程序流程图。
2.4 嵌入式文件系统开发
为了使信息保存与交换更加高效,本项目开发了基于闪存和RAM的文件系统。该文件系统提供广泛的文件操作支持:文件新建、文件删除、文件复制、文件重命名和文件移动,还有目录支持。文件系统可以交叉操作,文件可以在基于文件系统的闪存和RAM之间实现复制或移动。
2.5 调试支持
一般地,硬件模拟方法需要花费大量的资金。为了实现低成本设计,釆用了基于软件的调试方法。这个基于软件的EPXA1平台调试工具已经集成到该网关平台中,在系统开发中提供调试功能。这个调试器可以使用串行端口或以太网信道实现与主机间的通信。这个软件调试器提供一般的调试功能,诸如:单步运行、变量访问、处理器寄存器恢复、资源等级调试和断点支持。
3 系统集成
3.1 网络实时焊接控制系统应用
此应用提供了一个分布式的网络解决方案,以监控一个分布式的实时焊接控制网络。用户可以通过因特网监控SMD[8]定位焊接控制网络。SMD定位焊接系统如图6所示。
该应用系统基于嵌入式网络服务器的支持,为远程计算机动态生成需要的网页,即监控和配置。
3.2 系统验证以及结论
该网关系统的实时性能可通过使用仪器运行相关任务进行评测。对该整套实验操作所收集到的数据进行分析,得出平均值、最大值以及最小值;再计算出样品方差;测量出获得实时时钟计时数值所需的时间,再减去其他时间。所得到的数据说明,网关系统可以满足网关系统计数需求的实时性能。
为了确保监控系统的网页不会丢失任何控制器区域网信息,已采取了如下结构的接收计时测量方法:网络监控系统的控制器网络通信速度为125Kbps,系统运行频率为75MHz,控制器区域网络标准限制了最小间帧间隔为3位节拍。因而一个满荷的控制器网络中,控制器区域网络信息帧之间的空闲时间可以用式(1)计算:
从eCos的实时特性所显示的结果,可以得到中断反应时间为5.31微秒。所以可以从式(2)得到计时结果。
通过以上验证得知,网络监控系统网页能够监控SMD定位焊接控制网络,即使网络总线满荷时也不会丢失任何一个实时的监控信息。
参考文献
[1] ROBERT BOSCH GmbH.控制器网络标准2.0[P],1991.
[2] AUDSLEY N,BURNS A,RICHARDSON M et al.控制器网络的实时性能分析.IEEE 实时系统会刊(RTSS′94),1994,259-263.
[3] Altera Corp.EPXA1开发系统用户手册,2003.
[4] CHAUHAN P,CLARKE E M,LU Y et al.基于IP内核片上系统设计.第12届国际ASIC/SOC会刊,1999,27-31.
[5] LI Y,POTKONJAK M,WOLF W.嵌入式实时操作系统.国际计算机设计会刊,1997.
[6] MASSA A J.基于eCos的嵌入式软件开发.Upper Saddle River,New Jersey,ISBN:0-13-035473-2.
[7] SEAL D.ARM结构参考手册(第二版).Addison-Wesley Professional 2nd edition,ISBN:0201737191,2000.
[8] WU J,SMITH J S,LUCAS J.定位焊接系统设计.IEE国际测量工程会刊,1996.
[9] LI Q,YAO C.嵌入式系统实时系统.CMP Books,ISBN:1578201241,2003.