你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

工程师笔记 | 驱动 8 位 8080 接口 LCD 时的字节序问题

[复制链接]
STMCU-管管 发布时间:2021-6-29 11:17
工程师笔记 | 驱动 8 位 8080 接口 LCD 时的字节序问题
前言/ t+ F+ c8 z5 E  U5 E& \1 k( x
在一些图形界面应用中,系统架构会时常考虑使用 FSMC接口来驱动 8080接口的 LCD屏。在 MCU渲染完成,将framebuffer发送到 LCD时,有可能会遇到存儲大小端的问题。STM32MCU都采用 ARMCortex内核,内存使用小端格式。而 intel 8080接口的 LCD在传输 RGB数据时,使用的是大端格式。MCU在传输 RGB数据时,字节序有可能不匹配。
7 k3 u0 m' @! l) H在图形界面应用中,像素格式一般会使用 RGB888或 RGB565。而在使用 FSMC接口驱动 8bit位宽的 LCD时,很可能会使用 RGB565格式。本文中会介绍两种方法来处理8bit8080接口 RGB565格式图像数据字节序问题。  r* O$ n7 _( M7 M& [* [) v  N
) E* c6 {/ i% _$ @1 h0 z8 U
图像数据字节序
2 i4 V! V( t6 }: o8bit8080 LCD在接收 RGB565数据时,会将第一个字节解析为{R4-R0,G5-G3}, 第二个字节解析为{G2-G0,B4-B0},并按这个顺序接收所有数据,如下图:
7 K3 N$ F/ H( r7 z9 G& i
11.png
而在 MCU内存中,数据按小端格式存放,RGB565数据存放的字节序如下:
5 Y5 U, z* e- z, v+ P8 j
12.png
如果不做调整直接将 RGB数据发给 LCD,MCU会先发送 Byte0,再发送 Byte 1,这样 LCD显示的内容就会错乱。对比上面两张图可以看出,只需将内存中 Byte0与 Byte1字节位置对调(Byteswap),就能满足 LCD接口的字节序要求。可以直接使用 CPU进行 Byteswap,但这会消耗过多 CPU算力,同时也会占用更多内存。这里我们将使用硬件进行 Byteswap.
! _, K. e" O) D6 F  G
; v- n* [$ L/ U5 h% k5 ADMA2D 进行Byteswap
, V- V- z8 @6 [$ ]* dDMA2D是 ST为图形应用专门设计并优化的2D加速引擎,拥有丰富的功能。其字节序重排功能包含了Red blueswap以及 Byteswap特性。Red blueswap特性在 L4和 L4+系列 MCU都支持,而 Byteswap仅在L4+系列有支持。在 L4+系列上,通过配置 DMA2D_OPFCCR寄存器的 SB位,即可使能 Byteswap功能,在 DMA2D的outputFIFO中完成字节序调整,如下图:4 }& ~$ n& F+ ^: }4 Z9 x9 g, V
13.png
因此在图形界面应用中,需要 Byteswap时,可以考虑用 DMA2D来传输 RGB数据给 LCD。
8 l) f/ F% u! u$ l, N
( w" j: L6 N7 k3 j$ J3 n 1 x9 L1 v2 h; m
GPDMA 进行Byteswap/ ?3 X; c* e7 ~# P
在新推出的 U5系列芯片上,集成了 GPDMA模块。这是新的通用DMA模块,能在传输数据的同时,还有丰富的数据处理能力。在初始化GPDMA时,通过配置源和目的数据位宽为 DMA_SRC_DATAWIDTH_WORD,在数据处理中配置 DataExchange为 DMA_EXCHANGE_DEST_BYTE,如下面代码,也能实现Byteswap功能。8 L1 a$ }' @9 ~" V6 j/ d- a; ?
14.png
这样,在图形应用中,既能使用 DMA2D加速渲染过程,也能使用 GPDMA的数据处理能力。通过 GPDMA直接向FSMC接口输出 Byteswap后的 RGB565格式的图形数据给LCD。' p- u0 k9 w, C) A. C) H

' }" _3 |, O1 C6 Q0 D7 y小结. U4 J, E* x- S/ j2 u
在驱动 8位 8080接口 LCD时,需要注意图像数据字节序问题。使用 RGB565格式时,可以使用 DMA2D或 GPDMA来传输图像数据,同时对图像数据做 Byteswap调整,满足LCD的字节序要求。
2 B1 y5 r! ^  z: F! p) q
7 H1 p. X  ~8 F& J9 @9 B. `. t* A# N
赞 收藏 1 评论0 发布时间:2021-6-29 11:17

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版