综合技术交流
直播中

ZXC

7年用户 100经验值
擅长:EMC/EMI设计 嵌入式技术 制造/封装 接口/总线/驱动 处理器/DSP 控制/MCU EDA/IC设计
私信 关注
[经验]

DGUS II串口屏图片更新详解(BMP&JPEG)

`
在用DGUS II串口屏进行开发时,经常会涉及图片更新的问题(BMP&JPEG),这里主要讲一下详细的过程。

1. JPEG图片更新
T5 CPU 的DGUS II 软件平台分的3个版本
a. T5UID1 低分辨率
b.T5UID2 低成本高分辨率
c. T5UID3 高分辨率
以上三个版本均 支持JPEG 图片解压缩更新图片。但是由于以上三个版本的显存不同,有个专门的背景页所以能做,D2版本更新JPEG 图片和D1、D3的有区别,本文做分别介绍。

【T5UID1平台】串口进行区域图片更新方法简要说明
下载模式选择01和02两个模式,01模式更新到当前页掉电不保存,02模式会下载到图片对应的flashID区域,会掉电保存。
1.png

a. JPG图片格式的数据直接下发,无需图片数据处理,如果用UltraEdit-32查看图片如下图。
2.png
。。。。。。
3.png

b. 下发指令
①由于串口指令【82写入】能接受的最大数据长度为256个字节,所以数据需要分多个包进行下载更新。
4.png
将图片的数据缓存到变量地址空间,可以选取0x8000~0xffff可以分为每次240个字节依次发送,从变量地址VP 0x8000开始,地址按照+0x78字长往下排列。图片格式JPG/JPEG,不能超过64Kb ,储存变量空间的地址8000H到FFFFH是足够的,jpg图片分辨率不能超过屏幕的分辨率。

◆5A A5 F3 82 80 00 FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60 00 60 00 00 FF E1 10 C0 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08 00 05 01 12 00 03 00 00 00 01 00 01 00 00 01 31 00 02 00 00 00 2E 00 00 08 56 01 32 00 02 00 00 00 14 00 00 08 84 87 69 00 04 00 00 00 01 00 00 08 98 EA 1C 00 07 00 00 08 0C 00 00 00 4A 00 00 00 00 1C EA 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
◆5A A5 F3 82 80 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
。。。。。。。依次发送若干包数据 。。。。。。
◆5A A5 F3 82 A5 F8 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00

◆5A A5 21 82 A6 70 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 28 A2 8A 00 FF D9

②发送完图片数据之后,再发送显示的指令
◆5A A5 0B 82 00 A6 5A 01 80 00 00 00 00 00
指令说明:5A 固定,表示启用下载操作,01表示将图片更新到当前背景页面, 80 00是变量地址首地址,00 00 00 00 表示当前图片显示的左上角坐标(0,0)

注意事项:
①jpg格式不能超过64Kb。
②jpg格式不能超过当前屏幕分辨率,可以比当前分辨率小,能通过坐标显示更新在当前页不同的坐标区域。
③如果下载模式选择02,则是直接保存图片数据到图片的存取区域
5A A5 0B 82 00 A6 5A 02 80 00 00 64 00 00
指令说明:5A 固定,表示启用下载操作,02表示直接保存到图片储存区(可以后台操作,不改变当前显示)。 80 00是变量地址首地址,0064 代表图片ID为100,00 00表示在02下载模式下可以默认写0000。
④如果图片保存ID为当前页面,图片会立即下载到当前页,和01模式的区别是02模式是写进了实际的图片存储flash中。
⑤数据为整张图片的分辨率坐标起始位置必须选(0,0);数据为部分区域的分辨率图片的,需要保证最终显示的坐标界限不要超过屏幕的分辨率,所以起始位置不能超出预设,不然会不显示。

【T5UID2平台】串口进行区域图片更新方法简要说明
原理:由于D2平台下载模式01不支持,所以只能先用02模式下载到不影响工程实际应用界面的图片存储区,然后用基本图形控件,将图片存储区的图片剪切过来显示。操作如下:
5.png

a. 例如准备如下合成图片【1024*600白底】【400*400图片】,图片格式JPG/JPEG,大小不超过64KB。
b. 工程里配置基本图形显示控件,区域可以拖满屏。
8.png
需要注意X和Y坐标,以及大小为W:400,H:400。变量地址按照预留的设定,由于后面的JPEG数据会用到8000H以上,所以建议取8000H以下的地址。
然后通过串口将图片数据写入到8000H变量地址,不超过64K,也就是变量地址的上限FFFFH。
同样由于串口指令【82写入】能接受的最大数据长度为256个字节,所以数据需要分多个包进行下载更新。
至此,8000H以上的变量地址将保存了一张图片数据,然后使用如下指令可以将图片更新到图片缓存区。
5A A5 0B 82 00A6 5A02 8000 0064 0000 ,64代表图片ID为100
9.png
c. 使用图片剪切工具,将ID为100的图片上的部分区域数据显示到当前页面位置。
10.png
5A A5 15 82 3000 0006 0001 0064 0000 0000 0190 0190 0000 0000
0006表示剪切指令
0001 数据包个数
0064页面ID
0000 0000 0190 0190剪切切图片区域 (0,0)~(400,400)
0000 0000粘贴到当前基本图形控件的起始坐标(0,0)
2. BMP图片更新

a. bmp图片格式的解析处理

① 只需要下发图片位图数据。(不要位图头文件,位图信息数据和调色板的数据)
② 图片数据正常解码的顺序如下图解(由左到右,由上到下):
1.png
③24位色图片的位图数据是8R8G8B,需要转为 5R6G5B 16位真彩色格式数据。
转换原理,例如:16位RGB红色表示方法为
    1111 1000 0000 0000 (十六进制表示为:0xF800)
红色的24位RGB为:11111111 00000000 00000000
    转换为16位的RGB则需要将8位R值右移3位,低3位丢掉,变为了5位:11111
                                                  8位G值右移2位,低2位丢掉,变成了6位:000000
                                                  8位B值右移3位,低3位丢掉,变成了5位:00000
    通过此种转换,我们最后就得到了对应的16位RGB色彩:RRRR RGGG GGGB BBBB,转换为对应的16进制就是:0xF800
2.png

①先把图片数据发送到变量地址,例如8000h起始地址 我们可以每次发送240字节数据到变量地址缓存,然后对0xA2地址发送指令,其中背景图片缓冲区地址按照0x78(120字)递增排列:如00 00 00 ,00 00 78 , 00 00 F0 ......


◆5A A5 F3 82 80 00 10 82 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3
◆5A A5 0B 82 00 A2 5A 80 00 00 78 00 00 00
◆5A A5 F3 82 80 00 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3
◆5A A5 0B 82 00 A2 5A 80 00 00 78 00 00 78
◆5A A5 F3 82 80 00 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3 18 C3
5A A5 0B 82 00 A2 5A 80 00 00 78 00 00 F0
。。。。。
图片数据可以依次的按照从左至右下载到当前页刷新出来。

③上述指令只是把图片刷新到当前页显示(掉电不记忆),如果需要把图片保存,需要对地址0x84发送页面保存指令。

3.png
页面保存(把当前背景页面保存到指定的图片存储区)发送5A A5 07 82 0084 5A02 0001
0001表示保存的页面ID,如果当前页面是01,那么发送此条指令则直接保存了下载的图片到当前页面
`
BMP&JPEG图片更新文档说明.zip (708.21 KB)
(下载次数: 15, 2019-2-28 15:47 上传)
7.png 6.png

更多回帖

发帖
×
20
完善资料,
赚取积分