英创信息技术国家电网智能电力终端标准显示接口的实现

描述

EM9160是英创公司一款资源丰富、性能稳定、简单易用的高性价比工控主板,它包含了6个用户可用的通用异步串口、一个网口、16位GPIO、以及英创特有的精简ISA总线等丰富的硬件资源,支持WinCE5.0、WinCE6.0和Linux系统。目前,EM9160广泛应用于国家电网智能电力终端,如集抄器、充值终端等,出货量超过10W片。国家电网公司企业标准对国家电网智能电力终端的外形接口、人机界面、通信接口等都做了详细的规定。用户基于EM9160,在外围做一定的威廉希尔官方网站 扩展后就能满足国网标准关于电力终端数据通信、电量采集、信息显示等方面的需求。

国家智能电网己经进入全面建设阶段,要求电力终端的通讯接口越来越多,应用软件越来越复杂,对系统可靠性的要求也越来越高。为此,我们将EM9160 的操作系统WinCE5.0的升级到了WinCE6.0,系统可靠性进一步提高。同时根据当下对电力终端的新需求,开发了EM9160的升级主板EM9280。

EM9280板载了8个异步串口,完全满足当下电力智能终端对通讯接口的需求,根据电力智能终端特点,去掉了ISA总线扩展,转而支持多达32位的GPIO。同时系统内核、Flash、CPU主频等都有较大升级。在显示方面,EM9280支持分辨率从320 X 240到1024 X 768的彩色TFT LCD显示,为了支持国家智能电网智能电力终端对显示的规定,EM9280专门引出了一个单色LCD接口。下图是EM9280连接符合国网标准的单色LCD的效果图。

图1:EM9280连接160*160单色液晶

本文就将介绍EM9280如何支持满足国家电网标准的160 X160单色点阵液晶显示。

1、EM9280单色LCD硬件接口

EM9280的单色屏接口在主板背面,编号为CN4,其引脚定义如下:

EM9280_CN4 单色LCD信号定义及说明
1   GND
2   LCD_RS,LCE命令/数据寄存器选择
3   LCD_WR#,LCD写信号,低有效,Inter时序
4   LCD_RD#,LCD读信号,低有效,Inter时序
5   LCD_CS#,LCD片选,低有效
6   LCD_REST#,LCD复位信号,低有效
7   VDD,LCD电源,+3.3V
8   LCD_D0,LCD数据总线
9   LCD_D1,LCD数据总线
10   LCD_D2,LCD数据总线
11   LCD_D3,LCD数据总线
12   LCD_D4,LCD数据总线
13   LCD_D5,LCD数据总线
14   LCD_D6,LCD数据总线
15   LCD_D7,LCD数据总线
16   LEDK,LCD背光负极
17   NC
18   LEDA,LCD背光正极

EM9280单色屏接口详细说明请参考《EM9280工控主板数据手册》。

2、EM9280单色LCD软件接口

EM9280预装了WinCE6.0嵌入式操作系统,本身支持窗口编程,但对于160 X160点阵的单色屏来讲,却并不适合MFC框架的界面编程。针对单色点阵屏的显示特点,我们封装一组高效、简单易用的画点、画线、写块、写字符串等操作屏的API函数。介绍如下:

功能描述: 启动对LCD屏的操作功能,并初始化LCD显示屏,下面的所有函数,应该在LCD_Init()返回成功后再调用。
        输入参数: LCD的类型。
        返回值 > 0: 启动LCD成功,并返回LCD的类型。
               = -1: 启动LCD失败。
        INT LCD_Init( int LCDType );

功能描述: 设置显示字体,本驱动支持12*12和16*16点阵字体,默认字体为16*16点阵
        输入参数: FontWidth = 12:设置12*12点阵
                  FontWidth = 16: 设置16*16点阵(默认设置)
        返回值 > 0: 设置字体成功。
               = -1: 设置字体失败。
        INT LCD_SetFont( unsigned int FontWidth );

功能描述: LCD刷新模式。
        输入参数:
                nRefreshMode = REAL_REFRESH:实现刷新,方便调试
                nRefreshMode = AUTO_REFRESH:自动刷新,刷新时间间隔为50mS.(默认设置)
                nRefreshMode = MANUAL_REFRESH:手动刷新,设置成此模式后,只有调用了LCD_Refresh函数,驱动才会将显存中的数据显示到LCD上。
        返回值 = 0: 设置刷新模式成功。
               = -1: 设置刷新模式失败。
        INT LCD_RefreshMode( unsigned int nRefreshMode );

功能描述: 将显存中的数据更新到LCD
        返回值 = 0: 刷新成功。
               = -1: 刷新失败。
        INT LCD_Refresh(void);

功能描述: 释放对LCD显示屏的操作功能,释放相关资源。
        输入参数: 无。
        返回值 > 0: 初始化LCD成功,并返回LCD的类型。
               = -1: 初始化LCD失败。
        INT LCD_DeInit( ); 

功能描述: 对LCD显示屏的清屏操作。
        输入参数: 无。
        返回值 = 0: LCD清屏成功。
               <0 : LCD清屏失败。
        INT LCD_Clearup( ); 

功能描述: 获取LCD显示屏的X方向最大分辨率。
        输入参数: 无。
        返回值 : LCD显示屏的X方向最大分辨率。
        INT LCD_GetMaxX( );

功能描述: 获取LCD显示屏的Y方向最大分辨率。
        输入参数: 无。
        返回值 : LCD显示屏的Y方向最大分辨率。
        INT LCD_GetMaxY( );

功能描述: 设置LCD显示屏的写模式。(不支持)
        输入参数: Mode = 0 : COPY 写模式
                  Mode = 1 : XOR 写模式
        返回值 0: 成功
        INT LCD_SetMode( int Mode );

功能描述: 对LCD显示屏进行描点操作。
        输入参数:
                 x0: 描点的列坐标(x坐标),范围0~(MaxX-1),不可大于或等于MaxX
                 y0: 描点的行坐标(y坐标),范围0~(MaxY-1),不可大于或等于MaxY
                 color: 描点的颜色:BK_COLOR,TEXT_COLOR或XOR_WRITE
        返回值 0: 成功。
        INT LCD_PutPixel( int x0, int y0, int color );

功能描述: 对LCD显示屏进行写字节操作。
        输入参数:
                 x0: 写字节的列坐标(x坐标),范围0~(MaxX-1)
                 y0: 写字节的行坐标(y坐标),范围0~(MaxY-1)
                 byte: 写的字节 
        返回值 0: 成功。
        INT LCD_WriteByte( int x0, int y0, UCHAR byte );

功能描述: 对LCD显示屏进行写多个字节操作,兼容原有LCD库。
        输入参数:
                 x0: 写字节的列坐标(x坐标),范围0~(MaxX-1)
                 y0: 写字节的行坐标(y坐标),范围0~(MaxY-1) 
                 pHfont: 需要写的字节组
                 NumOfBytes: 需要写的字节数
        返回值 0: 成功。
        INT LCD_WriteByteBlock( int x0, int y0, PBYTE pHfont, int nNumOfBytes );

功能描述: 对LCD显示屏进行写多个字节操作
        输入参数:
                x0: 写字节的列坐标(x坐标),范围0~(MaxX-1)
                y0: 写字节的行坐标(y坐标),范围0~(MaxY-1)
                x1: 写字节的列坐标(x坐标),范围0~(MaxX-1)
                pHfont: 需要写的字节组
                NumOfBytes: 需要写的字节数
        返回值 0: 成功。
        INT LCD_WriteBlock( int x0, int y0, int x1, PBYTE pHfont, int NumOfBytes );

功能描述: 对LCD显示屏进行读字节操作。
        输入参数:
                 x: 写字节的列坐标(x坐标),范围0~(MaxX-1)
                 y: 写字节的行坐标(y坐标),范围0~(MaxY-1)
        返回值 : 读取的字节。
        INT LCD_ReadByte( int x0, int y0 );

功能描述: 对LCD显示屏画直线操作。
        输入参数:
                 x0: 直线开始列坐标(x坐标),范围0~(MaxX-1),不可大于或等于MaxX
                 y0: 直线开始行坐标(y坐标),范围0~(MaxY-1),不可大于或等于MaxY
                 x1: 直线结束列坐标(x坐标),范围0~(MaxX-1),不可大于或等于MaxX
                 y1: 直线结束行坐标(y坐标),范围0~(MaxY-1),不可大于或等于MaxY
                 color: 颜色设置:BK_COLOR,TEXT_COLOR或XOR_WRITE
        INT LCD_DrawLine( int x0, int y0, int x1, int y1, int color );

功能描述: 对LCD显示屏画Bar条操作。 
        输入参数:
                 x0: 直线开始列坐标(x坐标),范围0~(MaxX-1),不可大于或等于MaxX
                 y0: 直线开始行坐标(y坐标),范围0~(MaxY-1),不可大于或等于MaxY
                 x1: 直线结束列坐标(x坐标),范围0~(MaxX-1),不可大于或等于MaxX
                 y1: 直线结束行坐标(y坐标),范围0~(MaxY-1),不可大于或等于MaxY
                 color: 颜色设置:BK_COLOR,TEXT_COLOR或XOR_WRITE 
        INT LCD_FillBar( int x0, int y0, int x1, int y1, int color );

功能描述: 对LCD显示屏进行写字符串的操作。
        输入参数:
                 x0: 字符写入的列坐标(x坐标),范围0~(MaxX-1)
                 y0: 字符写入的行坐标(y坐标),范围0~(MaxY-1)
                 pStr:以''结尾的字符串
                 color: 字符写入的颜色设置:BK_COLOR或者TEXT_COLOR
        返回值 0: 成功。
        INT LCD_WriteString( int x0, int y0, LPSTR pStr, int color );

上面的函数申明在头文件“LCD_API.H”中,对应的库文件是“EM9280LcdDev.lib”用户在使用时,需要将这两个文件包含到自己的工程中。

使用EM9280作为智能电力终端的核心平台,能够减少用户外围威廉希尔官方网站 的扩展,简化系统设计,降低整机成本。同时相对于EM9160,EM9280具有更快的运行速度,更多的系统存储空间和系统内存。EM9280的售价与EM9160保持一致,100价格为¥350/片。下表是EM9160与EM9280功能对比。

功能接口 EM9160 EM9280
UART异步串口 6 8
10M/100M网口 1 1
USB OTG   1
USG HOST 1 1
USB Device 1  
I2C接口 1 1
SPI同步串口 1 1
精简ISA总线 1  
GPIO通用数字IO 16位 32位
AD模拟通道 3路(10位) 2路(12位)
PWM脉冲输出 3路 4路
WDT看门狗 1 1
独立的RTC 1 1
Micro SD接口 1  
显示接口 单色点阵液晶 单色点阵液晶 / 彩色TFT LCD 电阻触摸屏
系统Flash 64MB NandFlash 128MB NandFlash
系统内存 64MB SDRAM 128M DDR2
CPU主频 200MHz 454MHz
系统供电 +5V / 235mA +5V / 170mA
操作系统 WinCE 5.0 / WinCE 6.0 / Linux WinCE 6.0 / Linux
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分