在现代工业控制中,最常用的人机接口界面依然采用的是键盘和液晶相结合的方式,要让触摸屏取代以前的人机接口界面,还存在一定的问题。在实际应用中,触摸屏一般是针对可编程控制器PLC 设计的,所以DSP 与触摸屏不能直接通信,必须根据触摸屏的通信协议开发相应的通信程序。本文研究基于MODBUS 协议的触摸屏和DSP 的通信方法,其中DSP 使用TI公司的TMS320F2812,触摸屏使用维控科技的LEVI700L。
1 DSP 与触摸屏的硬件电路连接
TI 公司的TMS320F2812 芯片有两组SCI 模块,SCIA 和SCIB。根据不同的需要,可以将这两个串口分别设计转换成RS232 和RS485。本文采用RS485 实现DSP 和触摸屏的串行通信,RS485 通讯相对于RS232 通讯来说有抗电气干扰和传输距离远的优点,所以在工业控制现场,利用RS485 串口和触摸屏LEVI700L 进行通信。如图1 所示是将SCIB 口通过MAX3485 芯片设计成半双工方式的RS485 接口,即数据可以在两个方向传输,可是不能同时传输。图中RE、DE 引脚为发送和接受使能端。DSP 通过将引脚PWM2(A1)口设置成通用数字I/O 口来控制使能端为1 或0,即接收或发送。A、B 引脚通过静电保护芯片PSM712 连接到RS485 的接收端RS485A 和发送端RS485B。图中D1 和D3 发光二极管是为了监测DSP 正在接受或者发送数据。
触摸屏LEVI700L 带有一个DB9 串口, 支持RS232/RS485/RS422,其中2、3、5 用于RS232 通信,1、6 用于RS485通信。本设计中DSP 和触摸屏的通信采用RS485,因此,只需将图1 中的RS485A 和触摸屏DB9 口的1 引脚连接,RS485B 与6 引脚连接即可。
图1 RS485 串口通信电路设计
2 基于MODBUS 协议的通信程序设计
2.1 MODBUS 协议的主从编程方法
触摸屏和DSP 按照MODBUS 协议通信,将触摸屏作为主站,DSP 作为从站,串口连接采用RS485。触摸屏和DSP 的通信是有触摸屏发起的,DSP 采用中断方式响应触摸屏发送来的数据,非通信情况下DSP 可以做其它更多的工作。当触摸屏有数据发送给DSP 时,触发DSP 接收中断,DSP 进入接收中断服务子程序,此时,触摸屏发送给DSP 的是一个完整的数据帧,至少包含8 个字节的数据长度, 在完整读取这组数据后,DSP 对其进行处理。首先进行从设备站号匹配(本文中DSP 站号设为07),如果匹配不成功则DSP 不响应触摸屏的查询,DSP 不回送任何信息;如果匹配成功则进行CRC 校验,若CRC 校验出错,则查询失败,不返回数据信息;若CRC 校验正确,则进行下一步的命令解析,并返回给触摸屏对应的数据信息。
下面简要介绍如何从DSP 中读取几个模拟量并显示在触摸屏上,读可读写模拟量寄存器的功能码是03。
触摸屏发送的命令为:[设备地址] [功能码03] [起始寄存器地址高8 位] [低8 位] [读取的寄存器数高8 位] [低8 位][CRC 校验的低8 位] [CRC 校验的高8 位] 。
例如:07 03 00 03 00 02 34 6D。此命令说明要从DSP的起始地址为00 03 的寄存器中读取两个模拟量。
此时,若设备地址匹配且CRC 校验正确,则DSP 会返回数据给触摸屏。
DSP 返回的数据为:[设备地址] [功能码03] [返回的字节个数][数据1][数据2]…[数据n][CRC 校验的低8 位] [CRC 校验的高8 位]。
例如响应上面的命令返回的数据为:07 03 04 00 10 0020 9C 2E。说明返回的模拟量为16 和32。
2.2 触摸屏介绍及组态画面的设计
触摸屏LEVI700L 是维控科技生产的7 英寸真彩TFT,主板规格:RISC CPU 400MHz,128M Flash,64DDRAM。拥有一个DB9 串口,支持RS232/RS485/RS422 通信,另外包括一个USB Host 和一个USB Slave。
触摸屏LEVI700L 配套的组态软件为LEVI Studio,用户界面友好,易于操作,支持离线和在线模拟。本文以触摸屏在大功率晶闸管整流控制器中的应用为例,说明触摸屏的画面设计。主要有主界面、实时曲线查看整定画面、参数调节画面、工作模式查询画面,图2 给出主界面和实时曲线查询画面。可通过通讯口配置设置触摸屏和DSP 以及其他控制器进行连接,同时可选择相应的通信协议,本设计中采用Modbus 协议,串口参数设置为波特率:38400Kbps,停止位:1 位,数据位:8 位,无校验。另外还需要配置各个部件的地址。如图2 中反馈电压和电流的查看是个数字输入/显示部件,根据MODBUS 协议要对其读取地址进行编辑,使用功能码3 对其读数据。从上节中触摸屏发送数据的命令格式可知,需要设置DSP 的站号和寄存器的类型以及起始地址。
图2 触摸屏画面设计
2.3 从站DSP 程序设计
若要触摸屏和DSP 通信成功,在DSP 的串口初始化时就需要将串口参数设置的和触摸屏一致, 即波特率:38400Kbps,停止位:1 位,数据位:8位,无校验。一旦二者通信成功,触摸屏会根据部件设置向DSP 发送相应的数据命令, 如上节图2中的反馈电压和电流,触摸屏上需要显示从DSP中读出的数据,就会发送命令:07 03 00 03 0002 34 6D。DSP 接收到命令数据后的处理过程如图3 所示。
图3 数据通信流程图
从图3 可以看出,DSP 的程序设计主要包括初始化,接收和发送中断子程序,MODBUS 帧解析、处理及回应子程序,CRC 码验证子程序。其中接收和发送中断子程序的流程图如图4 所示。
图4 接收和发送中断子程序流程图
技术专区
- Alexa语音服务软件扩展STM32Cube
- 结合DNN API驱动未来神经网络应用的解决方案
- 针对于高端移动通信和汽车市场的四集群设计
- 一款基于帧捕捉的开源图形调试器应用设计
- 即将成为标准配置的最新安全技术:后视摄像系统