基于串口通信与单片机的远程控制机械臂设计
2020-07-08
来源:与非网
网络化操作和远程控制成为很多企业和科研机构钻研的方向,要实现对现场设备进行管理和控制,就需要与这些设备进行通讯连接,进行相关数据交换,以达到管理、控制和监控的目的。同样嵌入式领域中,为了达到远程监控,也必须基于网络。在水下或者恶劣环境作业的机械手,在特定的时候需要远程控制。网络远程控制机械手进行作业成为了可能。
在远程控制中,通信是值得讨论的技术问题。传统的通信只是局限于脱离网络的通信,如两个 PC 机之间通信,或者是上位机为 PC 机,下位机为单片机。在远程控制机械手系统中,采用的是基于 Internet 的远程串口通信,远程串行通讯是指客户端与下位机或通讯对象之间通过串口进行的远距离通讯,而传统的远程通讯只是它其中的一部分,通过客户端传送指令给下位机至控制部件,从而实现远程监控。
1、远程串口通讯系统的基本构架及实现
(一)基本构架概述
在软件系统体系结构中,C/S 和 B/S 是当今世界开发模式技术架构的两大主流技术。
C/S 模式采用的是两层体系结构,即客户端和服务器,通过该架构可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,客户端进行显示界面和事务处理,服务器进行数据处理和应答请求处理。在客户端需要安装客户端软件才能访问服务器。不但软件升级不便,而且也增加了客户端的负载和投资成本。
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现, 数据处理则由数据库服务器进行,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,但仅在 B/S 模式下还不能直接实现与被控对象进行数据通讯。
基于 B/S 模式实现与被控对象进行数据通讯的远程串行通讯采用四层体系结构,增加了一个控制层,浏览器端为表示层,WEB 服务器为功能层,数据库服务器为数据层,控制层为通过 WEB 服务器传送指令到控制服务器,控制服务器作为上位机,通过串口控制下位机,直到控制执行部件。这里不仅增加了控制层,而且对功能层和数据层也都进行了扩展。这种体系结构即具有 B/S 模式的优良特性,又增加了控制服务功能,充分利用了现有的网络资源和工业现场资源,并且使两者有机地结合在一起,达到了与被控设备通过串口进行远程通讯的目的。表示层、功能层、数据层和控制层既有一定的相互联系又具有相对独立性,各层是通过 Internet 相连接,通过 HTTP 协议和串口通讯协议进行信息通讯。如图 1 所示
(二)远程串口通讯各部件的功能及实现
(1)浏览器端:用户通过浏览器登陆 web 服务器,通过输入用户名和密码,和数据库中的数据比较验证通过后,成为合法的用户,然后在相应的表单中输入控制数据。按提交按钮后,数据传送到 web 服务器。浏览器端再作为显示端,能够显示远程执行部件的反馈位置。
(2)WEB 服务器:能够接收浏览器端发送过来的控制数据,并处理相应的数据后,把数据发送给控制服务器,或者直接作为控制服务器,通过串口把数据发送给执行部件。
(3)数据库服务器端:存放合法用户的用户名和密码,以进行检验。同时,在发送执行数据时,如果需要特定的转换数据,也可直接到数据库中获取。实现系统的数据处理,并把运行结果反馈给 web 服务器。
(4)控制服务器:作为直接通过串口发送命令给执行部件的上位机,或者直接由 web 服务器本身担任。接收 web 服务器从浏览器端接收过来的数据。通过串口通讯协议及握手信号,把数据发送给下位机。
(5)下位机:通过串口通讯协议接收控制服务器(上位机)的执行数据,再通过相应的驱动电路,带动执行部件工作。
(6)执行部件:按照传送过来的指令进行工作,并通过传感器把当前执行部件的位置和姿态化作数据再通过串口回送到控制服务器,直至到达浏览器端,使得用户不在执行部件的现场也可以远程控制并得到部件执行之后的效果
在浏览器中,登陆验证后,通过 HTTP 协议,把数据传送给 web 服务器,再传给控制服务器。控制服务器作为上位机,打开串口,通过通讯协议把数据发送给下位机。下位机根据通讯协议,收到上位机发送过来的数据,并启动 D/A 转换器,控制执行部件。同时通过传感器把执行部件的姿态反馈给上位机。下位机可以为单片机、DSP、ARM 等微处理器。
2、远程控制作业机械手系统的实现
基于 web 的机械手的远程控制,在高温、水下等恶劣的工作环境下,需要远程控制机械手实行操作。在远程通过浏览器输入操纵数据,通过网络传送给主控机,主控机采用一般的 PC 机,主控机通过串口把数据发送给下位机,该作业机械手系统中采用 89C51 单片机作为直接控制计算机。现场通过监控设备把作业机械手的姿态反馈到远程控制机,同时通过传感器采集现场数据返回到控制机。图 2 为远程控制作业机械手的系统示意图。
在浏览器端登陆主控机担当的服务器,取得合法身份验证之后,发送数据。主控机收到信息后,通过串口把数据发给直接控制机 89C51。
(一) 单片机系统的硬件组成部分
(1) 以 89C51 为微处理器的为核心,扩展 RAM6254、锁存器、时钟电路、复位电路等。
(2) 串口通讯电路:主控机向 89C51 传送数据时,采用串口通信,常用的串行通信总线接口是美国电气协会 EIA 制定的 RS-232C。鉴于单片机串行口 TXD,RXD 均为 TTL 电平,而 PC 机配置的是 RS-232C 标准串行接口,在应用时,必须进行电平转换。在作业机械手控制系统中,采用 MAX232 作为接口转换芯片。
(3) 数模转换电路:通过串口,主控机把机械手的动作指令数据发送给 89C51,89C51 通过总线把数据发送给 D/A 转换电路数据端口,在该系统中采用 DA0832 数模转换芯片来实现。
(4) 驱动电路:机械手的作业动力来自液压系统,采用伺服阀来实现对机械手的回路控制,为驱动伺服阀,设计相应的驱动电路
(5) 模数转换电路:用角度电位计和位移传感器采集机械手的实际操作数据,传感器标定之后,采集的位移量和角度模拟信号要转换数字信号传送给 89C51,再向上发送,该系统中采用 AD0809 模数转换芯片来实现。
(二) 主控机与单片机软件系统的实现
(1) 主控机程序
主控机由 PC 机担任,用 VC++开发操纵界面,通过串口控件 MSComm 对串口通讯协议进行串口初始化,从后台数据库 SQLServer 中提出从 WEB 发送的控制机械手的数据,控制机械手各个关节的执行的角度量,同时等待接收 89C51 回送回来的数据。软件系统的流程图如图 3 所示。
(2) 89C51 单片机主程序
89C51 作为直接控制计算机,用 C 语言来编写主程序,初始化串口,分配内存缓冲区存放接收数据,开中断,等待外部以中断形式进行数据的发送和接收。89C51 的主程序流程图如图 4 所示。
(3) 89C51 中断处理子程序
中断子程序中首先清除中断标志,然后判断是接收还是发送引起的中断,根据相应的中断源进行处理。89C51 中断处理子程序的流程图如图 5 所示。
3、 结束语
本文作者创新点在于把 89C51 单片机与机械手的作业联系起来,通过网络远程通信达到了远程控制机械手实验室的实现,为远程控制作业的研究提供了一个具体的实例参考,目前该系统实现了网上发送数据到主控机,存储在数据库中,需要手工在主控机调动数据来实现对机械手的控制。能够完全脱离人的介入,直接通过网络来控制作业还在进一步的研究中。实验应用和市场证明,在网络现代化的今天和未来,远程通信必将出现在未来的人类生活中,有可观的研究意义和实用价值。