一种LCD屏地址转换接口电路
技术领域
本发明涉及LCD屏幕,具体地说涉及LCD屏地址转换接口电路。
背景技术
市面上LCD屏幕品种繁多,采取刷屏的方式主要有DBI和DPI两种。其中,采用DBI刷屏时,对地址格式的要求一般为一组地址信息队列,队列的传送包括同时对地址数据(即刷屏所对应的起始地址和结束地址(或者区域高度和宽度))和地址命令(即LCD屏装载地址数据的地址寄存器的对应物理地址)的传送。刷屏的地址格式需求因厂家不同而差异很大。为了适应市面上LCD屏幕需求的变化,有必要设计出一种灵活的地址变换接口电路。
传统的实现方式一般定义一组头数据来定义刷屏的地址信息,比如需要定义一组16位寄存器来存储地址数据和地址命令。这组寄存器通常被称为头数据寄存器。
由于LCD屏对地址数据和命令传送的顺序有自己严格的要求,所以还需要一组位置信息寄存器来定义起始地址和结束地址在头数据中的位置信息。
传统方式一是以字节为单位来配置头数据,所有地址命令信息均由软件配置在头数据上,硬件电路只是按LCD要求配制地址数据信息到头数据寄存器上。此种方式不会出现在一个字节中同时包含地址数据和命令信息的情况。
传统方式二在方式一的基础上增加了硬件电路在同一个字节中同时对地址命令信息和地址数据信息的配置,但是一般只支持一个字节中包含四位地址数据和四位地址命令的格式情况。
以上两种传统的实现方式可参考图1。图1(a)和(b)分别是传统方式一和二的地址信息配置格式,图1(c)给出了一种四位地址数据和四位地址命令的格式采用传统方式二处理的头数据配置地址信息流程。
针对一个字节里面同时包含地址数据信息和地址命令信息,这种情况需要将原始的地址数据和命令进行重组(传统二方式只支持一个字节里面命令和地址各占四位的情况),然后寄存在头数据寄存器序列中,按照8位或者16位方式把头数据寄存器中的数顺序送出去。
目前方法存在不足之处。
传统方式一的解决方案只能针对同一个字节中地址数据和命令分开传送的情况。
虽然传统方式二的解决方案支持同一字节中地址数据和地址命令一并传送,但是它只适用在数据和地址位为固定位数的某种特殊情况(一般是地址数据和地址命令各四位的情况)。
采用传统的两种实现方式均有其局限性,灵活性不够。当地址数据和地址命令一起传送时,不同屏传送的地址头信息中,地址数据和地址命令位数可能不一样,采用传统的地址接口转换电路,不能支持。因此迫切的需要一种更灵活的机制来支持各种LCD屏对地址格式的不同需求。
此外,传统模式不分16位和8位数据需求,每次总是发送16位数据。对于接受16位的屏不存在资源浪费问题,而对于只接受低8位的LCD,高8位数据会认为无效,这样造成高8位寄存器资源浪费。
发明内容
本发明的目的是针对传统方式不能很好支持某些特殊屏的问题,提供了一套更灵活更简洁的接口实现模式,来支持各种LCD屏对地址格式的不同需求。
为此,本发明针对一个字节里面同时包含地址数据信息和地址命令信息的情况,将原始的地址数据和命令进行重组,然后寄存在头数据寄存器序列中,按照8比特或者16比特方式把头数据寄存器中的数顺序送出去。
在第一方面,本发明提供一种LCD屏地址转换接口电路,包括存储地址数据和地址命令的头数据寄存器;其特征在于地址数据按位划分为至少一个地址数据部分,所述接口电路包括定义所述至少一个地址数据部分在头数据中的位置的位置信息寄存器,依据该位置信息寄存器中的位置信息,头数据寄存器将该至少一个地址数据部分和地址命令重组,并且传送给LCD屏。
在第二方面,本发明提供一种LCD屏地址转换方法,其特征在于包括根据LCD屏的数据格式,确定待转换的地址数据的至少一部分和该部分拟存储在头数据中的位置;将地址数据部分和地址命令按位重组;将重组后的地址信息送往LCD屏。
本发明的LCD屏地址转换接口方案较为灵活,支持按位配置地址信息。
附图说明
下面将参照附图对本发明的具体实施方案进行更详细的说明,附图中:
图1(a)和(b)分别是传统方式一和二的地址信息配置格式;
图1(c)是传统方式二的头数据配置地址信息流程;
图2是本发明地址信息配置实现流程图。
具体实施方式
本发明可以通过软件配置所需要的所有地址命令的信息。对于一个字节中同时包含地址命令和地址数据的情况时,地址命令部分由软件负责,地址数据部分由硬件负责。实际实现中,软件硬件均按字节方式操作。软件配置这个字节时,配置好相应位的地址命令,对于硬件电路需配置的地址数据部分软件通过配零的方式。同样的,硬件电路配置所需要的地址数据信息即可,硬件不直接配置头数据,而是配置一个与头数据同宽的寄存器中所需要的地址数据信息,将软件所配置的地址命令部分配零。这样对软件和硬件分别配置后的寄存器求或就可以得到LCD屏最终所需要的地址信息。需要指出的是,这里所采取的配零和求或措施仅属举例,还可以采取其它的类似措施将地址数据和地址命令配置在同一个寄存器中,而先后配置的地址数据和地址命令不会互相干扰和影响。
接下来,对此方案展开说明。
通过分析屏对地址数据需求的特点,最多需要将每一个地址信息分为例如三部分,每一部分以字节为单位,具体可以将地址分为以下部分来考虑。
Start_x_part1 |
Start_x_part2 |
Start_x_part3 |
Start_y_part1 |
Start_y_part2 |
Start_y_part3 |
end_x_part1 |
end_x_part2 |
end_x_part3 |
end_y_part1 |
end_y_part2 |
end_y_part3 |
表一:地址数据表
硬件所需要的是将这些地址信息根据LCD屏的需求与固定的头数据求或,就可以得到最终的地址队列信息。
Head0[16] |
Head0[15] |
----- |
Head0[1] |
Head0[0] |
Head1[16] |
Head1[15] |
----- |
Head1[1] |
Hea d1[0] |
------ |
------ |
----- |
------ |
------ |
Head15[16] |
Head15[15] |
----- |
Head15[1] |
Head15[0] |
表二:头寄存器数据表
以start_x为例,可以分为两步来实现。
在步骤一,确定LCD屏需要将start_x分为哪几部分,可定义一个两位的模式寄存器来判断。模式寄存器的数据格式如下:
00:不需要配置start_x到地址数据信息中
01:需要配置start_x信息,且只有一部分需要配置。
10:需要配置start_x信息,分成两部分来配置。
11:需要配置start_x信息,分成三部分来配置。
针对每一部分的配置,可以从步骤二角度考虑。
在步骤二:1).确定要配置start_x的哪一部分。
2).确定这一部分包括start_x的哪些位。
3).确定需要将这一部分放置在头数据中的哪个位置。
下面举个例子说明。
对于某款屏,必须发送下列一组数据才被认为一组有效的地址信息,即{Command[6:0],start_Y[8]}>start_Y[7:0]>command[7:0]>start_X[7:0]>command[7:0]。
1)首先确定只需要配置起始地址start_Y,start_X,且start_Y被分成start_Y[8]和start_Y[7:0]两部分,start_X只有一部分start_X[7:0]。
2)这款屏不需要配置结束地址end_x,end_y。
3)完成步骤二,拿start_Y来说。
根据地址序列,可知确定将start_Y的第一部分包括start_Y的位[0]至位[7],且放在头数据寄存器序列中的第二个位置。Start_Y第二部分为位[8],且放在头数据寄存器序列中的第一个位置的位[0]上(此寄存器(位7-位1均为0,位0=Start_Y[0])最终值需要跟(command[6:0],0)做或逻辑),根据这些信息可以很轻松配置完start_Y的信息。需要说明,地址数据和地址命令重组还可以采取除或逻辑之外的其它重组方式。
4)类似操作3,依次实现start_X,start_Y,end_X,end_Y的配置到头数据寄存器序列中,按顺序刷出去即可。
本发明采取按X起始地址,X结束地址,Y起始地址和Y结束地址配制顺序来实现。本发明所支持的每个地址可分成三部分,完成一次地址信息的配置最多需要十二次。图2是本发明地址信息配置实现流程图。
本发明方案具有下列优点:
(1)灵活,支持按位配置地址信息;
提供一种更灵活的地址接口模式,支持地址队列里同一字节中包含地址命令和地址命令的传送。而且能按位控制地址命令和数据的信息,极大的提高了接口模式的灵活性,基本上能覆盖到市面上所有屏的特殊要求。
(2)针对市面上两种不同位宽的地址总线,通过增加一位判断模式寄存器,减少头数据寄存器的数量,从而达到减少硬件代价的目的。
(3)实现方式更加简单,逻辑更加清新。
此外,针对地址总线位宽不一致的情况,本发明设置一个总线模式寄存器对总线模式判断来选择传送数据的方式,分字节或16位来传送。对于16位屏需求,R为1,每次发送一个16位头数据信息,对于8位屏需求,R为0,每次发送一个8位有效数据。可将32个16位头数据的需求量减半,不存在高位寄存器资源浪费,减少了硬件的实现代价。
显而易见,在此描述的本发明可以有许多变化,这种变化不能认为偏离本发明的精神和范围。因此,所有对本领域技术人员显而易见的改变,都包括在本权利要求书的涵盖范围之内。