基于Nios软核的嵌入式Internet系统设计
动的生成针对特定硬件环境的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不但在硬件设计上提供了支持,在软件上也为设计者提供了较好的支持,提供了现成的网络协议栈。
本文中的以太网远程数据采集系统已经进行了初步的仿真试验,能够达到预期的效果,被证实是切实可行的。
- 基于ARM和μC/OS-II的车载定位终端的设计(06-24)
- ADμC845的车用数字仪表设计方案(09-21)
- μC/OS-II操作系统在不同处理器上的应用(10-25)
- 利用μC/OS-II的嵌入式激光测距系统(04-22)
- 非一般的晶体管(10-12)
- 一种CMOS绿色模式AC/DC控制器振荡器电路(09-16)