提高串口通信模块的可靠性设计

eeleader   2011-1-25 11:18 楼主
1 串行通信的基本概念
1.      数据传送方式
在串行通信中,数据在通信线路上的传送有三种方式:
1)      单工(Simplex)方式:数据只能按一个固定的方向传送。
2)      半双工(Half-duplex)方式:数据可以分时在两个方向传输,但是不能同时双向传输。
3)      全双工(Full-duplex)方式:数据可以同时在两个方向上传输。
2.      波特率和收/发时钟
1)      波特率
   所谓波特率,系指单位时间内传送的二进制数据的位数,以位/秒为单位,所以有时也叫数据位率。它是衡量串行数据传送速度快慢的重要指标和参量。
2)      收/发时钟
   在串行通信中,无论是发送还是接收,都必须有时钟信号对传送的数据进行定位和同步控制。通常收/发时钟频率与波特率之间有下列关系:
收/发时钟频率=n×波特率
一般n取1,16,32,64等。对于异步通信,常采用n=16;对于同步通信,则必须取n=1。
3.      误码率和串行通信中的差错控制
1)      误码率
   所谓误码率,是指数据经过传输后发生错误的位数(码元数)与总传输位数(总码元数)之比,其与通信线路质量、干扰大小及波特率等因素有关,一般要求误码率达到10-6数量级。
2)      差错控制
   为了减小误码率,一方面要从硬件和软件两个面对通信系统进行可靠性设计,以达到尽量少出错的目的;另一方面就是对传输的信息采用一定的检错、纠错编码技术,以便发现和纠正传输过程中可能出现的差错。常用的编码技术有:奇偶校验、循环冗余码校验、海明码校验、交叉奇偶校验等。
4.      串行通信的基本方式
串行通信的基本方式可分为两种:
1)      异步串行方式:通信的数据流中,字符间异步,字符内部各位间同步。
2)      同步串行方式:通信的数据流中,字符间以及字符内部各位间都同步。
2 异步串行通信标准接口
通信协议也叫通信规程,系指通信双方在信息传输格式上的一种约定。数据通信中,在收/发器之间传送的是一组二进制的“0”、“1”位串,但它们在不同的位置可能有不同的含义,有的只是用于同步,有的代表了通信双方的地址,有的是一些控制信息,有的则是通信中真正要传输的数据,还有的是为了差错控制而附加上去的冗余位。这些都需要在通信协议中事先约定好,以形成一种收/发双方共同遵守的格式。
在逐位传送的串行通信中,接收端必须能识别每个二进制位从什么时刻开始,这就是位定时。通信中一般以若干位表示一个字符,除了位定时外,还需要在接收端能识别每个字符从哪位开始,这是字符定时。
异步串行通信时,每个字符作为一帧独立的信息,可以随机出现在数据流中,即每个字符出现在数据流中的相对时间是任意的。然而,一个字符一旦开始出现后,字符中各位则是以预先固定的时钟频率传送。因此,异步通信方式的“异步”主要体现在字符与字符之间,至于同一字符内部的位与位间却是同步的。可见,为了确保异步通信的正确性,必须找到一种方法,使收发双方在随机传送的字符与字符间实现同步。这种方法就是在字符格式中设置起始位和停止位。
异步通信的每帧信息(即每个字符)由4部分组成:
1)    1位起始位,规定为低电平“0”。
2)    5~8位数据位,它紧跟在起始位后面,是要传送的有效信息。规定从低位至高             位依次传送。
3)    0位或1位奇偶校验位。
4)    1位、 位或2位停止位,规定为高电平。
异步通信格式中起始位和停止位起着至关重要的作用。起始位标志每个字符的开始,通知接收器开始装置一个字符,以便和发送器取得同步;停止位标志每个字符的结束。通过起始位和停止位的巧妙结合,实现异步字符传输的同步。由于这种同步只需在一个字符期间保持,下一个字符又将包含新的起始位和停止位,所以发送器和接收器不必使用同一个时钟,只需分别使用两个频率相同的局部时钟,使它们在一个字符时间内收发双方的串行位流能保持同步,即可做到正确可靠地传送。关键是接收器必须准确地发现每个字符开始出现的时刻,为此,协议规定起始位和停止位必须采用相反的极性,前者为低电平“0”,后者为高电平“1”。利用前一个字符的高电平停止位到后一个字符的低电平起始位的负跳变,接收器便知道这是一个字符的开始,可以以此作为新字符内,位检测与采样的时间基准。正是为了保证这种从一个字符到另一个字符的转换必须以负跳变开始,通信协议规定在字符与字符之间出现空闲状态时,空闲位也一律用停止位的“1”填充。
停止位长度规定可以取1位、位或2位。一般有效数据为5位(称为五单位字符码)时停止位取1位或 位,其他单位的字符码停止位取1位或2位。至于有效数据位后面的奇偶校验位,协议规定可以有,也可以没有。
在数据通信中,按照“国际电报电话咨询委员会”(CCITT)的建议,通常将逻辑“0”称为“空号”(Space),而将逻辑“1”称为“传号”(Mark).按这种叫法,在异步通信中,每个字符的传送都必须以“空号”开始,以“传号”结束和填充空闲位。
由于异步通信系统中接收器和发送器使用的是各自独立的控制时钟,尽管它们的频率要求选得相同,但实际上总不可能真正严格相同,两者的上下边沿不可避免地会出现一定的时间偏移。为了保证数据的正确传送,不致因收发双方时钟的相对误差而导致接收端的采样错误,除了如上所述,采用相反极性的起始位和停止位/空闲位提供准确的时间基准外,通常还采用一些另外的措施:
1)    接收器在每位码元的中心采样,以获得最大的收/发时钟频率偏差容限。这样在7~12位的整个字符传送期间,收/发双方时钟的偏差最多可允许有正、负半个位周期,只要不超过它,就不会产生采样错误。也就是说,要求收/发时钟的误差容限不超过4.17%(按每个字符最多12个码元算)即可。显然,这个要求是很容易实现的。为了保证在每个码元的中心位置采样,在准确知道起始位前沿的前提下,接收器在起始位前沿到来后,先等半个位周期采样一次,然后每过一个位周期采样一次,直至收到停止位。
2)    接收器采用比传送波特率的时钟来控制采样时间,以提高采样的分辨能力和搞干扰能力。图4.2示出了一个频率为16倍波特率的接收时钟再同步过程。从图中可看出,利用这种经16倍频的接收时钟对串行数据流进行检测和采样,接收器能在一个位周期的1/16时间内决定出字符的开始。如果采样频率和传送波特率相同,没有这种倍频关系,则分辨率会很差。比如在起始位前沿出现前夕刚采样一次,则下次采样要到起始位结束前夕才进行。而假若在这个位周期期间因某种原因恰恰使接收端时钟往后偏移了一点点,就会错过起始位而导致整个后面各位检测和识别的错误。
采样时钟采用16倍频后,采样、检测过程如下:停止位或任意数目空闲位的后面,接收器在每个接收时钟的上升沿对输入数据流进行采样,通过检测是否有9个连续的低电平,来确定它是否为起始位。如是,则确认是起始位,且对应的是起始位中心,然后以此为准确的时间基准,每隔16个时钟同期采样一次,检测一个数据位。如不是9个连续的低电平(即使9个采样值中有一个非“0” ),则认为这一位是干扰信号,把它删除。可见,采用16倍频措施后,不仅有得于实现收发同步,而且有利于抗干扰和提高异步串行通信的可靠性。
另外还有一种采样、检测过程,是单片机进行串口通信时使用的,其过程如下:跳变检测器采样到RXD引脚上的电平从1到0负跳变时,启动接收控制器接收数据,控制器将1位传送时间等分为16等份,位检测器在7、8、9三个状态也就是在位信号中央采样RXD三次。而且三次采样中至少有两次相同的值被确认位数据,这样就可以减小干扰的影响。如果起始位接收到的值不是0,则为无效起始位,复位接收电路。如果起始位为0,则开始接收本帧的其他各位数据。控制器发出的内部移位脉冲将RXD上的数据移入移位寄存器,当8位数据全部移入后,就将数据锁存在接收缓存区内。

回复评论 (7)

回复 楼主 eeleader 的帖子

dddddddddddddddddddddddddddddddddddddddddddd
点赞  2011-1-25 16:58

回复LZ eeleader

 

我好好学习一下!!!!!!!!!!!!!!!!

点赞  2011-1-26 16:48

楼主,你好!

    对于通信系统的通信可靠性,不知应该如何从硬件和软件两个方面对其进行可靠性设计,请赐教!谢谢!

点赞  2011-7-3 18:25
学习了,
点赞  2011-7-3 21:25
学习了
点赞  2011-7-3 21:47

回复20051530:

 

       你的问的这个问题可大了! 我这而抛砖引玉说一下:

从硬件层面:

       1. 原理图设计上考虑滤波,抗干扰,异常处理. 系统兼容性,电源稳定性.

       2. 电路设计要可靠, 比如, 电感考虑续流, 电容防止直接短路. 检波二级管要考虑反向暗电流,反向截止等等.

       3. 从芯片选择上,考虑常见,多年成熟应用的.避免芯片BUG

从软件层面:

       1.  考虑逻辑设计完整;

       2.  异常处理,看门狗,超时判断等等.

       3.  设计防止死循环机制

       4.  软件考虑滤波,仲裁机制

     

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-7-4 08:33

回复:提高串口通信模块设计的可靠性设计

谢谢楼主的经验分享!
点赞  2011-7-11 11:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复