视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Nios系统网络运用及开发2
2025-09-29 17:09:12 责编:小OO
文档
序。简单的Flash 访问主要通过几个函数:alt_flash_open_dev(), alt_write_flash(),alt_read_flash(),alt_flash_close_dev(),alt_erase_flash_bloc k(),alt_get_flash_info()进行。其中擦除分为片擦除和块擦除,在一个块内是不能擦除单一地址存储空间的。

图5:socket 系统调用过程 三、 系统实现

如前面介绍,本设计采用SOPC Builder 系统开发工具产生片上系统,SOPC Builder 由Quartus II 设计软件启动。软件的设计由Nios II IDE 完成,它为所有的Nios II 处理器系统提供连贯一致的开发平台,采用一台PC 、一个Altera 器件以及一条JTAG 下载电缆,便具备了开发和调试Nios II 处理器系统所需的一切。下面将分硬件和软件设计分别介绍。

(一) 硬件设计实现

客户端 服务器端

图6:硬件结构图

其中,Cyclone FPGA,包括Nios软核CPU、操作系统使用的定时器、网络协议栈使用的定时器、CPU同外围设备的接口等;EPCS4,用来在上电时对FPGA进行配置;Flash,主要用来存放软件代码以及一些需要保存的参数;SRAM,用来在系统运行时的代码和数据存储;网络接口芯片;LED(2个),用来指示系统运行状态。

对于网络接口芯片,本系统中采用Smsc公司的LAN91C111芯片作为网络接口。该器件是一个以太网控制器,实现了网络七层协议栈中的传输层和MAC层的功能。另外,它具有10/100M自适应、双工/半工自适应等功能,有很好的网络兼容性。

(二) 软件设计实现

本系统采用uC/OS 操作系统,在IDE 集

成开发环境中编写。利用IDE 提供的

template 中的Simple Socket Server 模块为基

础,该模块较简单,对初学者较易上手。由

于该模块是基于iniche 协议栈的,所以TFTP 文件传输也要建立在这协议栈上层工作。模块中实现TCP 连接后利用socket 机制建立led.c 多个上层任务,任务之间采用信号量、消息队列、邮箱进行通信。这里为简化设计,将led.c 上层任务去掉,添加TFTP 文件传输程序,在完成此基本功能的前提下再添加上层任务,工程结构如图7。

完成TFTP 协议的是工程中remote_config.c 及相关文件。编写完程序后通过IDE 的Flash Programer 烧写进硬件Flash ,在设置好起始地址后,系统重启。首先硬件被配置到FPGA 中,软核CPU 从Flash 中启动程序,执行代码,操作系统开始运行。代码中内容如下:

1、 创建各优先级的任务,包括底层硬件初始化任务、网络连接任务、

文件传输任务等,并给其设置堆栈及其他一些参数。

2、 编写错误处理函数,针对各种错误,用alt_uCOSIIErrorHandler 函数

处理。

3、 设置调试标志,便于调试,例如在某些地方以printf("xxxx")作为代

码执行的标志。另外还可以标示程序是否更新,后面的网络更新程序就是这么作的。

4、 编写具体文件传输程序,用于网络接受更新文件,包括判断Flash 类

图7:工程结构图

需要更新软件内容时,只要硬件板(用户板)连接在网络上,就可以通过Command Shell配合TFTP软件将更新的文件转换为.flash 文件,键入“tftp 192.168.1.2 put my_test0.flash”远程配置到目标板(通过IP地址识别)里。远程配置完成后的Command Shell界面见图8。

图8 :Command Shell界面

本设计的目标就是更新文件成功通过网络下载到目标板上,为检验设计效果,特意在程序中编写了串口回显程序printf("xxxx"),更改的程序回显内容不同,原程序是printf("step5"),更新程序是printf("step6")。无论是通过JTAG 口下载程序还是通过网络下载,断电重启后都从Flash中运行,回显信息可以通过串口精灵看到,两次的结果如图9,说明已经传输正确,设计目标实现。

图9:回显结果

四、 结束语

可以看出, 基于Nios 进行嵌入式Internet 系统设计者两个突出优点。首先,降低了硬件设计的难度,缩短了硬件开发周期,保证了设计的可靠性。由于SOPC Builder 开发环境的完备功能,可以把注意力集中在系统整体构架和功能上来,而无需过多的考虑细节性的电路设计,同时还可以得到比较好的系统稳定性和可靠性。其次,软件开发容易。使用IDE 集成开发环境为设计者提供了较好的支持,提供了现成的网络协议栈,用户只需关注于上层程序的编写。

通过反复验证,此设计是完全成功的,能够达到预期的效果。这样的系统对Nios 处理器重新编程可以在不改变系统硬件框架的基础上,方便地增加系统的功能和处理效率,对系统的升级和再开发有很大的便利。

参考文献参考文献::

[1] 吴礼发 谢希仁。网络程序设计教程[W]。北京希望电子出版社 2002.1

[2] 周明天 汪文勇。TCP/IP 网络原理与技术[T]。清华大学出版社 1997.5

[3] 孙恺 程世恒。 Nios Ⅱ系统开发设计与应用实例[N]。北京航空航天大学出版社 2007.1

[4] 潘松 黄继业。SOPC 技术实用教程[S]。清华大学出版社 2005.1下载本文

显示全文
专题