远程监控系统如果实现的技术解决方案(二).docVIP

远程监控系统如果实现的技术解决方案(二).doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
远程监控系统如果实现的技术解决方案(二).doc

远程监控系统如何实现的技术解决方案(二) ? ? 三、系统的软件结构 ? ? 为了实现利用Intemet进行远程数据传输,本系统在NiosII上移植了MicroC/OS2实时操作系统和LWIP(轻量级IP协议栈)进而在其上开发信息采集软件。 ? ?(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进行任务调度。 ? ? (2)信息采集程序的设计 ? ? ?本模块作为一个任务,运行于MicroC/OS2实时操作系统之上,完成对各个探测子系统基于策略或远程指令的测量控制,获取的信息被保存到指定的内存缓冲区,并根据要求将结果返回到远程主机上。对于温湿度测量,由于SHT75传感器的湿度输出呈一定的非线性,为了获取准确数据,需要根据给定的公式对所获得的数据进行修正,而温度输出则不需进行补偿,将数字输出转换为实际温度值即可,详见SHT75数据手册。对于总量计数的处理,本模块只是简单地将数据打包后交给通信服务器传回远程主机。 ? ? ?(3)通信服务器 ? ? ? 本任务通过sys_thread_new()函数创建,作为一个服务器约定的端口,等待远程主机的连接,提取远程主机的命令,通过消息队列将所获得的命令发送到信息采集任务;同时也根据要求将信息采集任务获得的各数据分类发回远程主机。LWP提供了标准的Berkeley套接字编程界面,这个界面提供了三种类型的套接字,在这里使用了流式套接字,这是一个面向连接的可靠的数据传输服务,也就是说使用的是TCP协议。通常,服务器接收到并发服务请求,要激活一新进程来处理这个客户请求,但出于系统资源和简化设计的考虑,在这里服务器同一时刻只能接受一个连接请求,而这种简化事实上也是可以满足设计需要的。本系统应用基于FPGA的片上系统技术和嵌入式系统技术实现了智能核仪器与互联网的连接,同时也实现了硬件上的部分可重构,根据需要增加或删除FPGA中的外设IP核即可实现系统在功能和性能上的改变。目前本系统已经在放射性样品储藏室中应用,其功能和性能均满足实际环境的要求。由于本系统的网络平台被设计成一个相对独立的子系统,因此只需开发特定的探测子系统即可应用于各种相应的需要远程监控的领域。

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档