基于VxWorks数据采集存储系统设计.docVIP

  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文档。上传文档
查看更多
基于VxWorks数据采集存储系统设计

基于VxWorks数据采集存储系统设计   摘要:本文以PC104工控机和数据采集模块为硬件平台,介绍了多任务实时操作系统Vxworks,研究了基于Vxworks的数据采集卡初始化、任务初始化、数据采集、数据存储等技术,设计了基于Vxworks实时操作系统的数据采集存储装置。该装置成功应用于海洋环境测量,且能长期稳定可靠运行。   关键词:Vxworks多任务 初始化 采集 存储   中图分类号:TP315 文献标识码:A 文章编号:1007-9416(2011)04-0081-01      1、引言   在海洋环境测量监控工程中经常需要用到锚底式或浮标式的测量装置,这些装置在密封的舱体中长期自主运行,在预定的时刻或收到遥控信号后进行高速数据采集和存储,对运行的稳定性、可靠性和实时性有较高的要求。以往有采用DOS和Windows操作系统的测量装置,不同程度上都存在数据丢帧、容易死机、故障率高的现象。VxWorks嵌入式实时操作系统包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等部分,核心是高性能的微内核wind,支持快速任务切换、中断、抢占式和时间片轮转调度;运行软件具有可裁剪性,方便嵌入式系统的资源分配。      2、系统硬件组成   数据采集存储系统采用高可靠的PC104+总线结构,由A/D采集卡、嵌入式计算机、IDE硬盘、电源模块构成,如图1所示。   A/D转换选用General Standards公司的PMC-ADADIO嵌入式高速并行数据采集卡,提供基于PC/104+总线的16bit数据精度模拟信号输入,支持上电后即插即用(PNP),其PCI桥为PLX的9080芯片。General Standards提供了Vxworks操作系统的驱动,简化了本系统的软件开发。      3、系统软件设计   VxWorks实时多任务操作系统可以支持256个任务,支持信号量、消息队列等任务间通讯和同步机制;提供强大的网络功能,兼容SUN公司的NFS,可通过FTP、NFS方式远程存取文件实现数据的下载和硬盘文件管理。数据采集存储系统软件采用多任务的设计思路,主要实现初始化A/D采集卡、接收串口控制命令、数据采集、数据存储功能。   3.1 数据采集卡的初始化   在系统上电时读取硬盘根目录下的“adconfig.adc”文件,根据文件参数表对数据采集卡进行初始化配置,设置采样通道、缓冲模式、输入信号形式、采样频率等参数。数据采集卡属于外接标准PCI设备,不属于VxWorks自身支持的设备,所以在把其驱动程序编译到Vxworks内核之后,首先要初试化该PCI设备。   3.2 任务设计   软件采用Vxworks的基于优先级的抢占式调度,为每个任务指定不同的优先级,当更高优先级的任务由就绪态进入运行时,系统内核立即保存当前任务的上下文,切换到更高优先级的任务。根据系统功能规划,设计3个任务:   3.2.1接收串口控制命令任务SerialControlCommandTask   优先级为1(高),接收RS232串口送来的控制命令,以启动记录或停止记录,系统上电后30秒内没有控制指令则自动进入数据采集记录状态。本任务主要用于系统调试、数据转存、系统断电前安全关机。   3.2.2数据采集任务 DataGetTask   优先级为2(中),进入数据采集记录状态后该一直运行,采用查询方式检测A/D卡的缓冲区半满标志,若INPUT_HALF_FULL为真,采用DMA方式将A/D卡的缓冲区数据读到内存中。   3.2.3数据存储任务 DataSaveTask   优先级为3(低),将内存数据写入到硬盘,以系统时间为文件名。为避免长时间采集造成超大文件,记录满5分钟后新建存储文件。   3.3 任务间的通信   软件采用状态标志和消息队列实现任务间的通讯和同步。在系统上电、完成硬件初始化后,对三个任务进行初始化,延时30秒,等待串口控制命令。如SerialControlCommandTask收到控制命令或在30秒内无串口指令,均给出相应状态标志,DataGetTask根据状态标志执行。      4、任务实现   4.1数据采集任务实现   对于缓冲区的数据采用DMA方式传输,需要设置DMA传输的操作参数DMA_PARAM,其中参数ulDMALocalAddress是获取后数据的存放地址,ulDMAByteCount是读入数据的大小。数据读入操作都是利用函数Ioctl()变换不同的参数完成。利用参数GET_IN_BUFFER_STATUS读取当前缓冲区的状态,若缓冲区已满,则利用参数START_DMA启动DMA传输,将缓冲区中数据读入内存,待DMA传输完成后对数据进

文档评论(0)

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

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

1亿VIP精品文档

相关文档