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 接收数据流程图