微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用单片机普通I/O口实现多机通信的一种新方法

用单片机普通I/O口实现多机通信的一种新方法

时间:02-09 来源:互联网 点击:

1 传统的多机通信方式

在实际工业应用中,经常遇到需要多台计算机配合才能完成的数据采集与控制系统的任务,而多台计算机配合主要是通过多台计算机之间的通信来实现的。为此必须将它们按实际需要组成一定形式的网络。多机通信网络通常有5种网络形式:星型、树型、总线型、环型、分散型网络结构。它们各有优缺点,其中总线型网络结构以可靠性好、接口简单、组成灵活和控制简单等优势,在实际应用中使用最多。

总线型网络结构中主机与分机进行串行通信可以利用查询方式或中断方式。用查询方式工作时,所有分机只能处于监听或通讯状态,资源比较浪费。实际使用时大都采用中断方式。图1是采用中断方式,利用单片机的串行口方式3及SM2和RB8的配合完成主从式的多机通信的网络结构图。从图中可以看出,原则上主机可以管理N台分机,但考虑到各机的发送端的驱动能力,一台主机一般可以管理8台分机。对于串行口方式2和3,每帧11位,其中第9位是可编程的,利用它的奇偶校验,也可以进行多机通信。用作多机通信时,对于方式2和3,若SM2=1,且接收的第9位RB8=0,则RI不启动,即接收到的全帧作废,当接收到的RB8=1时,接收有效;而当SM2=0时,无论接收到的RB8是什么,接收都有效。

与查询方式不同,采用中断方式时,分机不必一直处于监听状态,而可以进行相应的数据采集或控制等其他工作。当主机有通讯要求时,可通过P10向各分机发送中断请求(要求通讯)信号;而从机在工作时,如果允许主机与之通讯,则可开外部中断及总中断1,否则关闭中断1。

这种中断方法解决了分机盲目等待的问题,分机也能立即响应主机的通讯请求,但在某些应用场合有相当的局限性。

(1)当分机通信波特率要求不一样时;

(2)主机(或分机)还要通过串行口与别的设备进行数据交换时。

以上介绍的方法就难以实现。这是因为:不管是主机还是从机它们的串行口已被使用,跟远程计算机或串行设备进行通信已没有串口用。下面介绍的方法就很好地解决了这些问题。

2 利用单片机的P1口进行串行通信

为实现单片机之间的串行通讯,同时主机、分机还与其他串行设备进行通信,作者利用AT89C51的P1口中的3条普通I/O线来模拟进行异步串行数据通信,取得了很好的效果,串行通信网络结构见图2。

其中:主单片机的P1.0作为发送端,P1.1作为接收端,P1.2作为中断请求端,而各分机也以P1.0作为发送端,P1.1作为接收端;并事先为每一个分机确定一个地址编码信息。当主机要与某一个分机进行通信时,主机通过P1.2发出一个中断请求信号,延时相应的时间后,向P1.0发送模拟的数据帧,数据帧中包含要进行通讯的分机地址编码信息。各分机接收了来自INT1的中断请求信号后,进入中断服务程序,分机检测P1.1端,当P1.1端由高变低时,说明主机发送的数据帧的起始位开始,分机模拟异步接收方式跳过起始位依次接收各数据位。接收完来自主机的地址信息后,与本机地址信息比较,如果与本机地址相同,则等待准备接收数据或命令;如果接收到的地址与本机地址不符,则跳出中断服务程序,返回到主程序继续原来的工作。


おおおおおおおおおお
这种方式特别适用于主单片机要循环与各个分机进行数据通信的场合。这样就解决了波特率不能随意设置的问题,同时各单片机的串口可以当作它用。其中波特率可以随意设定包含下面三重含义:

(1)主机可以利用RXD、TXD同远程PC机或数传电台等进行通信,波特率可任意设置;

(2)分机也可与其他的串行设备进行通讯,波特率也可以随意设置;

(3)主机和分机之间的波特率可以任意设置。

3 具体编程实现

下面给出通过P1.0发送一帧和通过P1.1接收一帧数据的子程序,供参考。

4 使用中应注意的一些问题

(1)延时时间的长短是根据波特率的变化而变化的,延时子程序的循环次数与单片机所采用的晶振频率有关。

(2)以上提供的程序是针对12 MHz晶振、9600 b/s通讯的。DELA子程序延时时间为50 μs 。实际应用时,可以根据不同波特率和不同的晶振选择不同的延时时间来模拟异步串行通讯。!--[endif]-->

(3)上面的多机通信是利用P1口来模拟异步串行通信,每一帧都有起始位,同时数据采集在一位的中间进行的,所以延时时间允许有一定的误差,而不影响接收数据的准确性。工程上常用波特率传送一个二进制数据位所需要的时间见下表。

5 结语

SOC开发平台360元 豪华单片机开发系统498元 单片机学习板138 无线nRF-9E5模块100元 S3C44B0 ARM7开发板398元 Genius NSP通用编程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 该项技术

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top