摘??? 要:针对传统微处理器平台中存在的接口速率瓶颈问题,本文提出采用基于SOPC技术的NIOS处理器来解决的方法,实验证明该控制器在工业以太网中具有很好的应用价值。
关键词:SOPC;嵌入式系统;工业以太网;NIOS
引言
随着工业以太网的大规模应用,嵌入式的工业以太网系统也越来越多的渗入到了工控领域,以Motorola ColdFire微处理器和ARM处理器为硬件平台的嵌入式工业以太网系统已经得到了广泛应用。但是,由于上述这些系统的开发平台并不完全针对工业以太网的应用情况,因此在实际应用中经常出现硬件资源浪费或者资源不够的问题,并且开发系统往往需要外接PLD芯片来进行外围器件的逻辑控制,存在接口速率的瓶颈问题。基于SOPC技术的NIOS处理器能解决这个难题。
硬件设计
控制器的硬件设计在SOPC Builder和QuartusII中完成。利用它们可以灵活定制NIOS CPU的各个特性甚至指令,可以使用Altera提供的大量IP来加快开发NIOS外设的速度,提高外设的性能,也可以使用第三方IP,或VHDL、Verilog来定制外设。
嵌入式工业以太网控制器的硬件分为三个部分:FPGA部分、
存储器部分和外围元件部分,如图1所示。本文选用的是FPGA是CYCLONE EP1C6。
在SOPC Builder中需要设计的是FPGA部分,要建的NIOS系统包含的元件模块有:一个NIOS CPU 核,用于连接NIOS核的Avalon总线控制器,一个存放启动和调试程序的内部存储器Boot ROM,一个UART串行通信电路模块(RS232核),一个内部定时器和一些通用IO外围接口模块。为使NIOS系统正常工作,在FPGA外围必须接有一个RS232通信口、RJ45、几个
发光管和
数码管以及16M的SRAM和4M的Flash ROM。
?
软件设计
由于在硬件开发中的NIOS CPU及其外设构成的系统是自定制的,存储器、外设地址的映射等都各不相同,因此需要专有的SDK(软件开发包)。在完成NIOS的硬件开发后,SOPC Builder能够自动生成SDK。
软件部分的开发几乎与通常的嵌入式系统的开发没有区别,的不同只在于:这里的嵌入式系统是自己定制的、裁剪过的,受到硬件的局限小一些。
考虑到性价比以及现场控制需要,控制器的操作系统采用了?Clinux。?Clinux符合GNU/GPL公约,完全开放代码,是专为控制领域而裁减设计的嵌入式操作系统。
整个嵌入式工业以太网控制器具有以下特点:
1) 很高的灵活性。这是本文设计的以太网控制器的特点。由于微处理器采用Altera公司的NIOS,使得系统资源能够灵活调配,并且克服了采用其它处理器中存在的接口速率瓶颈的缺点,适应工业以太网实时数据的要求。
2) 很高的集成度。由于NIOS具有丰富的接口资源,而?Clinux裁减后体积非常小,而且具备以太网功能,这样可以很容易实现控制器的微型化、网络化;
3) 很高的实时性。本控制器在硬件和软件设计时都充分考虑了系统的实时性。硬件设计中采用了高速A/D(500kHz)和多路D/A输出,使得关键信号能及时采样和输出,保证了“硬实时”;操作系统中加入了RTlinux模块,保证了“软实时”。
实际应用
针对某企业生产现场需要,该控制器被应用到基于以太网的控制系统中。针对现场对网络可靠性参数的严格要求,需在控制层网络对传统的以太网拓扑结构加以改进,采用环形网络拓扑可以增加网络的可靠性。
解决网络的实时性问题时采用了控制区域(Control Domain)的概念,将控制现场分区,减少各个控制区资源竞争的情况。控制区域之间通过交换式以太网交换机来通信。每个控制区域包含以太网交换机和嵌入式的工业以太网控制器,以及一些
变送器和执行机构,该系统具有如下特点:
1) 灵活性。由于控制器采用了NIOS微处理器,能够灵活配置处理器的硬件资源,克服了接口数据传输速率的瓶颈,利用SOPC技术,系统硬件、软件的设计和调试都十分方便。
2) 可靠性。控制系统的网络拓扑采用环形架构,大大增强了骨干网的可靠性。在控制网络层,通过划分控制区域,分散了控制风险;而在控制区域内部采用嵌入式的工业以太网控制器,集中控制整个控制区域,降低了控制成本。实践证明这种分散结合集中的控制结构是十分有效的。
3) 实时性。通过划分控制区域,各个控制区域通过交换机连入骨干网,而每个控制区域内的变送和执行结构的信息都不会占用骨干网网络资源。这样,每个控制区域的网络负载可以降到很低的程度(<5%),提高了网络的实时性。嵌入式工业以太网控制器的硬件和软件设计均考虑了实时性要求,这样在网络层下进一步提升了系统的实时性。
结语
本文对嵌入式工业以太网控制器进行了开发研究,提出用SOPC技术来解决控制器硬件设计中存在的接口速率瓶颈问题,提高了控制器的实时性,实验结果表明该系统运行稳定可靠。( 薛晓军 朱劲)
参考文献:
[1]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.