党强

摘要:本文主要进行探讨单片机与可编程逻辑控制器plc之间的串行通信以及各个系统在通信技术中的应用,本文主要以at89c51单片机和fpi系列的单片机为例进行阐述单片机与plc的串行通信。

关键词:plc 单片机 串行通信

中图分类号:TP273.5 文献标识码:A 文章编号:1007-9416(2014)04-0123-02

随着科学技术、网络通信技术以及自动化技术的快速发展,可编程逻辑控制器(plc)的功能日益强大,plc不仅能够实现逻辑控制,而且还能实现数字控制、远程控制以及运动控制等,plc逻辑控制器已经广泛应用于电力、交通运输、冶金、汽车制造等等各行各业。

1 单片机与plc串行通信的特点

plc和单片机各有各的优点和长处,可编程逻辑控制器使用简单、抗干扰能力强、运行可靠,并具有较强的驱动能力,可以在条件恶劣的环境下工作,plc主要用于机械设备的控制plc与现在的以太网、adsl等宽带技术相比,plc具有以下优点:plc分布广泛;接入方便;并且plc接入成本比较低,费用低,可以减轻用户的负担。单片机体积小、价格低,并且使用方便灵活,单片机可以用于办公设备、家用电器、仪器仪表以及传感内部的核心部位。在实际的应用中,需要把单片机和plc两者结合起来从而可以发挥各自优点和长处。单片机和plc通过通信进行交换信息,从而组成控制系统,实现实时采集。

1.1 单片机串口介绍

AT89S52单片机内部含有一个可编程全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。

在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。MCS-51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。

串行口的发送过程由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。

串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。TI和RI是由硬件置位的,但需要用软件复位。

1.2 单片机串口控制寄存器

SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工。

1.3 单片机多机通信方案选择

根据需要,各片单片机有相等的权限,每块单片机都可设置为主机或从机,因此单片机的串口应具有双向可选择性。采用两个同相三态门加上一个反相器即可构成这样的接口,并由单片机的一根引脚控制单片机串口的连接方式。

发送数据区可存放1B~48B的数据,以空字符'\0'作为发送数据结束标志。接收数据时以空字符作为接收有效数据结束标志。通信结束时,从机发回收发长度作为校验。

2 通信接口电路的设置

2.1 接口电路的设计

rs—232c接口是plc的一个标准的接口,主要采用eia电平逻辑,而at89c51主要采用ttl/cmos电平逻辑,由于这些电平不能互相兼容,所以应该将eia电平逻辑和ttl/cmos 电平进行转换,在我们使用的max232串行通信芯片中主要是单片集成双rs—232接收器。这种串行通信接口主要采用+—5v的电源供电,然后外接四支电容形成标准的rs—232通信接口,从而可以使eia电平和ttl/cmos电平之间的转换,经过转换之后两者就可以通过rs—232接口实现信号之间的传送。

2.2 串行通信接口的设置

2.2.1 单片机串行口的设置

at89c51单片机内部有一个串行口,txd(p3.1)为发送端,rxd(p3.0)为接收端,at89c51主要有scon和pcon两个特殊的寄存器进行控制,在软件设置的四种通信方式工作时,串行口主要为8位异步通信接口,非常适合于集成点对点连接接口的8位数据的传输,每帧信息有一个起始位、八个数据位和一个停止位,at89c51的cpu晶振为11.0592mhz时,波特率主要采用9600bps,波特率主要有串行口方式寄存器smod的状态和定时器t1的溢出率进行确定。

2.2.2 plc串行口参数的设置

plc主要通过进行设置系统寄存器来实现串行接口初始化。比如我们使用的fp1的系统寄存器no.413可以采用指定的rs232串口波特率控制字可以设置为h00,即一个起始位;8个数据位;一个停止位,没有奇偶校验位。串口波特率设置的寄存器no.414可以采用指定的rs232c串口波特率,可以设置为h01,其中波特率为9600bps;串口方式设置寄存器no.412可以设置为h01,这种方式成为计算机连接通信方式,站号设定寄存器可以no.415可以设置为h01。

3 单片机与plc串行口的通信过程

单片机的串行端口有一个数据寄存器sbuf,在特定的条件下,如果单片机向sbup写入数据就启动了发送过程,如果单片机向sbup读入数据就启动了接受过程,当单片机与plc通过rs—232c串行接口进行通信时,发送过程主要有单片机向plc发出命令帧格式,发送过程结束之后,plc做出响应,同时单片机接受响应帧格式,这种过程称为接受过程通信过程主要由单片机进行启动和接受不需要运用plc进行编制程序。其中发出命令帧格式主要包括plc站号、特殊标志位以及呼叫字符等,发出命令帧。endprint

4 单片机与plc的应用

plc是建立在单片机之上的一种科技产品,单片机是一种集成电路,单片机可以构成多种多样的应用系统,可以是大型、中型、小型以及微型的,而plc是单片机应用系统中的一个特殊的系统,单片机可以配合外围的电路设计出各种功能,单片机一般采用c语言、汇编语言等,这种系统可以应用于各个领域内,并且也非常安全可靠。单片机的应用系统是非常广泛的,但是单片机的使用和维护是非常困难的,从plc和单片机的系统的选用上来讲对于单项的工程采用plc是非常快捷、并且成功率高、可靠性好,但是成本比较高。对于大量的配套的项目来讲,采用单片机具有成本低、效益高等优点。随着科学技术不断进步和更新,在单片机系统中嵌入plc系统性能不仅可以得到保证,而且使工程项目的效益也得到保证。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。

构成较大规模的检测、控制系统,经常要采用多个单片机,组成可以通信的多机系统。Mcs一51系列单片机为实现多机通信联网设计了方便的串行通信接口功能。将多个Mcs一51单片机组成串行总线形式的相互通道,通过写单片机的串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间的串行通信。这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。我们在监控系统中要求既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。

5 总结与展望

串行通信是一种应用广泛的通信方式,本文主要以at89c51单片机和plc之间的串行通信为例进行探讨,并由此得出串行通信技术是一种实用性强;结构简单、运行可靠、抗干扰能力强,并且使用于远距离传输的一种通信方式。随着科学技术的不断进步,对单片机以及plc通信系统不断的开发利用,进一步将两者有效的结合起来实现通信技术,从而创造更高的应用价值。

多机协同工作已是单片机发展的一个重要趋势,目前单片机多机通信的主要方式仍然是主从式多机通信系统。

单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义!

参考文献

[1]李生军,李少蒙.《单片机与plc之间的串行通信实现》.化工自动化及仪表,2010,37(2):78--80.

[2]李辉,郑宁.《plc与单片机之间的串行通信及应用》.电工技术杂志,2013(8):67--68.

[3]赵勇.《单片机与可编程控制器的串行通信及应用》.西安邮电学院学报,2010,10(1):36--37.

[4]赵淑玉,孟宝全.《单片机和plc的应用与串行通信》.科技信息,2011(21):52--54.

[5]徐济仁,许阳明.《电力线通信(plc)技术及应用》.自动化博览,2013,20(6):86--88.endprint

单片机 串口 波特率 c语言 9600 11.0592mhz t1,PLC与单片机串口通信的实现相关推荐

  1. 单片机 串口 波特率 c语言 9600 11.0592mhz t1,C51语言编程:单片机与 PC 串口通信程序...

    单片机接收PC机发来的指令信号,然后单片机又向PC机发送字符串.具体要求如下: 当接收指令信号为:'go',单片机向PC机发送字符串:WELCOME TO CHINA!; 当接收指令信号为:'who' ...

  2. 51单片机常用波特率初值表(11.0592M和12M)

    51单片机常用波特率初值表(11.0592M和12M)

  3. linux内核态串口读写程序,linux 0.11 内核学习 -- rs_io.s,串口汇编代码

    /* *  该文件实现rs232 串行通信中断处理 */ /* *  linux/kernel/rs_io.s * *  (C) 1991  Linus Torvalds */ /* *rs_io.s ...

  4. 单片机波特率不加倍c语言,51单片机硬件系统设计时,为什么用11.0592MHz的晶振而不用12MHz晶振的原因及串口波特率误...

    在设计51系列的单片机系统时,一般选用11.0592MHz的晶振而不选用12MHz的晶振,为什么?12M的晶振,振荡频率明显高于11.0592M的,按理说12MHz的晶振可以提高单片机的性能,那么我们 ...

  5. 51单片机 11.0592MHz 产生115200 波特率

    51单片机 11.0592MHz 产生115200 波特率 连接:http://homezzy.blog.hexun.com/29601793_d.html 具体定义如下: SM0 SM1 SM2 R ...

  6. linux命令设置波特率,Linux设置串口波特率等参数

    stty查看串口参数 stty -F /dev/ttyS0 -a 1 1 查看串口1(/dev/ttyS0)当前的参数,包括波特率.数据位等. stty设置串口参数 stty -F /dev/ttyS ...

  7. Plc和单片机如何选择?

    点击蓝字 关注我们 ★ 经验分享 ★ 最近不少学员总是问我PLC和单片机应该怎么选择? 所以,今天我把自己经验分享给大家. 十几年前,上学时我也面临这样的选择,索性我全部都自学了一遍. ★ 单片机和p ...

  8. STC89C516/C52单片机串口波特率9600初始化代码

    串口初始化代码 bit busy;//全局变量void UartInit(void) //串口初始化,9600bps@11.0592MHz {SCON = 0x50; //8-bit variable ...

  9. 计算机的串口波特率,什么是波特率_波特率9600是什么意思_串口通信为什么要设置波特率?...

    描述 波特率(Baud Rate) 单位 bps -- 每秒传送的字节数 Byte Per Second.. (BaudRate) 模拟线路信号的速率,也称调制速率,以波形每秒的振荡数来衡量.如果数据 ...

最新文章

  1. 算法面试题-美团点评2016研发工程师编程题(二)-字符编码(哈夫曼树)
  2. CISCO ASA 5510 防火墙的配置实例
  3. java nio oio_Java NIO框架Netty教程(十四) Netty中OIO模型(对比NIO)
  4. Java虚拟机层面的几种锁
  5. python和c 的区别-python和C语言的差别
  6. 【Pix4d精品教程】未校准相机:287 out of 402 images calibrated (71%), all images enabled, 6 block,问题分析及解决方案汇总
  7. 阿里云,腾讯云CDN谁更胜一筹?
  8. 网络安全等级保护细则
  9. Java培训要多久以后才能工作?
  10. 加油站问题的题解与分析——循环队列+合并
  11. CentOS配置本地Yum源、阿里云Yum源、163Yum源、并配置Yum源的优先级
  12. 最近20年天文学有什么重大的进展
  13. 登陆局域网服务器显示参数错误,局域网出现域名解析错误时如何解决
  14. 伪静态、静态、动态url
  15. sql join备忘
  16. docker Swarm容器编排工具
  17. 智慧建筑的几个常见误区
  18. iOS开发苹果支持中文字体,和使用字体
  19. 一个很好的Git操作指南
  20. 哈尔滨工程大学-济海追风-声音信标

热门文章

  1. 网页里面的下拉框与数据库交互
  2. 1003 我要通过! (20分)
  3. (JAVA)Arrays数组工具类
  4. [Objective-C语言教程]动态绑定(32)
  5. 数组排序并找出元素索引--Where do I belong-FCC
  6. Exp3 免杀原理与实践
  7. 数据结构(二)之算法基础
  8. BZOJ 4884 [Lydsy2017年5月月赛]太空猫(单调DP)
  9. 基本矩阵运算的Java实现
  10. pentaho DI--- Tutorial (spoon)