用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

基于嵌入式操作系统VxWorks的SCSI硬盘高速记录系统

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:35:24
且不失其实时、多任务的系统特征。由于其高度灵活,用户可以很容易地对这一操作系统进行定制或适当开发,满足自己的实际应用需要。

(4) 可靠性

操作系统的可靠性是用户首要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。VxWorks以其良好的可靠性在一些实时关键任务领域赢得了广泛的用户。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    2.2 系统软件功能

系统软件结构如图2所示。记录系统完全通过接收来自RS-232串口或TCP网络的命令字进行工作。记录结束后通过TCP网络下载记录数据。

首先进行系统初始化,对各硬件进行必要的初始设置,确定其工作状态。包括:网络部件的初始化、SCSI卡的初始化、SCSI硬盘的初始化、PCI采集卡的初始化以及处理来自PCI采集卡硬件中断的信号量的初始化。

然后进行系统自检,包括对SCSI硬盘记录速度测试自检以判定是否能达到要求的记录速度、硬盘的读写自检,以及对自己定义在硬盘前一段当作数据检索用的信息头的自检。

系统自检成功后将会调用taskSpawn()系统调用使处理串口和网络命令的模块运行起来。根据主控计算机发来的命令字调用相应的功能模块并给主控计算机相应的回答响应。具体命令包括:A查询系统版本、B自检、C开始记录、D停止记录、E查询硬盘剩余容量、F开始图像数据下载、G查询系统状态、H硬盘清空、I查询单次任务信息。系统最重要的工作是记录任务。PCI采集卡每75ms发出一个中断,在这段时间里采集卡已经完成了一个缓冲区共4MB数据的采集,此时来的图像数据流存储在另外一个4MB缓冲区中,即所谓的交叉存储技术,以保证数据不会丢失。在这75ms时间内必须完成记录4MB的任务,记录速度约为54MB/s。在实际测试中,记录4MB的数据一般50ms即可完成,记录速度约为80MB/s,因此较好地完成了记录任务。实际编程,在硬件中断服务程序中只是用semGive()系统函数放出一个信号量,由发起任务具体处理记录操作。中断服务程序不象一般的任务那样运行在普通的任务上下文中,它没有任务控制块,所有的中断服务程序共享一个堆栈。所以对中断服务程序的基本要求就是不能引起阻塞。例如在中断服务程序不能调用printf()函数用于输出信息。

此外,在中断服务程序中也不能通过VxWorks驱动执行I/O操作。此项目中阵列了三个SCSI硬盘,每个硬盘容量为36GB,共计108GB。由于一个硬盘物理的持续读写速度在30MB/s左右,因此必须阵列地读写多个SCSI硬盘,在处理中断服务程序的任务中利用每个硬盘物理的读写间隙,按一定时隙分别写入每个硬盘一定的数据量,实现了硬盘的并行工作,达到了高速存储记录的目的。

本系统成功地应用于实际工程项目中,其可靠性和实时性已在严格的实际应用环境中得到检验。下一步,将进一步提高记录系统的性能指标,采用基于64位66MHz的PCI总线、SCSI Ultra 320接口、千兆网络接口以及阵列更多的SCSI硬盘,使系统的记录速度、记录容量、下载传输速度和可靠性都有更大的提高。本系统虽然是专门为我所实时测控系统中高速记录任务而设计,但实际上也广泛地应用于图像处理、雷达、声纳等对实时图像记录有要求的领域。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:8,593.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号