1.1 串口通信的原理
串口通信是指具有串行端口的设备之间通过数据信号线、地线等,按位进行数据传输的一种通信方式。串口是一种接口标准,它规定了接口的电气标准。串口传输模型由信号源、发送器、传输介质、接收器和信号宿五要素组成,如图1-1所示。信号源就是需要发送的信息;发送器和接收器用来控制信号的传输以及信息与电信号之间的转换;传输介质指通信传输的通道,又称为信道;信号宿就是信号源通过通信系统时经信号转换和噪音滤除后获得的信息。
图1-1 串口传输模型
1.1.1 数据通信的基本原理
1.数字通信
有些信号源的信息本来就是离散的,称为数字信息,也称为基带信号。数字通信系统中传输的信息是独立可数的,不随时间连续变化,在幅值上只有两个状态,数字信号可用不同的电压范围表示二进制数字。传输的数字需要通过编码来确定信息在发送时与二进制数的转换关系。下面我们以常用的曼彻斯特编码为例进行说明。
在信号中间时刻,从负电平变到正电平表示二进制“1”,从正电平变到负电平表示二进制“0”。图1-2描述了用曼彻斯特编码对数据“1100010100”进行编码的情况。常用的编码方式还有很多,主要用于提高通信的同步性和抗干扰性。
图1-2 曼彻斯特编码
数字通信系统易于集成,体积小,采用二进制编码,适用范围非常广泛,还可以用差错控制来提高通信的可靠性,故可靠性高,抗干扰能力强,而且数字信号易于加密,保密性好。
2.模拟通信
有些信号源的信号是随时间连续变化的,例如语音信息、传真、电视图像信息等,这些都是模拟信号。模拟通信系统用于传输模拟信号。模拟信号往往需要借助调制解调设备进行信号转换。在发送端,系统采用调制手段,对数字信号进行某种转换,将代表数据的二进制数1和0,转换成具有一定频带范围的模拟信号,以便于在模拟信道上传输;在接收端,系统通过解调手段进行相反转换,把模拟的调制信号复原为1或0。系统可以使用调制解调器(Modem)来实现调制和解调的任务。
模拟通信系统信道的利用率非常高,但抗干扰能力差,不适合大规模集成。模拟通信系统的传输距离较远,若通过市话系统配备Modem,则传输距离可不受限制。
1.1.2 数据传输的分类
1.并行通信和串行通信
根据一次传输数据的多少,数据的传输方式可以分为并行通信和串行通信。
(1)并行通信
并行通信以字节(Byte)或字节的倍数为传输单位,一次传输一个或一个以上字节的数据,数据各位同时传输,这种传输方式适用于传输距离短、数据量大、要求速度快的应用环境。并行通信的特点就是传输速度快,但当传输距离较远时,通信线路就变得复杂且成本高。并行通信传输示意图如图1-3所示。
(2)串行通信
串行通信的双方使用一根或两根数据信号线进行连接,同一时刻,数据在一根数据线上一位一位地顺序传输。与并行通信相比,串行通信的优点是传输线少、成本低,适合远距离传输且易于扩展,缺点是传输速度慢、传输时间长。串行通信传输示意图如图1-4所示。
图1-3 并行通信传输示意图
图1-4 串行通信传输示意图
近年来,串行通信发展很快,分散型工业测控系统普遍采用串行通信,PC网络绝大多数也采用串行通信。
2.单工、半双工和全双工
根据数据在信道上传输的方向及时间关系,串行通信可分为3种。
1)单工:数据传输是单向的。通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线。因为这种传输方式效率很低,所以在实际的应用中很少使用。
2)半双工:通信使用同一根传输线,既可以发送数据,又可以接收数据,但不能同时进行发送和接收。数据传输允许数据在两个方向上传输,但是在任何时刻,只能由其中的一方发送数据,另一方接收数据。因此,半双工模式既可以使用一条数据线,也可以使用两条数据线。半双工通信中每端需要一个收发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以通信会产生时间延迟,信息传输效率低些。
3)全双工:通信允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。在全双工模式中,每一端都有发送器和接收器,有两条传输线,信息传输效率高。
在其他参数都一样的情况下,全双工比半双工传输速度快、效率高,所以在实际使用中应用更广。
3.异步通信和同步通信
按照串行通信数据的时钟控制方式,串行通信又可分为同步通信和异步通信。同步和异步,从名称上我们就可以大概知道区别在哪里,简单地说就是主机在相互通信时发送数据的频率是否一样。异步通信就是发送方在任意时刻都可以发送数据,前提是接收端已经做好了接收数据的准备。(如果没有做好接收准备,那么数据肯定发送失败。)也正是因为发送方的不确定性,所以接收方要时时刻刻地准备好接收数据。同时,由于发送方每次发送数据的时间间隔不确定,因此每次发送数据时都要使用明确的界定符来标示数据(字符)的开始位置和结束位置。可以想象,这种通信方式效率很低。虽然异步通信的效率低,但是对设备的要求不高,通信设备简单。
与异步通信相反,同步通信就是主机在进行通信前先建立同步,即使用相同的时钟频率,发送方的发送频率和接收方的接收频率要同步。除了时间频率的不同之外,异步通信与同步通信之间的区别还在于发送数据的表示形式不同,异步通信一般的发送单位是字符,同步通信的发送单位是比特流(数据帧),但这不是绝对的,异步通信有时也使用帧来通信。
(1)异步通信
所谓异步通信,是指数据传输以字符为单位,字符与字符之间的传输是完全异步的,位与位之间的传输基本上是同步的,异步通信传输示意图如图1-5所示。
图1-5 异步通信传输示意图
每个字符(每帧信息)由4部分组成:
1)1位起始位,规定为低电平0;
2)5~8位数据位,即要传输的有效信息;
3)1位奇偶校验位;
4)1~2位停止位,规定为高电平1。
(2)同步通信
所谓同步通信,是指数据传输以数据块(一组字符)为单位,字符与字符之间以及字符内部的位与位之间都是同步的,同步通信传输示意图如图1-6所示。
同步传输的特点如下:
1)2个同步字符作为一个数据块(信息帧)的起始标志;
2)n个连续传输的数据;
3)2字节循环冗余校验码(CRC)。
图1-6 同步通信传输示意图
4.数据传输的基本技术指标
(1)偶校验与奇校验
在标准ASCII码中,其最高位b7用作奇偶校验位。所谓奇偶校验,是指在数据传输过程中用来检验是否出现错误的一种方法,一般分为奇校验和偶校验两种。奇校验规定:正确的数据的一个字节中,1的个数必须是奇数;若为非奇数,则最高位b7添1。偶校验规定:正确的数据的一个字节中1的个数必须是偶数;若为非偶数,则最高位b7添1。
(2)停止位
停止位按长度来计算。串行异步通信从计时开始,以单位时间(单位时间就是波特率的倒数)为间隔,依次接收所规定的数据位和奇偶校验位,并拼装成一个字符的并行字节,此后应接收到规定长度的停止位1。所以说,停止位都是1,1.5是它的长度,即停止位的高电平保持1.5个单位时间长度。一般来讲,停止位有1、1.5和2个单位时间3种长度。
(3)波特率
波特率就是每秒钟传输的数据位数。波特率的单位是位每秒(bit/s),常用的单位还有千位每秒(kbit/s)、兆位每秒(Mbit/s)等。串口典型的传输波特率为600bit/s、1200bit/s、2400bit/s、4800bit/s、9600bit/s、19200bit/s、38400bit/s等。