1、控制室屏柜物联网监护系统 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 控制室屏柜物联网监护系统 提
2、醒:垃圾文章,请勿抄袭 摘要 为了提高系统管理的先进性和安全性,在工业自动控制中需要实现控制室屏柜的远程控制.本文研究通过物联网技术实现对多个屏柜的远程开关控制,并将当前状态反应给控制端. 物联网技术是新一代信息技术,是在互联网技术基础上的延伸和扩展的一种网络技术,其用户端延伸和扩展到了任何物品和物品之间,进行信息交换和通讯以实现智能化识别、定位、追踪、监控和管理. 本文通过多台51单片机实现物联网技术,由一台作管理用的上位主计算机(主机)和多台直接参与控制检测的下位从计算机(从机)构成的主从式多机系统,利用单片机间串口通信实现主机与从机间通信。同时设计了从机对屏柜的门控电路,从而
3、实现在主机端即可控制多个屏柜. 关键词:物联网,单片机,串行通信,控制室屏柜,门控系统 ABSTRACT 目录 摘要 I ABSTRACT II 前言 1 1。本课题选取的目的及意义 1 2。本文主要工作 1 第一章 串行通信部分 1 1。 串行通信原理 1 1.1 通信的种类 9 1.2 通信参数 9 1。3工作模式 3 1。4 同步通信与异步通信 4 2. 串口通信传输协议 5 2.1 IIC总线传输协议 5 2。2 SPI总线传输协议 7 2。3 串
4、口通信传输协议 9 2.3.1 80C51单片机的串行口的结构 9 2.3.2 80C51串行口的控制寄存器 10 2.3。3 80C51单片机串行口的工作方式 11 2。4 方案选取 13 3. 主从通信系统设计 13 3。1 硬件原理图设计 13 3.2 软件的编写 14 第二章 从机电子锁部分 17 1.门控系统组成 17 2. 电控锁选择及其驱动电路设计 17 3。报警电路 18 4。。单片机电路 18 第三章 系统仿真 20 结束语 18 参考文献 18 附录 18 致谢 18 37 前言 在工业控制中,当工作人员对控制室进行检
5、修时,需要对控制室屏柜开关进行控制,并要及时获取屏柜开关状态。为了提高系统管理的先进性和安全性,计算机工业自动控制和检测系统越来越多地采用集总分散系统。较为常见的形式是由一台作管理用的上位主计算机(主机)和多台直接参与控制检测的下位从计算机(从机)构成的主从式多机系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数;二是要及时收集、整理和分析从机发回的数据,供进一步决策和报表。从机被动地接收、执行主机发来的命令,并且根据主机的要求向主机回传相应的实时数据,报告其运行状态[1]。 1。本课题选取的目的及意义 物联网是新一代信息技术的重要组成部分,其核心和基础仍
6、然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。物联网就是“物物相连的互联网”。物联网通过智能感知、识别技术与普适计算、泛在网络的融合应用,被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。 单片机开创了嵌入式系统独立发展道路,嵌入式技术是物联网技术最为关键的底层技术,在单片机技术成熟发展的今天,物联网的兴起,给单片机提供一个更为广大和宏伟的舞台,同时也给单片机提供了新的发展方向。 随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要,由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借
7、助现成的电话网进行信息传送.因此,用串行总线技术可以使集总分散系统的硬件设计大大简化、系统的体积减小、可靠性提高。特别适合于远距离传输.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各 CPU 之间的通信一般都是串行方式. 本次课题的设计所采用的方法是用串口通信的方法来实现主从式总线通信系统的。MCS-51系列单片机内部带有一个可用于异步通讯的全双工的串行通讯接口,因此可以很方便地构成一个主从式多机系统。51单片机由于其出色的性能和便宜的价格,目前仍然是国内用的最为广泛的8位单片机类型,因此选取基于51单片机的主从通信系统的设计与实现这个课题是十分有意义的。 2.本文的主
8、要工作 本次毕业设计的主要工作是利用51单片机总线式主从通信系统,实现基于主从总线的数据传送,利用主机控制从机,从机控制电子锁开关,并向主机返回数据,从而实现对控制室屏柜的监护系统。为了方便起见,先设计一个一主两从的通信系统,画出系统的硬件原理图,并且在此原理图的基础上设计出软件实现此功能。至于更加复杂的主从式多机系统的设计与实现可以在此系统的基础上进行扩展实现。 在本次控制室屏柜监护系统设计与实现过程中,要完成以下任务: (一)串行通信部分 1. 了解串口通信的原理,选择合适的通信协议进行管理 2. 设计主从式通信系统的硬件原理框图 3. 设计通信系统硬件电路 4. 串行通信软
9、件程序设计与调试 (二) 从机电子锁控制部分 1. 硬件电路设计 2. 程序设计(利用中断) 第一章 串行通信部分 1.串行通信原理 1。1通信的种类 通常通信的形式可以分为两种,一种为并行数据通信,另一种则为串行数据通信。两种不同的通信模式如图2—1所示。 0 1 2 3 4 5 6 7 位 1 0 0 1 1 1 0 1 并行 10011101 串行 图2-1 并行与串行 由图1可知,并行数据通信一次的传输量为8个位(1个字节),而串行数据通信则是一次只传输1位。 并行数据通信是
10、指数据的各位同时进行传送的通信方式。其优点是传送速度快;缺点是数据有多少位,就需要多少根传送线。 串行数据通信是指数据是一位一位顺序传送的通信方式,它的突出优点是只需一对传送线,这样就大大降低了传送成本,特别适应于远距离通信;其缺点是传送速度较低。假设并行传送N位数据所需时间为T,那么串行传送的时间至少为N*T [6]。 1.2通信参数 双方为了可以进行通信,必须要遵守一定的通信规则,这个共同的规则就是通信端口的初始化。通信端口的初始化有以下几项必须设置: 1。数据的传输速率 传输双方通过传输线的电压改变来交换数据,但传输线的电压改变的速度必须和接收端的接收速度保持一致,RS-232
11、通常用于异步传输,即双方并没有一个可参考的同步时钟作为基准。由于没有一个参考时钟,双方所发送的高低电位到底代表几个位就不得而知了,要使得双方的数据读取正常,就要考虑到传输速率——波特率,其所代表的意义是每秒钟所能产生的最大电压状态改变率,或者说是每秒钟可以振荡的次数。 原始信号经过不同的波特率取样后,所得的结果完全不一样。取样速度只有原来的一半时,信号被跳着取样,数据因此产生错误。因此通信双方获得相同的通信速度是首先要做的事情[5]。 2。数据的发送单位 一般串行通信端口所发送的数据是字符类型的,若用来传输文件,则会使用二进制的数据类型。当使用字符类型时,通常使用ASCII码,ASCII
12、码中8个位形成一个字符。以实际的RS—232传输来看,由于大多数应用只是发送文字码,因此只要7个位就可以将ASCII码的0—127号字符表达出来,所有的可见字符都在这个范围内,所以只要7个数据位就足够了.不同的情况下,会使用到不同的发送单位,但使用多少个位合成一个字节必须先行确定[5]. 3。起始位及停止位 由于异步串行通信中并没有使用同步脉冲作为基准,故接收端完全不知道发送端何时将进行数据的发送,而当发送端准备要开始发送数据时,发送端会在所送出的字符前后分别加上高电位的起始位(逻辑0)及低电位的停止位(逻辑1),它们分别是所谓的起始位和停止位。当发送端要开始发送数据时,便将传输在线的电位
13、由低电位提升至高电位,而当发送结束后,再将电位降至低电位。接收端会因起始位的触发(因电压由低电位升至高电位)而开始接收数据,并因停止位的通知(因电压维持在低电位)而确切数据的字符信号已经结束[5]。 4.校验位的检查 为了预防错误的产生,因此使用校验位作为检查的机制;校验位是用来检查所发送数据正确性的一种核对码,其中又分成奇校验位和偶校验位两种方式,分别是检查字符码中I的数目是奇数或偶数。以偶校验位为例,A的ASCII码01100001 (二进制),其中1的数目是三个,因此校验位便是1,使1的数目保持偶数。同理,校验位是奇校验位时,A的校验位便是0,使1的数目保持奇数[5]。 1.3工作
14、模式 数据传输查模式有单工、半双工、全双工和多工工作方式。单工方式时,数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。半双工方式时数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。全双工方式时允许双方同时进行数据双向传送。这三种传输方式都是用同一线路传输同一种频率信号,为了充分利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上共享功能,我们称之为多工传输方式。几种传输方式框图如图2-2所示。从前往后依次为单工、半双工和全双工。 图2—2 三种传输方式 不
15、同的工作模式可以应用在不同的地方,也各有其优点.就串行通信而言,RS—232使用的是全双工的模式.同时可以利用的传输线路决定了工作模式.RS- 232之所以能达到全双工的功能,就是因为其引脚在设计上是接收与发送分属两个不同的引脚与线路[7]。 1.4 同步通信与异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)也是任意的,但每个字符中的各位是以固定的时间传送的.原理图如图2-3所示。 接收设备 01001 010100100
16、1 0101001001 01110 任意间隙 发送设备 图2—3 异步通信原理图 同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系.发送方对接收方的同步可以通过外同步和自同步两种方法实现[7][8].为自同步原理图如图2-4所示。 计算机甲 计算机乙 数据 时钟 图2-4 同步通信原理图 2。 串口通信传输协议 目前使用的比较广泛的串行总线传输协议有IIC总线传输协议、SPI总线传输协议以及RS—232总线协
17、议.无论利用其中任何一种总线协议都可以设计出一个主从式总线通信系统.现在分别介绍其数据传输原理。 2。1 IIC总线传输协议 IIC总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。IIC总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。IIC总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系[7][9]。 每个接到IIC总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,
18、这时主机即为发送器。由总线上接收数据的器件则为接收器.在多主机系统中,可能同时有几个主机企图启动总线传送数据.为了避免混乱,IIC总线要通过总线仲裁,以决定由哪一台主机控制总线。 数据的有效位规定:IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化,如图3—1所示。 SCL SDA 要求数据稳定 允许数据变化 要求数据稳定 图3—1 IIC总线数据传输有效位原理图 起始和终止信号 :SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SD
19、A线由低电平向高电平的变化表示终止信号,如图3—2所示。 起始信号S 终止信号P 图3-2 起始信号和终止信号原理图 起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。连接到I2C总线上的器件,若具有IIC总线的硬件接口,则很容易检测到起始和终止信号。接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。
20、数据传送格式:(1)字节传送与应答 每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。原理图如图3—3所示。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。由于某种原因从机不对主机寻址信号应答时(如从机正在进行实时性的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线的数据传送。如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的“非应答"通知主机,主机则应发出终止信号以结束数据的继续传送
21、当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号.这个信号是由对从机的“非应答”来实现的。然后,从机释放SDA线,以允许主机产生终止信号。 SCL (主机) SDA (从机) SDA (从机) 起始信号 非应答 应答 图3—3 IIC字符传送格式 (2)数据帧格式 IIC总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/T),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。但是,若主
22、机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。在总线的一次数据传送过程中,可以有三种组合方式:第一是主机向从机发送数据,数据传送方向在整个传送过程中不变。第二是主机在第一个字节后,立即从从机读数据.第三种刚是在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。 IIC总线的寻址是采用7位的寻址字节(寻址字节是起始信号后的第一个字节). 2.2 SPI总线传输协议 SPI的通信原理非常简单,它以主从方式工作,这种模式通常有一个主设备和多个从设备。其中CS信号是控制从机的芯片是否被选中的。如图
23、3-4所示,系统内有一个主设备M1和两个从设备S1与S2。当S1的片选信号CS为低电平时,S1被选中,M1通过MOSI引脚发送数据,S1通过MOSI引脚接收数据,或者S1通过MISO引脚发送数据,而M1通过MISO引脚接收数据。同样的,当S2的片选信号CS为低电平时,S2被选中,M1通过MOSI引脚发送数据,S2通过MOSI引脚接收数据,或者S2通过MISO引脚发送数据,而M1通过MISO引脚接收数据。从机只有通过CS信号选中之后,对此从机的操作才会有效,可见,片选信号的存在使得允许在同一总线上连接多个SPI设备成为可能. 当从机芯片被选中,和主机建立连接之后,接下来就是负责通讯的3根线了。
24、通讯是通过数据交换完成的,这里首先要知道SPI是串行通讯协议,也就是说数据是一位一位进行传输的。这就是SCK时钟线存在的原因,传输时,由SCK提供时钟脉冲,MOSI,MISO则基于此脉冲完成数据传输。如图3—4所示,当M1给S1发送数据时,数据从M1输出通过 MOSI线,数据在时钟脉冲的上升沿或下降沿时输出,在紧接着的下降沿或上升沿通过S1的MOSI线被读取。当S1给M1发送数据时,原理是一样的,只不过通过的是MISO线来完成[10]。 SCK MISO MOSI CS M1 SCK MISO MOSI CS SCK MISO MOSI CS S1 S2 图
25、3—4 SPI传输原理图 要注意的是,SCK信号线只由主设备控制,从设备不能控制时钟信号线。因此,在一个基于SPI的系统中,必须至少有一个主控设备。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比IIC系统要稍微复杂一些. SPI是一个环形总线结构,其时序其实比较简单,主要是在时钟脉冲SCK的控制下,两个双向移位寄存器SPIDATA进行数据交换.我们假设主机的8位寄存器SPIDATA1内的数据是10101010,而从机的8位寄存器SPIDATA2内的数据是01010101,在上升沿的时候发送数据,在下
26、降沿的时候接收数据,最高位的数据先发送,主机和从机之间全双工通信,也就是说两个SPI接口同时发送和接收数据,如图3-5所示。从图中我们也可以看到,SPIDATA移位寄存器总是将最高位的数据移出,接着将剩余的数据分别左移一位,然后将接收到得数据移入其最低位[11]。 图3—5 SPI主从工作模式示意图 如图3-6所示,当第一个上升沿来的时候,SPIDATA1将最高位1移除,并将所有数据左移1位,这时MOSI线为高电平,而SPIDATA2将最高位0移出,并将所有数据左移1位,这样MISO线为低电平。然后当下降沿到来的时候,SPIDATA1将锁存MISO线上的电平,并将其移入其最低位,同
27、样的,SPIDATA2将锁存MOSI线上的电平,并将其移入最低位.经过8个脉冲后,两个移位寄存器就实现了数据的交换,也就是完成了一次SPI的时序[11]。 图3—6 数据传输示例 2.3 串口通信传输协议 由于本次设计的题目是基于8051单片机的主从式通信系统的设计,因此有关串口通信的原理的介绍都是围绕51单片机讲解的。 2.3。1 80C51单片机的串行口的结构 MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器刚只能写入不能读出。这个通信口
28、既可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用.如果在传行口的输入输出引脚上加上电平转换器,就可以方便地构成标准的RS—232接口[7][12]。80C51单片机的串行口的结构如图3—7所示。 图3-7 80C51单片机的串行口的结构 串行口有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。 2.3.2 80C51串行口的控制寄存器 1.特殊功能寄存器SCON SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志,字节地
29、址为98H。SCON寄存器的各位定义如表3-1所示。 位 7 6 5 4 3 2 1 0 字节地址:98H SM0 SM1 SM2 REN TB8 RB8 TI RI SCON 表3—1 SCON寄存器 SM0和SM1为工作方式选择位,可选择四种工作方式,如表3-2所示。 SM0 SM1 方式 说明 波特率 0 0 0 移位寄存器 fosc/12 0 1 1 10位异步收发器(8位数据) 可变 1 0 2 11位异步收发器(9位数据) fosc/64或fosc/32 1 1 3 11位异步
30、收发器(9位数据) 可变 表3-2 串口通信4种工作方式 SM2为多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走).当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。 在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。 REN为允许串行接收位.由软件置REN
31、1,则启动串行口接收数据;若软件置REN=0,则禁止接收。 TB8用在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位(在方式0和方式1中,该位未用) 。 RB8用在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。 TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请.在中断服务程序中,必须用软件将其清0,取消此中断申请。 RI,接收中
32、断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请.也必须在中断服务程序中,用软件将其清0,取消此中断申请[7]。 2.特殊功能寄存器PCON PCON的字节地址为87H,它的第7位SMOD是与串口通信波特率的设置有关的选择位。SMOD(PCON.7)为波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。 2.3.3 80C51单片机串行口的工作方式 1.方式0 设置SCON寄存器的SM0、SM1=0 0时,串行口工作于方式0。此时,
33、串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3。0)引脚输入或输出,同步移位脉冲由TXD(P3。1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。其中fosc为时钟频率. 2.方式1 设置SCON寄存器的SM0、SM1=0 1时,串行口工作于方式1。方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位. 用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始
34、位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。方式一的输入输出图如图3—8、3-9所示. 图3-8 方式1输入 图3-9 方式1输出 3。方式2和方式3 设置SCON寄存器的SM0、SM1=1 0时,串行口工作于方式2,当SM0、SM1=1 1时,串行口工作于方式3。方式2或方式3为11位数据的异步通信口
35、TXD为数据发送引脚,RXD为数据接收引脚 . 方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位.方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。 方式2和方式3输出:发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚.每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。第一次移位时,停止位“1”移入输出移位寄存器的第9位上 ,以后每次移位,左边都移入0.当停止位移至输出位时,左边其余位全为0,检测电路检测到
36、这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU请求中断。发送时序图如下图3—10所示. 图3—10 方式2或方式3的发送时序图 方式2和方式3输入:接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断.如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。接收时序图如图3—11所示。 图3——11 方式2或方式3的接收时序图 2。4 方案选取 就三种数据传输协议的
37、方式来看,串口通信是这三种方式中最为简单也是最好实现通信方式的一种。因为MCS-51单片机内部有一个全双工的串行通信口,而一般的51单片机不带IIC总线接口和SPI总线接口。要想使用这两种传输方式进行数据传输的话,必须要使用软件模拟。而且主机从机要是都是51单片机的话,实现起来的难度就会非常的大。另外,虽然IIC和SPI比UART更加强大,但是在技术上也在更麻烦一些。同时IIC的抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离传输。所以无论是从设计的难易程序来考虑,还是从本次设计的实际情况来看,采用串口通信的方式实现51单片机的主从式通信是最合适不过的了,除了实现主机与从机间的
38、串口数据传送外,还实现从机到从机的串口数据传送的功能[9][11][12]. 3. 主从通信系统设计 主从通信系统的设计不仅包括系统的硬件原理图设计,还包括基于硬件基础上的软件代码的编写。本文首先设计出主从通信的硬件原理图,然后再编写出了相应的代码。 3.1 硬件原理图设计 关于51单片机的主从式通信系统的硬件设计的原理框图是很容易的。本次设计主要是一个主机和两个从机进行通信.因此,主要需要三个单片机作主从机,另外设计一些外围硬件电路来实现这个主从式通信系统MCS—51单片机的第10号管脚RXD可用于串行数据的接收,第11号管脚TXD可用于串行数据的发送.因此,可以将主机的TXD管脚与
39、从机的RXD相连接,以实现主机发送数据从机接收数据的功能。而主机的RXD与从机的TXD相连接,以实现从机发送数据主机接收的功能。同时也可以实现从机与从机之间的数据通信。 根据上面的原理框图设计具体的硬件原理图时,如果只是简单的这样连线的话,就会遇到一些问题。其一:当单片机处于待机状态时,单片机的各个I/O口被默认为是高电平,而当主机与一个从机进行通信,另一个从机不工作的话,传输线上的信号就会受到另一从机的影响,最终数据传送会发生错误.其二:主从式的通信要实现的是主机与从机以及从机与从机之间的通信。其中包括主机与两个从机同时通信,主机与单个从机通信(另一个从机处于待机状态),从机与从机之间的通
40、信。如果只是单纯的连接主机与从机之间的RXD与TXD信号线是无法实现的[1][14]. 为了解决上述所提到的问题,可以设计一些硬件电路来实现。关于主从机之间信号的影响,可以在信号端加上三态门电路,当某个从机不进行工作时,可以设置三态门呈高阻态的状态,这样从机之间就不会相互的影响了。同时,关于三态门的控制,可以设计成主机控制,这样要想实现各种形式的通信都可由主机控制了。本次设计采用74HC245芯片作为三态们器件。具体的电路原理图如图4—1所示。 三态门 三态门 T R T R T R 主机 从机1 从机2 图4—1 硬件原理图 3。2 软
41、件的编写 主从式通信系统包括主机与从机之间的通信,以及从机与从机之间的通信。因此,在编写程序进行数据信号传输时,必须考虑到各种情形.同时,如果想要系统具有实时性,数据信号则必须是可变的。数据的可变不仅包括数据的内容,还应该包括数据的长度。 关于各种情形的通信,程序设计时,可以设计一种通信协议,采用不同的控制命令字进行通信控制,同时也可规范的管理数据之间的传送.我们可以将一组特殊的,用的比较少的数据用来当成控制命令字.例如,本次设计采用如下控制命令:0xaa表示主机给从机1发送数据,0xbb表示主机给从机2传送数据,0xcc表示从机1给主机传送数据,0xdd表示从机2给主机传送数据,0xee
42、表示从机1给从机2传送数据,最后0xff表示从机2给从机1传送数据。 本次设计所设计的通信协议为:主机首先给所有的从机发送一个控制命令字,从机接收到这个控制命令字后进行辨认,如果是0xaa则从机1准备接收主机的数据,从机2处于待机状态,而主机则会在发送完前面的控制命令字后发送在传送的数据信号。当主机发送的是0xbb控制命令字时,主机在发送完控制命令字后发送要传送的数据信号,此时从机1处于待机状态,从机2接收主机发送来的数据。如果从机接收到的是0xcc,则主机在发送完控制命令字后就准备接收从机1发送来的数据信号,从机2处于待机状态。当主机发送的是0xdd控制命令字时,则主机在发送完控制命令字后
43、就准备接收从机2发送来的数据信号,从机1处于待机状态。主机发送的如果是0xee或者是0xff控制命令字时,则表示从机与从机之间进行数据通信,此时,数据首先由从机传送给主机,再由主机传送给另外一个从机. 另外,对于主从机之间发送的数据,有可靠传输方式和不可靠传输方式。所谓不可靠传输方式,就是发送端与接收端之间没有任何关系,发送端只管发送数据,接收端只管接收数据。到于数据在传送时有没有发生错误,接收端是不会知道的。这种传输模式的优点是相对于可靠传输而言,传输速率要更高.缺点就像其名字一样,数据传送不安全。对于要求高准确率的数据通信系统,更多的采用可靠传输.所谓可靠传输,就是发送端在发送一组数据后
44、在数据的最后加上一个校验码,而接收端在接收数据时,不仅接收数据,而且还要进行计算,最后与发送端发送的校验码进行对比,如果两个校验码一致,则表示数据是正确的。如果不一致,则放弃接收到的数据。发送端重新发送数据,进而重复上面的过程,直到数据信号发送正确为止。本次设计采用可靠传输方式。 在上述的所有通信过程中,当每次数据传送结束后,接收机在接收完所有的数据后会进行一次求和校验,这样可以检验数据传送的成确与否。如果所得的求和值与发送机发出的求和校验码一致时,则表示数据发送正确,可以接收并存储。如果所得的求和值与发送机发出的求和校验码有一致时,则表示数据发送时出现错误,接收机丢弃所接收的数据,并命令
45、发送机重新发送数据。 编写软件代码时,首先得弄清楚程序流程图.只有清楚了软件流程图,再根据流程图进行编写代码,才不会出现大的错误.本次设计采用一个单片机作主机,两个单片机作从机进行主从通信,具体程序流程如图4-2、图4-3、图4-4如下所示。 其中具体程序见附录。 入口 任务初始化 发送控制命令 判断命令 给从机1发送数据 给从机2发送数据 主机接收来自从机1的数据 主机接收来自从机2的数据 图4—2 主机程序流程图 入口 任务初始化 接收控制命令 判断命令 给主机发送数据 接收来自主机的数据 给从机2发送数据 接收来自从机2的数据 图4—3
46、 从机1程序流程图 入口 任务初始化 接收控制命令 判断命令 给主机发送数据 接收来自主机的数据 给从机1发送数据 接收来自从机1的数据 图4-4 从机2程序流程图 第二章 从机电子锁部分 1. 门控系统主要组成 一个完整的门控系统如下图所示,由单片机、电源指示、工作指示、振荡电路、蜂鸣器电路、门控锁电路、4×4矩阵键盘、读卡模块、显示模块组成.如图1示: 图1 电路原理图 2。电控锁的选择及其驱动电路设计 电控锁是门控系统中锁门的执行部件。根据门的材料、出门要求等需求选取不同的锁具。主要有以下两种种类型: 阳极锁:阳极锁
47、是断电开门型,符合消防要求。它安装在门 框的上部。与电磁锁不同的是阳极锁适用于双向的木门、玻璃门、防火门,而且它本身 带有门磁检测器,可随时检测门的安全状态。 阴极锁:一般的阴极锁为通电开门型。适用单向木门.安装阴极锁一定要配备UPS电源。因为停电时阴锁是锁门的。 “阳极锁"的一种停电开门的电锁。切断电源,电锁会自动打开。由于此设计是基于单片机,提供了备用电源,故排除了此种情况,而且电插锁大多都是用于双向开关门的门控系统中,本设计门控系统仅仅是单向开门即可。采用门磁+阴极锁的方案,为了符合消防要求,在单片机IO口可设置消防联动接口。在驱动电路中,用单片机三极管控制继电器进行电锁的电源通断
48、电路原理如图。在正常闭门情况下,控制电路是不对电控锁供电的,单片机P2.3口发出开门信号时候即当DOOR置低电平时,经单片机控制三极管来驱动电源继电器接通而使得电控锁的电源接通,电磁锁接通指示灯D8亮,实现开门功能。电路基本原理见下图2。 图2 电控锁驱动电路 3.报警电路 此电路设计相当简单可以实现简单的提示及报警功能,由单片输出一开关信号至三极管,触发三极管以实现此功能。如下图3所示。 图3 报警提示电路 4. 单片机电路 单片机是整个设计的控制器的核心,完成
49、整个控制器的控制功能,包括键盘的输入、液晶屏幕的显示、数据的存储和运算、数字信号的输出等功能。 图2.2.4 AT89C52管脚图 图4 单片机管脚及其分配图 单片机的P0、P1、P2、P3均为双向输出口,由于此设计使用的单片机的管脚较多,如上图所示在设计中比较合理的分配了:其中P1口为键盘与单片机的通讯接口;P0 和P2.0~P2。2口为单片机与1602液晶显示器D0~D7的数据通讯接口,P2.3是输出至门锁驱动电路的接口,P2
50、4~P2。6是与实时时钟芯片DS1302的连接接口,P3。0到P3。3是单片机与CD4067的输出接口,其中P3.3是向CD4067输出的片选信号,P3。7是输出报警或提示蜂鸣器的信号接口。 第三章 系统仿真 根据上面的原理设计好硬件原理图和编写好软件代码后,可以在Proteus仿真软件上进行仿真了.为了得到明确可见的仿真结果,本次设计将主从机之间的数据信号进行传送时,将接收到的数据信号利用数码管显示出来。这样就可以一目了然的知道仿真结果的正确性了。具体的仿真原理图如图5—1所示. 图5—1 仿真原理图 在Proteus仿真软件上连接好原理图后,将所写的主机和从机程序装入单片机中






