标题：串行通信
概念
  串行通信随着计算机网络化和微机分级分布式应用系统的发展，通信的功能越来越重要。通信是指计算机与外界的信息传输，既包括计算机与计算机之间的传输，也包括计算机与外部设备，如终端、打印机和磁盘等设备之间的传输。在通信领域内，数据通信中按每次传送的数据位数，通信方式可分为：并行通信和串行通信。 
串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线，将数据一位一位地依次传输，每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息，特别适用于计算机与计算机、计算机与外设之间的远距离通信。 
串口通信时，发送和接收到的每一个字符实际上都是一次一位的传送的，每一位为1或者为0。
分类
同步通信同步通信是一种连续串行传送数据的通信方式，一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同，通常含有若干个数据字符。 
它们均由同步字符、数据字符和校验字符（CRC）组成。其中同步字符位于帧开头，用于确认数据字符的开始。数据字符在同步字符之后，个数没有限制，由所需传输的数据块长度来决定；校验字符有1到2个，用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。异步通信异步通信中，在异步通信中有两个比较重要的指标：字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送，通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收，这两个时钟源彼此独立，互不同步。 
接收端检测到传输线上发送过来的低电平逻辑"0"（即字符帧起始位）时，确定发送端已开始发送数据，每当接收端收到字符帧中的停止位时，就知道一帧字符已经发送完毕。
特点
数据在单条一位宽的传输线上，一比特接一比特地按顺序传送的方式称为串行通信。 在并行通信中，一个字节（8位）数据是在8条并行传输线上同时由源传到目的地；而在串行通信方式中，数据是在单条1位宽的传输线上一位接一位地顺序传送。这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。由此可见，串行通信的特点如下： 
1、节省传输线，这是显而易见的。尤其是在远程通信时，此特点尤为重要。这也是串行通信的主要优点。 
2、数据传送效率低。与并行通信比，这也这是显而易见的。这也是串行通信的主要缺点。
例如：传送一个字节，并行通信只需要1T的时间，而串行通信至少需要8T的时间。 由此可见，串行通信适合于远距离传送，可以从几米到数千公里。对于长距离、低速率的通信，串行通信往往是唯一的选择。并行通信适合于短距离、高速率的数据传送，通常传输距离小于30米。特别值得一提的是，现成的公共电话网是通用的长距离通信介质，它虽然是为传输声音信号设计的，但利用调制解调技术，可使现成的公共电话网系统为串行数据通信提供方便、实用的通信线路。
形式和标准
调幅方式串行数据在传输时通常采用调幅（AM）和调频（FM）两种方式传送数字信息。远程通信时，发送的数字信息，如 二进制数据，首先要调制成模拟信息。 幅度调制是用某种电平或电流来表示逻辑“1”，称为传号（mark）；而用另一种电平或电流来表示逻辑“0”，称为空号（space）。出现在传输线上的mark/space的串行数据形式。
使用mark/space形式通常有四种标准，TTL标准、RS-232标准、20mA电流环标准和60mA电流环标准。
① TTL标准：用+5V电平表示逻辑“1”；用0V电平表示逻辑“0”，这里采用的是正逻辑。 
② RS-232标准：用-3V— -15V之间的任意电平表示逻辑“1” ；用+3V — +15V电平表示逻辑“0”，这里采用的是负逻辑。 
③ 20mA电流环标准。线路中存在20mA电流表示逻辑1，不存在20mA电流表示逻辑0。 
④ 60mA电流环标准。线路中存在60mA电流表示逻辑1，不存在60mA电流表示逻辑0。调频方式频率调制方式是用两种不同的频率分别表示二进制中的逻辑1和逻辑0，通常使用曼彻斯特编码标准和堪萨斯城标准。 
①曼彻斯特编码标准：这种标准兼有电平变化和频率变化来表示二进制数的0和1。每当出现一个新的二进制位时，就有一个电平跳变。如果该位是逻辑1，则在中间还有一个电平跳变；而逻辑0仅有位边沿跳变。所以逻辑1的频率比逻辑0的频率大一倍。曼彻斯特编码标准通常用在两台计算机之间的同步通信。
② 堪萨斯城标准：它用频率为1200Hz中的4个周期表示逻辑0，而用频率为2400Hz中的8个周期表示逻辑1。数字编码方式⑴ NRZ编码 
NRZ编码又称为不归零编码，常用正电压表示“1”，负电压表示“0”，而且在一个码元时间内，电压均不需要回到零。其特点是全宽码，即一个码元占一个单元脉冲的宽度。
⑵曼彻斯特（Manchester)编码 
在曼彻斯特编码中，每个二进制位（码元）的中间都有电压跳变。用电压的正跳变表示“0”，电压的负跳变表示“1”。由于跳变都发生在每一个码元的中间位置（半个周期），接收端就可以方便地利用它作为同步时钟，因此这种曼彻斯特编码又称为自同步曼彻斯特编码。目前最广泛应用的局域网—以太网，在数据传输时就采用这种数字编码。 
⑶ 微分曼彻斯特编码 
微分曼彻斯特编码是曼彻斯特编码的一种修改形式，其不同之处时：用每一位的起始处有无跳变来表示“0”和“1”，若有跳变则为“0”，无跳变则为“1”；而每一位中间的跳变只用来作为同步的时钟信号，所以它也是一中自同步编码,同步曼彻斯特编码和微分曼彻斯特编码的每一位都是用不同电平的两个半位来表示的，因此始终保持直流的平衡。不会造成直流的累积。数据传输率数据传输率是指单位时间内传输的信息量，可用比特率和波特率来表示。 
⑴比特率：比特率是指每秒传输的二进制位数，用bps（bit/s)表示。 
⑵波特率：波特率是指每秒传输的符号数，若每个符号所含的信息量为1比特，则波特率等于比特率。在计算机中，一个符号的含义为高低电平，它们分别代表逻辑“1”和逻辑“0”，所以每个符号所含的信息量刚好为1比特，因此在计算机通信中，常将比特率称为波特率，即： 
1波特（B）= 1比特（bit）= 1位/秒（1bps） 例如:电传打字机最快传输率为每秒10个字符/秒，每个字符包含11个二进制位,则数据传输率为:11位/字符×10个字符/秒=110位/秒=110波特（Baud）计算机中常用的波特率是：110、300、600、1200、2400、4800、9600、19200、28800、33600，目前最高可达56Kbps. 
⑶位时间Td 
位时间是指传送一个二进制位所需时间，用Td 表示。Td = 1/波特率 = 1/B 
例如：B=110波特/秒 ， 则Td = 1/110 ≈ 0.0091ms发送时钟和接收时钟在串行通信中，二进制数据以数字信号的信号形式出现,不论是发送还是接收，都必须有时钟信号对传送的数据进行定位。在TTL标准表示的二进制数中，传输线上高电平表示二进制1，低电平表示二进制0，且每一位持续时间是固定的，由发送时钟和接收时钟的频率决定。
⑴ 发送时钟 
发送数据时，先将要发送的数据送入移位寄存器，然后在发送时钟的控制下，将该并行数据逐位移位输出。通常是在发送时钟的下降沿将移位寄存器中的数据串行输出，每个数据位的时间间隔由发送时钟的周期来划分。
⑵ 接收时钟 
在接收串行数据时，接收时钟的上升沿对接收数据采样，进行数据位检测，并将其移入接收器的移位寄存器中，最后组成并行数据输出。
⑶ 波特率因子 
接收时钟和发送时钟与波特率有如下关系：F = n × B 这里F 是发送时钟或接收时钟的频率; B 是数据传输的波特率； n 称为波特率因子。设发送或接收时钟的周期为Tc，频率为F的位传输时间为Td，则： Tc = 1/F , Td = 1/B 得到： Tc = Td /n 在实际串行通信中，波特率因子可以设定。在异步传送时，n = 1，16，64，实际常采用n = 16，即发送或接收时钟的频率要比数据传送的波特率高n倍。在同步通信时，波特率因子n必须等于1。
异步通信协议
1、串行异步通信时的数据格式 
异步方式通信ASYNC（Asynchronous Data Communication）,又称起止式异步通信，是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的，字符之间没有固定的时间间隔要求，而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发送前，发送器先发送一个起始位，然后发送有效字符位，在字符结束时再发送一个停止位，起始位至停止位构成一帧。
串行异步传输时的数据格式：
⑴ 起始位：起始位必须是持续一个比特时间的逻辑“0”电平，标志传送一个字符的开始。 
⑵ 数据位：数据位为5-8位，它紧跟在起始位之后，是被传送字符的有效数据位。传送时先传送字符的低位，后传送字符的高位。数据位究竟是几位，可由硬件或软件来设定。 
⑶ 奇偶位：奇偶校验位仅占一位，用于进行奇校验或偶校验，也可以不设奇偶位。 
⑷ 停止位：停止位为1位、1.5位或2位，可有软件设定。它一定是逻辑“1”电平，标志着传送一个字符的结束。 
⑸ 空闲位：空闲位表示线路处于空闲状态，此时线路上为逻辑“1”电平。空闲位可以没有，此时异步传送的效率为最高。 
2、串行异步通信时的数据接收 
串行异步通信时，接收方不断地检测或监视串行输入线上的电平变化，当检测到有效起始位出现时，便知道接着是有效字符位的到来，并开始接收有效字符，当检测到停止位时，就知道传输的字符结束了。经过一段随机时间间隔之后，又进行下一个字符的传送过程。 通常接收端的采样时钟周期要比传输字符的位周期短，常用的采样时钟频率为位频率的16倍，采取这种措施是为了提高抗干扰能力，参看图8.19所示。从图中可知，传输字符的位周期Td等于采样时钟周期Tc的16倍。接收器的采样时钟的每个上升沿对输入信号进行采样，检验接收数据线上的低电平是否保持8或9个连续的时钟周期，以确定传输线上的低电平是否是真的起始位。这样就可以避免噪声干扰引起的误操作，从而删除假的起始位。相当精确地确定起始位的中间点，从而提供一个时间基准，从这个基准开始，每隔16个Tc对其余数据位采样，以确保传输数据的正确性。 
接收端为实现采样数据的基准，可以执行以下步骤： 
⑴ 在接收端设置一采样时钟频率计数器，当检测到起始位下降沿时，将其清零，并开始对采样时钟计数，即每来一个时钟，计数器加1。 
⑵ 当计数器计到8时，表示已到达起始位的中间位置，此时采样值为0，说明是真正的起始位，同时将计数器清零；若采样值不为0，则说明一开始检测到的下降沿不是真正的起始位前沿，而是一次干扰，此次检测应作废，计数器清零，并重新开始检测起始位。 
⑶ 检测到真正的起始位后，计数器清零，以后每次计到16时，便采样收到的信号波形（即每一位的中间），将采到的数值暂存起来，同时将计数器清零，重新计数，直至最后的停止位被采样。 
⑷ 如果停止位采样正确（为1），则字符被接收，并由暂存器装入寄存器。若停止位采样值为0，说明同步或传输有问题，此次采样所得字符作废,不被接收。 
异步通信的特点
⑴ 起止式异步通信协议传输数据对收发双方的时钟同步要求不高，即使收、发双方的时钟频率存在一定偏差，只要不使接收器在一个字符的起始位之后的采样出现错位现象，则数据传输仍可正常进行。因此，异步通信的发送器和接收器可以不用共同的时钟，通信的双方可以各自使用自己的本地时钟。 
⑵ 实际应用中，串行异步通信的数据格式，包括数据位的位数、校验位的设置以及停止位的位数都可以根据实际需要，通过可编程串行接口电路，用软件命令的方式进行设置。在不同传输系统中，这些通信格式的设定完全可以不同；但在同一个传输系统的发送方和接收方的设定必须一致，否则将会由于收、发双方约定的不一致而造成数据传输的错误与混乱。 
⑶ 串行异步通信中，为发送一个字符需要一些附加的信息位，如起始位、校验位和停止位等。这些附加信息位不是有效信息本身，它们被称为额外开销或通信开销，这种额外开销使通信效率降低。例如一个字符由7位组成，加上一位起始位、一位校验位和一位停止位 ，发送一个字符必须发送10位，而其中只有7位是有效的，其余3位不是有效的，使通信能力的30%成了额外开销。所以异步通信适用于传送数据量较少或传输要求不高的场合。对于快速、大量信息的传输，一般采用通信效率较高的同步通信方式。 
⑷ 串行异步通信依靠对每个字符设置起始位和停止位的方法，使通信双方达到同步。
通信协议
普遍协议最被人们熟悉的串行通信技术标准是EIA－232、EIA-422和EIA－485，也就是以前所称的RS-232、RS-422和RS-485。由于EIA提出的建议标准都是以“RS”作为前缀，所以在工业通信领域，仍然习惯将上述标准以RS作前缀称谓。 
EIA－232、EIA-422和EIA－485都是串行数据接口标准，最初都是由电子工业协会（EIA）制订并发布的，EIA-232在1962年发布，后来陆续有不少改进版本，其中最常用的是EIA-232-C版。 
目前EIA-232是PC机与通信工业中应用最广泛的一种串行接口。EIA-232被定义为一种在低速率串行通信中增加通信距离的单端标准。EIA-232采取不平衡传输方式，即所谓单端通信。标准规定，EIA－232的传送距离要求可达50英尺（约15米），最高速率为20kbps。 
由于EIA-232存在传输距离有限等不足，于是EIA-422诞生了。EIA-422标准全称是“平衡电压数字接口电路的电气特性”，它定义了一种平衡通信接口，将传输速率提高到10Mbps，传输距离延长到4000英尺（约1219米），并允许在一条平衡总线上连接最多10个接收器。当然，EIA－422也有缺陷: 因为其平衡双绞线的长度与传输速率成反比，所以在100kbps速率以内，传输距离才可能达到最大值，也就是说，只有在很短的距离下才能获得最高传输速率。一般在100米长的双绞线上所能获得的最大传输速率仅为1Mbps。另外有一点必须指出，在EIA-422通信中，只有一个主设备（Master），其余为从设备（Salve），从设备之间不能进行通信，所以EIA-422支持的是点对多点的双向通信。 
为扩展应用范围，EIA于1983年在EIA-422基础上制定了EIA-485标准，增加了多点、双向通信能力，即允许多个发送器连接到同一条总线上，同时增加了发送器的驱动能力和冲突保护特性，扩展了总线共模范围，后命名为TIA/EIA-485-A标准。 
由于EIA-485是从EIA-422基础上发展而来的，所以EIA-485许多电气规定与EIA-422相仿，如都采用平衡传输方式、都需要在传输线上接终接电阻、最大传输距离约为1219米、最大传输速率为10Mbps等。但是，EIA-485可以采用二线与四线方式，采用二线制时可实现真正的多点双向通信，而采用四线连接时，与EIA-422一样只能实现点对多点通信，但它比EIA-422有改进， 无论四线还是二线连接方式总线上可接多达32个设备。USBUSB是英文 Universal Serial Bus 的缩写，翻译成中文的含义是“通用串行总线”。 
从技术上看，USB是一种串行总线系统，它的最大特性是支持即插即用和热插拔功能。在Windows 2000的操作系统中，任何一款标准的USB设备可以在任何时间、任何状态下与计算机连接，并且能够马上开始工作。 
USB诞生于1994年，是由康柏、IBM、Intel和Microsoft共同推出的，旨在统一外设接口，如打印机、外置Modem、扫描仪、鼠标等的接口，以便于用户进行便捷的安装和使用，逐步取代以往的串口、并口和PS/2接口。 
发展至今，USB共有三种标准：1996年发布的USB1.0，1998年发布的USB1.1以及刚刚发布的最新标准USB2.0。此三种标准最大的差别就在于数据传输速率方面，当然，在其他方面也有不同程度的改进。就目前的USB2.0而言，其传输速度可以达到480Mbps，最多可以支持127个设备。 
目前在IT领域，USB接口可谓春风得意。人们在市场上可以看到，每一款计算机主板都带有不少于2个USB接口，USB打印机、USB调制解调器、USB鼠标、USB音箱、USB存储器等产品越来越多，USB接口已经占据了串行通信技术的垄断地位。 
但是，在工业领域，使用USB接口的产品则甚为少见。在工业领域，人们更要求产品的可靠性和稳定性，目前，EIA标准下的串行通信技术完全可以满足人们对工业设备传输的各种性能要求，而且，这些产品价格非常低廉。相比之下，USB价格较高，并且其即插即用的功能在工业通信中没有优势。因为工业设备一般连接好以后很少进行重复插拔，USB特性的优越性不能很好地被体现出来，也就得不到工业界的普遍认可。因此，在工业领域，EIA标准依然占据统治地位。IEEE 1394IEEE 1394是一种与平台无关的串行通信协议，标准速度分为100Mbps、200Mbps和400Mbps，是IEEE（电气与电子工程师协会）于1995年正式制定的总线标准。目前，1394商业联盟正在负责对它进行改进，争取未来将速度提升至800Mbps、1Gbps和1.6Gbps这三个档次。相比于EIA接口和USB接口，IEEE 1394的速度要高得多，所以，IEEE 1394也称为高速串行总线。 
IEEE 1394提供了一种高速的即插即用总线。接入这条总线，各种外设便不再需要单独供电，它也支持等时的数据传输，是将计算机和消费类电器连接起来的重要桥梁。例如，用户可以在计算机上接驳一部数字VCR，把它当作一个普通的外设使用，既可用来播放电影，亦可以录制在计算机上编辑视频流。除此以外，带有IEEE 1394接口的DV（数字视频）摄影机和数字卫星接收器目前均已上市。由于速度非常快，所以它是消费类影音（A/V）电器、存储、打印、高分辨率扫描和其他便携设备的理想选择。 
从技术上看，IEEE 1394具有很多优点，首先，它是一种纯数字接口，在设备之间进行信息传输的过程中，数字信号不用转换成模拟信号，从而不会带来信号损失；其次，速度很快，1Gbps的数据传输速度可以非常好地传输高品质的多媒体数据，而且设备易于扩展，在一条总线中，100Mbps、200Mbps和400Mbps的设备可以共存；另外，产品支持热插拔，易于使用，用户可以在开机状态下自由增减IEEE 1394接口的设备，整个总线的通信不会受到干扰。
相关应用
EIA-232、EIA-422与EIA-485标准等串行通信技术应用很广，如录像机、计算机以及许多工业控制设备上都配备有EIA－232串行通信接口。 
USB接口应用较为广泛。人们在市场上可以看到，每一款计算机主板都带有不少于2个USB接口，USB打印机、USB调制解调器、USB鼠标、USB音箱、USB存储器等产品越来越多，USB接口已经占据了串行通信技术的垄断地位。 
目前支持IEEE 1394的产品有台式计算机、笔记本电脑、高精度扫描仪、数字视频(DV)摄影机、数码音箱(SA2.5)、数码相机等。