1 引言
由于Internet技术的渗透,嵌入式系统正变得越来越智能化并具有越来越多的网络友好特性。Web技术的飞速发展,给嵌入式系统进入Internet提供绝佳的途径。在现场仪表和企业设备层应用嵌入式技术是企业监控系统的发展趋势。与现场总线技术相比,嵌入式技术不仅为开发者提供了大量的工具和函数库,而且减少了传统的客户端,减少了二次开发的工作量;而把嵌入式技术和Internet技术结合起来,使得整个工控网络易于和Internet实现无缝连接;现在多数企业控制网络是通过专用线路进行数据通信,其通信介质、通信协议都是专用的,而Internet技术的渗透使嵌入式设备的远程控制和管理方式都有了改变,不再需要专用的通信线路,传输的信息也不再局限于数据信息。Web技术的发展、通信协议的公开、HTML语言的标准统一性,使得只要在嵌入式设备中有一个微型服务器,通过用任意一种Web浏览器,用户就可以监控现场数据和设备。
2 嵌入式软核处理器MicroBlaze
MicroBlaze是基于Xilinx公司FPGA的微处理器IP核,和其他外设IP核一起,可以完成可编程系统芯片(SoPc)的设计。MicroBlaze 32位软处理芯核运行速度为150 MHz,性能达100 D-MIPS。采用RISC架构和哈佛结构的独立32位指令和数据总线,可以全速度执行存储在片上存储器和外部存储器中的程序并访问其中的数据。支持CoreConnect总线的标准外设集合为MicroBlaze设计人员提供了兼容性和重利用能力。MicroBlaze内部有32个32位通用寄存器和2个32位特殊寄存器PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存。所有的指令字长都是32位,有3个操作数和2种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线,他分为3级流水:取指、译码和执行。
MicroBlaze软处理器可为您提供不同方法的灵活性。首先可以从处理器内核开始,构建能够准确满足设计需要的外设集合。由于只需要实现自己所需要的部分,因此避免了芯片资源浪费。因为不需要编写代码关闭/禁止不需要的处理器功能,因此降低了软件设计复杂性。创建专用处理器配置的工作也成为一项简单的任务,而为了满足技术规格的变化专用处理器配置随时可能需要改变。即使在实际应用5~6年后,连FPGA硬件本身可能也已经接近其生命期的终点时,只需要简单的利用同样的C代码将软处理器内核移植到新的FPGA硬件中就可以。硬件平台或许需要一定的PCB修改,但遗留下的代码仍然是可用的,不需要修改。
3 系统结构
在系统结构设计上,考虑现有的各种嵌入式网络实现方案,绝大多数嵌入式Internet都使用微控制器和相应的软件来实现。本文介绍的嵌入式Web服务器的设计则是采用基于FPGA的MicroBlaze软核处理器,其灵活性大大提高,而成本则可以大大降低,充分体现了可编程片上系统(SoPc)的优势。系统主要支持CoreConnect总线的标准外设集合,DDR SDRAM主要用来存放软件代码以及一些需要保存的参数,BRAM用来在系统运行时的代码和数据存储;网络接口芯片采用SMSC公司的IAN91C111芯片作为网络接口。该器件是一个以太网控制器,实现了网络7层协议栈中的物理层和MAC层的功能。他具有10 M/100 M自适应、双工/半工自适应等功能,非常适合嵌入式网络开发。LCD用来指示系统运行状态。整个系统的结构如图1所示。
4 硬件设计
本文在进行硬件设计的时候采用基于IP核的设计方法,并将大部分功能在单个FPGA芯片上予以实现。设计电路原理图之前,必须根据系统需求选择合适的IP核。所谓IP核,是指那些以硬件形式(硅片版图)或者软件形式(用Verilog、VHDL描述的RTL或者门级模型)存在的、具有特定功能的硬件电路。IP核通常分为硬核、固核与软核3种。根据系统的硬件开发环境以及性能需求,本文选择Xilinx公司开发的一系列软核产品,他们是用VHDL语言所描述的硬件模块,允许用户根据需要对各种参数进行配置,如数据通路带宽、优先进行速度优化还是资源优化等,因而应用非常灵活。系统所用到的软IP核产品有MicroBlaze,BRAM、定时器、通用异步收发器UART,以及用于外部功能扩展的OPB总线模块。
硬件设计使用的是ISE可编程逻辑器件集成开发环境。提供从设计输入到器件编程的全部功能。采用Xilinx公司的EDK开发工具可大大提高系统设计效率,他能够在图形化界面内定制一个从硬件到软件的完整系统。在EDK中包含了外设与MicroBlaze的接口,所以只需定义CPU与外设的接口即可。设计采用的CPU为MicroBlaze仅占用900个逻辑单元。在EDK下添加对应接口模块。然后生成对应的VHDL文件。同时,EDK还根据定制的结果,自动的生成针对特定硬件环境的C语言的头文件以及函数库,这在软件设计中会极大地减少软件开发人员的工作量。
本文采用的是Xilinx公司Virtex4系列FPGA芯片,最多能提供200 000个逻辑单元和多达64 kB的BRAM存储空间。由于FPGA芯片具有可反复更改的特性,因此有助于硬件系统的改进和不断升级。
由于在FPGA芯片上构造以太网物理层、MAC层电路较困难,本文将这些功能放到FPGA芯片的外面,使用LAN91C111芯片来实现以太网硬件接口功能。SMSC公司的LAN91C111是为了方便嵌入式应用系统连接到快速以太网而专门设计的,他实现CSMA/CD协议的物理层和媒体访问控制层(MAC)两个部分,并可以很方便地与许多嵌入式处理器进行数据交换。