SOPC在嵌入式工业以太网控制器中的应用
时间:11-09
来源:互联网
点击:
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为基础的可配置、可裁减软核处理器。它具有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公约的操作系统,完全开放代码,其是专门为控制领域而裁减设计的嵌入式操作系统。
uClinux 从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器。它通常用于具有很少内存或Flash的嵌入式系统。
在GNU通用公共许可证(GNU GPL)的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数,不会因为没有MMU而受到影响。由于uClinux在标准的Linux基础上进行了适当的裁剪和优化,形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,uClinux仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。在开发应用程序之前,先将uClinux移植到NIOS处理器中来。
特别的为了应用到工业实时领域,本文进一步增强uClinux的实时性。
整个嵌入式工业以太网控制器具有以下特点:
控制器具有很高的灵活性。这是本文设计的以太网控制器的最大特点。由于微处理器采用Altera公司的NIOS,使得系统资源能够灵活调配,并且克服了采用其它处理器中存在的接口速率瓶颈的缺点,适应工业以太网实时数据的要求。
控制器具有很高的集成度。由于NIOS具有丰富的接口资源,而uClinux裁减后体积非常小,而且具备以太网功能,这样可以很容易实现控制器的微型化、Internet化;
控制器具有很高的实时性。在设计硬件和软件时都充分考虑了系统的实时性。硬件设计中采用了高速的A/D(500khz)和多路D/A输出,使得关键信号能及时采样和输出,保证了“硬实时”;操作系统中加入了RTlinux模块,保证了“软实时”。
随着以太网在工业控制领域得到大规模应用,嵌入式的工业以太网系统也越来越多的渗入到了工业控制领域。以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为基础的可配置、可裁减软核处理器。它具有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公约的操作系统,完全开放代码,其是专门为控制领域而裁减设计的嵌入式操作系统。
uClinux 从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器。它通常用于具有很少内存或Flash的嵌入式系统。
在GNU通用公共许可证(GNU GPL)的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数,不会因为没有MMU而受到影响。由于uClinux在标准的Linux基础上进行了适当的裁剪和优化,形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,uClinux仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。在开发应用程序之前,先将uClinux移植到NIOS处理器中来。
特别的为了应用到工业实时领域,本文进一步增强uClinux的实时性。
整个嵌入式工业以太网控制器具有以下特点:
控制器具有很高的灵活性。这是本文设计的以太网控制器的最大特点。由于微处理器采用Altera公司的NIOS,使得系统资源能够灵活调配,并且克服了采用其它处理器中存在的接口速率瓶颈的缺点,适应工业以太网实时数据的要求。
控制器具有很高的集成度。由于NIOS具有丰富的接口资源,而uClinux裁减后体积非常小,而且具备以太网功能,这样可以很容易实现控制器的微型化、Internet化;
控制器具有很高的实时性。在设计硬件和软件时都充分考虑了系统的实时性。硬件设计中采用了高速的A/D(500khz)和多路D/A输出,使得关键信号能及时采样和输出,保证了“硬实时”;操作系统中加入了RTlinux模块,保证了“软实时”。
嵌入式 ARM FPGA PCB 电路 示波器 仿真 Altera DSP CPLD LCD Quartus VHDL Verilog 总线 uClinux Linux 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)