日志档案

发表于 2007-2-12 15:51:32

1

标签: 硬盘  数据线  ATA协议  

答avan的“一个关于硬盘接口的问题”

    今天偶然在avan老哥的博客里看到了这样一篇文章:一个关于硬盘接口的问题。这个问题前些天我也碰到过,在学习IDE协议时也看到过相关问题的说明,只是每次看到的时候都因为“更重要”的问题而把它忽略了。看到avan老哥能够不耻下问,我也按捺不住,决定一探究竟,消除这个知识盲点。 riple

    查看了ATA-5文档中的相关章节,获得了如下几点认识: riple

  1. 在80线的电缆上,可能有三个连接端,依次是:主机端(蓝色,在连接端子的侧面有一个缺口,可以看到里面的金属)、从设备端(黑色)、主设备端(黑色);在40线的电缆上,这三个连接端的顺序是:主机端、主设备端、从设备端。  riple
  2. 引入80线电缆的原因是为了支持UDMA传输方式,所以主机必须区分是何种电缆才能确定采用哪种传输方式。  riple
  3. 40线电缆和80线电缆的连接端子是相同的(兼容性的考虑,余出来的40根电缆连接到Ground上),主机通过34脚(CBLID-: PDIAG-)输入的高低电平来判断是哪种电缆判断的依据来自线缆本身,80线电缆的34脚在主机端是连接到Ground上的。  riple
  4. 40线电缆上,主、从设备端34脚和主机端34脚是直接连通的;80线电缆上,主、从设备上的34脚是通过电缆连通的,主机端的34脚连出来的线缆却不连接到任何一个设备端上,而是连接到Ground线上(这是线缆本身的连接方式,不是主板的连接方式)。同一根线,在线缆的不同段落上有不同的连接方式。 riple 
  5. 需要注意的是:80线电缆上,34脚在主机端的定义和在设备端的定义是不同的。在主机端34脚被叫做CBLID-,供主机判断电缆的类型;在设备端被叫做PDIAG-,是主设备在上电自检时用来判断从设备是否完成自检的信号。80线电缆上,34脚在主机端是输入引脚(直连到地),在主设备端是输入引脚(连到从设备端),在从设备端是输出引脚(连到主设备端)。如下图所示。 riple

点击看大图

 

    所以,avan老哥说的对调电缆造成传输速度下降的现象就好解释了。对调前,主机端的CBLID-信号通过80线电缆的主机端34脚连接到Ground线上,主机查询一下就知道是低电平,从而做出正确判断;对调后,主机端的CBLID-信号通过80线电缆的主设备端34脚连接到从设备端34脚上(很有可能悬空),主机查询不到一个确定是低电平的引脚,从而判断电缆为40线,在传输过程中就会采用速度低于UDMA的方式(PIO或MDMA)。 riple

   

   IDE接口中还有一个CSEL(Cable Select)信号(28脚),它不是用来判断电缆类型的,而是用来配置电缆上的设备是否是主设备的。这个信号在主机端(主板上)连接到Ground上,通过线缆连接到主设备端上,设备通过这个低电平信号知道自己被配置成主设备;电缆上的从设备连接端子在28脚上是和电缆断开的,连接到这个端子上的设备就会认为自己是从设备。这就是为什么两块硬盘都配置成CS方式后,可以连接到同一根电缆上的原因——不同的连接位置决定了设备的主从关系。 riple

   

点击看大图

 

    ATA接口发展了这么多年(ATA-8),为了保证向下兼容,产生了许多构思巧妙的设计。这些设计既要利用已有的形式,又要添加新的功能,真是难为了协议制定者。今天看来,ATA接口差不多发展到了头,能用于开发新功能和提升性能的物理形式都用上了。这可能就是并行总线在功能演进上的劣势:空间上的有限性限制了进一步发展的灵活性。而串行协议由于不具备空间上的扩展性,就充分发挥了时间上的可扩展性,在提高速度的同时还可以使功能定义具备极大的灵活性。 riple

    SATA取代PATA应该是历史的必然。 riple

    相关链接:http://www.t13.org/Documents/Default.aspx?DocumentType=4  riple

              http://www.interfacebus.com/Design_Connector_IDE.html#top riple

系统分类: 接口电路   |   用户分类: 路见不平   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1620)    回复(3)  

投一票您将和博主都有获奖机会!

最新评论

  • riple

    2007-2-13 10:51:52

    实事求是的精神还要向avan学习。

  • avan

    2007-2-12 21:37:34

    感谢riple的回答,真是够朋友啊。avan在此道一声辛苦了。

  • William

    2008-2-26 21:03:40

    并不是所有的机器的BIOS都会根据CBLD来区分PIN的类型~,如果区分的话BIOS只会设置UDMA3,并不根据IDFY数据中支持的UDMA模式的最大值来设置,一般进了系统,在设备管理器里面IDE控制器里面能够看到~~

    PS:其实很多硬盘都可以支持UDMA6,而主机也可以兼容UDMA6的模式,但是上电过程只设置为UDMA5,这个时候如果使用个小工具Set Feature一下,可以强制将工作模式超频到UDMA6,速度最起码有10~15M的提升~~(并不一定可靠哦~~)呵呵,有兴趣可以自己研究哈