摘要:介绍如何在Altera开发平台上,使用Nios软核CPU来构建嵌入式Internet系统;并结合以太网远程数据采集系统的实例,介绍此类系统硬件,软件的设计方法。 关键词:嵌入式Internet Nios μCOS 引言 自上个世纪末开始的网络化浪潮,在很多领域都引发了技术进步和革新,嵌入式Internet便是嵌入式技术与网络技术结合的产物。简单来说,嵌入式Internet是指在一个嵌入式设备上配备网络接口,通过网络可以与远程设备进行信息的交互。从管理的角度上来讲,嵌入式Internet经历了三个发展阶段:集中管理阶段、分散管理阶段、智能管理阶段。前两个阶段主要是致力于解决如何把一个具体的设备真实地嵌入到Internet中,第三阶段人们考虑更多的是如何利用现有的技术来更好地进行远程控制,更加丰富控制功能。 Altera公司的Nios软核嵌入式处理器是一种可特许的通用RISC CPU,也就是说,Altera公司以IP核的方式将它提供给设计者。它可以与各种各样的外设、定制指令和硬件加速单元相结合,构成一个定制的SOPC。该处理顺具有可由用户配置的L1(第一层)指令与数据超高速缓存。Nios处理器还具有一种基于JTAG的OCI(片上仪器)芯核,使软件开发人员在实时调试方面具有更明显的优势。该处理器的软件支持可扩展到对APR、IP、ICMP、TCP、UDP和以太网的网络协议支持。 本文介绍的以太网远程数据采集模块的设计,充分利用了前述两种技术。主要功能是进行数据采集、数据远程传输以及可接受远程控制。该模块具有成本低廉、结构简单、可靠性高、可扩展性强等特点。 通过对以太网远程数据采集模块设计实例,介绍如何利用前面提到的技术来实现一个嵌入式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。 这部分设计使用到的开发工具是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操作系统移植 μC/OS操作系统是美国人Jean Labrosse于1992年开始编写的,它是一种适合于小型、微控制器的可剥夺实时操作系统。ΜC/OS的内核除了没有网络协议栈之外,也没有文件系统,但是本设计中的设备本身并不需要对采集数据按文件方式保存,因而使用μC/OS可以满足需要。 ΜC/OS设计时就充分考虑到在不同平台上移值的需求,将同平台相关的部分局限在一个很小范围内,对于不同的平台只需对下面一些函数和宏进行重写。 *OS_ENTER_CRITICAL和OS_ENTER_CRITICAL:这是两个宏,用来进行临界段保护。在本设计中使用汇编代码关中断来实现。 *OS_TASK_SW:这是一个用于进行任务切换的宏。本设计中利用CPU的软件中断方式实现。也就是说调用此宏产生软件中断,然后由相应的中断处理程序来具体实现任务上下文保护和任务切换。 *OSIntCtxSw:实现中断级任务切换,用纯汇编实现。 *OSCtxSw:实现用户级上下文切换,用纯汇编实现。 *OSTickISR:为系统定时器中断的处理函数,用纯汇编实现。 *OSTaskStkInit:用来创建任务时,对任务堆栈进行初始化。 (2)网络协议栈 本系统采用的是SOPC Builder中包含针对Nios的网络协议栈,该栈以名为Plugs的函数库的形式提供给设计者,该库向软件编写都隐藏了低层硬件细节,以类似于unix套接字的方式实现了一个精简的网络协议栈。它支持以下一些网络协议:IP、ARP、ICMP、UDP、TCP。 使用该库在硬件上有四个要求:必须使用Nios CPU,需要20KB的代码存储空间,需要4KB的数据存储空间,系统中需要有一个专供其使用的定时器。 2 结论 可以看出,采用Nios软核CPU进行嵌入式Intenet系统硬件设计相当快速。由于SOPC Builder开发环境的完备功能,可以把注意力集中在系统整体构架和功能上来,而无需过多的考虑细节性的电路设计,同时还可以得到比较好的系统稳定性和可靠性。 基于Nios进行嵌入式Internet系统设计者两个突出优点。首先,硬件设计的难度,缩短了硬件开发周期,提出了设计的可靠性。CPU本身是以软核的方式实现,其功能可根据需要进行定制。其次,软件开发容易。SOPC Builder不但在硬件设计上提供了支持,在软件上也为设计者提供了较好的支持,提供了现成的网络协议栈。 本文中的以太网远程数据采集系统已经进行了初步的仿真试验,能够达到预期的效果,被证实是切实可行的。 | |
- 系统设计(22755)
基于Nios软核的嵌入式Internet系统设计
1306基于Nios II和uClinux实现远程测控服务器的设计
1100
20个Nios Ⅱ的经典设计,提供软硬件架构、流程、算法
嵌入式Internet的接入方式比较
嵌入式Internet通信的安全怎么保障?
嵌入式系统中的软外设是什么?
嵌入式系统的定义
嵌入式系统的定义和组成是什么
嵌入式软核Nios Ⅱ串口直接读写寄存器有哪些编程方法?
嵌入式软核NiosⅡ中串口模块怎么编程?
嵌入式操作系统怎么选择?
Altera SOPC 嵌入式系统设计(一)
Altera SOPC嵌入式系统设计教程
Cyclone II FPGA和Nios II嵌入式处理器的优势
利用NIOS II系统点亮LCD1602屏及5.7寸LCD
单片机嵌入式Internet技术的Web应用实现
基于NIOS II 软核处理器的SOPC 技术
基于Nios软核的嵌入式Internet系统该怎么设计?
基于嵌入式系统硬件平台的软件PLC实现设计
如何利用单片机嵌入式Internet技术实现Web应用?
怎么实现基于Nios软核的嵌入式Internet系统设计?
怎么设计集软核处理器的嵌入式设计平台?
怎样去设计一种基于AVR单片机多任务嵌入式Internet系统
新人求助,软考的嵌入式系统设计师这个证怎么样
有关嵌入式系统的基础知识
请问一下远程测控中嵌入式Web服务器的FPGA的实现方法
请问如何实现片上嵌入式Nios Ⅱ软核六处理器系统的设计?
采用nios和μClinux实现嵌入式系统设计
嵌入式Internet互联技术的应用研究
9基于Nios 软核的嵌入式Internet系统设计
16采用Nios定制指令的嵌入式系统优化设计
11基于Nios 软核的嵌入式Internet系统设计
27用GPRSmodem 实现嵌入式Internet 接入系统
11基于GPRS的嵌入式Internet设计研究
28嵌入式Internet技术及其实现方案
17嵌入式Internet安全通信系统的设计研究
9嵌入式系统拨号接入Internet的设计与实现
9嵌入式Internet的实现技术与安全问题分析
31基于FPGA 的嵌入式ASIP 软核设计与实现
30嵌入式GPS由GPRS接入Internet的实现
23嵌入式软PLC系统的研究和实现
37基于FPGA的嵌入式ASIP软核设计与实现
17基于NIOS II软核的安全文件传输系统设计
26基于NiosⅡ软核的车辆牌照识别系统研制
978
基于NiosⅡ软核处理器的SOPC技术来实现数码相框的设计
1600
嵌入式软核NiosⅡ串口直接读写寄存器的编程方法
1535
Nios II入门起步-创建一个嵌入式处理器系统
87嵌入式CPU软核综述
53基于Chirp函数的Nios Ⅱ嵌入式实现
1560
基于NiosⅡ的彩色夜视系统的设计
37Nios II嵌入式设计包详解
9722
基于Nios Ⅱ和GigE Vision的图像采集系统
7基于ARM嵌入式系统软PLC的研究
18基于Nios II的嵌入式开发模式的搭建方案
0嵌入式软核处理器液晶显示屏的设计方案解析
0MCS-51嵌入式Internet接入技术解析
0嵌入式Internet设计
2嵌入式PLC软核的通用保护平台设计
0在Nios II平台下搭建RTEMS嵌入式开发简析
1843
基于SoPC 技术的片上嵌入式Nios Ⅱ软核六处理器系统
1444
液晶显示屏设计方案:基于Nios嵌入式软核处理器
1450
介绍如何用Nios II 软核处理器来开发FPGA嵌入式系统软件
5267以嵌入式处理器为核心的IP复用技术应用
2143
Altera第二代Nios II嵌入式评估套件,主要应用在最新的MAX 10 FPGA套件
1557采用NIOSⅡ嵌入式处理器的液晶显示屏滚屏设计方案
3058
基于Nios软核的SoPC系统硬件设计
1698
FPGA Nios嵌入式处理器的软件开发
1FPGA Nios嵌入式处理器的软件开发
17基于nios ii嵌入式软核处理器的嵌入式系统设计解决方案
3988
嵌入式软PLC系统的研究与实现
13基于CoDeSys的嵌入式软PLC系统设计与实现
44嵌入式软PLC系统的研究和实现
4
电子发烧友App






评论