- 相关推荐
基于Nios软核的嵌入式Internet系统设计
摘要:介绍如何在Altera开发平台上,使用Nios软核CPU来构建嵌入式Internet系统;并结合以太网远程数据采集系统的实例,介绍此类系统硬件,软件的设计方法。引言
自上个世纪末开始的网络化浪潮,在很多领域都引发了技术进步和革新,嵌入式Internet便是嵌入式技术与网络技术结合的产物。简单来说,嵌入式Internet是指在一个嵌入式设备上配备网络接口,通过网络可以与远程设备进行信息的交互。从管理的角度上来讲,嵌入式Internet经历了三个发展阶段:集中管理阶段、分散管理阶段、智能管理阶段。前两个阶段主要是致力于解决如何把一个具体的设备真实地嵌入到Internet中,第三阶段人们考虑更多的是如何利用现有的技术来更好地进行远程控制,更加丰富控制功能。
Altera公司的Nios软核嵌入式处理器是一种可特许的通用RISC CPU,也就是说,Altera公司以IP核的方式将它提供给设计者。它可以与各种各样的外设、定制指令和硬件加速单元相结合,构成一个定制的SOPC。该处理顺具有可由用户配置的L1(第一层)指令与数据超高速缓存。Nios处理器还具有一种基于JTAG的OCI(片上仪器)芯核,使软件开发人员在实时调试方面具有更明显的优势。该处理器的软件支持可扩展到对APR、IP、ICMP、TCP、UDP和以太网的网络协议支持。
本文介绍的以太网远程数据采集模块的设计,充分利用了前述两种技术。主要功能是进行数据采集、数据远程传输以及可接受远程控制。该模块具有成本低廉、结构简单、可靠性高、可扩展性强等特点。
1 设计实例分析
通过对以太网远程数据采集模块设计实例,介绍如何利用前面提到的技术来实现一个嵌入式Internet系统。
1.1 硬件设计
(1)系统整体结构
根据以太网远程数据采集模块的功能要求,考虑到系统的稳定性和可扩展性,本系统主要包括以下部分:
*Cyclone FPGA,包括Nios软核CPU、操作系统使用的定时器、网络协议栈使用的定时器、CPU同外围设备的接口;
*EPCS4,用来在上电时对FPGA进行配置;
*Flash,主要用来存放软件代码以及一些需要保存的参数;
*SRAM,用来在系统运行时的代码和数据存储;
*8位A/D,用来采集输入信号;
*网络接口芯片;
*LED(3个),用来指示系统运行状态。
整个系统的结构如图1所示。
对于一个嵌入式Internet系统来说,网络接口是硬件设计的关键,本系统中采用Smsc公司的LAN91C111芯片作为网络接口。该器件是一个以太网控制器,实现了网络七层协议栈中的传输层和MAC层的功能。另外,它具有10/100M自适应、双工/半工自适应等功能,有很好的网络兼容性。
(2)CPU同A/D接口的设计
CPU同A/D接口设计使用的是QuartusII软件。它是Altera公司的第4代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。
需要指出的是,从开发的周期和系统的稳定性考虑,在本设计中除了A/D之外的其余器件均采用Altera公司推荐使用的器件。在SOPC Builder中包含了这些器件间Nios CPU的接口,所以只需要对CPU同A/D的接口进行设计。
为了实现数据采集频率的动态控制,以及使网络部分有更多的CPU使用时间,在CPU同A/D的接口部分,除了必要的与CPU进行交互的部分外,还包括用可控制计数器实现的整数倍分频电路两个轮换使用的数据缓存RAM。
该部分的结构如图2所示,分频电路的输出时钟信号频率范围是1MHz~1Hz。双RAM缓冲有两个输入时钟:读时钟和写时钟。读时钟信号为50MHz,远高于写时钟信号。这种缓存RAM读写频率不同的设计,可以显著减小低速外围设备对CPU的占用时间。CPU通过对状态和控制寄存器的读写,实现对本部分的控制。考虑到系统的可扩展性,同A/D相连的数据线宽度为32位,方便今后扩展,最多可以4个8位A/D并行工作。另外,本部分在单个RAM缓存存满时,是以中断的方式通知CPU。
(3)定制CPU和接口
这部分设计使用到的开发工具是Altera公司的SOPC Builder,该工具会自动进行系统定义,完成SOPC开发的集成过程。设计者采用SOPC Builder能够在图形化界面内定餐一个从硬件到软件的完整系统。
首先,根据设计需要使用SOPC Builder来对Nios CPU进行定制,包括CPU是不吸数据和代码缓冲、CPU寄存器数量(Nios CPU最多可以有512个寄存器)等。本设计中的Nios CPU有256个寄存器,未使用数据和代码缓冲。除了Nios CPU之外,还需要用SOPC Builder将CPU同外围设备的接口添加进来。对于本设计来说,就是将在前面提到的A/D接口以用户自定义接口的方式添加进来,其余器件同CPU的接口只需在SOPC Builder中将对应的接口模块添加进来即可。
然后,用SOPC Builder将定制转换为VHDL等具体的设计文件。除此之外,SOPC Builder还根据定制的结果,自动的生成针对特定硬件环境的C语言和汇编语言的头文件以及函数库,这在软件设计中会极大的减少软件开发人员的工作量。
1.2 软件设计
软件设计包括嵌入式操作系统的移植、网络协议栈设计、应用级代码编写等部分,其中操作系统的移植、网络协议栈设计的关键是软件设计。下面就对这两部分作简单介绍。
(1)μC/OS操作系
【基于Nios软核的嵌入式Internet系统设计】相关文章:
基于web的异地并行设计与制造系统研究06-02
基于PLC的断路器型式试验系统设计03-10
基于电话网络的热网远程控制系统设计05-11
基于CS管理的房地产企业开发设计06-04
基于胜任力的企业个体绩效管理流程设计06-03