本体系立足于运用Intemet完结核环境信息的长途收集。在完结上,采用了依据SOPC技能的嵌入式处理计划,经过在FPGA中嵌入NioslI软核处理器和所需外设的IP Core(硅知识产权核),然后再装备相应的网络接口,完结运用互联网进行信息的传输。
别的,经过开发用于操控信息收集子体系的IP核,运用FPGA固有的硬件并行特性,本体系做到了对多个信息源进行真实意义上的并行监控,即在进行α射线勘探的一起也能够进行γ射线和温湿度等信息的获取。
1 体系硬件规划及完结
在本体系的规划中,硬件上为了做到通用性,在结构上划分为两部分,即用于完结现场监控和数据长途传输的通用网络渠道和用于完结温湿度、液位、α及γ辐射总量丈量等作业的环境信息收集子体系。其结构别离如图l、图2所示。两个子体系经过一条40芯扁平电缆衔接。在软件上,考虑到运用互联网进行长途数据传输的复杂性,运用嵌入式操作体系和TCP/IP协议栈是必定的挑选,因而硬件上也环绕这个要害点进行规划。
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的,因而对α或γ计数脉冲都以主时钟进行二次锁存并整形,使每个异步计数脉冲发生一个只继续一个主时钟周期的同步脉冲。以该脉冲进行计数,不只处理了异步信号同步的问题,并且有效地滤除了搅扰脉冲,使计敦值精确。
3 体系的软件结构
为了完结运用Intemet进行长途数据传输,本体系在NiosII上移植了MicroC/OS2实时操作体系和LWIP(轻量级IP协议栈)然后在其上开发信息收集软件。
3.1 MicroC/OS2及LWIP的移植
此部分作业主要是针对本体系的特定硬件进行移植并编写如温湿度传感器SHT75、总量计数IP核等所需的各种驱动,因而深化了解软件的各层结构和细节是移植成功的要害。
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 信息收集程序的规划
本模块作为一个使命,运转于MicroC/OS2实时操作体系之上,完结对各个勘探子体系依据战略或长途指令的丈量操控,获取的信息被保存到指定的内存缓冲区,并依据要求将成果返回到长途主机上。关于温湿度丈量,因为SHT75传感器的湿度输出呈必定的非线性,为了获取精确数据,需求依据给定的公式对所取得的数据进行批改,而温度输出则不需进行补偿,将数字输出转换为实践温度值即可,详见SHT75数据手册。关于总量计数的处理,本模块仅仅简略地将数据打包后交给通讯服务器传回长途主机。
3.3 通讯服务器
本使命经过sys_thread_new()函数创立,作为一个服务器*约好的端口,等候长途主机的衔接,提取长途主机的指令,经过音讯行列将所取得的指令发送到信息收集使命;一起也依据要求将信息收集使命取得的各种数据分类发回长途主机。
LWP供给了规范的Berkeley套接字编程界面,这个界面供给了三种类型的套接字,在这里运用了流式套接字,这是一个面向衔接的牢靠的数据传输服务,也就是说运用的是TCP协议。一般,服务器接收到并发服务恳求,要激活一新进程来处理这个客户恳求,但出于体系资源和简化规划的考虑,在这里服务器同一时间只能承受一个衔接恳求,而这种简化事实上也是能够满意规划需求的。
本体系运用依据FPGA的片上体系技能和嵌入式体系技能完结了智能核仪器与互联网的衔接,一起也完结了硬件上的部分可重构,依据需求添加或删去FPGA中的外设IP核即可完结体系在功用和功用上的改动。现在本体系已经在放射性样品储藏室中运用,其功用和功用均满意实践环境的要求。因为本体系的网络渠道被规划成一个相对独立的子体系,因而只需开发特定的勘探子体系即可运用于各种相应的需求长途监控的范畴。