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

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

ID:24766761

大小:51.00 KB

页数:5页

时间:2018-11-16

基于嵌入式操作系统vxworks的scsi硬盘高速记录系统_第1页
基于嵌入式操作系统vxworks的scsi硬盘高速记录系统_第2页
基于嵌入式操作系统vxworks的scsi硬盘高速记录系统_第3页
基于嵌入式操作系统vxworks的scsi硬盘高速记录系统_第4页
基于嵌入式操作系统vxworks的scsi硬盘高速记录系统_第5页
资源描述:

《基于嵌入式操作系统vxworks的scsi硬盘高速记录系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、第1摘要:介绍了由基于VxsoNormal>关键词:VxB/s40MB/s1.5mUltra2SCSI40MB/s80MB/s12mUltra160 160MB/s12mUltra320 320MB/s 从Ultra2之后,SCSI采用全新的LVD(LowVoltageDifferential)串接模块。LVD的特性为低电压、信号干扰少、兼容传统排线,可以有较长的串接距离,也可以兼顾传输速度与设备数。这次任务使用Ultra160,接口速度可达160MB/s。实际应用中只需要55MB/s的传输速度。

3、实际测出的速度达80MB/s以上。2系统软件结构2.1VxWorks操作系统简介系统软件基于VxWorks操作系统平台。VxWorks操作系统是目前世界上最先进的高性能实时操作系统,主要应用于航空、航天、导弹武器系统(包括火星探陆车、爱国者导弹系统、F-16战机等)。它包括一个微内核、强大的网络支持,以及文件系统和I/O管理、C++支持的各种模块。它的多任务、抢占调度、快速上下文切换、低中断延迟和快速灵活的通信机制更是VxWorks的突出优点。VxWorks特点:(1)支持多种CPU包括x86、PowerPC、68K、i960、SPARC、Mips等。还支

4、持RISC和DSP技术。(2)实时性VxWorks系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,造成的延迟很短。VxWorks提供多任务机制,对任务的控制采用了优先级抢占(PreemptivePriorityScheduling)和轮转调度(Round-RobinScheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。(3)可裁减性用户在使用操作系统时,并不是操作系统中的每一个部件都用到。例如图形显示、文件系统以及一些设备驱动在某些嵌入式系统中并不使用。VxWo

5、rks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成,可裁剪的组件超过80个。VxWorks内核最小为8KB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于其高度灵活,用户可以很容易地对这一操作系统进行定制或适当开发,满足自己的实际应用需要。(4)可靠性操作系统的可靠性是用户首要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。VxWorks以其良好的可靠性在一些实时关键任务领域赢得了广泛的用户。2.2系统软件功能系统软件结构如图2所示。记录系统完全通过接收来自RS-232串口或TCP网络的命令字进行

6、工作。记录结束后通过TCP网络下载记录数据。首先进行系统初始化,对各硬件进行必要的初始设置,确定其工作状态。包括:网络部件的初始化、SCSI卡的初始化、SCSI硬盘的初始化、PCI采集卡的初始化以及处理来自PCI采集卡硬件中断的信号量的初始化。然后进行系统自检,包括对SCSI硬盘记录速度测试自检以判定是否能达到要求的记录速度、硬盘的读写自检,以及对自己定义在硬盘前一段当作数据检索用的信息头的自检。系统自检成功后将会调用taskSpawn()系统调用使处理串口和网络命令的模块运行起来。根据主控计算机发来的命令字调用相应的功能模块并给主控计算机相应的回答响应。

7、具体命令包括:A查询系统版本、B自检、C开始记录、D停止记录、E查询硬盘剩余容量、F开始图像数据下载、G查询系统状态、H硬盘清空、I查询单次任务信息。系统最重要的工作是记录任务。PCI采集卡每75ms发出一个中断,在这段时间里采集卡已经完成了一个缓冲区共4MB数据的采集,此时来的图像数据流存储在另外一个4MB缓冲区中,即所谓的交叉存储技术,以保证数据不会丢失。在这75ms时间内必须完成记录4MB的任务,记录速度约为54MB/s。在实际测试中,记录4MB的数据一般50ms即可完成,记录速度约为80MB/s,因此较好地完成了记录任务。实际编程,在硬件中断服务程

8、序中只是用semGive()系统函数放出一个信号量,由发起任务具体处理记录操作。中断服务程序不象一般的任务那样运行在普通的任务上下文中,它没有任务控制块,所有的中断服务程序共享一个堆栈。所以对中断服务程序的基本要求就是不能引起阻塞。例如在中断服务程序不能调用printf()函数用于输出信息。此外,在中断服务程序中也不能通过VxWorks驱动执行I/O操作。此项目中阵列了三个SCSI硬盘,每个硬盘容量为36GB,共计108GB。由于一个硬盘物理的持续读写速度在30MB/s左右,因此必须阵列地读写多个SCSI硬盘,在处理中断服务程序的任务中利用每个硬盘物理的读

9、写间隙,按一定时隙分别写入每个硬盘一定的数据量,实现了硬盘的并行工

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。