第3章 DGUS彩色液晶显示屏 应用实例 本章介绍DGUS彩色液晶显示屏的应用实例,包括屏存储空间、硬件配置文件、DGUS组态软件安装及使用说明、工程下载、DGUS屏显示变量配置方法及其指令详解和通过USB对DGUS屏进行调试。 3.1屏存储空间 在一款呼吸机中,采用的是北京迪文科技有限公司生产的一款DGUS彩色液晶显示屏,型号是DMT32240C035_06WN,该显示屏基于T5双核CPU,GUI和OS核主频均为250MHz,功耗极低。外观大小是3.5英寸,能显示的画面大小为320×240像素,无触摸功能,5V供电,使用16位调色板(5R6G5B),可显示65K色,可进行100级亮度调节。 彩色液晶显示屏与外部的两个接口分别为排线和SD卡槽,其中排线为UART串行通信口和电源(共4根线,即VDD、TXD、RXD、VSS),与呼吸机主板相连,用来实现主板向彩色液晶显示屏发送显示命令; SD卡槽用来下载用DGUS开发的显示界面和显示配置。 DGUS彩色液晶显示屏通过DGUS开发软件,可以非常方便地显示汉字、数字、符号、图形、图片、曲线、仪表盘等,特别易于今后的修改,彻底改变了液晶显示器采用点阵显示的开发方式,节省了大量的人力、物力。DGUS不同于一般的液晶显示器的开发方式,是一种全新的开发方式。微控制器通过UART串行通信接口发送显示的命令,每页显示的内容变化通过页切换即可实现。 DGUS彩色液晶显示屏的尺寸有不同规格,可以选择带触摸或不带触摸功能。 详细的介绍可以参考北京迪文科技有限公司官网(http://www.dwin.com.cn/)。 国内生产类似彩色液晶显示屏的厂家还有广州大彩光电科技有限公司(http://www.gzdc.com/)。 3.1.1数据变量空间 数据变量空间是一个最大128KB的双口RAM,两个CPU核通过数据变量空间交换数据,每个地址是Word类型,地址空间为0x0000~0xFFFF。 DGUS屏数据变量空间分区如表31所示。 表31DGUS屏数据变量空间分区 变量地址区间区间大小 /Kwords定义说明 0x0000~0x03FF1.0系统变量接口硬件、存储器访问控制、数据交换。具体定义和硬件平台有关 0x0400~0x07FF1.0系统保留用户不要使用 0x0800~0x0BFF1.0系统保留用户不要使用 0x0C00~0x0FFF1.0语音播放写数据缓冲区I2S或PWM语音播放数据接口(用户通过DWIN OS控制) 0x1000~0xFFFF60用户变量区用户变量、存储器读写缓冲区等,用户自行规划 其中,0x0100~0x0FFF变量存储器空间被系统保留使用,包括2KB的系统变量接口、4KB的系统保留、2KB的语音播放写数据缓冲区; 0x1000~0xFFFF变量存储空间用户可以自由使用; 另外,产品中会提供一些基本的库,所以规划了0xA000~0xFFFF空间被库提前占用,所以实际编程中应用程序可用的空间为0x1000~0x9FFF,主要用于数据变量、文本变量、图标变量、基本图形变量的存储。使用0x82(写)0x83(读)指令来访问,以字为单位。 3.1.2字库(图标)空间 DGUS屏有64MB Flash作为字库(图标)存储器,其中后32MB为字库和音乐空间复用。前32MB划分为128个大小为256KB的字库空间,对应的字库空间ID为0~127,具体说明如表32所示。用户只能使用ID为24~127的空间存储字库文件或图标文件,即在给字库文件或图标文件命名时,开头只能为24~127的数字。在存储文件时,要保证存储空间大于文件大小,若文件的大小超过了256KB,则占用多一个ID,下一个文件命名时不能使用已被占用的ID。 表32DGUS屏字库空间分配 字库ID大小说明备注 03072KBASCII字库0_DWIN_ASC.HZK 13256KB触控配置文件13_触控.BIN 142048KB变量配置文件(最多1024页,每页最多64个变量)14_变量.BIN 24~12726MB字库、图标库(其中64~127字库也可以作为用户数据库)用户自定义 3.1.3图片空间 DGUS屏有64MB Flash专门用来保存图片,共可存储245幅320×240分辨率的图片,这些图片全部作为背景显示界面。在命名时,全部以数字开头表示其ID,切换显示界面时,只须切换相应的ID。 3.1.4寄存器 基于T5的 DWIN OS一共有2048个寄存器,分为8页来访问,每页256个寄存器,对应R0~R255。 DGUS屏寄存器页面定义如表33所示。 表33DGUS屏寄存器页面定义 寄存器页面ID定义说明 0x00~0x07数据寄存器每组256个,R0~R255 0x08接口寄存器DR0~DR255 其中,接口寄存器用于对硬件资源的快速访问,如表34所示。 表34DGUS屏接口寄存器 DR#长 度R/W定义说明 01R/WREG_Page_SelOS的8个寄存器页切换,DR0=0x00~0x07 11R/WSYS_STATUS系统状态寄存器,按位定义: .7 CY 进位标记; .6 DGUS 屏变量自动上传功能控制,1=关闭,0=开启 214-系统保留禁止访问 161RUART3_TTL_Status 171RUART4_TTL_Status 181RUART5_TTL_Status 191RUART6_TTL_Status 201RUART7_TTL_Status串口接收帧超时定时器状态: 0x00=接收超时定时器溢出,其他=未溢出。 必须先用RDXLEN指令读取接收长度,长度不为0再检查超时定时器状态 211-保留 221RUART3_TX_LENUART3发送缓冲区使用深度(字节),缓冲区大小为256,用户只读 231RUART4_TX_LENUART4发送缓冲区使用深度(字节),缓冲区大小为256,用户只读 241RUART5_TX_LENUART5发送缓冲区使用深度(字节),缓冲区大小为256,用户只读 251RUART6_TX_LENUART6发送缓冲区使用深度(字节),缓冲区大小为256,用户只读 261RUART7_TX_LENUART7发送缓冲区使用深度(字节),缓冲区大小为256,用户只读 271-保留 281R/WUART3_TTL_SETUART3接收帧超时定时器时间,单位为0.5ms,0x01~0xFF,上电设置为0x0A 291R/WUART4_TTL_SETUART4接收帧超时定时器时间,单位为0.5ms,0x01~0xFF,上电设置为0x0A 301R/WUART5_TTL_SETUART5接收帧超时定时器时间,单位为0.5ms,0x01~0xFF,上电设置为0x0A 311R/WUART6_TTL_SETUART6接收帧超时定时器时间,单位为0.5ms,0x01~0xFF,上电设置为0x0A 321R/WUART7_TTL_SETUART7接收帧超时定时器时间,单位为0.5ms,0x01~0xFF,上电设置为为0x0A 331-保留 341R/WT08位用户定时器0,++计数,基准为10μs 352R/WT116位用户定时器1,++计数,基准为10μs 372R/WT216位用户定时器2,++计数,基准由用户用CONFIG指令设定 392R/WT316位用户定时器3,++计数,基准由用户用CONFIG指令设定 411R/WCNT0_Sel相应位置1选择对应I/O进行跳变计数,对应IO7~IO0 421R/WCNT1_Sel相应位置1选择对应I/O进行跳变计数,对应IO7~IO0 431R/WCNT2_Sel相应位置1选择对应I/O进行跳变计数,对应IO15~IO8 441R/WCNT3_Sel相应位置1选择对应I/O进行跳变计数,对应IO15~IO8 451R/WInt_Reg中断控制寄存器: .7=中断总开关,1=使能(是否开启取决于单独中断控制位),0=禁止 .6=中断定时器0使能,1=中断定时器0中断开启,0=中断定时器0中断关闭 .5=中断定时器1使能,1=中断定时器1中断开启,0=中断定时器1中断关闭 .4=中断定时器2使能,1=中断定时器2中断开启,0=中断定时器2中断关闭 461R/WTimer INT0 Set8位定时器中断0设置值,中断时间=Timer_INT0_Set×10μs,0x00=256 471R/WTimer INT1 Set8位定时器中断1设置值,中断时间=Timer_INT1_Set×10μs,0x00=256 482R/WTimer INT2 Set16位定时器中断 2 设置值,中断时间=(Timer_INT2_Set+1)×10μs 5010R/WPolling_Out0_Set第1路IO0~IO15定时扫描输出配置,每个配置10B: D9(DR50): 0x5A=扫描输出使用,其他为不使用; D8: 输出数据的寄存器页面,0x00~0x07; D7: 输出数据的起始地址,0x00~0xFF; D6: 输出数据的字长度,0x01~0x80,每个数据2B,对应IO15~IO0; D5~D4: IO15~IO0 输出通道选择,需要输出的通道,相应位设置为1; D3~D2: 单步输出间隔T,单位为(T+1)×10μs; D1~D0: 输出周期计数设定,每完成一个周期输出后减1,减到0后输出为0 6010R/WPolling_Out1_Set第2路IO0~IO15定时扫描输出配置 709-保留 806R/WIO6触发时间D5=0x5A表示捕捉到一次IO6下跳沿触发 D4:D3=触发时IO15~IO0的状态 D2:D0=捕捉的系统定时器时间,0x000000~0x00FFFF循环,单位为1/41.75μs 866R/WIO7触发时间D5=0x5A表示捕捉到一次IO7下跳沿触发 D4:D3=触发时IO15~IO0的状态 D2:D0=捕捉的系统定时器时间,0x000000~0x00FFFF循环,单位为1/41.75μs 9237-保留 1293R/WIO_StatusIO17~IO0的实时状态 1322R/WCNT0 CNT0跳变计数值,计到0xFFFF后复位到0x0000 1342R/WCNT1 CNT1跳变计数值,计到0xFFFF后复位到0x0000 1362R/WCNT2CNT2跳变计数值,计到0xFFFF后复位到0x0000 1382R/WCNT3CNT3跳变计数值,计到0xFFFF后复位到0x0000 1402-保留 3.2硬件配置文件 DGUS Ⅱ中的CFG文件与过去DGUS中的CONFIG.txt文件不同,过去DGUS中的CONFIG.txt文件由组态软件直接生成到DWIN_SET文件夹中,DGUS Ⅱ中的CFG文件由用户编写,手动放入DWIN_SET文件夹中。两者大体上功能是相同的,但是在CFG文件中用户能够配置的内容更多,具体配置内容如表35所示。 表35CFG文件配置内容 类别地址长度/B说明 识别码0x004根据所使用的产品的内核而定。例如,使用T5UID1内核的识别码为0x54 0x35 0x44 0x31; 使用T5UID3内核的识别码为0x54 0x35 0x44 0x33。使用前请确认好内核 Flash格式化0x042如需启动格式化,写0x5AA5 系统时钟校准0x062用户无须额外校准,写0x0000即可 系统配置 0x081.7: 触控变量改变自动上传控制,0=不自动上传,1=自动上传; .6: 显示变量类型,0=64变量/页,1=128变量/页; .5: 上电加载22号文件初始化SRAM,1=加载,0=不加载; .4: 上电SD接口状态,1=开启,0=禁止; .3: 上电触摸屏伴音,1=开启,0=关闭; .2: 上电触摸屏背光待机,1=开启,0=关闭; .1~.0: 上电显示方向,00=0°,01=90°,10=180°,11=270° 续表 类别地址长度/B说明 系统配置0x092设置UART2的波特率。设置值=7833600/设置的波特率,最大为0x03E7 待机背光设置 0x0B10x5A=背光待机设置有效 0x0C40x0C=正常亮度,0x0D=待机亮度,0x0E:0F=点亮时间,单位为5ms,同时0x0C设置的正常亮度也是开机亮度值 显示屏配置0x10~0x1F出厂已经配置好,用户无须配置 待机背光设置 0x201写0x5A时,0x21中设置值才有效 0x212上电时显示的页面ID 0x231写0x5A时,0x24中设置的开机音乐开有效 0x2430x24=开机音乐ID,0x25=开机音乐段数,0x26=开机音量 触摸屏配置 0x27~0x28出厂已经配置好,用户无须配置 0x291触摸屏灵敏度设置: 0x00~0x1F,0x00最低,0x1F最高。出厂默认值为0x14,灵敏度较高 注意事项如下。 (1) CFG文件暂时无法通过软件直接生成,可复制DGUS Ⅱ软件生成的22.BIN文件,在其中编辑,编辑完成后修改文件名和后缀名即可。 (2) CFG文件的命名需要与使用的产品内核保持一致。例如,如果呼吸机使用的DMT32240C035_06WN是T5UID1内核的产品,则CFG文件的全名应为T5UID1.CFG。 (3) 建议用户可以从云盘的例程中复制一个CFG文件进行修改。目前呼吸机工程中的T5UID1.CFG文件内容如图31所示。 图31呼吸机工程中的T5UID1.CFG文件内容 3.3DGUS组态软件安装 本节介绍的DGUS组态软件为DGUS_V730版本。 (1) 将DGUS_V730压缩包解压,解压后的文件如图32所示。 (2) 在解压后的文件夹中,找到DGUS Tool V7.30.exe文件,复制快捷方式到桌面,在桌面上形成软件图标,如图33所示。 (3) 软件安装完成,使用时,双击桌面上的快捷图标即可。 (4) 若软件安装后无法打开,可能是没有安装软件运行环境驱动(软件运行环境驱动是指迪文公司在开发DGUS组态软件时所必需的驱动,只有添加了该驱动软件才能正常运行)。若安装后软件可以打开,但DGUS配置工具无法使用,可能是没有将安装软件的压缩包在软件运行环境驱动所在的路径解压,因此最好将压缩包解压至软件运行环境驱动所在的路径。 图32压缩包解压文件 图33DGUS组态软件桌面图标 3.4DGUS组态软件使用说明 3.4.1界面介绍 启动软件,初始界面如图34所示。 在“DGUS配置工具”选项区域中: (1) “0号字库生成工具”用于生成0号字库; (2) “图片转换”用于将非标准格式的图片转换为标准的背景显示图片; (3) “DWIN ICO生成工具”用于图标文件的生成; (4) “串口下载工具”没有用到。 在“预定义参数”选项区域中,勾选“数据自动上传”复选框后,在接下来配置数据变量或文本变量时,默认的字体颜色、字库位置及字体大小与预定义参数的字体设置相同; 在“ICON显示模式”下拉列表中选择图标变量显示模式,这里为Transparent。 菜单栏和工具栏各命令功能说明如表36所示。 图34DGUS组态软件初始界面 表36菜单栏和工具栏中各命令功能说明 命令功能 新建新建工程 打开打开工程 保存保存工程 另存为将现有工程另存为另一个工程 关闭关闭工程 生成生成配置文件,即在DWIN_SET工程文件夹中生成13触控配置文件.bin、14变量配置文件.bin和22_Config.bin文件 导出将所有显示变量的地址导出为DisplayConfig.xls文件,所有触控变量的地址导出为TouchConfig.xls文件 查看在“显示”菜单中,查看所有页面全部变量的地址设置 分辨率设置在“设置”菜单中,查看并设置当前设置的屏幕尺寸 批量选择选择批量操作的对象 批量修改对当前页面批量选择的变量的属性进行修改 变量图标显示在“显示控件”菜单中,界面配置上添加图标变量 数据变量显示在“显示控件”菜单中,界面配置上添加数据变量 文本显示在“显示控件”菜单中,界面配置上添加文本变量 动态曲线显示在“显示控件”菜单中,界面配置上添加曲线显示 基本图形显示在“显示控件”菜单中,界面配置上添加基本图形变量 在“工程管理”选项区域,单击“新建工程”按钮,可建立新的工程; 单击“打开工程”按钮可打开已有的工程,如图35所示。在工程文件夹中找到DWprj.hmi工程文件,单击“打开”按钮即可打开工程; “历史”表示曾经打开的工程,序号1表示最新打开的工程,将鼠标放在哪一个工程上面,下面的方框中就显示该工程所在路径。 工程完成后,用“生成”“导出”“配置”命令输出相应文件。 图35“打开”对话框 3.4.2背景图片制作方法 在DGUS屏上显示的背景图片需要符合以下条件。 (1) 图片格式: 24位BMP格式。 (2) 图片大小: 320×240像素。 1. DGUS屏标准图片制作方法 (1) 在计算机上单击“开始”菜单→“所有程序”→“附件”→“画图”,打开“画图”工具,如图36所示。 (2) 执行“图像”→“属性”菜单命令,弹出“属性”对话框,如图37所示。 图36Windows系统“画图”软件 图37“属性”对话框 (3) 制作标准图片时,其属性设置应与图37中的设置相同。单击“确定”按钮后,出现一个320×240像素的画布,如图38所示。 图38320×240像素的画布 (4) 画布创建好后,执行 “文件”→“另存为”菜单命令,弹出“保存为”对话框,设置保存路径和文件名,如图39所示。注意将“保存类型”选择为“24位位图”,单击“保存”按钮,一个底色为白色的标准背景图就制作好了。 图39“保存为”对话框 (5) 如果要制作带有文字或线条的背景图片,单击左侧工具栏中的“文本”或“线条”按钮,即可进行绘制; 如果想改变背景颜色,单击左侧工具栏中“颜色填充”按钮进行背景颜色填充。 2. 非标准图片转换为标准显示图片的方法 启动DGUS组态软件,在初始界面单击“图片转换”链接,弹出如图310所示界面。 图310图片转换 图片转换的目的是把不是尺寸为320×240、24位BMP格式的图片统一转换为320×240、24位BMP格式,否则会造成显示不正常。 图片转换过程共分为3步,步骤如下。 (1) 在Size下拉列表中选择320×240。 (2) 单击Add按钮添加要转换的图片。注意: 该工具在添加图片时,会将该图片所在文件夹内所有图片都添加进去,因此在转换前,需要将所有要转换的图片都统一放在一个文件夹内。图片转换工具添加进图片后,如图311所示,左侧列表中Position一栏为图片的ID。若图片在命名时前面有数字,则ID就为该数字; 若无数字,就按名称首字母依次排序,该ID无任何意义。如果要删除图片,选中图片后单击Delete按钮即可删除。Up和Down按钮仅能改变图片顺序。 图311添加图片 (3) 在SD Card Config右侧的下拉列表中选择Images Conversion,如图312所示。弹出“浏览文件夹”对话框,如图313所示。选择好保存路径后,单击“确定”按钮,弹出如图314所示的提示框,则表示图片已被成功转换。 图312选择Images Conversion 图313“浏览文件夹”对话框 图314转换成功 3. 标准图片命名规则 标准图片名称以数字开头,表示该界面的ID,后面加上对图片的文字描述。例如,2_MAIN_MENU表示该图片的ID为2,用作主菜单。呼吸机要显示主菜单时,显示该图片即可。 图片前面的数字表示该图片的ID,后期操作时,只操作图片的ID即可,所以每幅图片前面的数字最好不要重复,若重复,系统会自动排序。使用的DGUS屏共可添加245幅图片,所以图片命名的ID范围为0~244。 3.4.3图标制作方法及图标文件的生成 1. 图标制作方法 图标的制作方法和图片类似,图标就是小图片,为24位BMP格式,不同之处在于图标对图片大小不作要求。下面以字符图标为例,说明一般图标的制作方法。 使用“画图”工具打开一张有字符的图片,单击工具栏中的“框选”按钮,选择要做成图标的字符,右击,在弹出的快捷菜单中选择“复制到”,如图315所示。弹出“复制到”对话框,设置文件名和路径,并将其保存为24位位图,字符图标制作完成,如图316所示。 图315从图片上截取字符图标 图316保存图标 用于呼吸机显示的图标主要包括字符图标和图片图标,字符图标的制作已介绍过。图片图标是指将现有图片直接做成图标。在制作图片图标时,首先将图片另存为标准24位BMP格式,再根据实际所需图标大小,将图片进行缩放,最后保存即可。 2. 图标文件(ICO文件)生成方法 启动DGUS组态软件,在初始界面中单击“DWIN ICO生工具”链接进入DWIN ICO文件生成器,如图317所示。 图317DWIN ICO文件生成器 图标文件的制作共分两步。 (1) 选择图标文件夹。注意图标文件夹内的图标文件命名时须以数字开头,从0开始排序,相关联的图标的序号尽量相连,便于后期处理。打开图标文件夹,如图318所示,列表中Position即为图标序号,后期操作时,操作图标序号即可。 (2) 打开图标文件夹后,若要将这些图标生成在一个新的ICO文件中,则单击Generate ICO File按钮,弹出Build ICO对话框,如图319所示。单击Build ICO按钮,弹出“另存为”对话框,选择保存路径,如图320所示。待弹出如图321所示的提示框,且Build ICO对话框中的进度条已满,表示ICO文件已生成好,如图322所示。若要将这些图标添加在已有的图标文件中,则单击图318中的Add to ICO File按钮。注意新加的图标序号不能与已有图标文件内的图标序号重复,其余步骤与生成新ICO文件相同。 图318图标文件制作开始界面 图319Build ICO对话框 图320选择图标文件保存路径 图321图标文件制作成功 图322图标文件制作完成标识 3. 图标文件的命名规则 图标文件在命名时必须以数字开头,只能是24~127的数字,且不能与其他字库命名时前面的数字重复,若文件的大小超过了256KB,则多占用一个ID,下一个文件命名时不能使用已被占用的ID,且要保证存储空间大于文件大小。数字后面跟着对此图标文件的文字说明。 3.4.4新建一个工程并进行界面配置 (1) 启动DGUS软件,单击“新建工程”按钮,或单击工具栏中的“新建”按钮,弹出“屏幕属性设置”对话框,如图323所示。由于呼吸机使用的DGUS屏显示尺寸为320×240像素,所以在“屏幕尺寸”下拉列表中选择320×240。选择存储路径(路径的最底层最好是自己创建的空文件夹,这样在建好工程后,自动生成的各种文件才会放在自己新建的文件夹中,否则会造成文件的混乱,难以找到哪些是生成的文件),单击OK按钮,工程建立完毕,进入工作界面,如图324所示。 图323“屏幕属性设置”对话框 (2) 工程建好之后,单击按钮,开始添加图片。所添加的图片只能是适用于该DGUS屏的标准图片,否则无法正常显示。添加好图片后,工作界面如图325所示。 (3) 如果图片的尺寸不标准,执行“设置”→“分辨率设置”菜单命令,将图片的分辨率修改为320×240。 图324工程建立完成 图325添加背景图片 (4) 如果要删除图片,则选中该图片,单击按钮即可。如果想让图片的ID减1,则选中该图片,单击∧按钮; 反之,单击∨按钮。 (5) 配置显示变量(各种显示变量详细配置方法参考3.6节)。 (6) 工作界面右侧的“属性”窗口中的各项内容说明如下。 ① “显示”下拉列表: 可选择的项目如图326所示,默认为“所有”。 ② “得到图片RGB值”复选框: 勾选后,系统会自动显示出背景图片上鼠标所在位置处颜色的RGB值,如图327所示。 ③ “在配置按钮上显示文字”复选框: 勾选后,在配置的变量上面会显示该变量的“名称定义”,如图328所示; 反之,则不会显示。 图326“显示”下拉列表 图327RGB显示 图328变量“名称定义”显示 ④ 快速操作: 与工具栏中“批量选择”和“批量修改”的功能相同。 ⑤ 快速配置: 选中一个变量,单击“确定”按钮后,在该页面快速复制相同类型的变量。其中,“变量地址增量”表示复制后的变量地址与该变量的地址差; “配置数量”表示复制的变量个数。 ⑥ 网格控制: 勾选“网格控制”后,在原来的背景图片上显示网格,便于对变量进行配置,如图329所示。 图329显示网格 (7) 变量配置完毕后,依次执行“保存”“生成”“导出”菜单命令。其中,执行“保存”菜单命令后,将在界面上配置的显示变量保存起来; 执行“生成”菜单命令后,会在DWIN_SET文件夹中生成13触控配置文件.bin、14变量配置文件.bin和22_Config.bin文件; 执行“导出”菜单命令后,会在工程文件夹中生成DisplayConfig.xls和TouchConfig.xls文件。 3.4.5工程文件说明 1. 空文件夹 一个建好的空工程,内部包含的文件如图330所示。其中,在没有对界面进行配置时,文件夹中所有内容都为空。 如图330所示,ICON、image、TFT文件夹以及DWprj.tft文件在呼吸机显示屏的开发过程中均未使用。 DWIN_SET文件夹是工程中最关键的部分,利用SD卡将该文件下载到DGUS屏中。 DGUS组态软件通过打开DWprj.hmi文件打开工程。 图330空工程包含的文件 图331配置变量后的 文件夹 2. 配置变量后的文件夹 执行“文件”→“导出”菜单命令,工程中新增两个文件,如图331所示。其中,TouchConfig.xls文件内为所有触控变量,MINI DGUS屏没有触摸功能,所以不关心此文件内容; DisplayConfig.xls文件内为所有显示变量,根据此文件,用户可以快速查看所有配置的显示变量。 打开DisplayConfig.xls文件,内容如图332所示,具体说明如下。 (1) Image ID表示背景图片ID,相应的变量就是此ID页面上的显示变量。 (2) Name为显示变量参数配置时的“名称定义”。 (3) Var Pointer表示显示变量的地址。 (4) Desc Pointer表示显示变量的描述指针。 (5) Var type和Name意义相同。 (6) description表示该变量的类型。 因此,通过此文件可迅速查看某一页面上配置的所有变量地址,为变量地址分配提供了方便。 如果显示图标变量,则必须将相应的图标文件复制到DWIN_SET文件夹中,此时在工程中会自动生成与复制进去的图标文件同名的文件夹,如图331中的“34手指等”文件夹,该文件夹中为图标,无任何作用。 图332DisplayConfig.xls文件 3.5工程下载 DGUS屏的所有参数和资料下载都通过SD卡接口完成,具体方法如下。 (1) 保证SD卡是FAT32系统,新的SD卡需要使用计算机进行格式化,方法是在命令提示符中执行format/q g:/fs:fat32/a:4096命令。其中,g是SD卡的盘号。需要注意的是,使用右击快捷菜单命令的格式化是无效的; 一般支持SD卡大小为2~16GB。 (2) 打开建好的工程,将DWIN_SET文件夹放到SD卡根目录下。注意,迪文显示屏只会识别DWIN_SET这个文件夹,其他命名的文件夹都不支持,我们可以将自己要备份的文件夹命名为其他的名称,下载不受影响。每次上电,DGUS屏会立即检测一次SD接口,后续每隔3s检测一次SD 接口有没有插卡。 (3) 在显示屏SD卡接口处插上SD卡,显示屏变蓝,开始快速下载工程文件,下载完成后显示如图333所示的界面。 图333工程下载完成界面 (4) 下载完成后拔下SD卡。拔卡时先向前推送一下,会听到“咔嗒”声音,然后再拨; 直接拔则无法拔出。将显示屏断电,重新上电即可进入操作界面。 3.6DGUS屏显示变量配置方法及其指令详解 3.6.1串口数据帧架构 DGUS屏采用UART串口通信,串口模式为8n1,即每个数据传输采用10位: 1个起始位、8个数据位、1个停止位。 默认传输速率是115200b/s,可在CFG文件中修改。 串口的所有指令或数据都是十六进制(HEX)格式; 对于字形数据,总是先传输高字节,如传输0x1234时,先传输0x12。 1. 数据帧结构 DGUS屏的串口数据帧由4个数据块组成,如表37所示。 表37DGUS屏的串口数据帧 数据块1234 定义帧头数据长度指令数据 数据长度/B211N 说明0x5AA5包括指令、数据0x80/0x81/0x82/0x83 举例5AA50483001004 2. 指令集 DGUS屏共有4条指令。DGUS指令集如表38所示。 表38DGUS指令集 功能指令数据说明 访问寄 存器 0x80 下发: 寄存器页面(0x00~0x08)+寄存器地址(0x00~0xFF)+写入数据指定地址开始写数据串到寄存器 应答: 0x4F0x4B写指令应答 0x81 下发: 寄存器页面(0x00~0x08)+寄存器地址(0x00~0xFF)+读取数据字节长度(0x01~0xFB)指定地址开始读指定字节的寄存器数据 应答: 寄存器页面(0x00~0x08)+寄存器地址(0x00~0xFF)+数据长度+数据数据应答 访问变 量空间 0x82 下发: 变量空间首地址(0x0000~0x0FFFF)+写入的数据指定变量地址开始写入数据串(字数据)到变量空间。系统保留的空间不要写 应答: 0x4F0x4B写指令应答 0x83 下发: 变量空间首地址(0x0000~0x0FFFF)+读取数据字长度(0x01~0x7D)从变量空间指定地址开始读取指定长度字数据 应答: 变量空间首地址+变量数据字长度+读取的变量数据数据应答 3.6.2数据变量 1. 数据变量配置方法 DGUS屏要显示数据变量,首先需要在工程中添加的背景图片上配置数据变量,方法如图334所示。 首先单击工具栏中的“数据变量显示”按钮,接着在背景图片上拖动鼠标形成一个矩形框,就形成了数据变量显示区域。 2. 数据变量参数配置 单击数据变量显示区域,参数配置如图335所示。 图334数据变量配置 图335数据变量参数配置 “数据变量显示”配置介绍如下。 (1) X/Y/W/H: X和Y为数据变量显示区域左上角的坐标,W和H分别为数据变量显示区域的宽和高,它们确定了数据变量的显示位置和区域,可以在此直接修改,也可通过鼠标拖动矩形框来确定。 (2) 名称定义: 由于在一个工程中,用户会用到很多的数据变量,为了查找方便、易于管理,通常取一些通俗易懂的名字标识这些变量,这个名称不会在屏上显示,只在配置时起标识作用。 (3) 描述指针: 如图335所示,描述指针的地址为0xFFFF,表示不使用描述指针。如果要使用描述指针,则需将此地址设置为0x0000~0x07F0的值,且其后最多13个地址都被占用(实际使用时为了避免出错,以16个地址来算),其他变量在设置地址时不可与其重合。假如将描述指针设为0x0600,下一个可以使用的地址从0x0610开始。 使用描述指针后,可以通过发送指令修改变量配置,而不必在工程中修改。 数据变量的描述指针如表39所示,其中地址第2列表示偏移地址。 表39数据变量的描述指针 地址定义数据长度/B说明 0x000x5A102 0x02*SP2变量描述指针,0xFFFF表示由配置文件加载 0x040x000D2 0x060x00*VP2变量指针 0x080x01X,Y4起始显示位置,显示字符串左上角坐标 0x0C0x03COLOR2显示颜色 0x0E0x04: HLib_ID1ASCII字库位置 0x0F0x04: L字体大小1字符X方向点阵数 0x100x05: H对齐方式10x00=左对齐,0x01=右对齐,0x02=居中 0x110x05: L整数位数1显示整数位 0x120x06: H小数位数1显示小数位整数位数和小数位数之和不能超过10 0x130x06: L变量数据类型10x00=整数(2B),-32768~32767 0x01=长整数(4B),-214783648~214783647 0x02=*VP高字节,无符号数,0~255 0x03=*VP低字节,无符号数,0~255 0x140x07: HLen_unit1变量单位(固定字符串),显示长度,0x00表示没有单位显示 0x150x07: HString_UnitMax11单位字符串,ASCII码 参考表39,假设数据变量显示的描述指针设置为0x0600,则控制坐标的地址为0x0601,控制颜色的地址为0x0603。 发送指令: 5A A5 05 82 0603 F800,将数据变量显示颜色修改为红色; 发送指令: 5A A5 07 82 0601 0000 0000,改变数据变量显示位置,数据框会出现在(0,0)。 描述指针使数据变量上电初始值显示控制(仍假设数据变量显示的描述指针设置为0x0600)。 发送指令: 5A A5 05 82 0600 FF00,数据变量无显示值; 发送指令: 5A A5 05 82 0600 0001.5A A5 05 82 0001 0009,数据变量从无显示值到显示9。其中,0600为描述指针; 0001为变量指针; 0009为显示数据。 每个变量均需单独发送指令,如果没有改变描述指针的内容,不需要将变量指针写入描述指针。 若要对数据变量的其他属性(包括ASC字库位置、字体大小、对齐方式、整数位数、小数位数、变量数据类型、变量单位及单位字符串)进行修改,可参考上述修改颜色和坐标的例子。 (4) 变量地址: 占用变量存储器空间,范围为0x0000~0x07FF。如果数据类型是整型,则占用一个地址; 如果是长整型,则占用两个地址。 (5) 显示颜色: 文本最后显示的颜色取决于“颜色显示”,其值可任意修改。 (6) 字库位置: 数据变量显示使用的均是ASC字符,即0号字库,不作修改。 (7) 字体大小: 字体的高所占的像素个数。 (8) 对齐方式: 当数据发生变化时,决定其显示位置的变化方向。 (9) 变量类型: 对于MINI DGUS屏,只有整数(2字节)和长整数(4字节)可选。整数的显示范围是-32768(0x8000)~+32767(0x7FFF); 长整数的显示范围是-2147483648(0x8000 0000)~+2147483647(0x7FFF FFFF)。若想显示负数,负数表示为: 负数=~(对应的正数-1)。 (10) 整数位数: 表示显示值中整数的个数。给数据变量输入的值都是整数,其值为实际要显示的值去掉小数点后的值。如要显示12.34,则需要给变量输入1234,且整数位数和小数位数都设置为2。 (11) 小数位数: 表示显示值中小数的个数。 (12) 变量单位长度: 数据变量单位字符串中的字符个数。 (13) 显示单位: 数据变量的单位字符串。 (14) 初始值: 数据变量上电后的显示值。 3. 数据显示指令 假设变量地址为0x0001,变量类型为整数(2字节),要显示的值是12.34,小数个数和整数个数都设置为2,则数据显示指令为5A A5 05 82 0001 04D2。 其中,5A A5表示帧头; 05为数据长度; 82为指令; 0001表示数据变量地址; 04D2为1234的十六进制值(2B)。 若变量类型改为长整数(4字节),其余条件不变,则数据显示指令为5A A5 07 82 0001 0000 04D2。 3.6.3文本变量 1. 文本变量配置方法 DGUS屏要显示文本变量,需要在工程背景图片上配置文本变量,方法如图336所示。 图336文本变量配置 图337文本显示参数配置 单击工具栏中的“文本显示”按钮,接着在背景图片目标位置处拖动鼠标形成文本变量显示区域。 2. 文本显示参数配置 单击文本变量显示区域,参数配置如图337所示。 “文本显示”配置介绍如下。 (1) X/Y/W/H: 含义与“数据变量显示”相同。 (2) 名称定义: 含义与“数据变量显示”相同。 (3) 描述指针: 如图337所示,描述指针的地址为0xFFFF,表示不使用描述指针。若要使用描述指针,则需将此地址设置为: 0x0000~0x07F0的值,且其后的13个地址(实际使用时为了避免出错,以16个地址来算)都被占用,其他变量在设置地址时不可与其重合。假如将描述指针设为0x0600,下一个可以使用的地址从0x0610开始。 使用描述指针,可以通过发送指令修改变量配置,而不必每次从工程中修改。 例如,显示汉字字符时选用自己生成的字库,而显示其他ASC字符时选用0号字库,可以通过给描述指针发送指令直接修改,而不需要配置不同的文本变量。 文本变量的描述指针如表310所示,其中地址第2列表示偏移地址,操作方法与数据变量相同。 表310文本变量的描述指针 地址定义数据长度说明 0x000x5A112 0x02*SP2变量描述指针,0xFFFF表示由配置文件加载 0x040x00002 0x060x00*VP2文本指针 0x080x01X,Y4起始显示位置,显示字符串左上角坐标 0x0CColor2显示文本颜色 0x0E0x04XsYsXsYs8文本框 0x160x08Text_length2显示字节数量,遇到0xFFFF数据或显示到文本框尾将不再显示 0x180x09: HFont0_ID1编码方式0x00、0x05,以及编码方式0x01~0x04时ASCII字库位置 0x190x09: LFont1_ID10x01~0x04的非ASCII字符使用的字库 0x1A0x0A: HFont_X_Dots1字体X方向点阵数(0x01~0x04模式,ASCII字符X按照X/2计算) 0x1B0x0A: LFont_Y1_Dots字体Y方向点阵数目 0x1C0x0B: HEncode_Mode1.7~.0定义了文本编码方式: 0=8b编码 1=GB2312内码 2=GBK 3=BIG5 4=SJIS 5=UNICODE 0x1D0x0B: LHOR_Dis1字符水平间隔 0x1E0x0C: HVER_Dis1字符垂直间隔 0x1F0x0C: L未定义1写0x00 例如,在控制文本变量上电初始值显示时,假设文本变量地址为0x0001,文本长度为2(可显示一个汉字字符或两个ASC字符),描述指针为0x0500。 当切换到文本显示时,输入值为空格,发送指令5A A5 05 82 0001 2020 (文本长度是几就发送几个空格),隐藏初始值。 当用描述指针发送指令5A A5 05 82 05 00 FF 00时,文本变量无显示值。 当用描述指针发送指令5A A5 05 82 05 00 00 01.5A A5 05 82 00 01 CED2时,文本变量从无显示值变为显示汉字字符“我”。 (4) 变量地址: 占用变量存储器空间,范围为0x0000~0x07FF。文本显示的长度决定了其占用地址的个数,占用地址的个数是文本长度的一半。 (5) 显示颜色: 决定文本显示颜色,可任意修改。 (6) 编码方式: 显示汉字字符时,选择汉字字库,且编码方式要与字库的编码方式一致。显示ASC字符时选择0号字库,编码方式选择“8bit编码方式”。 (7) 文本长度: 一个汉字字符占两个长度,一个ASC字符占一个长度,只能设置为偶数,且决定变量地址所占个数。 (8) FONT0_ID: ASC字库位置,写为0。 (9) FONT1_ID: 汉字字库位置,DWIN_SET文件夹内复制进去的其他字库的ID号。 (10) X方向点阵数/Y方向点阵数: 当显示0号字库的ASC字符时,X方向点阵数决定了字符的大小,可任意选取; 显示其他字库的非ASC字符时,该点阵数必须与非ASC字符所在字库生成时选取的点阵数一致,因此对非ASC字符而言是唯一确定的。 (11) 水平/垂直间隔: 两个字符之间的间隔,一般设置为0,不修改。 (12) 初始值: 文本变量上电显示初值。 3. 文本显示指令 假设变量地址为0x0001,文本长度为4,要显示汉字字符“我们”,编码方式为GBK,则文本显示指令为5A A5 07 82 0001 CED2 C3C7。 其中,5A A5表示帧头; 07为数据长度; 82为指令; 0001表示文本变量地址; CED2 C3C7为汉字字符“我们”的GBK编码。 假设变量地址为0x0001,文本长度为4,要显示ASC字符ABC,采用8bit编码方式,则文本显示指令为5A A5 07 82 0001 41 42 43 00。 其中,5A A5表示帧头; 07为数据长度; 82为指令; 0001表示文本变量地址; 41为字符A的ASC编码; 42字符B的ASC编码; 43字符C的ASC编码; 00: 文本长度为偶数,通过在最后写入0来凑够。 3.6.4图标变量 1. 图标变量配置方法 (1) 将制作好的图标文件复制到DWIN_SET文件夹中。 (2) 与数据变量的配置方法类似,单击工具栏中“图标变量显示”按钮,在背景图片目标位置处拖动鼠标形成图标显示区域,如图338所示。 2. 图标变量参数配置 单击图标显示区域,参数配置如图339所示。 图338图标变量配置 图339图标变量参数配置 “图标变量”配置介绍如下。 (1) X/Y/W/H: 含义与“数据变量显示”相同。 (2) 名称定义: 含义与“数据变量显示”相同。 (3) 描述指针: 用于呼吸机显示屏的图标变量不使用描述指针。 (4) 变量地址: 占用变量存储器空间,范围为0x0000~0x07FF。每个图标变量占1B地址。 图340添加图标文件 (5) 图标文件: 可选择添加进DWIN_SET文件夹中的图标文件,如图340所示。 (6) 变量下限/变量上限及其对应的图标。 图标变量只能显示介于变量下限所对应的图标和变量上限所对应的图标之间的图标。变量上限对应图标的ID必须大于变量下限对应图标的ID。变量上限一般设为0,为方便操作也可与对应图标的ID一致。变量下限与变量上限的设定值和要显示的变量个数相关,应满足以下条件: 变量下限设定值-变量上限设定值=变量个数-1 单击“对应的图标”右侧按钮,弹出“迪文ICO文件预览”对话框,显示图标文件夹中的图标,如图341所示。 图341“迪文ICO文件预览”对话框 (7) 显示模式: 有“透明”和“显示背景”两种。“透明”表示将图标以其左上角的颜色为基准,滤掉与其颜色相同的部分,不予显示; “显示背景”则反之。一般选择“透明”模式。 (8) 初始值: 要显示的初始图标对应的值,该值是变量下限与变量上限之间的值。 (9) 效果演示: 设定好“延时”之后,单击“开始”按钮,则依次浏览下限与上限之间的图标。 3. 图标显示指令 假设变量地址为0x0001,变量下限为0,对应图标ID为12,即图341中的Ua图标; 变量上限为2,对应图标ID为14,即图341中的Uc图标。要显示ID为13的Ub图标,则发送的指令为5A A5 05 82 0001 0001。 其中,5A A5表示帧头; 05为数据长度; 82为指令; 前一个0001表示图标变量地址; 后一个0001为ID为13的图标对应的变量值。 若该变量不显示任何图标,则发送的指令为5A A5 05 82 0001 FFFF。 其中,5A A5表示帧头; 05为数据长度; 82为指令; 0001表示图标变量地址; FFFF为大于变量上限或小于变量下限的任意值。 3.6.5基本图形变量 DGUS屏的基本图形绘制可以实现置点、连线、矩形、矩形域填充和画圆等功能。在呼吸机上,仅使用其矩形域填充功能,实现呼吸机压力值的条形图显示。 图342基本图形变量参数配置 1. 基本图形变量配置方法 与数据变量的配置方法类似,在工具栏中单击“基本图形显示”按钮,在背景图片上拖动鼠标形成图形显示区域,配置完成。 2. 基本图形变量参数配置 基本图形变量参数配置如图342所示,其中下方框选部分在呼吸机显示中用不到,保持默认值即可。 “基本图形显示”配置介绍如下。 (1) X/Y/W/H: 含义与“数据变量显示”相同。 (2) 名称定义: 含义与“数据变量显示”相同。 (3) 描述指针: 通过设置描述指针可以修改绘图区域,在呼吸机上一般不使用此功能。 (4) 变量地址: 占用变量存储器空间,占用的地址长度由发送的数据长度决定。 3. 基本图形显示指令 以矩形域填充为例,下面介绍基本图形显示指令。 用于基本图形显示的数据包括3部分,如表311所示,分别为绘图指令、最大数据包数目及数据。数据包会占用变量存储空间。 表311用于基本图形显示的数据 地址定义说明 VPCMD绘图指令 VP+1Data_Pack_Num_Max最大数据包数目,连线指令(0x0002),定义为连线线条数目(顶点数-1) VP+2DATA_Pack数据 绘图指令有很多,下面仅对呼吸机用到的矩形域填充指令进行详细说明。 矩形域填充指令为0x0004,其中每个数据包包括5个字,分别为矩形域左上角的X/Y坐标、矩形域右下角的X/Y坐标和填充颜色,如表312所示。 表312矩形域填充指令说明 指令操作 绘图数据包格式说明(相对地址和长度单位均为字) 相对地址长度定义说明 0x0004矩形域填充 0x00002(x,y)s矩形域左上角坐标,X坐标高字节为判断条件 0x00022(x,y)e矩形域右下角坐标 0x00041Color矩形域填充颜色 假设基本图形变量的地址为0x004E,显示两个矩形域填充,显示指令为5A A5 1B 82 004E 0004 0002 002E 005F 0038 00D9 0000 0046 0062 0050 00D9 0000。 其中,5A A5表示帧头; 1B为数据长度; 82为指令; 004E表示基本图形变量地址; 0004为矩形域填充指令; 0002为数据包的个数,上述指令共有两个数据包,所以为2; 002E 005F 0038 00D9 0000为数据包1; 0046 0062 0050 00D9 0000为数据包2。 由于数据会占用变量存储空间,如上述指令,数据包的个数以及两个数据包的内容共占用11个地址,即0x0058之后的地址才可以使用。实际呼吸机显示屏开发过程中,尽量留有足够的地址空间,防止显示出错。 3.7通过USB对DGUS屏进行调试 若要对下载好工程的DGUS屏进行调试,用户可以通过如图343所示的驱动模块将其连在计算机USB接口上,通过串口助手发指令进行调试。 图343驱动模块 DGUS屏的调试步骤如下。 (1) 安装XR21V1410XR1410芯片USB驱动。 (2) 驱动安装成功后,打开串口调试助手sscom32.exe,如图344所示。依次设置串口号(连接DGUS屏USB的串口号)、波特率(设置成与DGUS屏一致的波特率),勾选“HEX发送”复选框,最后输入指令,单击“发送”按钮,即可将指令发送到DGUS屏上,从而进行调试工作。 图344串口调试助手 摩托车仪表盘智能屏UI演示如图345所示。智能屏支持挡位、速度、储能状态和室外温度显示。这种界面通过DGUS软件很容易开发出来,还可以开发更复杂的界面。 图345摩托车仪表盘智能屏UI演示 DGUS彩色液晶显示屏的有关操作程序清单可参考本书数字资源中的程序代码。