优秀课设——SCSI技术与IDE技术的分析与比较程序
- 格式:doc
- 大小:67.00 KB
- 文档页数:5
揭秘AHCI和IDE区别硬盘工作模式经历IDE和AHCI两个阶段,我们可以用螺旋桨式(IDE)、喷气式飞机(AHCI)来形容它们。
单从字面理解,我们可以知道螺旋桨式飞机的速度不如喷气式飞机。
●硬盘工作模式与操作系统的关系在WinXP时代,系统对AHCI模式支持不佳,选择AHCI模式装系统需要用软驱安装驱动等。
因此IDE模式在Windows XP时代一度盛行,并随着SATAII接口达到顶峰。
而到了Win7时代,AHCI驱动集成于操作系统,完全没繁琐步骤,从而拉开AHCI的普及之路。
注:时至今日,机械硬盘的最大读写速度仍未超过SATAII接口的极限。
●SSD固态硬盘助推AHCI成为主流AHCI和IDE模式的另一个分水岭则是在SSD固态硬盘的兴起。
早期的机械硬盘在AHCI和IDE模式下的速度差距较小;随着高性能的SSD固态硬盘出现,用户逐渐发现AHCI和IDE模式下的速度差距悬殊。
正是在集成AHCI驱动、支持Trim垃圾回收的Win7操作系统,带有SATA3.0高速接口的廉价7系列主板,以及不断降价的SSD固态硬盘推动,奠定了今日AHCI模式的主流地位。
纵使AHCI模式千好万好,也奈何不了IDE模式的超强兼容性,以及电脑城装机商对IDE模式的偏爱。
当您看完此文,如果你是第一次了解AHCI和IDE模式,请在开机之初按DEL或者F2查看BIOS,您的电脑是何种SATA硬盘工作模式AHCI模式解析:Z77主板的AHCI设备管理显示AHCI(Serial ATA Advanced Host Controller Interface),又名串行A TA高级主控接口/高级主机控制器接口。
AHCI通过包含一个PCI BAR(基址寄存器),来实现原生SATA 功能,允许存储驱动程序启用高级串行ATA 功能。
AHCI模式是专门为SATA接口而设计,支持SATA接口特性,诸如本机命令队列(NCQ)和热插拔。
但是需要用户在BIOS中选择AHCI模式,方便操作系统自动加载AHCI驱动。
IDE、SATA、SCSI、SAS、FC、SSD硬盘类型IDE磁盘================IDE(Integrated Drive Electronics), 本意是指把控制器与盘体集成在⼀起的硬盘驱动器,是⼀种硬盘的传输接⼝, 有另⼀个名称叫做ATA(Advanced Technology Attachment),指的是相同的东西。
特点:⼀般使⽤16-bit数据总线, 每次总线处理时传送2个字节。
PATA接⼝⼀般是100Mbytes/sec带宽,数据总线必须锁定在50MHz,为了减⼩滤波设计的复杂性,PATA使⽤Ultra总线,通过“双倍数据⽐率”或者2个边缘(上升沿和下降沿)时钟机制⽤来进⾏DMA传输。
这样在数据滤波的上升沿和下降沿都采集数据,就降低⼀半所需要的滤波频率。
这样带宽就是:25MHz 时钟频率x 2 双倍时钟频率x 16 位/每⼀个边缘/ 8 位/每个字节= 100 Mbytes/sec。
优点:⾃问世以来,⼀直以其价廉、稳定性好、标准化程度⾼等特点,深得⼴⼤中低端⽤户的青睐,甚⾄在某些⾼端应⽤领域,如服务器应⽤中也有⼀定的市场。
缺点:随着CPU时钟频率和内存带宽的不断提升,其接⼝协议PATA(Paralle ATA)逐渐显现出不⾜来。
⼀⽅⾯,硬盘制造技术的成熟使ATA硬盘的单位价格逐渐降低,另⼀⽅⾯,由于采⽤并⾏总线接⼝,传输数据和信号的总线是复⽤的,因此传输速率会受到⼀定的限制。
如果要提⾼传输的速率,那么传输的数据和信号往往会产⽣⼲扰,从⽽导致错误。
在当今的许多⼤型企业中,PATA现有的传输速率已经逐渐不能满⾜⽤户的需求。
SATA磁盘==================SATA(Serial ATA)⼝的硬盘⼜叫串⼝硬盘. SATA以它串⾏的数据发送⽅式得名。
在数据传输的过程中,数据线和信号线独⽴使⽤,并且传输的时钟频率保持独⽴,因此同以往的PATA相⽐,SATA的传输速率可以达到并⾏的30倍。
硬盘的接口类型主要分为EIDE和SCSI两种众所周知,硬盘是计算机上关键的存储设备。
我们的数据都存放在硬盘上,硬盘一旦崩溃,结果可想而知。
在信息越来越珍贵的今天,如何正确地使用硬盘以及在出现危险的时候拯救数据,修补错误就至关重要了。
在介绍硬盘故障处理的种种方法之前,您必须对硬盘的结构有一定的了解。
这样才干知己知彼,百故不殆!硬盘修理:硬盘的接口类型主要分为EIDE和SCSI两种。
早期的EIDE接口硬盘采纳T PIO Mode 4模式,由于采纳了Ultra 流的新一代Ultra其传输速率可以达到16.6Mb/s,后来DMA / 33(或称ATA-4)技术,传输速率一下子提升到了33.3Mb/s。
如今主DMA/66接口硬盘,脑制造商以及全部硬盘制造商的支持,/s。
而更高的Ultra DMA其接口界面已经获得了Intel与世界八大主要个人电数据传输率比Ultra DMA / 33翻了一倍,达"MB/100和Ultra DMA / 166目前也己经在酝酿之中。
而SCSI接口硬盘的基本数据传输率是20MB / s(8bit,50线)。
在应用了Ultra WID"标准后,费哪速军可以达到40MB / s;采纳Ultra2 WIDE SCSI标准后,其传输速率还可以升至8UMB /s(16bit,68线):__而采纳Ultra 160 / m SCS标准接口后,其传输速度更可以飘升到一6UM竺长 so前还有一种采纳FC一光纤通道接口的硬盘,其传输速率可以达到1UUMB / S的戴据传输率。
各种Ultraata接口的规格如表1.1所示。
如果要比较EIDE与SCSI这两种不同接口模式硬盘的优劣,从价格方面分析,EIDE的价格比较便宜,SCSI价格很高.如果从性能方面分析,EIDE接口的硬盘虽然安装容易,但其同意用户连接的设备较少,月. CPU占用率较高。
而SCSI接口的硬盘在这方面却表现特别:速度更快、同意增加足够的外设(EIDE提供两个通道,每个通道可挂两个EIDE设备,而SCSI却同意用户连接7个SCSI设备)、CPU占用率较低.。
硬盘IDE和AHCI模式的区别是什么推荐文章•BIOS中怎么设置硬盘IDE模式热度:•SATA与IDE有什么区别热度:•映泰主板设置硬盘模式AHCI或IDE怎么设置热度:•AHCI模式如何调成IDE模式热度:•ahci驱动怎么安装热度:硬盘IDE和AHCI模式的区别是什么硬盘IDE和AHCI模式两者之间的区别是什么嗯?以下便就是由店铺整理出来的关于硬盘IDE和AHCI模式两者之间的区别的内容,赶集来围观吧!希望能让大家有所收获!硬盘IDE和AHCI模式的区别IDE模式属于并口传输模式,也就是ATA模式,广泛运用与2004年之前,理论上最大传输数据的速度为133mb每秒,AHCI模式属于新技术,属于串口传输模式,也就是SATA模式,传输速度也很快,理论上可以达到300MB每秒。
虽然,IDE模式将在信息技术革新中被淘汰,但在系统中,还有时候会用到,比如为了安装没有继承SATA驱动的系统,需要调成IDE模式。
在驱动安装之后,还要调回AHCI,否则系统性能只能发挥30%左右性能。
如果系统无法支持AHCI的模式,那在安装系统中将会出现安装失败或者出现蓝屏,这种现象无论是ghost还是未安装SATA的XP系统中都无法避免。
其实AHCI模式,就是一种新型的硬盘算法,它可以提高机械硬盘的性能,使系统的运行速度更快。
比IDE更先进的是它可以提供和支持更多的功能。
这些附带的新功能是提高性能最关键的原因,比如NCQ技术,它也是一种全新的技术,如果开启它,将提高程序之间的跳转速度,如果要使用这种技术,就需要从硬盘中,选择AHCI模式,然后安装选项中对应的驱动程序即可。
如果系统中并未安装AHCI的驱动,开启后,系统就会出现蓝屏的情况。
这个时候,还是需要将需要调成IDE模式,手动安装AHCI的驱动,修改完注册表后,将系统重新启动。
接下来再说一下,在安装系统中常见的几种问题。
第一.原版(Windows xp sp3)中没有集成SATA驱动,所以在安装原版(Windows xp sp3)的时候会出现蓝屏的情况。
SCSI硬盘和IDE硬盘的比较SCSI概述SCSI(Small Computer System Interface)单纯的从英文直译过来叫做小型电脑系统接口,这是一种专门为小型计算机系统设计的存储单元接口模式,它是在1979年由美国的施加特(Shugart)公司(希捷的前身)研发并制订,并于1986年获得ANSI(美国标准协会)承认。
SCSI从发明到现在已经有了十几年的历史,它的强大性能表现使得许多对性能要求非常严格的计算机系统采用。
SCSI是一种特殊的总线结构,可以对计算机中的多个设备进行动态分工操作,对于系统同时要求的多个任务可以灵活机动的适当分配,动态完成。
这个功能是IDE设备所望尘莫及的。
也正是由于SCSI拥有这些出众的优点,使得SCSI能够在专业应用中占据绝对的主导地位。
在这么多年中,SCSI并没有停足不前,面对IDE 设备的强大挑战,SCSI也在不停的向前发展。
SCSI的发展在20世纪90年代初,SCSI接口发展为SCSI-2,也就是我们常说的Fast SCSI,Fast SCSI是通过提高同步传输时的频率使数据传输速率从原有的5MB/s提高为10MB/s,在Fast SCSI 之后又出现了可以支持16位并行数据传输的Wide SCSI(原来的SCSI和Fast SCSI标准均为8位并行数据传输),将数据传输率再提高为20MB/s。
也正是因为这个原因,原有的只支持8位并行数据传输的SCSI被称为Narrow SCSI。
到了1995年,硬盘技术的发展到了一个新的高度,面对日益强大的IDE设备,更为高速的SCSI接口SCSI-3诞生了。
SCSI-3俗称Ultra SCSI(数据传输率20MB/s),当使用16位传输的Wide模式时,数据传输率更高达40MB/s。
也就是这个时期,“高端、高速、高性能惟有SCSI”成为了人们的一种思维定式,大家渐渐的清楚认识到了SCSI的威力所在。
时间转到了1997年,为了对抗IDE设备的强大新生力量Ultra ATA标准,不甘示弱的SCSI阵营也于1997年中推出了新的Ultra2 SCSI规格(Fast-40),目前已有多种SCSI硬盘支持Ultra 2 SCSI。
什么是总线类型?什么是IDE?什么是SCSI?在电脑内核配置中,涉及到各种总线类型,有必要了解⼀下什么是总线和总线的类型。
1)总线总线是⼀组通信线.在机器内部, 各部件通过总线连接; 对于外部设备, 通过总线连接相应设备的接⼝电路, 然后再与该设备相连. ⼀般接⼝电路⼜叫适配器或接⼝卡.外部总线分为数据总线(data bus)、地址总线(address bus)和控制总线(control bus). 数据总线中传送的是数据信息, 地址总线中传送的是地址信息, 控制总线中传送的是控制信号.总线传送数据时可以是单向的也可以是双向的.2)总线类型总线有以下⼏种类型:(1)ISA(Industry Standard Architecture)总线, 简称AT总线, 它的主要性能指标如下:(3)MCA(Micro Channel Architecture)总线, 主要⽤于IBM原装机中(2)EISA(Extended Industry Standard Architecture)总线, 扩展的⼯业标准总线.*I/O地址空间0100H~03FFH*24位地址总线可直接寻址16M内存*8/16位数据总线*最⼤传输速率8MB/s*DMA通道功能*开放式总线结构, 允许多个CPU共享系统资源3)局部总线随着CPU的飞速发展, 总线的低传输速率与微处理器的⾼处理速度不能同步, 造成硬盘、图形卡和其它⾼速外设只能通过⼀个狭窄⽽缓慢的瓶颈发送和接收数据, 从⽽严重影响了CPU⾼性能的充分发挥, ⼯业界因此⼜发展了局域总线(Local Bus)的新技术.局域总线是在CPU总线与ISA或EISA总线之间新增加的⼀级总线. 它独⽴于CPU的结构, 与CPU的时钟频率⽆关, 使总线形成了⼀种独特的中间缓冲器. ⼀些⾼速外设, 如⽹卡和硬盘适配器等, 可以从ISA总线上卸下, 通过局域总线直接挂接到CPU总线上, 从⽽解决了低速总线在⾼速微处理器和⾼速外设之间形成的瓶颈.4)局部总线的类型标准局域总线⽬前有两种:(1)PCI(Peripheral Component Interconnect)总线. PCI 1.0为32位总线, 时钟频率为33MHz, 最⼤传送速率为32×33/8=132MB/s. PCI 2.0为64位总线, 时钟频率为66MHz, 最⼤传送速率为 264 MB/s. PCI总线具有运⾏速度快, 可扩展性好, ⽀持即插即⽤等特点.(2)VESA总线, 这种总线是对CPU总线的直接扩充, 主要适⽤于486型计算机中.5)接⼝⽅式IDE(Integrated Device Electronics), 也称为ATA接⼝⽅式. 其中控制器电路就驻留在设备⾥, 不需要另外使⽤设备适配卡. 以这种接⼝⽅式连接硬盘时, 硬盘最⼤容量为528M, 最⼤传输速率为3MB/s. 增强型IDE(E-IDE)和Ultra IDE在硬盘容量和数据传输速率⽅⾯都有了很⼤的提⾼. SCSI(Small Computer System Interface)接⼝⽅式. 它把硬盘、光驱、打印机等设备的接⼝集成在⼀块SCSI接⼝卡上, CPU可以通过SCSI接⼝卡⾼速访问外部设备. SCSI具有⾼速和多任务的特点, 适合于运⾏多媒体程序.FC-AL(Fiber Channel- Arbitrated Loop)光纤通道. 这是⼀个串⾏接⼝⽅式. 最⼤传输速率可达100MB/s~ 200MB/s, ⽤于⾼档服务器.USB(Universal Serial Bus)通⽤串⾏总线接⼝. 最⼤传输速率只有12MB/s, ⽤于低速设备. 但对多种设备通⽤, ⽀持即插即⽤.。
IDE硬盘与SCSI硬盘的区别IDE是英文Integrated Drive Electronics的缩写,翻译成中文叫做"集成驱动器电子",它的本意是指把控制器与盘体集成在一起的硬盘驱动器。
通常我们所说的IDE指的是硬盘等设备的一种接口技术。
IDE接口也叫ATA(Advanced Technology Attachment)接口,现在PC(个人电脑)机使用的硬盘大多数都是IDE兼容的,只需用一根40线电缆将它们与主板或接口卡连起来就可以了。
把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容,对用户而言,硬盘安装起来也更为方便。
目前,在低档的入门级服务器上有很大一部分采用IDE接口,这样做的好处是价格低廉,对一些性能要求不是很高的环境是不错的选择。
但采用IDE接口的服务器也有着严重的缺陷,那就是速度瓶颈、不能实现热插拔、很难实现数据的可靠性保护,虽然现在很多服务器厂商也都推出了基于IDE的RAID(磁盘冗余整列,一种对硬盘数据的可靠性保护方式)方案,但这也仅仅局限于小流量的数据,而对于大流量的突发性的数据要求就显得无能为力了。
也正式基于这样的情况,所以现在服务器仍然以稳定、传输速率高的SCSI接口为主。
硬盘接口的分类硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。
不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。
从整体的角度上,硬盘接口分为IDE、SATA、SCSI和光纤通道四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。
SATA是种新生的硬盘接口类型,还正出于市场普及阶段,在家用市场中有着广泛的前景。
AHCIAHCI,全称为Serial ATA Advanced Host Controller Interface(串行ATA高级主控接口/高级主机控制器接口),是在Intel的指导下,由多家公司联合研发的接口标准,它允许存储驱动程序启用高级串行ATA 功能,如本机命令队列和热插拔,其研发小组成员主要包括Intel、AMD、戴尔、Marvell、迈拓、微软、Red Hat、希捷和StorageGear等著名企业。
AHCI本质是一种PCI类设备,在系统内存总线和串行ATA设备内部逻辑之间扮演一种通用接口的角色(即它在不同的操作系统和硬件中是通用的)。
这个类设备描述了一个含控制和状态区域、命令序列入口表的通用系统内存结构;每个命令表入口包含SATA设备编程信息,和一个指向(用于在设备和主机传输数据的)描述表的指针。
AHCI通过包含一个PCI BAR(基址寄存器),来实现原生SATA功能。
由于AHCI统一接口的研发成功,使得支持串行ATA产品的开发工作大为简化,操作系统和设备制造商省去了单独开发接口的工作,取而代之的是直接在统一接口上进行操作,可以实现包括NCQ(Native Command Queuing)在内的诸多功能。
AHCI模式则与IDE模式相反,装系统时需要安装SATA驱动(而且貌似只有这个模式才能打开NCQ功能)。
RAID模式是要有两块硬盘才能实现的,具体情况可以参照一下网上组建RAID的文章,如果你只有一块硬盘就可以忽略它了。
补充:NCQ是一种新的硬盘技术,简单来说开启它之后从一个程序跳到另一个程序时速度会更快,要实现它首先就要在BIOS里选择AHCI模式,然后在装系统时安装相应的驱动(一般在主板驱动盘里有),安装好系统之后基本上就可以实现了。
一直以来SCSI硬盘在多任务负载下的表现能力为人称道,其根本的原因除了SCSI接口惊人的接口速率外,便是它的指令排序功能。
以往的PATA、SATA硬盘也正是因为缺少一种指令优化执行功能而在性能上落后于SCSI硬盘。
SCSI与IDE的区别
除了SCSI,IDE也是一种极为常用的接口。
从使用简便的角度来看,IDE更加适合普通用户,再加上个人电脑用户不但需要配置的外设不多,而且对速度要求也不高,因此选用IDE接口更合适些。
此外,IDE还具有性能价格比高、适用面广等特点。
而SCSI接口尽管具有很多无与伦比的特点,但不论从哪个角度看,该接口及其使用该接口的外设售价过于昂贵,一般用户实在无法承受,这也就决定了它的实际使用范围的局限性。
1.IDE的工作方式需要CPU的全程参与,CPU读写数据的时候不能再进行其他操作,这种情况在Windows95/NT的多任务操作系统中,自然就会导致系统反应的大大减慢。
而SCSI接口,则完全通过独立的高速的SCSI卡来控制数据的读写操作,CPU 就不必浪费时间进行等待,显然可以提高系统的整体性能。
不过,现在的IDE接口为改善这个问题也做了很大改进,已经可以使用DMA模式而非PIO模式来读写,数据的交换由DMA通道负责,对CPU的占用可大大减小。
尽管如此,比较SCSI和IDE 在CPU的占用率,还是可以发现SCSI仍具有相当的优势。
2.SCSI的扩充性比IDE大,一般每个IDE系统可有2个IDE通道,总共连4个IDE设备,而SCSI接口可连接7~15个设备,比IDE要多很多,而且连接的电缆也远长于IDE。
3.虽然SCSI设备价格高些,但与IDE相比,SCSI的性能更稳定、耐用,可靠性也更好。
机械硬盘接口类型(IDE、SATA、SCSI、SAS)从存储数据的介质上来区分,硬盘可分为机械硬盘(HDD,Hard Disk Drive)和固态硬盘(SSD,Solid State Disk),机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。
1、IDE接口(Integrated Drive Electronics,电子集成驱动器)IDE(Integrated Drive Electronics,电子集成驱动器),包括PIO(Programming I/O)和DMA(Direct Memory Access) 两种传输模式。
ATA(Advanced Technology Attachment,高技术配置),ATA本身可以支持串行或并行。
最快的并行ATA(即ATA/133)所能达到133MB/sec,现在市场上几乎没有IDE接口的硬盘了。
IDE接口的硬盘价格低廉、兼容性强、性价比高。
但是,数据传输速度慢、线缆长度过短、连接设备少、不支持热插拔、接口速度的可升级性差。
2、SATA接口(Serial ATA,串行ATA)SATA(Serial ATA,串行ATA,Serial Advanced Technology Attachment),速度比IDE接口更快,SATA不依赖系统总线的带宽,而是内置时钟频率,支持热插拔。
SATA 3.0最大的改进之处,就是将总线最大传输带宽提升到6Gbps,实际传输速度大约600MB/S(理论为6Gbps/8=768MB/S)现在市场上大部分机械硬盘接口几乎都是SATA。
虽然SATA具备了热插拔的规范,但连接缆线多是设计给内接式硬盘使用,最大插拔次数仅约200次,超过此插拔数目,缆线接头便会劣化,甚至有可能造成硬盘的损坏。
SATA与并行ATA的不同并行ATA数据线由80根线组成,非常宽;SATA数据线仅有7根弦,较窄,不会影响机箱内部散热风流。
SATA数据线最远传输距离可达1米,更有利于机箱内部走线,保障系统散热。
SCSI技术与IDE技术的分析与比较程序IDE和SCSI是两种相互独立的技术,多年来一直控制各自的应用领域。
IDE硬盘与SCSI 硬盘的技术应用,是完全不同的两个方向。
IDE硬盘是作为系统操作硬盘使用,而SCSI 硬盘是作为数据存储硬盘使用。
随着技术的发展,IDE硬盘以其价格优势不断向数据领域扩展。
10年以前广播电视领域出现了第一台视频服务器。
在当时,可供选择的硬盘技术只有典型的SCSI技术以及几年后的光纤驱动器。
从那时起,磁盘驱动器的容量和性能不断地提高,磁盘驱动器的生产厂家主要在磁盘媒介和磁头设计方面有明显的改进。
SCSI硬盘和光纤驱动器由于有着最高的容量、性能和稳定性而成为领先者。
随着技术的不断发展,IDE硬盘的性能有很大提高,推出的基于IDE技术的ATA硬盘,增大了缓存,提高了转速和传输带宽,增加了寿命,一些技术参数接近甚至超过SCSI硬盘。
与老一代的IDE硬盘相比较,性能有了很大的飞跃。
所以很多存储器厂家纷纷推出基于ATA 硬盘的盘塔,希望代替SCSI硬盘的盘塔或FC硬盘的盘塔。
现就对这两种硬盘的性能指标作一肤浅的分析。
以前在人们眼中非常简单的硬盘接口,时至今日也已变得错综复杂、优劣难分了。
我们可以从市场中见到的各种硬盘接口标注即可见一斑。
目前我们可以见到的硬盘接口标注主要有:IDE、ATA、UltraATA/33、Ultra ATA/66、Ultra ATA/100、Ultra ATA/133、UltraDMA/33、Ultra DMA/66、Ultra DMA/100、Ultra DMA/133、SerialATA、SCSI、SCSI II、Wide SCSI II、Ultra SCSI II、Ultra Wide SCSIII、Ultra2 SCSI、Ultra160 SCSI、Ultra320SCSI,除此之外,原来主要应用于其它设备上的“Fibre Channel”、“IEEE1394”、“FireWire”、“iLink”、“USB”等接口也开始出现在一些特殊用途的新型硬盘中。
面对如此多硬盘接口技术,不要说那些“菜鸟”会感到迷惑,就连我这样有过多年IT经验的“老鸟”对一些标注也有时倍感难以区分。
当然我深知,在这许多接口类型标注中可分为少数几个大类。
任何技术都有一个自身发展过程,大凡在许多同类技术中,绝大多数只不过是某一原始技术的升级,所以当我们面对如此众多的硬盘接口标准时只需要分清几个大的主流即可,也就把它们分类。
综合分析后,我们不难以得出,其实在这么多接口技术中,总的来说只有五类,即:IDE、SCSI、Fibre Channel、IEEE 1394和USB。
前面两种,即“IDE”和“SCSI”是目前整个硬盘接口的主要类型,特别是IDE类型。
对于后面的“Fibre Channel”、“IEEE先进入Microsoft Visual C++ 6.0中,编译运行源程序,生成可执行文件。
其可执行文件名为Ethernet.exe。
然后进入DOS中,进行帧的封装,其过程如下图五所示。
其二进制形式如下图八所示:static void send_msg(const void *addr, const pid_t pid,char ch){pid_t *bus=(pid_t *)addr;int collision; //冲突计数器int k=0;//发送成功的次数for(int i=0;i<10;i++){collision=16;do{while(*bus!=0);//总线不空闲,循环等待直到总线空闲.usleep(SLOT_TIME/2);//检测到总线为空闲时就开始发送数据,因为线程A和B共享总线变量bus,所以在τ时间以内,另一个线程收不到数据,所以要进行此操作*bus|=pid; //表示另一个进程受收到模拟数据.usleep(SLOT_TIME/2);//从模拟数据发送后经过2τ时间之后进行判断.//判断是否冲突,共享内存与写入内存比较,若相同则无冲突,否则发生冲突.if(*bus!=pid){*bus=0; //复原总线为0collision--;if(collision>0){printf("%d send collision.\n", pid);usleep(get_backoff(collision)); //随机延时}else{printf("%d send failure.\n", pid); //发送失败break;}图八输出结果的二进制形式图八、课程设计心得与体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题, 锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在,因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,我感慨颇多。
它不仅巩固了我所学过的知识,而且让我学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,提高自己的实际动手能力和独立思考的能力。
在该设计过程中我遇到了许多的问题,让我发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
程序代码#include <iostream.h>#include <fstream.h>void main (int argc,char* argv[]){if(argc!=3)//判断输入的命令行格式是否正确{cout <<"请按以下格式输入命令行:framer inputfile outputfile" <<endl;return;}fstream file;//创建文件流file.open(argv[2],ios::in |ios::out |ios::binary |ios::trunc);//打开指定输出文件,读写方式为以二进制方式可读可写,如文件存在则清除其for(int i=0;i <7;i++) file.put(char(0xaa));//写入7B前导码file.put(char(0xab));//写入1B帧前界定符long pCrcs=file.tellp();//获得当前文件指定指针位置,计算CRC时从这里开始chardst_addr[6]={char(0x00),char(0x00),char(0xe4),char(0x86),char(0x3a),char(0xdc)};file.write(dst_addr,sizeof(dst_addr));//写入6B目的地址charsrc_addr[6]={char(0x00),char(0x00),char(0x80),char(0x1a),char(0xe6),char(0x65)};file.write(src_addr,sizeof(src_addr));//写入6B源地址ifstream infile;//创建输入文件流infile.open(argv[1],ios::binary);//打开指定输入文件infile.seekg(0,ios::end);//将文件读指针移到末尾short length=(short)infile.tellg();//获得位置偏移量,即为输入文件长度file.put(char(length/256));//将该长度写入数据长度字段(2B)file.put(char(length%256));char* data=new char[length];infile.seekg(0,ios::beg);infile.read(data,length);//从输入文件中读出所有数据至data中file.write(data,length);//将data中数据写入输出文件infile.close();//关闭输入文件delete data;//回收dataif(length <46) for(int i=0;i <46-length;i++) file.put(char(0x00));//数据字段不足46B的部分用0填充long pCrc=file.tellp();//获得当前位置,计算后的CRC码将写到这个位置file.put(char(0x00));//数据后补1B的0,用于crc计算short total=short(file.tellp())-(short)pCrcs;//需要进行计算的数据长度file.seekg(pCrcs,ios::beg);//将读指针指向目的地址字段,从这里开始crc计算unsigned char crc=0;//初始余数为0while(total--){unsigned char temp;file.get(temp);//读1B的数据//以下模拟数据除以100000111的二进制除法过程for(unsigned char i=(unsigned char)0x80;i>0;i>>=1){if(crc&0x80){crc<<=1;if(temp&i) crc^=0x01;//将输入数据相应位的值递补到余数末位crc^=0x07;//进行除法运算(即减去除数的低8位:00000111) }else{crc<<=1;if(temp&i) crc^=0x01;//将输入数据相应位的值递补到余数末位}}}file.seekp(pCrc,ios::beg);file.put(crc);cout<<"帧文件"<<argv[2]<<"封装完成"<<endl;file.close();//关闭文件}。