树莓派与显示屏的连接方式
DBI/SPI连接的一般是适合MCU等小型设备的液晶屏,串行总线占用的GPIO数量较少;DPI与DBI/SPI的相似性是都用到了GPIO,但DPI对于每种颜色有单独的并行通道,所以占用GPIO数量较多;DSI是一种手机/平板上流行的接口,具有低功耗、高速的特点,且GPU能直接驱动(意味着有硬件加速);HDMI是大家最熟悉的显示连接方式,一般是连接大型显示器。从技术先进的角度:DSI与HDMI可以齐
原文连接盘点那些树莓派与显示屏的连接方式 - 知乎 (zhihu.com)
Linux/开源硬件/物联网/智能产品, wx:疯狂的运放
大家玩树莓派,如果不配置一个显示屏会不会觉得很奇怪?但显示屏的种类很多,今天就从显示屏“连接方式”的角度来为大家盘点一下。
我发现可以从“微雪Waveshare”显示屏进行切入,因为他们的介绍很详细,特别是面向国外用户的网站(waveshare.com),以下截取部分他们的显示屏型号:
图1-微雪显示屏型号截图,注意显示接口有SPI、DPI、DSI等,源自参考链接[1]
图2-微雪显示屏型号截图,注意显示接口有HDMI等,源自参考链接[1]
在上图中,已经揭示了常见的显示接口(Display Port),如SPI、DPI、DSI、HDMI等,那么,这些显示接口树莓派都支持吗?不同显示接口适用于什么场景、有什么特点?本文就来回答一下。
树莓派有哪些显示屏接口?
对于树莓派,以上提到的SPI、DPI、DSI、HDMI等接口都支持。我在树莓派4B的板载图上标注了一下各个显示接口的位置,供参考:
图3-树莓派上的SPI、DPI、DSI、HDMI等显示接口
本文逐一介绍各个显示接口的特点,从大家最熟悉的HDMI说起……
树莓派的HDMI显示接口
HDMI是2000年代初创建的视频标准,在刚创建的时候就支持1080p高清(HD)显示。
发展到如今HDMI已迭代过多个版本,我们仅关注 树莓派3 或 树莓派4 上的HDMI版本,其中,树莓派3的是HDMI 1.3版本,而树莓派4的是HDMI 2.0 版本。它们的差别如下:
图4-HDMI标准的版本差异
HDMI是即插即用标准,这是将外部显示屏连接到树莓派最简单、最可靠的方法。树莓派上有两个HDMI接口,它们是一种称为“Micro HDMI”的小型接口,与标准HDMI接口仅仅是尺寸上的差别。但请注意,它不是Micro USB接口。
图5-Micro HDMI与标准HDMI接口对比
你可能需要一个Micro HDMI转HDMI的线缆,才能将树莓派连接到显示器上,如下面这种:
图6-Micro HDMI与标准HDMI转接线
我没这种转接线,我的显示器也没多余的HDMI给树莓派用。所以用上了老掉牙的VGA接口,并借助了Micro HDMI转HDMI(母头),再加HDMI(公头)转VGA的两个转接口。很便宜的,两个加起来应该在20元以内。
图7-Micro HDMI转HDMI(母头) + HDMI(公头)转VGA
图8-树莓派通过Micro HDMI接口连接电脑显示器的效果
为以防万一,在插拔HDMI接头或线缆之前,建议先将树莓派断电是最安全的。
树莓派的MIPI DSI显示接口
DSI全称为MIPI DSI(Mobile Industry Processor Interface Display Serial Interface),其中MIPI是标准。
DSI是一种基于多路数据通道的高速串行接口。总线上的电压摆幅仅为200mV,产生的电磁噪声和功耗非常小。树莓派上的DSI接口是15针,具有2路数据通道,接口定义如下:
图9-树莓派DSI接口定义
你需要一根15针线缆连接DSI显示屏,这种线缆通常是柔性线材形式,如下这种:
图10-树莓派通过DSI接口连接LCD液晶显示屏的效果
DSI显示总线在在手机或平板上挺多见,所以是一种比较流行的接口。
树莓派的GPIO - DPI显示接口
然后说到DPI接口,全称是Display Parallel Interface,也有称为Display Pixel Interface,是一种并行接口。
在树莓派上,DPI是通过GPIO实现的,可以利用40路GPIO排插连接,提供 RGB24(红色、绿色和蓝色,每种颜色8位)或 RGB666(每种颜色6位)或 RGB565(5位红色、6位绿色和 5位蓝色)等总线连接,时钟速率在70MHz左右。
图11-树莓派DPI接口定义,详见参考链接[2]
图12-树莓派通过DPI接口连接LCD液晶显示屏的效果
这种DPI接口的优点是可支持树莓派的HAT显示屏扩展板形态(Hardware Attached on Top),如上图这种,可以很稳定的固定在树莓派上,价格也便宜。但缺点是占用了太多GPIO,以及本身的总线功耗也不低。
树莓派的GPIO - DBI或SPI显示接口
最后一种是DBI接口,全称是Display Bus interface,如果是HAT显示屏的话其形态与上述DPI很像,也是插在GPIO排插上,但通常基于3或4线SPI的总线协议,占用的GPIO的数量较少。
如果看图1的微雪显示屏型号,可以发现这些基于SPI的显示屏都很小。这是因为通过SPI更新显示内容,如果总线上每个时钟周期传输一位,那么320x240x16bpp就需要 73.728MHz 的SPI总线时钟才能实现60fps刷新频率。在现实中,即使树莓派可以提供高速SPI时钟,但LCD显示屏那边控制器也不一定支持。所以因为SPI时钟频率的限制,这类屏幕通常尺寸或分辨率都比较小。
近几年兴起的小型电子墨水屏(E-INK),多是基于SPI总线,如下所示:
图13-树莓派通过SPI总线接口连接电子墨水屏(E-INK)的效果
参考链接[3]提供了一种提升SPI总线显示屏刷新率的方法,主要原理是所谓的“自适应显示更新”,即不是更新每一个像素,而是仅将屏幕中实际需要更新的像素提交给总线。这种做法的代价是是耗费了额外的计算资源,当然对于学习底层GPU/内存等原理的话,是一个很好的例子。
总结
根据上面的介绍:
- DBI/SPI连接的一般是适合MCU等小型设备的液晶屏,串行总线占用的GPIO数量较少;
- DPI与DBI/SPI的相似性是都用到了GPIO,但DPI对于每种颜色有单独的并行通道,所以占用GPIO数量较多;
- DSI是一种手机/平板上流行的接口,具有低功耗、高速的特点,且GPU能直接驱动(意味着有硬件加速);
- HDMI是大家最熟悉的显示连接方式,一般是连接大型显示器。
从技术先进的角度:DSI与HDMI可以齐名排第一,DPI排第二,DBI/SPI排第三。但从成本优势的角度是反过来的排序。所以,没有最好的,只有根据应用场景选择最合适的显示屏与接口。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)