基于FPGA的SoC和嵌入式系统的远程监控系统
1.1 Niosii软核CPU
NiosII软核CPU是A137ERA公司推出的一种通用32位RISC嵌入式处理器,它特别为可编程逻辑进行了优化设计,并配备有功能完善的开发套件,包括C/C++编译器、集成开发环境(IDE)、JTAG调试器等,是ALTERA公司可编程单芯片系统解决方案的核心。
作为一个软核处理器,NiosII提供了可配置的硬件及软件调试特性,包括基本的JTAG的运行控制(运行、停止、单步、存储器等)、硬件断点、数据触发、片内和片外跟踪、嵌入式逻辑分析仪。这些强大的工具可以在开发阶段使用,调试通过后便可以去掉,节省资源。NiosII处理器还提供了高、中、低三种不同性能的内核,通过与ALTERA提供的超过60种IP核(UART、时钟、DMA、SDRAM、并行I/0等)结合使用,设计师可以方便地针对特定的应用创建一个在处理器、外设、存储器和I/O接口方面都完美的方案。除此以外,NiosII还有很多其他优秀的特性,如指令定制、硬件加速器等。
1.2 网络接口单元
以太网接口芯片采用了SMSC公司专门用于嵌入式产品的LAN91C111快速以太网控制器。该芯片内部同时集成了以太网介质访问控制器(MAC)及物理层收发器(PHY),支持10/100M全双工传输模式、自动协商及流控等功能。其主机接口具有同步总线、异步总线等多种工作模式,可以方便地与各种体系的CPU连接。本设计中使用了异步总线接口模式,并与FLASH共用地址线和数据线,通过FPGA上的适配模块连接到Avalon片内总线。
1.3 存储器单元
由于存储操作系统内核、应用程序代码、程序数据等的需要,本系统使用了一片型号为AM29LV320D的FLASH芯片。该芯片由AMD公司推出,容量为4MB,支持CFI接口,其与AvMon总线的连接需要FPGA内部的总线适配模块进行时序匹配。SDRAM用于存储运行期的程序代码和数据,HY57V563220B(L)T为现代公司推出的容量达16MB的SDRAM,由于该芯片端口宽度可达32位,因此系统中使用单芯片即可。SDRAM读写时序比较复杂,需要在FPGA中集成专用的SDRAM控制器IP核与其对接。
2 总量计数IP核
如图2所示,α或γ探测器获得的信号经由两级放大器串接组成的线性脉冲放大器放大后送至以LM393为核心的甄别电路进行比较,滤掉噪声,输出矩形的脉冲信号。对于这个信号的处理,以MCU(微控制器)为核心的传统核探测仪只能通过MCU上已有的硬件资源(如定时器)结合软件来实现。
这种方法受制于硬件资源和MCU的速度,难以对多通道信号源进行并行处理。本系统中,总量计数IP核即是针对此问题而专门设计的硬件,使用VHDL语言设计实现,其内部接口符合Avalon片内总线从设备接口规范,可以方便地挂接在Avalon总线上,作为NiosII软核cPu的一个专用外设。
总量计数IP核是网络平台FPGA中子板接口的一部分,其结构如图3所示。α辐射总量测量与γ辐射总量测量原理类似,下面以α测量为例介绍其工作原理。时钟源模块通过对主时钟分频产生一个O.1秒的脉冲信号,作为定时器计时的基准源。定时器则按照命令寄存器传过来的采集时间产生所需的定时信息。
根据定时器的定时信息和命令寄存器的命令,控制计数器对α测量模块传过来的脉冲信号进行计数,从而获得辐射总量的计数值,该计数值被存进FIFO中;而在另一侧,NiosIICPU通过Avalon总线向IP核的命令寄存器写入相应的命令字实现对各通道的控制,例如启动总量计数、关闭总量计数、设置采集时间及清空FIFO等。
值得注意的是,来自甄别电路的α或γ计数脉冲是与本IP核工作时钟异步的信号,而计数器的值最终是需要存人。FIF0的,因此对α或γ计数脉冲都以主时钟进行二次锁存并整形,使每个异步计数脉冲产生一个只持续一个主时钟周期的同步脉冲。以该脉冲进行计数,不仅解决了异步信号同步的问题,而且有效地滤除了干扰脉冲,使计敦值准确。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)超级电容器相关文章:超级电容器原理
评论