基于DSP和触摸屏的串行通信系统研究
扫描二维码
随时随地手机看文章
针对目前市场上无DSP和触摸屏直接通信的产品这一缺口,介绍了基于MODBUS协议的维控触摸屏与TMS320F2812的串口通信系统。通过将 DSP的SCI串口和触摸屏的串口连接,完成DSP的软件编程和触摸屏的组态画面设计。经过实验调试,该系统能够实现工作人员不同权限登录密码设置,实时数据、故障报警的显示,闭环PID参数的在线修改等功能,且系统能够稳定的运行。
在现代工业控制中,最常用的人机接口界面依然采用的是键盘和液晶相结合的方式,要让触摸屏取代以前的人机接口界面,还存在一定的问题。在实际应用中,触摸屏一般是针对可编程控制器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接收和发送中断子程序流程图
3试验调试
DSP和触摸屏的通信接口调试分步骤进行,包括:触摸屏串口测试、通信软件的调试以及触摸屏和DSP通信的试验和调试。
1)触摸屏串口测试:首先在LEVI Studio组态软件中编写画面程序并且利用数据下载线将其下载到触摸屏中,然后利用串口调试线将触摸屏和PC机连接起来,通过串口调试工具可以查看到触摸屏不断向串口发送命令,同时串口调试工具也可以编写正确的返回数据给触摸屏。此时需要注意的是必须将触摸屏的串口参数和串口调试工具的串口参数设置的一致才能通信成功。
2)通信软件的调试:利用串口线将DSP电路板和PC机连接,在CCS中编写好C语言程序后,利用仿真器和串口调试工具对主程序,数据接收和发送中断子程序,MODBUS帧解析、处理及回应子程序,CRC码验证子程序进行仿真调试。
3)触摸屏和DSP通信试验和调试:通过上述两个部分的调试后,按照图1所示的硬件连接线路将DSP和触摸屏连接起来。在此之前,需要将调试好的组态画面程序下载到触摸屏中,C语言程序固话到DSP的Flash中。最后,若通信成功,可从触摸屏中看到相关数据,如图5所示a为实时曲线图,b为PID参数调节图,其中给定电压、电流,PID参数可以在线修改,c为权限设置界面,不同的工作人员权限不一致,在修改某些参数时需要输入密码。
图5实验结果图
4结束语
本文设计了基于MODBUS协议的触摸屏和DSP串行通信的硬件电路和软件程序,经过试验调试说明该系统通信稳定可靠,速率可达38400Kbps,实时性强。以大功率晶闸管整流控制器的应用为例,得出了相关的实验数据,说明本文设计的系统满足工业控制监测显示需要,同时由于触摸屏在人机界面领域的显著优势,本文提出的设计思路也可应用于其他工业控制器的人机接口通信。