对于船舶电站而言 , 因其作为一个具有复杂环境的 , 又越来越多地应用电力电子变换器的独立的小容量电网 , 电能质量恶化造成的影响更为显著。电能质量参数的准确测量和显示 , 对电能质量参数进行准确的评估和采用有效的方法解决由于电能质量所产生的问题是十分重要的。DSP( 数字信号处理器 ) 是一种实时、高速的实现各种数字信号处理运算的微处理器 , 在语音、图像、通信系统、电力系统、自动化仪器等众多领域都获得了极其广泛的应用。另一方面 , 液晶显示器 (LCD) 具有低损耗、低价格、寿命长、接口方便等优点 , 也被广泛应用于各种便携式系统和工业控制系统的显示前端 , 具有极好的人机交互作用。通过采用新颖的软件算法将 DSP 芯片TMS320F2812 采集到的信号在液晶显示器上正确显示 , 并介绍了相关的硬件电路设计 , 说明了如何通过 DSP 的数字I/O 口模拟时序来控制液晶显示 , 同时给出了相应的 C 语言实现程序。所设计的 船舶电网参数基于 DSP 的液晶显示系统如图 1 所示。
1 硬件设计
1.1 TMS320F2812 的特性:TMS320F2812 是TI公司最新推出的 DSP 芯片 ,是目前国际市场上最先进、功能最强的 32 位定点 DSP 芯片 , 它实现了高性能数字信号处理器 (DSP) 与高精度模拟及闪存的完美结合。芯片的主要性能有 :
1)150MIPS 的执行速度使得指令周期缩短为6.67ns, 从而提高了控制器的实时控制能力。
2) 高性能的 32 位 CPU, 单周期 32 × 32MAC 操作 , 这种单周期性操作是微处理器本质的变革。
3) 基于 C/C++ 高效 32 位 TMS320C28x DSP 核心 , 与 TMS320F24x/LE240x 程序代码通用 , 并支持 DSP/BIOS 实时操作。
4) 片内存储器空间为 36k × 8bit, 内含 128KFLASH 可用于开发及对现场软件进行升级时的简单再编程。有 128bit 加密位。
5) 结合了 32 位数字处理能力 , 由独特的‘ IQ-math, 程序库支持 , 该函数库可显著简化多应用开发 , 这种结合使设计人员在几秒钟内就可将浮点算法通过端口与定点处理器相连 , 比在传统 16 位设备中的数学算法转换速度快得多。
6)12 位 ADC,16 通道 , 最快转换速度 :80ns, 并且其双采样装置可在紧密的控制环路中提供关键的支持。
7) 包括两个 EV 模块 , 每个 EV 模块包括通用定时器 , 全比较单元 ,CAP 和 GEQ 电路。
1.2SED1335 及液晶显示模块介绍:SED1335 是日本 SEIKO EPSON 公司的液晶显示控制器 , 它具有 I/O 缓冲器、指令功能丰富、能混合显示图形和文本、 4 位数据可并行发送、并可驱动 640 × 256 点阵等特点。从图 2 可知 :MSP-G320240 的 最大点阵为 320 × 240 且带有背光功能 , 能够在很宽的温度范围内工作 , 内部有SED1335 液晶显示控制器。 SED1335 的硬件结构可分成 MPIJ 接口部分、内部控制部分和 LCD 驱动部分。
SED1335 的接口部分由指令输入缓冲器、数据输入缓冲器、数据输出缓冲器和标志寄存器组成。通过引脚的电平设置可选择适配 8080 系列和 M6800 系列 MPU 的两种操作时序电路。 SED1335 的 控制部分由振荡器、功能逻辑电路、显示 RAM 管理电路、字符库及其管理电路以及产生驱动时序的时序发生器等组成。振荡器工作频率在 1~10MHz 内选择 , 而 SED1335 也可在很高的工作频率下迅速解译由 MPU 发来的各类代码。 SED1335 可以管理 64KB 显示 RAM, 同时可以管理内藏的字符发生器、 外扩字符发生器 CGRAM 或外部 CGRAM 。 64kB 显示 RAM 可分为文本显示区、图形显示区和字符显示区三种显示特性区。其中文本显示区专用于文本方式显示 , 区中每个字节的数据都认为是字符代码。 SED1335 使用该字符代码确定字符首地址 , 然后将相应的字模数据传送出去 , 以在液晶屏上显示该字符的 8 × 8 点阵块 ; 图形显示区用于图形方式显示 , 区中每个字节的数据直接被送出 , 每个位的电平状态决定显示屏上一个点的显示状态 ,"1" 为显示 ," 0"为不显示 ;SED1335 内的字符发生器 CGRAM 固化了 160 种 5×7 点阵字符的字模 ; 此外 ,SED1335 还能外扩字符发生器 , 其代码范围是 80H~9FH 和 E0H~ FFH 共 64 种。
由于 LCD 已经带有驱动硬件电路 , 因此模块给出的是总线接口,便于与处理器的总线进行接口。驱动模块具有 8 位数据总线 , 外加电源、接口和控制信号。而且自带显示缓存 , 只需要将要显示的内容送到显示缓存中就可以实现内容的显示。本系统选用 TRULY 公司生产的图形点阵式液晶显示模块 MSP-G320240, 图 2 为其具体的电路结构。
2 硬件接口电路:TMS320F2812 对 SED1335 接口控制板的访问有两种方式 : 直接访问方式和间接访问方式。直接访问方式是将 F2812 的读写信号线与 SED1335 接口控制板引出的读写信号线直接相连 , 时序由 F2812 内部读写逻辑控制。但是由于液晶显示模块是 F2812DSP 的一个慢速外设 , 要使两者的速度达到匹配 , 还必须加入一定的等待状态才能够满足要求 , 考虑到 E2812DSP 的内部等待状态发生器所能插入的等待周期非常有限 ( 只能给指定的存储空间插入一个等待状态, 在不添加额外硬件设备的情况下 , 很难满足设备的要求 , 所以设计中没有采用此种访问方式 ,而是采用间接访问方式 , 即用 F2812DSP 的数字 I/O 口来控制 SEED1335, 通过软件编程来模拟 SED1335的接口时序。此设计中的液晶显示模块接口控制时序采用了 8080 时序 , 读写信号独立 , 与 F2812 之间 的接口电路如图 3 所示。
其中 ,F28120 的 GPIOAO~GPIOA7 用作数据接口 , 与液晶显示模块的数据线 DBO~DB7 相连 , 完成与 SED1335 间的数据传送 ;GPIOB1 与 /WR 相连 , 写 SED1335 时 , 置 GPIOB1 为低 ;GPIOB2 与 /RD 相连 , 读 SED1335 时 , 置 GPIOB2 为低 ;GPIOB3 与 /CS 相连作为片选 , 访问 SED1335 时置 GPI 。因为低 ;GHOBO与 AO 相连 , 通过对 GPIOBO 写 0 或 1, 与 GPIOB1 和 GHOB2 配合来控制实现对 SED1335 接口部指令输入缓冲器、数据输入缓冲器、数据输出缓冲器和标志寄存器的访问。VOUT为液晶控制板上的 DC-DC 模 块输出电压 (+26V),VO 为液晶显示对比度调整电压 , 通过调节可变电位器 , 可以调节液晶屏的显示对比度。
3 软件控制实现:F2812DSP 控制液晶显示屏的软件设计关键是对液晶显示屏的初始化及 DSP 与 SED1335 间接口时序的匹配。
3.1液晶显示屏的初始化:液晶显示屏的初始化是通过向液晶控制器SED1335 送入一系列指令代码及相应的指令参数来实现的 , 具体程序如下 :
const unsigned char
systab[ ]={0x32,0x87,0x07,0x27,0x42,0xef,0x28, 0x00};
const unsigned char scrtab []={0x00,0x00,Oxef};
#define SYSTEM_SET 0x40
#define SCROLL 0x44
#define SLEEP_IN 0x53
#define DISP_OFF 0x58
#define DISP-ON 0x59
#define OVLAY 0x5b
#define HDOT_SCR 0x5a
#define CSRFORM 0x5d
#define CGRAM_ADR 0x5c
#define CSRDIR_RG 0x4c
#define CSRDIR-LF 0x4d
#define CSRDIR-UP 0x4e
#define CSRDIR-DW 0x4f
#define CSRW 0x46
#define CSRR 0x47
#define MWRITE 0x42
#define MREAD 0x43
void LCD_Init_Controler()
{
int i;
EALLOW;
GpioMuxRegs.GPAMUX.all =Oxf0ff;// 使能 GPIO[13,12,11,10]
GpioMuxRgs.GPADIR.all =Oxffff;// 配置 GPIO 为输出
GpioDataRegs.GPADAT.all =0x0f00;//AO=1,CS=1,RD=1,WR=1
Write _Command (SYSTEM-SET);// 系统设置指令
for(i=0;i<=7;i++)Write_Data(systab[i]);
Write_Command(SCROLL);//设置SCROLL指令for(i=0;i<=9;i++)Write_Data(scrtab[i]);
Write_Command(HDOT-SCR);// 设置点单元卷动位置
Write_Data(0x00);// 无卷动参数
Write_Command(OVLAY); // 设置双层合成显示方式
Write_Data(0x04);// 设置第一显示区为图形方式
delay(2);
LCD_Clear(0,0,40,240,0x00);// 第一显示区清0
Write_Command(CSRW);// 设置光标地址指令
Write_Data(0x40);// 第一显示区首地址
Write_Data(0x01);
Write_Command(CSRFORM);// 设置光标形状
Write_Data(0x07);// 光标长度 5
Write_Data(0x88);// 光标宽度 6
Write_Command(CSRDIR_RG);// 设置光标自动右移
LCD_On();
}
至此 , 液晶初始化已经完成 , 接下来就可以根据具体需要往 SED1335 显示区写数据了 ,SED1335 将自动完成数据在液晶屏上的显示。
3.2 接口时序的匹配:要编写正确的操作时序子程序 , 必须先了解 SED1335 接口部与 8080 系列 MPU 适配时序 , 其接口时序特性如图 4 所示。根据图 3 硬件接口电路说明和图 4 时序特性的说明 , 便可以编写如下写命令和写数据操作子程序。在实际工作时 , 由于 SED1335 属于相对慢速器件 , 所以 DSP 在读写周期中必须插入等待周期。
void Write_Command(int c)
{idelay(1);//keep1340ns
GpioMuxRegs.GPADIR.all=0xffff
GpioDataRegs.GPADAT.all =0xlb00;//CS=0,A0=1
NOP;//keep more than 10ns
NOP;
GpioDataRegs.GPADAT.all=0x1a00;//WR=0
GpioDataRegs.GPADAT.all =(c︱0xla00);//Startingtransfer data WR=0
GpioMuxRegs.GPAMIJX.all = 0xf000;//Enable GPIO delay(2);
GpioDataRegs.GPADAT.all =(c|0x1bOO);//WR=1
delay(1);
GpioDataRegs.GPADAT.all =0x1f00;//CS=1 tranfering data is finished
GpioMuxRegs.GPAMUX.all = 0xf0ff
}
void Write_Data(int c)
{delay(1);//keep1340ns
GpioMuxRegs.GPADIR.all =0xfffh
GpioDataRegs.GPADAT.al1=0x1300;//CS=0,A0=0
NOP;//keep more than 10ns
NOP;
GpioDataRegs.GPADAT.all=0x1200;//WR=0
GpioDataRegs.GPADAT.all =(clOx1200);//Starting transfer data WR=0
GpioMuxRegs.GPAMUX.all =0xf000;//Enable GPIO delay(1);
GpioDataRegs.GPADAT.all =(c|0x1300);//WR=1 delay(1);
GpioDataRegs.GPADAT.all =0x1700;//CS=1 tranfering data is finished
GpioMuxRegs.GPAMUX.all =0xf0ff;
}
液晶初始化完成之后 , 再在液晶屏上相应位置显示汉字或图像就非常容易了。以显示汉字为例 : 首先通过字模软件提取所要显示汉字的点阵数据 , 保存在 DSP 特定的数据空间 ; 然后计算出液晶屏上要显示汉字的位置所对应的 SED1335 显示区的地址 , 通过 CSRW 命令将地址写入光标地址寄存器 ; 最后将汉字点阵数据通过 Write_Data() 写入SED1335 显示存储器 RAM, 液晶屏上将会在相应位置显示所要显示的汉字。这一显示过程可以编写成子程序 , 调用方便 , 易于操作。
4实验结果:根据所设计的系统 ( 图 1) 进行实验 , 结果如图 5所示。图 5(a) 所示的结果是在电力计中测得的系统电压、电流参数和示波器中测得的波形 , 图 5(b) 所示的结果是在液晶屏中测得的系统的电压、电流参数和电流波形。
把该设计的方法所测得的电压电流值和负载电流波形与使用电力计实际测得值和测得波形相对比 , 结果说明这套测量系统对船舶电网配电板参数的测量具有快速性和准确性。
5结语:以船舶电网参数测量显示为研究对象 , 采用了具有高速处理特性和应用简化特性的TMS320F2812 作为处理芯片设计一套测量系统 , 把该设计的方法所测得的电压电流值和负载电流波形与使用电力计实际测得值和测得波形相对比 , 结果说明这套测量系统对船舶电网配电板参数的测量具有快速性和准确性。研究结果体现该设计方法在船舶电网参数测量显示应用中的优势。另外 , 实验结果显示的基于 DSP 控制液晶显示的方法 , 硬件结构简单 , 易于实现 , 对液晶屏显示控制更为高效和实用。