1 引言
随着以太网在工业控制领域得到大规模应用,嵌入式的工业以太网系统也越来越多的渗入到了工业控制领域。以Motorola ColdFire微处理器和ARM处理器为硬件平台的嵌入式工业以太网系统已经有大量文献报道。
以上这些系统的开发平台并不完全针对工业以太网的应用情况,因为芯片设计公司并不完全熟悉工业以太网的需要。因此在实际应用当中经常出现硬件资源浪费或者资源不够的问题,并且开发系统往往需外接PLD芯片来进行外围器件的逻辑控制,存在接口速率的瓶颈问题。SOPC技术能解决这个难题。
2 SOPC技术
可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
2.1 SOPC
SOPC 结合了SOC和FPGA各自的优点,实际上涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以 PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬件协同设计技术。由于SOPC的主要逻辑设计是在可编程逻辑器件内部进行,而BGA封装已被广泛应用在微封装领域中,传统的调试设备,如:逻辑分析仪和数字示波器,已很难进行直接测试分析,因此,必将对以仿真技术为基础的软硬件协同设计技术提出更高的要求。同时,新的调试技术也已不断涌现出来,如Altera公司的嵌入式逻辑分析仪SignalTappII就是一种片内实时调试工具;而在应对复杂设计方面,诸如Altera公司的DSP Builader就是一个利用可编程硬件逻辑实现数字信号处理算法的强大辅助工具。
2.2 NIOS
NIOS 是Altera公司以RISC为基础的可配置、可裁减软核处理器[2]。它具有16位指令集和16/32位数据通路,通过将包括16或32位高性能处理器在内的多种应用模块嵌入到通用FPGA/CPLD内,实现完全可配置的嵌入式系统。Nios软核处理器主要特性包括:高效灵活的处理器模块,可以通过软件配置成16位或32位的中央处理单元,并可选择不同的内部存储器大小,其最高执行速度可达50MHz;具有多种其它功能模块的选择(SDRAM控制器、 UART控制器、PCI接口模块、LCD接口模块、MAC接口模块等多种功能模块);具有完整、廉价、便捷的开发系统。所有开发(包括设计、调试)均通过软件进行,不再需要专门的硬件仿真器和编程器, 大大减少了开发设备的成本。
NIOS将CPU与PLD的功能集于一身,既简化了电路板设计,又不存在接口速率的瓶颈问题,使整个系统在一块芯片上就可以完成。
3 硬件设计
控制器的硬件设计流程就是为了定制合适的CPU和外设,在 SOPC Builder和QuartusII中完成。在这里可以灵活定制NIOS CPU的各个特性甚至指令,可以使用Altera提供的大量的IP Core来加快开发者开发NIOS外设的速度,提高外设的性能,也可以使用第三方的IP Core,或者使用VHDL、Verilog来自己定制外设。
嵌入式工业以太网控制器的硬件分为三个部分:FPGA部分、存储器部分和外围元件部分如图1所示。本文选用的是FPGA是CYCLONE EP1C6。FPGA部分是建立在FPGA上的,核心是NIOS CPU Core,我们需要在SOPC Builder中需要设计的就是FPGA部分。要建的NIOS系统包含的元件模块有:一个NIOS CPU核;用于连接NIOS核的Avalon总线控制器,一个存放启动和调试程序的内部存储器Boot ROM、一个UART串行通信电路模块(RS-232核)、一个内部定时器和一些通用IO外围接口模块。为使NIOS系统正常工作,在FPGA外围必须接有一个RS-232通信口、RJ45、几个发光管和数码管以及16M SRAM和4M Flash ROM。
图1 SOPC工业以太网控制器硬件结构
4 软件设计
完成NIOS的硬件开发后,SOPC Builder可以帮助开发者生成相应的SDK(软件开发包)。这是由于在硬件开发中的NIOS CPU及其外设构成的系统是自定制的,存储器、外设地址的映射等都各不相同,需要的SDK也应是专有的,SOPC Builder能够自动生成SDK。
在生成的SDK基础之上,进入软件开发流程,在这个部分,开发几乎与通常的嵌入式系统的开发没有区别,唯一的不同只在于,嵌入式系统是自己定制的、裁剪过的,受到硬件的局限小一些。
控制器的操作系统考虑到性价比以及现场控制需要,采用了uClinux。uClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码,其是专门为控制领域而裁减设计的嵌入式操作系统。