1 引言
自20世纪60年代以来,数字信号处理(Digital Signal Processing,DSP)日渐成为一项成熟技术,并在多项应用领域逐渐替代了传统模拟信号处理系统。DSP技术及设备具有灵活、精确、抗干扰能力强、设备尺寸小、速度快、性能稳定和易于升级等优点。以DSP为核心的控制器在控制过程中需要将许多参数显示给用户,同时有的控制参数需要在线修改,因此可以选择具有人机交互能力的人机界面触摸屏解决上述问题。触摸屏一般是针对可编程控制器(PLC)所设计的,不能与DSP直接通信,触摸屏要与DSP通信需要开发相应的通信程序。
本文以TI公司的TMS320F2812为核心的DSP励磁控制器与台湾泉毅电子股份有限公司(HITECH)的PWS6600S-S触摸屏为例,对两者的通信程序设计以及实现进行了讨论。
2 TMS320F2812的增强SCI模块特点
串行通信接口SCI是一个双线的异步串口,一般看作是UART。SCI模块支持CPU 与采用非返回至0(non-return-to-zero)(NRZ)标准格式
的异步外围设备之间的数字通信。
SCI模块有如下特点:有SCITXD(发送输出引脚)和SCIRXD(接收输入)引脚两个外部引脚;波特率通过编程可产生64K种不同的速率;通信数据的格式为:一个起始位、数据字长度可通过编程在16~8位内可选、可供选择的偶/奇/非极性位、一个或两个停止位;4个错误检测标志:极性、溢出、帧和中断检测;空闲线和地址位两种唤醒多处理器模式;半双工或全双工两种通信模式;双缓冲和发送功能;独立的发送器中断使能位和接收器中断使能位(除BRKDT)等。另外SCI有两个增强性特点:自动波特率检测硬件逻辑和16级发送/接收FIFO。
3 PWS6600S-S触摸屏简介
PWS6600S-S触摸屏(以下简称PWS)的面板采用5.7英寸(320x240)高分辨率STN的液晶显示模块,显示色彩为16灰阶(天蓝色)。它有如下特点:两个通信端口:9脚的母接头RS232/RS485(COM1)和25脚的母接头RS232/RS422/RS485(COM2);处理器为32位RISC;内存达4M;RAM 为512K等。
设计PWS人机界面时,不需要编写专门的画面程序,开发商给用户提供了功能强大的ADP6编程软件,它有如下特点:多种语言版本可供选择,画面可支持多种语言文字自动切换功能;支持密码和用户程序保护功能;提供基底画面及子窗口画面;提供内部宏指令、阶梯图自主开发通信及控制程序;强大的离线、在线模拟功能及SOFTPANEL等。使用者可根据自己的设计要求容易地编制出相应的画面,利用HITECH公司提供的编程下载电缆将编辑好的应用画面下载到PWS,需要说明的是此编程下载电缆也可作为PWS与DSP励磁控制器的通信电缆,将此电缆的母接头(与PC机连接一端)转换成公接头与DSP连接即可使用。
4 DSP与PWS触摸屏串行通信的软件设计及实现
本文结合PWS触摸屏和DSP励磁控制器(以下简称DSP)各自的特点,通过自定义通信协议进行异步串行通信。如上所述PWS触摸屏的COM2端口对RS232/RS422/RS485通信方式自适应,由于两者的数据传输距离比较小,因此本文选择RS232。RS232有良好的稳定性,编制程序简单、灵活、传输可靠等特点。它们之间的通信接线如图1所示。SCI通信数据帧格式选择为:1个起
始位、8个数据位、一个校验位(无校验)、一个停止位。为了提高通信效率,选择波特率为115200baud/s。
图1 通讯连线
4.1 DSP串口通信的软件设计及初始化
4.1.1 DSP 串口通信的软件设计
TMS320F2812的SCI接受器和发送器可采用中断和查询两种方式进行串行通信。SCI为接受器和发送器提供独立的外部中断向量。中断方式可以节约CPU 的开销,但是会影响DSP励磁控制器其它的功能。查询方式编程简单、容易实现,但是会加重CPU 的开销。考虑到不能影响控制器主要控制功能,本文采用查询方式。
TMS320F2812的串口支持16级接受和发送FIFO。当不使用FIFO时,SCI接受器和发送器采用双级缓冲传送数据。实践表明:当不使用FIFO时,对于发送、接受相同通信数据(如16个字),触摸屏接受显示数据正常,而DSP励磁控制器由于接受数据所用时间相对较长会影响其其它控制功能。当使用FIFO时,上述问题得到了解决。因此本文采用在DSP发送数据时,禁止FIFO,而在DSP接受数据时使能FIFO。
DSP发送数据时,首先禁止FIFO,然后查询SCI控制寄存器2(SCICTL2)中的发送器缓冲寄存器就绪标志TXRDY,当TXRDY置1,表明发送数据缓冲寄存器SCITXBUF准备接收下一个字符,然后向SCITXBUF写入数据即可完成数据的发送,写入数据后该位自动清零,字符发送完毕后,该位置1,接着发送下一字,直到发送完毕;DSP接受数据时,首先使能FIFO,然后查询SCI FIFO接受寄存器(SCIFFRX)中的位RXFFST(表示接受FIFO里字的个数,最多为16个字),当RXFFST不等于0时,表明接受数据缓冲寄存器SCIRXBUF接受到数据,接着读取数据,当SCIRXBUF中的数据被读完后,RXFFST 置0。DSP发送数据和接收数据的程序流程图如图2、图3所示。SCI通信数据帧选择8个数据位传送数据,每帧只能传送0~256之间的数,如果大于256就要将其分解传送,同理接受数据则需要将其还原。这种分解、还原数据的功能以函数的形式实现。
图2 发送数据流程图
图3 接收数据流程图
4.1.2 DSP串口通信的初始化
DSP的SCI模块与PWS触摸屏通信之前需要初始化SCI,SCI的初始化通过设置相关的寄存器实现,初始化程序如下:
Void InitSci(void)
{SciaRegs.SCICCR.all=0x0007;//一个停止位、无校验、8个数据位、空闲线模式
SciaRegs.SCICTL1.all=0x03;//使能接收、发送,禁止休眠、错误中断SciaRegs.SCI
CTL2.all=0x0000;//禁止发送、接收中断
SciaRegs.SCIHBAUD = 0x00;
SciaRegs.SCILBAUD = 0x33;//波特率为115200(LSPCLK为48MHZ)
SciaRegs.SCICTL1.bit.SWRESET =1;//启动SCI
SciaRegs.SCIFFCT.all=0x0000;//(FIFO模式)禁止自动波特率校验,0周期延迟发送
SciaRegs.SCIFFTX.all=0xE040;//使能FIFO增强功能,禁止TX FIFO 中断
SciaRegs.SCIFFRX.all=0x205f;//禁止RX FIFO中断
GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5=1;
GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1;
GpioMuxRegs.GPFDIR.bit.GPIOF4=1;
GpioMuxRegs.GPFDIR.bit.GPIOF5=0;
}
4.2 PWS触摸屏通信软件设计及初始化
4.2.1 PWS触摸屏通信软件设计
本文利用HITECH提供的ADP6软件工具设计PWS触摸屏通信软件,此触摸屏是可编程的。ADP6软件提供了一种既方便又功能强大的宏指令应用方式,利用宏指令可实现数值运算、逻辑判断、流程控制、数值转换、数据发送、接受数据、自定义通信指令操作等。
本文PWS触摸屏选择定时中断通信方式,即利用ADP6软件提供的应用宏CLOCK,通信时以500 ms周期循环执行此宏指令内的全部指令一次。实现每500 ms分别执行一次接受和发送数据通信。PWS触摸屏发送数据和接收数据的程序流程图如图4、图5所示。
4.2.2 PWS触摸屏通信的初始化
PWS触摸屏在通信之前需要进行初始化,触摸屏通信端口的初始化需要和DSP的通信格式对应,否则无法通信。利用ADP6软件提供的应用宏INITIAL,实现通信参数的格式宣告和参数的初值定义等。触摸屏通信端口的初始化有两种方法:一是利用宏指令,二是通过触摸屏系统菜单里的通信设置。
本应用选择触摸屏的COM2为通信端口,调用指令SYS(INIT_C0M,N)设置通信格式。设定软件的应用工作参数时,选择“编程种类”为宏,选择“PLC”种类为NULL。需要注意的是,当使用ADP6软件提供的宏指令初始化通信端口时,必须将触摸屏背后的指拨开关(Dip Switches)的第5位(SW5)设置为OFF。宏指令初始化通信端口程序如下:
@500=291//利用内部存储区定义变量即@500为变量,291(表示选择RS232、波特率为115200、COM2、无校验、1个停止位、8个数据位)
SYS(INIT_COM,500)//宏指令初始化通信端口
4.3 DSP与PWS触摸屏串行通信的实现
DSP与PWS触摸屏串行通信的程序编制完成后,将两者利用提供的通信电缆连接起来,即可实现双方的通信,实现了PWS触摸屏在线修改DSP励磁控制器的控制参数等功能。结果表明两者之间的通信是稳定可靠的,完全满足开发的要求。
5 结束语
本文阐述了DSP增强的SCI模块串行通信功能以及触摸屏软件设计的主要特点,分别给出了两者的通信程序流程图和初始化程序,实现了以TMS320F2812为核心的DSP励磁控制器和PwS6600S-S触摸屏之间的通信。利用SCI的增强功能16级发送/接收FIF0,可减少CPU 的开销,利用ADP6软件及其方便、功能强大的宏指令,可大大提高开发效率。