【总线协议】Intel 8080、M6800接口

103 阅读3分钟

接口简述

Intel 8080接口,来源于Intel 8080微处理器。

Intel 8080是一款历史上非常重要的早期8位微处理器,它在1974年由Intel推出,对个人计算机的发展产生了重大影响。这款处理器通常被认为是第一个真正成功的微处理器,它为后来的微计算机革命奠定了基础。

M6800,来源于摩托罗拉6800微处理器。

M6800是与摩托罗拉6800微处理器相关的总线通信协议。摩托罗拉6800是20世纪70年代中期推出的一种8位微处理器,广泛应用于早期的计算机系统和嵌入式系统。

DBI(Display Bus Interface)显示总线标准,DBI中定义了三类接口。

  • A类:基于Motorola 6800总线
  • B类:基于Intel 8080总线
  • C类:基于SPI/I2C协议

DBI接口最大的特点就是LCM自带 framebuffer, 保存着Host端发过来的数据,并由内部的驱动芯片不断的刷新到LCD上。整体框架如下:

graph TD
LCD控制器 -->DBI接口 -->驱动芯片-->framebuffer -->LCD显示屏

常见的驱动芯片有ILI9486L、ILI9488、ILI9341、SSD1963等。 不同驱动芯片对于颜色数据格式、Command、时序要求有所差异,点屏时需参考芯片手册对工程进行修改。

I8080接口定义

信号功能描述
/CS片选信号,低有效
DC(RS)数据/命令选择端(1:数据,0:命令)
WR写使能,低有效
RD读使能,低有效,读数据时,WR拉高
DB[x:0]8/9/16/18bit 双向数据总线
/RST硬件复位 LCD 信号,低电平有效
IM2/IM1/IM0不同驱动芯片对此定义有所区别

M6800接口定义

信号功能描述
/CS片选信号,低有效
RS数据/命令选择端(1:数据,0:命令)
R/W高:数据可被 CPU 读取; 低:可在 E 下降沿时写入显示数据
E使能信号,写模式:数据锁存于E的下降沿,读模式:当 E 为高电平时读取数据
DB[x:0]8/9/16/18bit 双向数据总线
/RST硬件复位 LCD 信号,低电平有效
  • ILI9486L

image.png

  • ILI9488

image.png

  • ILI9341

image.png

写时序

image.png

读时序

image.png

数据传送模式

支持两种,可通过修改Command选定。 image.png

16bits位宽RGB数据分布

RGB565时序图

image.png RGB666时序图

image.png

Command相关

具体点屏时,需要查询对应驱动芯片手册,通过Command命令对LCD屏幕刷新模式等参数进行设置。

时序要求

点屏模块的设计需满足对应驱动芯片的时序要求。例如,ILI9486L时序特性如下:

cc591244-e616-4846-a8f3-3ef19a5a1295.png

FPGA实现

RTL设计思路:使用三段式FSM按照接口协议进行写入。

Testbench思路:以1pixel为单位依次写入:

  • RGB444(红)—RGB444(绿)—RGB444(蓝);
  • RGB565(红)—RGB565(绿)—RGB565(蓝);
  • RGB666(红)—RGB666(绿)—RGB666(蓝);
  • RGB888(红)—RGB888(绿)—RGB888(蓝)。

实现基本功能的RTL模块仿真波形如下,符合数据手册要求: