欢迎来到天天文库
浏览记录
ID:24663323
大小:146.00 KB
页数:4页
时间:2018-11-15
《基于niosii的嵌入式网络通信系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于NiosII的嵌入式网络通信系统时间:2009-03-1913:57:50来源:中国传动网作者:1 引言 随着internet技术的发展,在许多领域都引起了飞跃性的变化。嵌入式系统应用领域中一个新的趋势就是开始在嵌入式设备上集成网络通信功能,比如网络监控、网络数据采集系统等,以便于通过网络与远程设备进行信息的交互和增强系统的互连性,仅仅需要一根网线就可以轻轻松松完成系统的互连。 目前市场上的嵌入式处理器的种类很多。altera公司推出了第二代片上可编程嵌入式软核处理器niosii,再配上其低成本、高性价比的fp
2、ga器件,使得嵌入式系统的开发变得越发方便。再者由于niosii可配置和fpga器件可编程的特点,与专用硬件相比灵活性得有很大的优势,从而使得fpga器件在现代电子设计中得到广泛的应用。2 系统设计2.1niosii简介 niosii嵌入式软核处理器是altera公司推出的第二代片上可编程的软核处理器,niosii是可配置的,用户可以根据自己的实际需要进行处理器的配置,以达到资源的合理使用,其性能可以超过200dmips。niosii采用哈佛结构,具有32位指令集,32位数据通道和可配置的指令及数据缓冲,而且支持用户自定义
3、指令(最多256个)以扩展cpu指令集,提升系统的性能,为可编程片上系统(sopc)设计提供了一套完整的解决方案。niosii提供了三种内核:niosii/f是一种高性能的内核,速度最快但消耗的资源最多;niosii/e是低成本内核,速度最慢消耗的资源最少;niosii/s是一种性能和成本折中的内核。本设计采用的是niosii/s内核。 niosii的优势就在于其灵活性,可以根据用户的需求进行灵活的配置和裁剪。基于niosii软核的系统设计利用altera公司提供的系统设计工具sopcbuilder和集成开发环境niosi
4、iide可以进行软硬件协同设计,很大程度上缩短开发周期,在系统开发的任何阶段要都可以很方便的对系统进行修改。fpga器件丰富的逻辑资源,结合niosii强大的处理能力,将为嵌入式系统设计提供有效的解决方案。2.2系统设计图1 系统模块图 系统模块图如图1所示。设计采用了altera公司的cycloneii系列芯片。在其中配置niosii软核处理器控制外围设备和协议栈的运行。而且添加了一个计算校验和的用户指令(cal_checksum)。 片上ram用作内存运行程序;flash使用了sharp公司的lh28f160s
5、3t-l13a,用来存储程序和配置信息,系统上电后,先将程序从flash中拷贝到片上ram运行;网络接口芯片使用smsc公司的10/100m以太网接口控制芯片lan9c111,所以在sopcbuilder中配置系统时,需要加上altera免费提供的lan9c111接口控制器,嵌入式设备通过lan9c111就可以接入以太网,与网络上的其他设备进行网络通信;sdram选用micron公司的mt48lc8m16a2,用来缓存网络数据,其中sdram控制器使用altera免费提供的sdram控制器。 要提高系统的性能,一方面是提高
6、处理器的处理能力;另一方面就是将用软件处理比较费时间的模块使用硬件模块来实现。经过分析发现,在网络协议栈的运行过程中,最耗费时间的是校验和的计算,尤其是当数据量非常大的时候。为此,专门用硬件定制了一个用户指令校验和计算指令(cal_checksum),对数据校验和的计算实现硬件加速,作为一个指令添加到niosii系统中,在协议栈程序中调用来缩短计算校验和的时间,提高处理速度,达到提升系统性能的目的。2.3校验和计算指令(cal_chkusm) 在上面的分析中已经提到过,在整个协议栈的处理中,最耗时间的就是数据校验和的计算,
7、特别是当数据长度很大时。所以在设计中将数据校验和的计算采用硬件模块来实现,作为niosii的一个用户自定义指令,以提高校验和计算的速度。在协议栈的移植过程中,将数据的宽度修改为16位,方便最后将16位校验和的计算结果添加到相应的域。 校验和的计算需要很多个时钟周期才能完成,所以校验和计算指令使用了multi-cycle用户指令结构。multi-cycle用户指令的端口操作有:固定长度和可变长度。因为网络传输的数据长度是不断变化的,所以校验和计算指令选择可变长度操作,这也影响到端口信号的选择。 multi-cycle用户指
8、令结构的信号有:reset,clk,clk_en,start,dataa[31:0],datab[31:0],done,result[31:0]。其中除了reset,clk,clk_en三个信号外,其他信号都是可选的,要根据具体的应用选择。本设计中
此文档下载收益归作者所有