现在大家是否有一种很奇怪的感觉,越来越多的设备采用串口通讯了,并且还说串口就这么简单的几根线比十几根线的并口速度还快,这个无论如何都觉得有些莫名其妙。若你是这种感觉的,建议继续看下去,若觉得很正常的,请绕道。
先说大家最熟悉的接口,那莫过于UART接口,RS232类型的DB9接口,以前老式的电脑都带的,可以接modem,大家做MCU51单片机项目,一般都用这个UART接口,串口速率115200bps、57600bps等,后来出来USB转串口的PL2302和FT232,速率可以到921600bps,这个就算最高了。因为各种单片机都带有UART接口,无论MCU51还是ARM,所以这个是大家最熟悉的。
同步串口有SPI,IIC等,尤其SPI速度相对高一些,可以到几M,几十M。UART之类的属于异步串口,因为需要考虑数据同步信号恢复,所以速度不高。
大家都知道硬盘IDE接口、打印机接口,还有单片机、ARM等的并口,这些速度相对于串口来说,要快很多,但线也多很多,可以理解简单的理解为是多路串口的并联。也就是说,并口就是各路串口同时发数据而已。
但是大家也会发现这么一个现象,就是并口有分两种,比如大家接SDRAM的时候,就比较明显,SDRAM相对于普通的并口,速度高了很多,SDRAM速度很轻松到100MHz,而普通并口速度只能在几十M附近,尤其做过普通手机的,都知道flash的接口速度上不去。这个其实主要不是接口速度导致的,而是总线方式不同。最早intel80接口,读取信号为Data、Adrr、nCS、nRD、nWR,这个每次都需要送出地址,芯片译码选择后,才能获取数据,所以速度较慢,一般的MCU51都是这类总线,叫intel80,此外很多黑白液晶屏用68K接口,nRD、nWR换成了R/W,E。而新式的接口一般采用Data、Addr、CLK、RAS、CAS、WE等,这个一般叫burst模式并口,而intel80、68K这类的一般叫normal模式并口。burst模式最大的好处就是,配置好后,地址只送一次,之后通过CLK不停的读取数据,地址连续的读取回来,这样就不再需要送地址,选择译码过程,内部默认了连续读、写,可以流水线操作,所以速度快很多,当然这类针对的CPU一般都有高速RAM的,或者就是需要整屏读写的,比如大一些的彩色LCD屏,3.5inch~10inch的都是这类接口,LCD屏上,有些人把这个叫做RGB接口。在ARM9处理器上最常见,如R、G、B各8根数据线,但往往不用全,去掉一些低位数据,组成565形式,之后带CLK、VS(帧同步信号)、HS(行同步信号)、IIC配置信号。
以上所讨论的有一个共同点,就是信息的传播,都是基于电信号,一般以高于多少V或者低于多少V为1或者0来判断的。电信号的载体是电场、电压,所以以上的讨论都是基于常规的电路回路来讨论的,信号的载体介质比较随便,只要能成回路即可。大家都知道,常规的电路是电磁场理论在低速下的一种近似,是电磁场传播多次折叠反射之后的稳态。当信号频率更高的时候,这种折叠反射就会导致信号的清晰度下降,也就是大家所说的信号完整性下降,方波变成了正弦波而导致无法识别。所以要想进一步提高通讯速度,必须要改变传输的载体,从电场转变为电磁场,所以传输介质改成了专用的传输线,如微带线、同轴线等,对传输线的整个阻抗均匀等都有要求。
有些朋友一想到高速传输,就想着差分信号,但理解上只是对外界的抗干扰能力,它没有解决信号能量传输过程中自己的畸形,只要当差分信号进一步约束满足电磁场阻抗要求的时候,才能进一步的解决自身的信号畸形问题,所以这个时候单纯的理解差分,只能说对了一部分,并且高可靠的信号传输,很多都是用同轴线、微带线的,这个里面就不存在差分概念了。
基于这个理论,当前的高速串行接口就出来了,比如USB、1394、网口、SATA、LVDS等都是基于电磁场理论发展起来的,他们都有一个共同的特征,要求阻抗匹配,而这个就是电磁场理论最基础的东西。
因为基于电磁场为载体的技术,速率上远远超过了基于电场理论的速率,这个等价于1、2个数量级的飞跃,所以现在的高速串口就比普通的低速并口速率还高了,这个就不奇怪了。
那么大家要问,再进一步提高速率,是不是现有的高速串口的并行化呢,这个是一方面,比如DDR2之类的,已经是如此了,但还有一种趋势,比如SATA 1X、2X、4X这类的,不是简单的并联化,而应该讲是网络化。也就是说从1X、2X到4X,由一个通道,变成了4个网络通道了。数据的通讯方式已经跟现在的互联网一样,实现了网络化,因为考虑到这些接口,有可能会有一个接触不良,那个通道就不通了,但也不影响数据通讯,只是速率慢了而已,若还是常规的并联方式,就完全失效了。
以上只是本人浅陋的观点,欢迎指正
凤舞天
用户1327305 2013-7-3 10:39
现在很多人都搞不清楚接口频率和数据速率之间的关系,串行接口的接口速度是快,但是一个1.5G的1X的串口传输的实际数据换算成字节是要/8的,一个400M速率32位的并口传输的实际数据换算成字节是要x4的,所以单纯的说是并口快还是串口快都是没有意义的,那你说到底哪个快,最终的结果要看你单位时间内到底传了多少数据,假如你非要拿bit跟byte比,我只能。。。。。