基于51单片机的多机通信系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机多机通信系统
一、引言
随着单片机技术的不断发展,单片机的应用已经从单机向多机互联化方向发展。单片机在实时数据采集和数据处理方面,有着成本低、能满足一般要求、开发周期短等优点,其在智能家居、计算机的网络通信与数据传输、工业控制自动化等方面有着广泛的应用。
本系统是面向智能家居应用而设计的。在初期,采用红外无线通信方式,其传输距离短,适于一般家庭应用,且成本相对较低;待方案成熟、成本允许,可以改用GSM无线通信方式。
二、系统原理及方案设计
1 、系统框架介绍
本系统为基于51单片机的多机红外无线通信系统,由三个51单片机模块组成。其中一个作为主机(即上位机),负责接收来自从机1(即下位机)采集的数据信息,以及向从机2(即下位机)发送控制信息。从机1是数据采集模块,采集温度、光强等室内数据,并将其发送给主机。主机经分析处理,作出相应判断,并给从机2发送控制信息,使由从机2控制的电机作出相应反应,调节室内环境状况。
系统总体框图如下图1所示,图2为红外收发模块简图:
图1 系统总体框图
图2 红外收发模块简图
2 、多机通信原理介绍
在多机通信系统中,要保证主机与从机间可靠的通信,必须要让通信接口具有识别功能,51单片机串行口控制寄存器SCON中的控制位SM2正是为了满足这一要求而设置的。当串行口以方式2或方式3工作时,发送或接收的每一帧信息都是11位的,其中除了包含SBUF 寄存器传送的8位数据之外,还包含一个可编程的第9位数据TB8或RB8。主机可以通过对TB8赋予1或0,来区别发送的是数据帧还是地址帧。
根据串行口接收有效条件可知,若从机的SCON控制位SM2为1,则当接收的是地址帧时,接收数据将被装入SBUF并将RI标志置1,
向CPU发送中断请求;若接收的是数据帧时,则不会产生中断标志,信息将被丢弃。若从机的SCON控制位SM2为0,则无论主机发送的是地址帧还是数据帧,接收数据都会被装入SBUF并置1标志位RI,向CPU发出中断请求。
那么,我们规定如下通信协议:
(1)置1所有从机的SM2位,使之处于只能接收地址帧的状态,并给每个从机初始化一个地址值;
(2)主机发送地址帧,其中包含8位地址信息,第9位为1,进行从机寻址;
(3)从机接收到地址后,将8地址信息与其自身地址值相比较,若相同则清“0“控制位SM2,若不同则保持SM2位为1;
(4)主机从第二帧开始发送数据帧,其中第9位为0。对于已经被寻址的从机,因其SM2为0,可以接收主机发送来的任何信息,而对于其他从机,因其SM2为1,将对主机发送来的数据信息不予理睬,直到发来一个新的地址帧。
(5)若主机需要要与其他从机联系,可再次发送地址帧来进行从机寻址,而先前被寻址过的从机在分析出主机发来的地址帧是对其他从机寻址时,恢复其自身的SM2为1,对主机随后发来的数据信息不予理睬。
3 、红外通信方式介绍
因为本系统是面向智能家居而设计的,考虑到有线方式给用户带来的不便,我们选用无线作为各单片机间的通信方式。且我们队员以
前未做无线通信,希望在这次比赛中锻炼、提高自己。对于无线通信方式,常见的有五种:红外通信,蓝牙通信,Zigbee通信,GSM通信,GPRS通信。
红外通信是我们在学习中接触到最多的,元件材料相对简单、容易获得,能够满足一般家庭应用,且红外通信方面的资料比较多,易学。蓝牙设备自制不易,购买则增加系统成本。Zigbee、GSM、GPRS 则或系统设计复杂,或成本高。
红外通信背景介绍:红外线是波长在750nm至1000nm间的电磁波,其频率高于微波而低于可见光,是一种人肉眼看不见的光线。目前无线电波和微波已被广泛应用在长距离的无线通信中,但由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点对点的直线数据传输。
(1)红外收发器TFDU4100介绍
对于红外收发模块,我们采用TFDU4100红外收发器来实现。TFDU4100是常用的低电压红外收发模块,以串行方式进行数据交换,遵循IrDA1.2标准,最高通信速率可以达到115.2Kbps,最大传输距离为3.0m。
TFDU4100芯片图片和管脚定义分别如图3、表1所示
图3 TFDU4100芯片图片
表1 TFDU4100管脚定义
除了使用TFDU4100构成红外收发模块外,还可以选用其他的方案。比如用分立元件搭建一个红外发射、接收电路:用电阻、电容组成低步振荡器,频率调在38KHz左右,由红外发光二极管发射载波;红外接收部分采用普通的红外接收头,比如LF0038U,再用二极管、晶体管、电容、电阻构成放大、解调电路。但此方案缺点在于电路复杂、系统稳定性不强,并且成本与采用TFDU4100设计差别不大。(2)串行红外传输控制器TOIM3232介绍
根据IrDA红外传输标准,串行红外传输采用特定的脉冲编码标准,该标准与RS232串行传输标准不同。若两设备之间进行串行红外通讯,就需要一个传输控制器,以进行RS232编码和IrDA编码之间的转换。TOIM3232串行红外传输控制器就是Vishay公司为配合TFD U4100而设计的。其功能结构图如图4所示:
图4 TOIM3232功能结构框图
在输出模式下,TOIM3232可把RS232输出信号转变成符合IrDA 标准的信号以驱动红外发射器;在接收模式下,TOIM3232可把IrDA 输入信号转变成符合RS232标准的信号;TOIM3232的红外传输速度范围为2.4Kbit/s~115.2Kbit/s。TOIM3232内部有一个3.6864MHz 的晶振,用以实现脉冲的扩张和压缩。该时钟信号既可以由内部晶振产生也可用外部时钟实现。该控制器可通过RS232口进行编程控制,其输出脉冲宽度可程控为1.627μs或3/16位长。
4 、主机模块介绍
主机模块以89C52单片机为控制核心,外围主要接有4X4矩阵键盘、1602液晶显示屏、TFDU4100红外收发器、串行红外传输控制器TOIM3232。此模块中 89C52单片机作为CPU,控制整个系统的运转。系统启动时,默认主机与从机1建立连接。主机以串行口中断方式接受从机1发送的数据。数据经单片机分析,显示于1602液晶上,并判断是否向从机2发送控制信息。
本系统中我们使用4*4的非独立式矩阵键盘,如下图5所示。将行线、列线分别连接到按键开关的两端,并且连接到单片机的I/O口。