异步传送以字符为单位,当接收方收到起始位之后,只要在一个字符的传输时间内能和发送器保持同步,就能完成正确的接收。如果接收器和发送器的时钟略有误差,两个字符之间的停止间隔将为这种误差提供一种缓冲,因此,异步通信方式允许有一定的频率漂移,一般发送器和接收器双方各自用晶振产生时钟即可满足要求,收发双方系统时钟的误差容限为5%.对时钟同步的要求不太严格,这是异步通信的突出优点,但是异步通信要求每个字符传送都有起始位和停止位,因此控制信息至少占总信息的20%,这部分的额外开销使得传送效率相对比较低。
3.3 串行通信的基本参数
串口的通信方式是将字节拆分成一个接着一个的位后再进行传输。接到此电位信号的一方将此一个一个的位组合成原来的字节,如此形成一个字节的完整传输。
在传输进行过程中,双方明确传输信息的具体方式,否则双方就会没有一套共同的译码方式,从而无法了解对方所传输过来的信息的意义。因此双方为了进行通信规则,这个共同的规则就是串口的初始化。串口的初始化必须对以下几项参数进行设置。
(1) 波特率
串行通信的传输受到通信双方设备性能及通信线路的特性所控制,收发双方必须按照同样的速率进行串行通信,即收发双方采用同样的波特率。我们通常将传输速度称为波特率,指的是串行通信中每秒所传输的数据位数。单位是“波特每秒”(bps)。国际上规定了标准波特率系列值,最常用的标准波特率有110,300,600。1200,2400,4800,9600和19200。
在进行串行通信时,根据传送的波特率来确定发送时钟和接收时钟的频率。异步传送过程中,每发送一位数据的时间长度由发送时钟决定,每接收一位数据的时间长度由接收时钟测定,它们和波特率有如下关系:
时钟频率=n*波特率;
式中n为波特率系数或者波特率因子,它的取值可以为l,16,32或64。
(2) 数据的传输单位
一般串口所传输的数据是字符型,若用来传输文件,则会使用二进制的数据形式。当使用字符型时,工业界使用到的ASCII字符及JIS字符;ASCII码使用了8位形成一个字符,而JIS码则以7位形成一个字符。欧美的设备多使用8位的字节,而日本的设备多使用7位为一个字节。因此只要7位就可以将ASCII码的0~127码表达出来(27=128,共有128种组合方式),所有的可见字符也在此范围内,所以只要7个数据位就够了。不同的情形下(根据所使用的协议),会使用到不同的传输单位。使用多少位合成一个字节必须先行确定。
(3) 起始位与停止位
由于异步串行传输中没有使用同步时钟作为基准,因此接收端不知道发送端何时将进行数据的传输。而当发送端准备要开始传送数据时,发送端会在所送出的字符前后分别加上高电位的起始位(逻辑0)及低电位的停止位(逻辑1),它们称为起始位和停止位。
当发送端要开始传送数据时,便将传输线上的电压由低电位提升至高电位,而当传送结束后,再将电压降至低电位。接收端会因为起始位的触发(因电压由低电位升至高电位)而开始接收数据,并因停止位的通知(因电压文持在低电位)而确切知道数据的字符信号已经结束。加入了起始位及停止位也比较容易达到多字符的接收能力,起始位固定为一位,而停止位则有1、1.5、2位等多种选择,由通信双方共同遵守的通信协议来控制和识别。
(4) 校验位
为了防止传输过程中的干扰造成数据错误,数据帧中可以加入奇偶校验位作为检查机制,校验位是用来检查所传输数据正确性的一种核对码,其中又分为奇校验(Odd Parity)和偶校验(Even Parity)两种,分别是检查字符码中1的数目是奇数或是偶数.以偶校验为例,A的ASCII码是41H,即01000001x,其中1的数目是2,因此校验位是0,使1的数目保持偶数。同样的,采用奇校验时,A的校验位是1,使l的数目保持为奇数。 基于VB.NET的辐射报警仪上位机管理软件设计(6):http://www.youerw.com/tongxin/lunwen_2658.html