如何实现eView触摸屏与51单片机之间的通信

发布者:脑力驿站最新更新时间:2023-06-15 来源: elecfans关键字:eView  触摸屏  51单片机  通信 手机看文章 扫描二维码
随时随地手机看文章

Modbus协议由于其具有开放性、透明性、成本低、易于开发等特点,已成为当今工业领域通信协议的首选。


本文介绍了一种基于Modbus通信协议的eView触摸屏与常用的51单片机的通信方法。该方法通过C51编程实现Modbus通信,在51系列单片机上具有通用性,有一定的借鉴作用。


工业控制中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。


触摸屏与单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国Modicon公司推出的,一种有效支持控制器之间以及控制器经由网络(如以太网)与其他设备之间进行通信的协议。本文以STC89C51单片机和人机电子有限公司的eView触摸屏为例,介绍其通信程序的开发过程。


1 系统结构

实现触摸屏与单片机的通信,主要是解决通信协议的问题。本文使用开放的Modbus通信协议,以触摸屏作主站,单片机作从站。eView触摸屏本身支持Modbus通信协议,如果单片机也支持Modbus协议,就可以进行通信了。eview触摸屏支持RS-232和RS-485两种通信接口。在工业控制领域,由于RS-485具有可靠性高、传输距离远、抗干扰能力强等优点,所以在本系统中触摸屏与单片机通信采用RS-485连接,传输速率设置为 9600 kbps。RS-485信号传输是一种半双工的传输方式,单片机通过一个RS-232/RS-485无源转换器把232信号转换成485信号,连接到 eView触摸屏上。图l为该系统的原理图。

如何实现eView触摸屏与51单片机之间的通信

单片机控制系统采用STC89C51系列单片机,其内部集成MAX810/STC810专用复位电路(原有外部复位可继续保留,与Intel 8051引脚兼容),具有抗干扰能力强、加密性强、高抗静电(ESD)、超低功耗等特点,而且价格低廉。在本系统中,触摸屏是上位机,单片机是下位机。


2 Modbus协议

2.1 Modbus协议简介

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(如以太网)与其他设备之间可以通信。它已经成为一种通用工业标准。不同厂商生产的控制设备可以通过它连成工业网络,集中监控。

Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其他设备的过程。如何回应来自其他设备的请求,以及怎样侦测错误并记录;制定了消息域格局和内容的公共格式。

当在某一Modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,以及决定要产生何种行动。如果需要回应,则控制器将生成反馈信息并用Modbus协议发出。在其他网络上,包含了M0dhus协议的消息转换为在此网络上使用的帧或包结构。


2.2 Modbus RTU通信数据传输模式

当控制器设备基于Modbus协议以RTU模式通信时,消息中的每个字节包含2个4位的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。

编码采用8位二进制,十六进制数0~9和A~F;消息中每个8位域都是由2个十六进制字符组成。组织结构如下:

如何实现eView触摸屏与51单片机之间的通信

2.3 Modbus RTU消息帧结构

Modbus RTU消息帧结构如下:

如何实现eView触摸屏与51单片机之间的通信

(1)地址码

地址码为通信传送的第一个字节。这个宁节表明,由用户设定地址码的从机将接收由主机发送来的信息。每个从机都有具有唯一的地址码,只有符合地址码的从机才能响应回送,且响应回送均以各自的地址码开始。主机发送的地址码则表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。地址0用作广播地址,以使所有的从设备都能认识。

(2)功能代码

功能代码为通信传送的第二个字节。Modbus通信规约定义可能的代码范围是十进制的1~255。当然,有些代码适用于所有控制器,有些仅适用于某种控制器,还有些保留以备后用。主机发送请求,通过功能码告诉从机执行什么动作;从机响应请求,从机发送的功能码与从主机发送来的功能码一样,表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1,则表明从机没有响应操作或发送出错,主设备应用程序得到异议的回应后,典型的处理是重发消息。表l列出了常用Modbus支持的部分功能码。

如何实现eView触摸屏与51单片机之间的通信

以读取线圈状态为例说明。主站发送命令:[设备地址][命令号01][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位] [CRC校验的低8位][高8位]。从站响应:[设备地址][命令号01][返回的字节个数][数据1][数据2]…[数据n][CRC校验的低8位] [高8位]。

(3)数据区

数据区根据功能码的不同而不同。数据区包含需要从机执行什么动作,或由从机采集的返送信息。这些信息可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址等。例如,功能码告诉从机读取寄存器的值,则数据区必须包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。

(4)错误校验码

主机或从机可用校验码判别接收信息是否出错。错误检测域包含一个16位的值(用2个8位的字符来实现)。错误检测域的内容是通过对消息内容进行 “循环冗余检测”得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节,故CRC的高位字节是发送消息的最后一个宁节。错误校验采用CRC- 16校验方法。

3 软件编程

下面是采用C5l编写的软件,主要包括CRC校验和终端接收及波特率设置等。由于篇幅有限,其他程序略。

如何实现eView触摸屏与51单片机之间的通信

如何实现eView触摸屏与51单片机之间的通信

如何实现eView触摸屏与51单片机之间的通信

4 总 结

由于Modhus协议具有开放性和透明性等特点,而51系列单片机技术成熟、开发成本低,二者的结合将继续成为各类通信系统设计的首选。本设计方法已经应用于触摸屏与单片机通信设计,并取得了较好效果。这种方法对于编制类似的通信软件有一定的借鉴作用,部分程序可以直接移植。


关键字:eView  触摸屏  51单片机  通信 引用地址:如何实现eView触摸屏与51单片机之间的通信

上一篇:导电材料温度测量系统的设计和实现方案
下一篇:51单片机连接ESP8266串口WiFi模块

推荐阅读最新更新时间:2024-11-09 06:29

stm32之SPI通信协议实例详解
  之前一直对SPI通信一知半解,所以想抽空把它搞得明白一些。考虑到之前是结合Flash芯片来学的,十分不直观,而且主要把时间和精力都花在Flash芯片的datasheet和驱动上了,SPI通信也没学好。所以这次就考虑用4位数码管显示模块,模块是直接买的现成的,这样可以简化操作,把精力聚焦到学习的核心–SPI通信本身上来。   本次采用的模块是用2片74HC595串联驱动的,一片用来控制数码管的位选(U1),一片用来控制数码管的段选(U2)。 接口比较简单,总共5个引脚,2个引脚分别接VCC和GND,DIO用来接收串行数据的输入,SCLK用来接收同步时钟,每个SCLK上升沿74HC595内部的移位寄存器会移一位,RCLK用
[单片机]
stm32之SPI<font color='red'>通信</font>协议实例详解
【单片机】【学习日志】51单片机学习日志[Day1、2022.1.09]
第一部分 一、单片机介绍: 1、基础知识 单片机,英文Micro Controller Unit,简称MCU; 内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能 单片机的任务:信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制 单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。 在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用; 同时,学习使用单片机是了解计算机原理与结构的最佳选择 2、单片机的应用领域 单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、
[单片机]
【单片机】【学习日志】<font color='red'>51单片机</font>学习日志[Day1、2022.1.09]
串口通信_MSP430串口通信(入门级)
MSP430F5529实现双板间串口通信 年轻人,不要一上来就急着敲代码,串口通信用到的的13个寄存器,快来看看你都会了吗? 哈哈哈~~,可千万不要被这些牛鬼蛇神吓住啊,这次我们讲的是入门级的,不会设置这么多寄存器的(但也不少呦)。 准备好了吗?下面我们开讲了! 1.数据格式 (1)ST:起始位(低电平启动串口) 因为串口待机时处于长期高电平状态,当检测到有低电平时,就会启动准备接收数据。 (2)D0~D7:数据位(可以7位,也可以8位) 1对应高定平,0对应低电平(这应该都清楚吧) (3)AD:地址位:(双板通信用不到) 当多机通信时(例如一个设备发送,多个设备接收) 需要添加地址位
[单片机]
串口<font color='red'>通信</font>_MSP430串口<font color='red'>通信</font>(入门级)
VIAVI将携新品亮相MWC上海2023,展示从实验室到现场全生命周期的移动通信测试解决方案
中国上海,2023年6月26日 - VIAVI Solutions 将携其最新创新产品和解决方案亮相上海世界移动通信大会(MWC 上海)。 此次参展,VIAVI以 “网络测试与优化,从实验室到现场” 为主题,将现场展示从实验室到现场全生命周期的移动通信测试方案,并将正式发布TM500 Cloud UE。该解决方案具备卓越的可扩展性和灵活性,能够进行大规模网络性能测试和验证,满足运营商评估和优化部署在云中的O-RAN组件的性能和可靠性的需求。 随着运营商越来越多地通过超级扩展器和其他云供应商在云中部署核心网络服务,TM500 Cloud UE旨在测量和减轻与最终用户的服务质量(QoS)相关的任何风险。该解决方案适用于典型的O-R
[测试测量]
51单片机~DS18B20温度传感器
(一)简介说明: (二)接线: 1. 内部结构: 正温度前五位是0. 负温度前五位是1. 由LS,MS组成的四位十六进制数,和16位二进制数。(先MS后LS) 结合上下图直到温度计算:1乘2 ^ 6 + 0乘2 ^ 5 +1乘2^ 4 +0乘2^ 3 +……2^0 ==85 (二)使用流程,按照时序图编写程序(判断应用): 粗黑线是总线控制的电平 灰线表示DS18B20控制的; 电阻上拉是由于上图接线有一个上拉电阻 读时重复七次直到读完为止 测试温度代码: temp.h #ifndef __TEMP_H_ #define __TEMP_H_ #include reg52.h
[单片机]
<font color='red'>51单片机</font>~DS18B20温度传感器
51单片机基础之外部中断(一)
代码: #include reg51.h typedef unsigned char u8; typedef unsigned int u16; sbit LED=P2^0; sbit KEY=P3^2; void delay(u16 i) { while(i--); } void EXIT0_Init(void) //外部中断初始化 { IT0=1;//跳变沿触发方式(下降沿),低电平触发 EX0=1;//打开INT0的中断允许,打开外部中断0允许 EA=1;//打开总中断 } void main(void) { EXIT0_Init(); while
[单片机]
使用51单片机并行口驱动LED数码管显示电路及程序
介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。 1 硬件电路多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。 显示时,其显示数据
[单片机]
使用<font color='red'>51单片机</font>并行口驱动LED数码管显示电路及程序
8051单片机实战分析(以STC89C52RC为例) | 07 - 独立按键驱动
按键是比较常用的也是比较简单的人机交互操作,按键实际上是一个非自锁的轻触开关,按下时触点会闭合,松开是触点断开。 1 独立式按键 常用的按键电路有两种形式,独立式按键和矩阵式按键,独立式按键比较简单,它们各自与独立的输入线相连接,如图所示。 4 条输入线接到单片机的 IO 口上,当按键 K3 按下时,K3两边的线路将会导通,P32这个单片机IO口直接接到GND,此时P32这个引脚就是低电平了。当松开按键后,当松开按键后,线路断开,就不会有电流通过,那么P32引脚就会是默认的电平状态,是一个高电平,因为被上拉电阻R8拉到了VCC状态。所以我们就可以通过 P32 这个 IO 口的高低电平来判断是否有按键按下。 2
[单片机]
80<font color='red'>51单片机</font>实战分析(以STC89C52RC为例) | 07 - 独立按键驱动
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved