单片机串口通信485modbus_第1页
单片机串口通信485modbus_第2页
单片机串口通信485modbus_第3页
单片机串口通信485modbus_第4页
单片机串口通信485modbus_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工程七单片机通信实践知识目标:知识目标:mitter1,根据数据格式的协议,数据交换的协议要求硬件连接,实现串行通讯的硬环境。2.MCU与PC机及多个单片机的硬件连接方法4.使用KeilC完成程序的编写和调试5.使用最小系统板实现硬件调试知识准知识准备在实际工作中,计算机与外部设备之间常常要进展信息交换,计算机与计算机之间也要交换信息,所有这些信息交换可称为通信。在我们前面所学的知识中所涉及的数据传送都是采用并行方式,如单片机与存储器,的数据传送,存储器与存储器的数据传送,单片机与并行打印机之间的数据传送,CPU处理数据以8位数据并行方式同时一次传送一字节的数据,这样的传送方式要求用8条数据线和假设于条控制信号线,传送距离较近。当计算机与计算机之间的距离较远时过多的电缆使这种方式不够经济。串行通信是用一位数据线传送数据,只用几条电缆线作控制信号线,串行通信适合远距离数据传送,处于两地的计算机之间采用串行通信就非常的经济,当然串行通信要求通信双方具有一样的数据转换格式,规定的时间控制,相等的逻辑电路,通一的通信协议。7.1.1.1串行与并行通信根本概念1.串行通信与并行通信通信方式有两种:并行通信和串行通信。通常是根据信息传送的距离决定采用哪种通信方式,如果距就需要多少根数据传送线,单片机与外部设备之间的数据传送属于并行通信图7-1-1〔a〕所示为AT89C51系列单片机与外部设备间的8位数据并行通信的连接方法,并行通信方式在位数多、传送距离远的情况下就不太适宜了。传送的通信方式,图7-1-1〔b〕所示为单片机与外部设备间的串行两种通信方式接半双工和全双工⑴单向(或单工),只允许数据向一个方向传送;置具有完整和独立的发送和接收能力。7.1.1.2单片机串行口发送与承受数据 1.串行通信协议串行通信协议是通信双方为保证通信成功而制定的一系列约定。包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议,串行通信协议包括同步协议的异步协议两种。异步串行通信协议规定了字符的传送格式和字符传送的波特率。送的,每一帧的数据格式如图7-1-2所示。和停顿位。首先是一个起始位〔0〕,起始位信号只占用一位,用来通知接收设备一个待接收的字符开场到达,线一个新的字符,应马上准备接收,字符的起始位还被用作同步接收端的的时钟,以保证以后的接收能正确进。民可〕来确定这一帧中的字符代表代表的性质〔地址/数据等〕。2位。接收端收到停顿位后,知道上一字符已传送完毕,同时也为接收下一个字符作好准备,只要再接收2.波特率通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。波特率是串行通信中的一个重要指标,它反映了对传输通道的要求。波特率越高,要求传输通道的频带越宽。一般异步通信的波特率为50—9600b/s7.1.1.3单片机串行口控制存放器D7D6D5D4D3D2D1D0ITI 工作方式说明波特串00位存放器011011TI中断标志。由硬件置位,必须由软件清0。RI中断标志。由硬件置位,必须由软件清0。D7D6D5D4D3D2D1D0IDLSMOD。GFGF标志位。7.1.1.4串行口工作模式及波特率设置1.串行通信的工作方式 移位存放器方式在用最小的硬件扩展接口时很有用。串行口外接一片移位存放器74LSl64可构成输出接口任何数目的移位存放器可串接用于输出和输入,通过一系列的SBUF的写和读。假设移位时的波动不重要IO。对短距离通信很吸引人。SBUF放器的指令都启动一次发送,发送的条件是TI=0,发:2SMOD 51系列单片机串行口的不同寻常的特征是包括第九位方式。这允许在串行口通信增加的第九位用于标志特殊字节的接收。对简单网络,第九位方案允许接收单片机仅当字节具有一个第九位时才能被中断。用 这种方法,发送器可以播送一个字节让第九位为高作为“每个人请注意〞字节。字节可以为节点地址,地址一样的节点可以翻开接收接下来的字符。所接续字节(第九位为低)不能引起其它单片机中断,因为未送它们的地址。用这种方式。一个单片机可以和大量的其它单片机对话而不打搅不寻址的单片机。这种系统必须工作在严格的主从方式,由软件进展取舍安排。2.通信波特率设置在异步通信中,收、发双方各用自己的的时钟源,要保证捕捉到的信号正确,最好采用较高频率的接收错误。各方式波特率的取值方法如下:作在同步移位存放器方式下。其波特率固定为(1/12)×fosc。特率由定时器T1的溢出率获得:SMOD内定时器/计数器回0溢出的次数,即定时器/计f 2SMODfoscSMOD〕TH1SMODTMODTH1XXX1XXX0XXSMODTMOD1X行口工作方式SMODTMODTH1波特率 01010或010100100000A0H100000收、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不H器统称串行通信特殊功能存放器SBUF。通信和单片机与微机通信。1.单片机双机通信技术口直接相连〔TXD—RXD,RXD—TXD,GND—GND—GND,即可实现双机通信。源干扰,可采用RS-232C或RS-422、RS-4851969年公布的通信协议。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特、600、1200、4800、9600和19200。在通信为保证通信正确,必须通信双方必须同一RS-232-C标准:RS-232-C标准对逻辑电平的各种信号线的功能作了规定,即信号电平标准和控制信ARSTTL任务实任务实施7.1.2通信系统设计RT1.单片机与微机通信的接口电路设计利用微机配置的异步通信适配器,可以很方便地完成微系列与AT89C51单片机的数据通信。微机与单电平转换。现在采用MAX232单芯片实现AT89C51单片机与微机的RS-232GND----------------->5脚地〔GND〕现从MAX232芯片中两路发送接收中任选一路作为接口,应注意发送、接收的引脚要对应。 入的字符〔1-8〕显示到单片机的数码管上。3.单片机和单片机通信连接RXDGND<->GND。要注意的是这样的连接不能远距离。P1〔TX示7-1-4单片机与单片机通信连接图P3.0〔RXD〕通信程序中在使用串行口之前,应对它进展编程初始化,主要是设置产生波特率的定时器1、串行口1#单片机2#单片机制。具体步骤如下:⑷确定串行口的控制——编程SCON和PCON;5.编程举例⑴汇编程序例子RITI,$TIAGAIN位异步,允许接收;波特率加倍;等待接收完成;清接收标志;接收数据送缓冲区;发送收到的数据;等待发送完成;清发送标志STARTMOVMOVMOVMOVMOVAGAIN:JNBMOVMOV⑵C51初始化串口程序 ii=0;//初值TMOD=0x20;//方式存放器初值xfd⑶单片机串行口发送程序,每发送一串字符“MCS—51〞后延时一段时间重复发送,和微机相接后,x{{uchari;uintj;TL1=0xfd;TH1=0xfd;/*设置初始值while(1){i;while(trdata[i]!=0x00){/*发送字符串*/ileTITI=0;i++;}}}}⑷单片机串行口发送/接收程序,每接收到字节即刻发送出去;和微机相接后微机键人的字符回显在屏幕上,此程序证明单片机串行口发送/接收都正常。可先用此程序测试,假设不正常,再使用单独的发送程 {while(RI==0):ileTITI=0;}}}EUS⑴单片机与单片机间通信线连接,在硬件连线时要注意2、3脚对换,但用购置的串口线不用对换。⑵单片机与单片机间通信线通信线不易太长,最好小于50CM。⑶在焊接时要注意断开5V电源,焊接时间不要太长,如果太长会使焊盘脱落。调试单片机的串行口主要用于和通用微机的通信、单片机间的通信和主从构造的分布式控制系统机间通信。串行口通信常使用缓冲区。单片机和通用微机进展通信时,要求使用的波特率、传送的位数等一样。要能够进展数据传送也必须首先测试双方是否可以可靠通信。可在微机和单片机上各编制非常短小的程程序能运行通过,即可证明串行口工作正常。通信程序接收程序尽量采用中断程序,通信中断函数不要太长,会影响接收数据。 从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。具体程序用VB编制,简单易懂。直接输入即可运行。用中断方式数据接收程序的练习。知识准备:知识准备:多点通信在工业控制及测量领域较为常用的网络之一就是物理层采用MAX485通信接口所组成的工控设备网络。这种通信接口可以十分方便地将许多设备组成一个控制网络。从目前解决单片机之间中长距离通信的诸多方案分析来看,MAX485总线通信模式由于具有构造简单、价格低廉、通信距离和数据传输速率适当。因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别 MAX485的特性、封装及特性300μA低静态电流三态输出半双工模式AX7.2.1.2通信方式。⑵微机和智能仪器可作为主从设备,主从设备中建立了主设备查询和从设备回应消息的格式;在通信接收过程中如果发生一错误,或从设备不能执行其命令,从设备将建立一错误命令并把它作为回应发送出去。尽管网络通信方法是“对等〞。如果一设备发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当主设备接收到一消息,它将建立一从设备回应格式并返回给发送的控制器率7.2.1.3MODBUS协议的根本格式序序号12345678字节数11111N21格式SOIADR特征码长度查询/回应信息CRC16EOI ADR是信息帧的第一字节(8位)设备地址描述,在一个485总线上可以挂接多个设备,此处的设备地从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码说明该信息来自于何处。特征码是设备特征描述代码;长度是该整条指令的总字节数〔包括起始位标志、完毕码〕;查询/回应是控制标识码,也称功能码:查询消息中的功能代码告之被选中的从设备要执行何种功能。们的内容。数据段必须包含要告之从设备的信息:从何存放器开场读及要读的存放器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:象存放器值或状态。如果有错误检测域允许主设备确认消息内容是否可用。信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的平安和效率。7.2.1.4单片机与计算机的通信输出的是RS-232电平,往往只能用于实现单点通信,且传送距离有限,为了对其进展扩展,我们采用MAX485通讯程序与MAX232通讯程序在本质上是一样的,只是MAX485通讯程序需要加上通讯方 任任务实施:⑴微机PROTEUS画好电路原理图并完成硬件设计按照原理图正确焊接线路,用万用表简单测试线路⑶VB界面下设计多个窗口,通信接收,编写VB程序,根据各站的数据显示在指定指定窗口。⑷系统调试各智能系统站的上的MAX485输出A端连接在一起,B端连接在一起,一个工程工程的完成要经过成有一定的难度,技术性较强。 1.根据MX485与单片机的连接图和微机的连接图,制作硬件。3.在VB界面下编制数据检测及显示程序知识拓展:知识拓展:1.VB界面程序设计'''使用命令按钮控件'关闭通信端口'完毕系统'使用命令按钮控件'使用Input属性读取串行端口的传入值ndIf'使用命令按钮控件t '由CommEvent属性值的不同,将各别的程序代码写入'相关的子程序中'因此接收的子程序便被执行'借着取代底下每一个case语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论