理论教育 单片机串行口双机通信编程与应用

单片机串行口双机通信编程与应用

时间:2023-11-05 理论教育 版权反馈
【摘要】:双机之间通信应考虑接口电路、通信协议和程序编制等几个方面问题。3)RS-485通信接口:两个通信系统之间的距离在1200m范围之内。通信协议TTL电平直连,与RS-232双机通信的软件设计方法是一样的。2)双方约定采用串行口方式1进行通信,1帧信息为10位,其中,有一个起始位、8个数据位和一个停止位。

单片机串行口双机通信编程与应用

在计算机分布式测控系统中,经常要利用串行通信方式实现单片机与单片机、单片机与PC之间的数据传输。单片机和单片机之间可根据应用场合不同构成双机通信和多机通信,本节先介绍双机通信。双机之间通信应考虑接口电路、通信协议和程序编制等几个方面问题。

(1)接口电路

双机通信根据通信距离和抗干扰性,可选择TTL电平直连、RS-232和RS-485等接口方法,具体接口电路如图5-32所示。

图5-32 双机通信接口电路

(a)TTL电平传输通信接口电路;(b)RS-232C通信接口电路;(c)RS-485通信接口电路

1)TTL电平通信接口:两个通信系统之间的距离在1m范围之内。

2)RS-232通信接口:两个通信系统之间的距离在30m范围之内。

3)RS-485通信接口:两个通信系统之间的距离在1200m范围之内。

(2)通信协议

TTL电平直连,与RS-232双机通信的软件设计方法是一样的。RS-485双机通信是半双工方式,在单片机系统发送或接受数据前,应先将MAX485的发送门或接收门打开,当P1.0=1时,发送门打开,接收门关闭;当P1.0=0时,接收门打开,发送门关闭。

下面以图5-32(a)、(b)接口电路为例,规定双机通信协议如下:

1)通信的甲乙双方均可发送或接受。(www.daowen.com)

2)双方约定采用串行口方式1进行通信,1帧信息为10位,其中,有一个起始位、8个数据位和一个停止位。

3)波特率为2400bit/s,T1工作在定时器方式2,振荡频率选用11.0592MHz,查表5-15可得TH1=TL1=0F4 H,PCON寄存器的SMOD位为“0”。

4)设甲机是发送方,乙机是接收方。当甲机发送时,先发送一个“0AAH”联络信号,乙机收到后回答一个“55 H”应答信号,表示同意接收。

5)假设数据块长度为100B,数据放在起始地址为100H的片外RAM中,一个数据块发送完毕后立即发送“校验和”。

6)若两者相等,说明接收正确,乙机回答0FH;若两者不相等,说明接收不正确,乙机回答0F0H,请求重发。

归纳联络信号,并以伪指令格式定义见表5-16。

表5-16 握手信号伪指令定义

(3)程序实现

收发数据采用的是查询方式,程序实现如下。

【甲机发送程序】

【乙机接收程序】

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈