| | 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | | |
![]() |
![]() |
| 您现在的位置: FPGA开发板 FPGA 开发板 SOPC开发板 DSP开发板 视频开发板 -嵌入式控制研究室 >> SOPC >> SOPC进阶 >> 文章正文 |
|
|||||
| 基于SOPC技术的核信息远程采集系统 | |||||
| 作者:吴婷 王敏… 文章来源:本站原创 点击数: 更新时间:2007-6-14 | |||||
|
Internet现已覆盖全球,通过Internet可以方便地传送信息,因此,本系统立足于利用Intemet实现核环境信息的远程采集。在实现上,采用了基于SOPC技术的嵌入式解决方案,通过在FPGA中嵌入NioslI软核处理器和所需外设的IP Core(硅知识产权核),然后再配备相应的网络接口,实现利用互联网进行信息的传输。 另外,通过开发用于控制信息采集子系统的IP核,利用FPGA固有的硬件并行特性,本系统做到了对多个信息源进行真正意义上的并行监控,即在进行α射线探测的同时也可以进行γ射线和温湿度等信息的获取。 1 系统硬件设计及实现
作为一个软核处理器,NiosII提供了可配置的硬件及软件调试特性,包括基本的JTAG的运行控制(运行、停止、单步、存储器等)、硬件断点、数据触发、片内和片外跟踪、嵌入式逻辑分析仪。这些强大的工具可以在开发阶段使用,调试通过后便可以去掉,节省资源。NiosII处理器还提供了高、中、低三种不同性能的内核,通过与ALTERA提供的超过60种IP核(UART、时钟、DMA、SDRAM、并行I/0等)结合使用,设计师可以方便地针对特定的应用创建一个在处理器、外设、存储器和I/O接口方面都完美的方案。除此以外,NiosII还有很多其他优秀的特性,如指令定制、硬件加速器等。
1.2 网络接口单元 1.3 存储器单元 2 总量计数IP核 这种方法受制于硬件资源和MCU的速度,难以对多通道信号源进行并行处理。本系统中,总量计数IP核即是针对此问题而专门设计的硬件,使用VHDL语言设计实现,其内部接口符合Avalon片内总线从设备接口规范,可以方便地挂接在Avalon总线上,作为NiosII软核cPu的一个专用外设。 总量计数IP核是网络平台FPGA中子板接口的一部分,其结构如图3所示。α辐射总量测量与γ辐射总量测量原理类似,下面以α测量为例介绍其工作原理。时钟源模块通过对主时钟分频产生一个O.1秒的脉冲信号,作为定时器计时的基准源。定时器则按照命令寄存器传过来的采集时间产生所需的定时信息。 根据定时器的定时信息和命令寄存器的命令,控制计数器对α测量模块传过来的脉冲信号进行计数,从而获得辐射总量的计数值,该计数值被存进FIFO中;而在另一侧,NiosIICPU通过Avalon总线向IP核的命令寄存器写入相应的命令字实现对各通道的控制,例如启动总量计数、关闭总量计数、设置采集时间及清空FIFO等。 值得注意的是,来自甄别电路的α或γ计数脉冲是与本IP核工作时钟异步的信号,而计数器的值最终是需要存人。FIF0的,因此对α或γ计数脉
3 系统的软件结构 3.1 MicroC/OS2及LWIP的移植 HAL即硬件抽象层,是NiosII开发套件的一部分,由ALTERA公司提供,它封装了系统中硬件操作的相关细节,驱动程序也作为它的一部分。HAL共抽象了六种器件模型,包括字符模式器件、定时器件、文件子系统、以太网器件、DMA器件和Flash器件,并为每一类器件提供一系列的统一的初始化函数和访问函数接口,通过这种方式,HAL向上一层提供了一个类POSIX的API接口,即硬件抽象层应用编程界面。 针对NiosII的软件开发,其实是建立在HAL之上,而非直接面向NiosII硬件本身。本系统测量模块所对应的各个接口IP核均属于字符模式器件,因此驱动程序需按HAL中字符模式器件模型来进行编写。 MicroC/OS2是一个适合于小型、微控制器的可剥夺实时操作系统。它支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,通过它为应用程序提供所需的多任务环境。由于MicroC/OS2自身并没带有协议栈,因此需要移植一个TCP/IP协议栈LWIP,从而向上层提供了一个类似UNIX套接字的接口。LWIP支持以下一些网络协议:IP、ARP、ICMF、UDP、TCP。该协议栈需要20KB的代码存储空间及4KB的数据存储空问,同时在构建系统时还需要添加一个专供其使用的定时器。 图4为分析得到的系统软件的启动流程。在该流程图中,alt_sys_init()用于初始化系统中的设备,在这个过程中会调用设备驱动程序提供的初始化程序。Lwip_stack_init()用于初始化TCP/IP协议栈。而tcpip_init_done()是一个在协议栈初始化后被调用的函数,通信服务器的任务也在其中创建。有一点需要注意的是。所有基于LWIP的任务,都应该使用sys_thread_new()函数来创建,而不是直接使用OSTaskCreate()。最后,所有的初始化都准备好后,即调用OSStart()来启动RTOS进行任务调度。
3.2 信息采集程序的设计 3.3 通信服务器 LWP提供了标准的Berkeley套接字编程界面,这个界面提供了三种类型的套接字,在这里使用了流式套接字,这是一个面向连接的可靠的数据传输服务,也就是说使用的是TCP协议。通常,服务器接收到并发服务请求,要激活一新进程来处理这个客户请求,但出于系统资源和简化设计的考虑,在这里服务器同一时刻只能接受一个连接请求,而这种简化事实上也是可以满足设计需要的。 本系统应用基于FPGA的片上系统技术和嵌入式系统技术实现了智能核仪器与互联网的连接,同时也实现了硬件上的部分可重构,根据需要增加或删除FPGA中的外设IP核即可实现系统在功能和性能上的改变。目前本系统已经在放射性样品储藏室中应用,其功能和性能均满足实际环境的要求。由于本系统的网络平台被设计成一个相对独立的子系统,因此只需开 |
|||||
| 文章录入:fengfeiyi 责任编辑:fengfeiyi | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| SOPC技术在电力机车改造中的… 基于NIOS II的ARINC429总线接… 基于Nios软核的CT机扫描系统… 把SOPC Builder用于非Nios系… SOPC自定义模块的添加和接口… NiosII开发常见问题 应用SoPC Builder开发电子系… nios ii的 中断 nios flash read/write sopc Flash Programmer,nios… |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
Copyright © 2005www.21control.com 嵌入式控制技术研究室 版权所有 站长:康草科技 |