单片机的通信有长距离短距离之分,通常一米之内成为短距离,1000左右成为长距离。如若更长距离,需要借助其他无线设备方可实现。通常单片机通信有以下四个方式:TTL电平通信(单片机串口直接互联)、RS-232C通信、RS-422A通信和RS-485通信等;
1. TTL电平通信
双机TXD和RXD互联,但是两个单片机必须共地,即把他们的系统电源地线连接在一起。单片机的TTL电平通信多在同一系统中。当一个单片机连接两个或者两个以上的单片机 时,可以采用一机对多机的通信方式。
3. RS-232C通信
RS-232C是EIA(美国电子工业协会)1969年制定的通信标准。它定义了数据端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。
RS-232C标准接口引脚定义
插针序号
信号名称
功能
信号方向
1
DCD
载波检测
DCE->DTE
2
RXD
接收数据
DCE->DTE
3
TXD
发送数据
DTE->DCE
4
DTR
DTE就绪
DTE->DCE
5
GND
信号地线
6
DSR
DCE就绪
DCE->DTE
7
RTS
请求发送
DTE->DCE
8
CTS
允许发送
DCE->DTE
9
RI
振铃指示
DCE->DTE
RS-232C最初用于远程通信时候的调制解调器上,就是我们所用的“猫”;但是用于双机通信时候,只用到了RXD,TXD和GND。RS-232C电平进行数据传输时候,相比TTL电平距离要远,RS-232C总线标准受电容允许值的约束,使用传输距离一般不超过15m。其最高传输速度为20kbps。RS-232C 总线标准要求收,发双方必须共地。通信距离较大时,由于收发双方的地位差较大,在信号地上将有较大的电流产生压降,这样会形成电平偏移。RS-232C在电平转换时候采用单端输入输出,在传输过程中,干燥和噪声会混在正常信号内,为了提高信噪比,RS-232C总线标准采用较大的电压摆幅;
3.RS-422A通信
4.RS - 485通信
单片机构成的多机系统常采用总线型主从结构。所谓主从模式就是整个单片机中,有一个是主机,其余是从机。从机要服从主机的调度支配。51单片机的串口方式2和3适用于这种主从通信模式。当然,采用怒同的通信标准时,还需要进行相应的电平转换。有时候还要进行光电转换进行隔离。在实际多机系统中,常采用RS-485串行标准总线进行数据传输。
多机通信时,要遵守以下原则:
1: 所有从机的SM2位置1,处于接收地址帧状态;
2: 主机发送一地址帧,其中八位是地址,第九位是地址/数据的区分标志,该位置1表示该帧位地址帧。所有从机接收到地址帧后,都将接收到的地址帧与本机地址比较,对于地址相符的从机,使自己的SM2置0,并把本机地址发回到主机作为应答。对于抵制不符的从机,将SM2置1,对主机发送来的数据帧不予理睬;
3: 从机发送数据结束后,要发送一帧校验和,并置第九位TB8为1,作为主机数据传送结束标志。
4: 主机接收数据时,首先判断数据接收为RB8,若RB8为1,表示数据传输结束,并比较此帧校验和,若正确则回送信号00H,命令该从机复位(即从新等待地址帧);若校验和出错,则发送信号0FFH,命令该从机重新发送数据;若界首镇RB8 =0,则将数据存到缓冲区,并准备接受下一帧信息。
5: 主机收到从机应答地址后,确认地址是否相同,如果地址不符,则发复位信号(数据帧中TB8=1);如果地址相符,则TB清零,开始发送数据。
从机接收到复位信号后回到监听地址(SM2=1),否则开始接收数据和命令。
编写程序时可以按照以下方式操作:
1. 主机发送的联络信号位00H,01H,02H,...(即从机设备地址);地址FFH位命令各从机复位,即恢复SM2 =1;
2. 主机命令编码如下: 01H--主机命令从机接收数据;02H -- 主机命令从机发送数据,若有其它数据,则都按02H接待。
3. 从机状态字格式如下表
从机状态字格式
D7
D6
D5
D4
D3
D2
D1
D0
ERR
0
0
0
0
0
TRDY
RRDY
若 ERR =1, 从机接收到非法命令。
若 TRDY = 1,从机发送准备就绪。
若 RRDY =1, 从机接收准备就绪。
通常从机以中断方式控制和主机的通信。