CN101937709A - 显示设备软体更新方法 - Google Patents
显示设备软体更新方法 Download PDFInfo
- Publication number
- CN101937709A CN101937709A CN2010102566862A CN201010256686A CN101937709A CN 101937709 A CN101937709 A CN 101937709A CN 2010102566862 A CN2010102566862 A CN 2010102566862A CN 201010256686 A CN201010256686 A CN 201010256686A CN 101937709 A CN101937709 A CN 101937709A
- Authority
- CN
- China
- Prior art keywords
- video card
- module
- built
- equipment
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及显示设备领域,尤其是涉及到液晶显示器制造和售后维修服务,具体的讲是涉及一种显示设备软体更新方法,使用终端用户PC的内置显卡作为烧录设备,使用显卡的DDC(digital display channel)端口,通过I2C协议,将软体数据送入显示设备的FLASH中进行软件更新。本发明与现有技术相比具有以下优点:由于可以使用终端用户PC的内置显卡作为烧录设备,故无需专业售后人员上门维修或End User送修,无需要求End User有专业的设备及专业的知识。可以节约大量的售后维修费用。到达节省维修时间、节省市场不良维修费用的目的。
Description
技术领域
本发明涉及显示设备领域,尤其是涉及到液晶显示器制造和售后维修服务,具体的讲是涉及一种显示设备软体更新方法。
背景技术
最大众化的显示设备是PC用的显示器。最开始的显示器是CRT显示器。显示屏采用的阴极射线管,所有的调整都是靠硬件完成,无需软体支持。随着信息化的发展。出现了电调的CRT显示器,但这时仅仅是些逻辑门的控制电路。90年代出现了有OSD控制界面的显示器,这时候显示器就必须使用MCU的控制系统。MCU简称为单片机,是一种微型处理器,它就需要软体支持。早期的软体只是OSD及画面的控制。只涉及很少的硬件控制,绝大部分还是硬件完成的。软体一股是简单的OSD控制,程序代码少,一股在设计阶段程序就固定不动,量产时软体永久固定在MCU中,不能更新。
液晶显示器是现今主流显示器。与CRT显示器最大的不同是CRT是模拟显示器,液晶显示器是一种全数字化的显示器。这时MCU是显示器真正的大脑,控制了显示器所有的硬件资源。程序也超过10万行。加上每个客户需求千差万别,对应的硬件也不断更新。软体也在不断变化之中。难免出现软体BUG和需要软体克服的硬件问题,都需要更新软体解决。
液晶显示器是一种普遍使用的设备,通常搭配各种PC或视频输出设备使用。但液晶显示器使用的过程中,工作环境和匹配的PC千差万别。在液晶显示器设计和验证的过程中,会进行各种兼容性和可靠性测试。但测试和验证过程中不能将所有的外部和内部因素都在跑和验证中发现。以致在量产销售后留到市场出现不良。
现阶段这类不良,业内普遍做法是尽量通过更新显示器软体克服。但更新软体需要专业设备和经过专门培训的人员操作,如图1,业内普遍使用的液晶显示器通过PC更新软体的连接图,需要专业的设备,如并口烧录板或USB烧录板,且各个芯片厂家的烧录设备不一样。这就为售后及客户端更新显示器软体带来巨大麻烦,往往需要准备多套烧录设备。而且在真正的客户端是没有这些专业的设备。需要专业的技术人员上门处理或让客户将不良显示器送修。这需要大量的售后服务成本。
发明内容
本发明所要解决的技术问题是针对上述现有技术提出一种显示设备软体更新方法,其利用End User自己电脑的显卡作为烧录设备,对不良液晶显示器,进行软体更新,无需并口设备或专业的USB设备更新软体,通过该方法可以实现通过PC内置显卡的DDC端口烧录EDID,HDCP,Gamma等众多显示设备必须数据,通过I2C通信协议进行各类数据传输,以及通过DDC-CI通信实现各种显示设备功能应用如:定时关机,OSD调整,色彩调整等。
本发明为解决上述提出的问题所采用解决方案为:显示设备软体更新方法,其特征在于使用终端用户PC的内置显卡作为烧录设备,使用显卡的DDC(digital display channel)端口,通过I2C协议,将软体数据送入显示设备的FLASH中进行软件更新。
按上述方案,所述的使用终端用户PC的内置显卡作为烧录设备的方法是:在终端用户PC上,安装应用软件,该应用软件首先获得内置显卡的位置,并找到该内置显卡的DDC端口,使用该内置显卡的DDC端口进行烧录,所述的应用软件,包括有驱动部分程序、控制部分程序和FLASH烧录部分程序。
按上述方案,所述的应用软件工作的具体流程步骤是:
1)将驱动部分程序加载在操作系统的内核中,用于直接进入操作系统内核,使得该驱动部分程序成为操作系统的一个大的功能模块,该驱动部分程序:①用于寻找及控制终端用户PC的硬件设备,然后查找终端用户PC的内置显卡,并确认内置显卡的工作状态,最后控制内置显卡使其与内置显卡互相通信;②为控制部分程序提供内部接口;
2)通过控制部分程序调用驱动部分程序,并提供外部接口供FLASH烧录程序调用,该控制部分程序:①用于确定要调用的内置显卡在操作系统中的位置,即在系统内存的地址,通过调用驱动部分程序获得内置显卡的实际物理地址;②通过控制部分程序设定的参数为驱动部分程序提供查找各种类型内置显卡的参数;③通过获得的实际物理地址,调用驱动部分程序,并通过驱动部分程序访问终端用户PC的内置显卡,从而找到内置显卡的DDC端口;④使用内置显卡的DDC端口编写基本的I2C调用函数,供FLASH烧录程序调用,该I2C调用函数为I2C基本函数,实现通过内置显卡的DDC端口的I2C数据通信;
3)FLASH烧录部分程序将需要烧录的文件,转换成I2C指令及数据流,调用控制部分程序通过DDC端口,显示设备软件数据流以I2C协议为载体将显示设备软体数据送入需要更新的显示设备的FLASH中,从而对显示设备进行软体更新。
按上述方案,步骤1)所述的功能模块包括有枚举设备模块,获取设备物理地址模块和DDC端口调用模块;其中
①枚举设备模块:
用于枚举终端用户PC中挂接在PCI总线上的设备,并读取每个设备的PCI配置空间,并将每个设备的VendorID和DeviceID,BusNumber,Bass Address Register,提供给控制部分程序;
②获取设备物理地址模块:
用于将PCI配置空间的Bass Address Register线性的虚拟地址转换成操作系统中实际的物理的地址,并提供给DDC端口调用模块;
③DDC端口调用模块:
结合获取的设备在操作系统中实际的物理地址和控制部分程序调用端口设备模块的DDC端口偏移地址,得到内置显卡的DDC端口在操作系统中的实际物理地址,通过该实际物理地址操作或控制内置显卡DDC端口的输出。
按上述方案,步骤2)所述的控制部分程序包括有十个功能模块,分别为初始化模块、寻找显卡模块、各类显卡参数Table、列入链表模块、搜索链表模块、选择需要的显卡模块、DDC端口初始化模块、I2C实例模块、调用端口设备模块和I2C基本应用接口模块;其中
①初始化模块:
获得驱动部分程序在操作系统中的句柄,通过该句柄激活驱动部分程序的枚举设备模块,使得驱动部分程序枚举终端用户PC中挂接在PCI总线上的设备;
②寻找显卡模块:
从驱动部分程序的枚举设备模块,根据各类内置显卡参数Table提供的数据,筛选出终端用户PC的内置显卡;
③各类显卡参数Table:
提供各种内置显卡的参数,包含如下参数:VendorID、DeviceID、DDC端口偏移地址和SDA SCL的BIT位,其中VendorID和DeviceID提供给寻找显卡模块作为判断枚举的设备是否为内置显卡的依据;
④列入链表模块:
用于寻找显卡模块获得的显卡参数,并将PCI配置空间的BusNumber,Bass AddressRegister列入链表中,一同列入链表中的还包括DDC端口偏移地址和SDA SCL的BIT位;
⑤搜索链表模块:
用于将所有的终端用户PC的内置显卡或多个DDC的端口一一列出来加入下一个对应的链表中,以便选择需要的显卡模块提取需要的内置显卡;
⑥选择需要的显卡模块:
根据实际需要,人工或自动选择实际需要的内置显卡,并将对应的链表指针提供给DDC端口初始化模块;
⑦DDC端口初始化模块:
根据选择需要的显卡模块提供的链表指针,获得需要调用显卡的链表,提取该链表中BusNumber,Bass Address Register数据,传送给驱动部分的获取设备物理地址模块,得到需要调用的终端用户PC的内置显卡在操作系统中实际的物理的地址;
⑧I2C实例模块:
根据选择需要的显卡模块提供的指针,获得需要调用显卡的链表,提取该链表中DDC端口偏移地址、SDA SCL的BIT位数据;
⑨调用端口设备模块:
将I2C实例模块获取的DDC端口偏移地址、SDA SCL的BIT位数据,送往驱动部分的DDC端口调用模块;
⑩I2C基本应用接口模块:
与I2C实例模块相结合,将SCL SDA GETSDA函数设定成I2C基本应用接口供FLASH烧录程序调用。
本发明与现有技术相比具有以下优点:由于可以使用终端用户PC的内置显卡作为烧录设备,故无需专业售后人员上门维修或End User送修,无需要求End User有专业的设备及专业的知识。可以节约大量的售后维修费用。到达节省维修时间、节省市场不良维修费用的目的。
附图说明
图1是现有普遍使用的液晶显示器通过PC更新软体的连接图,需要专业的设备,如并口烧录板或USB烧录板;
图2是本发明液晶显示器通过终端用户PC更新软体的连接图,无需任何额外设备。
图3是获得各种不同类型显卡DDC端口的方框示意图。
图4显示设备软体更新原理图。
图5是本发明的实施例1程序流程图。
图6实施例1的显示设备软体更新的方框图。
具体实施方式
下面结合实施例对本发明作进一步说明,但不能作为对本发明的限定。
实施例1
如图2所示,这里以一台联想开天M3000 PC作为烧录用终端用户PC,该PC安装微软WindowsXP操作系统,AOC 2217V+显示器为软体更新对象说明本发明的具体实施方式。因为AOC 2217V+显示器使用的是Realtek Scalar IC。故本例以Realtek烧录程序为FLASH烧录程序加以描述。
本发明使用终端用户PC的内置显卡作为烧录设备,使用显卡的DDC(digital displaychannel)端口,通过I2C协议,将软体数据送入显示设备的FLASH中进行软件更新。
所述的使用终端用户PC的内置显卡作为烧录设备的方法是:在终端用户PC上,安装应用软件,该应用软件首先获得内置显卡的位置,并找到该内置显卡的DDC端口,使用该内置显卡的DDC端口进行烧录,所述的应用软件,包括有驱动部分程序、控制部分程序和FLASH烧录部分程序。
所述的应用软件工作的具体流程步骤是:
1)将驱动部分程序加载在操作系统的内核中,用于直接进入操作系统内核,使得该驱动部分程序成为操作系统的一个大的功能模块,该驱动部分程序:①用于寻找及控制终端用户PC的硬件设备,然后查找终端用户PC的内置显卡,并确认内置显卡的工作状态,最后控制内置显卡使其与内置显卡互相通信;②为控制部分程序提供内部接口;
2)通过控制部分程序调用驱动部分程序,并提供外部接口供FLASH烧录程序调用,该控制部分程序:①用于确定要调用的内置显卡在操作系统中的位置,即在系统内存的地址,通过调用驱动部分程序获得内置显卡的实际物理地址;②通过控制部分程序设定的参数为驱动部分程序提供查找各种类型内置显卡的参数;③通过获得的实际物理地址,调用驱动部分程序,并通过驱动部分程序访问终端用户PC的内置显卡,从而找到内置显卡的DDC端口;④使用内置显卡的DDC端口编写基本的I2C调用函数,供FLASH烧录程序调用,该I2C调用函数为I2C基本函数,实现通过内置显卡的DDC端口的I2C数据通信;
3)FLASH烧录部分程序将需要烧录的文件,转换成I2C指令及数据流,调用控制部分程序通过DDC端口,显示设备软件数据流以I2C协议为载体将显示设备软体数据送入需要更新的显示设备的FLASH中,从而对显示设备进行软体更新。
所述的功能模块包括有枚举设备模块,获取设备物理地址模块和DDC端口调用模块;其中
①枚举设备模块:
用于枚举终端用户PC中挂接在PCI总线上的设备,并读取每个设备的PCI配置空间,并将每个设备的VendorID和DeviceID,BusNumber,Bass Address Register,提供给控制部分程序;
②获取设备物理地址模块:
用于将PCI配置空间的Bass Address Register线性的虚拟地址转换成操作系统中实际的物理的地址,并提供给DDC端口调用模块;
③DDC端口调用模块:
结合获取的设备在操作系统中实际的物理地址和控制部分程序调用端口设备模块的DDC端口偏移地址,得到内置显卡的DDC端口在操作系统中的实际物理地址,通过该实际物理地址操作或控制内置显卡DDC端口的输出。
所述的控制部分程序包括有十个功能模块,分别为初始化模块、寻找显卡模块、各类显卡参数Table、列入链表模块、搜索链表模块、选择需要的显卡模块、DDC端口初始化模块、I2C实例模块、调用端口设备模块和I2C基本应用接口模块;其中
①初始化模块:
获得驱动部分程序在操作系统中的句柄,通过该句柄激活驱动部分程序的枚举设备模块,使得驱动部分程序枚举终端用户PC中挂接在PCI总线上的设备;
②寻找显卡模块:
从驱动部分程序的枚举设备模块,根据各类内置显卡参数Table提供的数据,筛选出终端用户PC的内置显卡;
③各类显卡参数Table:
提供各种内置显卡的参数,包含如下参数:VendorID、DeviceID、DDC端口偏移地址和SDA SCL的BIT位,其中VendorID和DeviceID提供给寻找显卡模块作为判断枚举的设备是否为内置显卡的依据;
④列入链表模块:
用于寻找显卡模块获得的显卡参数,并将PCI配置空间的BusNumber,Bass AddressRegister列入链表中,一同列入链表中的还包括DDC端口偏移地址和SDA SCL的BIT位;
⑤搜索链表模块:
用于将所有的终端用户PC的内置显卡或多个DDC的端口一一列出来加入下一个对应的链表中,以便选择需要的显卡模块提取需要的内置显卡;
⑥选择需要的显卡模块:
根据实际需要,人工或自动选择实际需要的内置显卡,并将对应的链表指针提供给DDC端口初始化模块;
⑦DDC端口初始化模块:
根据选择需要的显卡模块提供的链表指针,获得需要调用显卡的链表,提取该链表中BusNumber,Bass Address Register数据,传送给驱动部分的获取设备物理地址模块,得到需要调用的终端用户PC的内置显卡在操作系统中实际的物理的地址;
⑧I2C实例模块:
根据选择需要的显卡模块提供的指针,获得需要调用显卡的链表,提取该链表中DDC端口偏移地址、SDA SCL的BIT位数据;
⑨调用端口设备模块:
将I2C实例模块获取的DDC端口偏移地址、SDA SCL的BIT位数据,送往驱动部分的DDC端口调用模块;
⑩I2C基本应用接口模块:
与I2C实例模块相结合,将SCL SDA GETSDA函数设定成I2C基本应用接口供FLASH烧录程序调用。
驱动部分程序通过Visual Studio编译成VideoCardI2C.SYS。VideoCardI2C.SYS即为驱动部分程序,它包括枚举设备模块、获取设备物理地址模块和DCC端口调用模块。将VideoCardI2C.SYS加载到微软WindowsXP操作系统后,在Non-Plug and Play Drivers(非即插即用驱动程序)系统设备中会显示出一个虚拟设备VideoCardI2C。它将与微软WindowsXP操作系统融为一体,是微软WindowsXP操作系统的一个部分。PC上有三条总线,分别为数据总线、地址总线和控制总线,其中32位的CPU的寻址能力为4GB。PC中会拥有很多设备,其中很多设备都提供了自己的设备内存,显卡就会提供自己的内存。这部分内存会映射到PC的物理内存上。虽然可以寻址4GB内存,而在PC里往往没有如此多的真实内存,微软WindowsXP操作系统为使用者提供了虚拟内存的概念。虚拟地址在0-0X7FFFFFFF范围内的虚拟地址内存,即低2GB为虚拟地址,被称为用户模式地址。而0X80000000-0XFFFFFFFF范围内的虚拟地址内存,即高2GB为虚拟地址,被称为内核模式地址。微软WindowsXP操作系统规定运行在用户状态的程序,只能访问用户模式地址,而运行在核心态的程序,可以访问整个4GB的虚拟内存,即用户模式地址和内核模式地址。要访问显卡DDC端口的程序必须运行在内核模式地址。如图3方框图所示,说明了显卡DDC端口的获得方法的思想,描述了访问PC硬件的方法。
控制部分程序同样通过Visual Studio编译成VideoCardio.dll,VideoCardio.dll是一个动态链接库程序,供FLASH烧录程序调用,这里是供Realtek烧录程序调用。VideoCardio.dll包括初始化模块、寻找显卡模块、各类显卡参数Table、列入链表模块、搜索链表模块、选择需要的显卡模块、DDC端口初始化模块、I2C实例模块、调用端口设备模块和I2C基本应用接口模块。控制部分程序工作在用户模式地址,控制程序工作在用户模式有助于增加程序稳定性。因为Windows驱动程序虽然和普通Win32应用程序一样,都是用C语言或者C++编写,但是比起普通应用程序,增加了很多严格的限制,很多C语言和C++语言的使用技巧要谨慎使用,而且驱动程序代码过大会降低Windows的执行效率,所以需要将尽量多的功能放在控制部分程序。
如图5为2217V+通过联想开天M3000 PC更新软体的方框图。说明了这种新的显示设备软体更新方法的流程。
当Realtek烧录程序,也就是烧录程序初次更新2217V+显示器软体时,Realtek烧录程序会调用控制部分程序(VideoCardio.dll)如图4的初始化模块,控制部分程序(VideoCardio.dll)会打开WindowsXP操作系统的驱动设备,并找到VideoCardI2C.SYS驱动设备的句柄。并通过该句柄发出IRP(I/O Request Package即输入输出请求包),调用VideoCardI2C.SYS驱动程序的枚举设备模块,枚举设备模块会枚举PC中的设备。如各类显卡、PCI设备、声卡。根据PCI规范所有的PCI桥接设备都是以VendorID & DeviceID区分。枚举设备模块会通过IRP,送往控制部分程序(VideoCardio.dll)的寻找显卡模块。寻找显卡模块会根据各类显卡参数Table确认本机显卡类型,联想开天M3000 PC的显卡为Intel 845G集成显卡,VendorID & DeviceID分别为0x8086,0x2572。当VideoCardI2C.SYS驱动程序的枚举设备模块枚举到Intel 845G集成显卡VendorID & DeviceID(0x8086,0x2572)后,将显卡配置空间的参数列入链表模块中,如BusNumber,Bass Address Register;并且从各类显卡参数Table中提取VendorID& DeviceID为0x8086,0x2572的一列参数。I2CAddress_Offset(DDC端口偏移地址)、SDA_HIGH、SDA_LOW、SCL_HIGH、SCL_LOW、GetSDA_Offset、VideoCard_Style等一同列入显卡链表同一个元素中。因为一台PC可能有多个显卡,或一个显卡有多个DDC端口。所以寻找显卡模块会将所有的显卡一个个列入下一个链表的元素中。接下来只要选择需要使用哪个显卡的DDC端口,联想开天M3000 PC只有一个Intel 845G集成显卡。VendorID & DeviceID分别为0x8086,0x2572,调用搜索链表模块,我们就在链表中找到这个显卡。再调用选择需要的显卡模块,我们这里使用的这个显卡参数为如下:
VendorID,DeviceID,I2CAddress_Offset,SDA_HIGH,SDA_LOW,GetSDA_Offset,SCL_HIGH,SCL_LOW,GetSCL_Offset,VideoCard_Style
{0x8086,0x2572,0x5010,0x00000100,0x00000700,0x00001000,0x00000001,0x00000007,0x00000010,0x0001},
当确定要调用的显卡后,程序会运行DDC端口初始化模块,通过IRP将Bass AddressRegister送往VideoCardI2C.SYS驱动程序的获取设备物理地址模块。Bass Address Register实际是分配在操作系统中虚拟地址,也就是内核模式地址。联想开天M3000 PC的显卡为Intel845G集成显卡,通过Intel 845G PCI配置空间,可以得到Bass Address Register为0XFD000000,该地址在0X80000000-0XFFFFFFFF范围内,即高2GB为虚拟地址,也称内核模式地址。VideoCardI2C.SYS驱动程序的获取设备物理地址模块就是进行内核地址转换功能使用。这里经过转换后的物理地址为0xB2800000,这个地址是Intel 845G PCI集成显卡在WindowsXP实际的物理地址,往这些地址写入或读取数据都是对Intel 845G PCI集成显卡的实际操作。
I2CAddress_Offset,SDA_HIGH,SDA_LOW,GetSDA_Offset,SCL_HIGH,SCL_LOW,GetSCL_Offset,VideoCard_Style参数会通过I2C实例模块。实例成的I2C总线函数,函数会通过调用端口设备模块发出IRP调用VideoCardI2C.SYS驱动程序的DDC端口调用模块,IRP同时将I2CAddress_Offset送往VideoCardI2C.SYS驱动程序的DDC端口调用模块,在DDC端口调用模块中I2CAddress_Offset与Bass Address Register实际物理地址相加,得到DDC端口的实际物理地址。Intel 845G PCI集成显卡DDC的I2CAddress_Offset为0x5010,与实际物理地址0xB2800000相加等于0xB28005010,这个地址是DDC端口的物理地址,对该地址的读写,就是对DDC端口的实际操作。
接下来需要将对DDC端口的实际操作,转换成I2C基本函数,I2C基本应用接口模块就完成了该功能,I2C总线支持任何IC生产过程NMOS CMOS双极性两线——串行数据SDA和串行时钟SCL。I2C总线是一个多主机的总线这就是说可以连接多于一个能控制总线的器件到总线由于这里的主机是PC,从机是MONITOR。I2C总线函数直接设计成SCL_HIGH、SCL_LOW、SDA_HIGH、SDA_LOW、Get_SDA几个主要函数。当FLASH烧录程序调用这几个函数时。这些函数会根据已经确定的显卡参数,调用端口设备模块,进而通过IRP调用VideoCardI2C.SYS驱动程序的DDC端口调用模块,直接在Windows操作系统内核中修改显卡的物理内存地址DDC的BIT位。到达调用DDC端口的目的,并使得DDC端口输出符合I2C规范的波形。
I2C数据的传输遵循I2C 7位地址格式(详细状况参阅I2C总线规范),在起始条件Start后发送了一个从机地址这个地址共有7位紧接着的第8位是数据方向位R/W 0表示发送写1表示请求数据读数据传输一股由主机产生的停止位Stop终止。然后将这些函数做成API连接到各IC厂家的FLASH烧录程序上。各厂家的FLASH烧录程序就可以实现通过DDC(digitaldisplay channel)数据显示通道更新软体的目的。
这里的Realtek FLASH烧录程序,直接使用I2C基本应用接口模块的I2CWrite_VideoCard函数。实现DDC端口I2C通信,将需要更新的显示设备软体转换成I2C指令及数据流,用I2C的通信协议送入DDC端口,DDC端口通过信号线送入被更新显示器的FLASH中,完成显示器软体的更新。图6显示设备软体更新的具体实施方式方框图。描述了实际的显示设备软体更新系统。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (5)
1.显示设备软体更新方法,其特征在于使用终端用户PC的内置显卡作为烧录设备,使用显卡的DDC端口,通过I2C协议,将软体数据送入显示设备的FLASH中进行软件更新。
2.按权利要求1所述的显示设备软体更新方法,其特征在于所述的使用终端用户PC的内置显卡作为烧录设备的方法是:在终端用户PC上,安装应用软件,该应用软件首先获得内置显卡的位置,并找到该内置显卡的DDC端口,使用该内置显卡的DDC端口进行烧录,所述的应用软件,包括有驱动部分程序、控制部分程序和FLASH烧录部分程序。
3.按权利要求2所述的显示设备软体更新方法,其特征在于所述的应用软件工作的具体流程步骤是:
1)将驱动部分程序加载在操作系统的内核中,用于直接进入操作系统内核,使得该驱动部分程序成为操作系统的一个大的功能模块,该驱动部分程序:①用于寻找及控制终端用户PC的硬件设备,然后查找终端用户PC的内置显卡,并确认内置显卡的工作状态,最后控制内置显卡使其与内置显卡互相通信;②为控制部分程序提供内部接口;
2)通过控制部分程序调用驱动部分程序,并提供外部接口供FLASH烧录程序调用,该控制部分程序:①用于确定要调用的内置显卡在操作系统中的位置,即在系统内存的地址,通过调用驱动部分程序获得内置显卡的实际物理地址;②通过控制部分程序设定的参数为驱动部分程序提供查找各种类型内置显卡的参数;③通过获得的实际物理地址,调用驱动部分程序,并通过驱动部分程序访问终端用户PC的内置显卡,从而找到内置显卡的DDC端口;④使用内置显卡的DDC端口编写基本的I2C调用函数,供FLASH烧录程序调用,该I2C调用函数为I2C基本函数,实现通过内置显卡的DDC端口的I2C数据通信;
3)FLASH烧录部分程序将需要烧录的文件,转换成I2C指令及数据流,调用控制部分程序通过DDC端口,显示设备软件数据流以I2C协议为载体将显示设备软体数据送入需要更新的显示设备的FLASH中,从而对显示设备进行软体更新。
4.按权利要求3所述的显示设备软体更新方法,其特征在于步骤1)所述的功能模块包括有枚举设备模块,获取设备物理地址模块和DDC端口调用模块;其中
①枚举设备模块:
用于枚举终端用户PC中挂接在PCI总线上的设备,并读取每个设备的PCI配置空间,并将每个设备的VendorID和DeviceID,BusNumber,Bass Address Register,提供给控制部分程序;
②获取设备物理地址模块:
用于将PCI配置空间的Bass Address Register线性的虚拟地址转换成操作系统中实际的物理的地址,并提供给DDC端口调用模块;
③DDC端口调用模块:
结合获取的设备在操作系统中实际的物理地址和控制部分程序调用端口设备模块的DDC端口偏移地址,得到内置显卡的DDC端口在操作系统中的实际物理地址,通过该实际物理地址操作或控制内置显卡DDC端口的输出。
5.按权利要求3或4所述的显示设备软体更新方法,其特征在于步骤2)所述的控制部分程序包括有十个功能模块,分别为初始化模块、寻找显卡模块、各类显卡参数Table、列入链表模块、搜索链表模块、选择需要的显卡模块、DDC端口初始化模块、I2C实例模块、调用端口设备模块和I2C基本应用接口模块;其中
①初始化模块:
获得驱动部分程序在操作系统中的句柄,通过该句柄激活驱动部分程序的枚举设备模块,使得驱动部分程序枚举终端用户PC中挂接在PCI总线上的设备;
②寻找显卡模块:
从驱动部分程序的枚举设备模块,根据各类内置显卡参数Table提供的数据,筛选出终端用户PC的内置显卡;
③各类显卡参数Table:
提供各种内置显卡的参数,包含如下参数:VendorID、DeviceID、DDC端口偏移地址和SDA SCL的BIT位,其中VendorID和DeviceID提供给寻找显卡模块作为判断枚举的设备是否为内置显卡的依据;
④列入链表模块:
用于寻找显卡模块获得的显卡参数,并将PCI配置空间的BusNumber,Bass AddressRegister列入链表中,一同列入链表中的还包括DDC端口偏移地址和SDA SCL的BIT位;
⑤搜索链表模块:
用于将所有的终端用户PC的内置显卡或多个DDC的端口一一列出来加入下一个对应的链表中,以便选择需要的显卡模块提取需要的内置显卡;
⑥选择需要的显卡模块:
根据实际需要,人工或自动选择实际需要的内置显卡,并将对应的链表指针提供给DDC端口初始化模块;
⑦DDC端口初始化模块:
根据选择需要的显卡模块提供的链表指针,获得需要调用显卡的链表,提取该链表中BusNumber,Bass Address Register数据,传送给驱动部分的获取设备物理地址模块,得到需要调用的终端用户PC的内置显卡在操作系统中实际的物理的地址;
⑧I2C实例模块:
根据选择需要的显卡模块提供的指针,获得需要调用显卡的链表,提取该链表中DDC端口偏移地址、SDA SCL的BIT位数据;
⑨调用端口设备模块:
将I2C实例模块获取的DDC端口偏移地址、SDA SCL的BIT位数据,送往驱动部分的DDC端口调用模块;
⑩I2C基本应用接口模块:
与I2C实例模块相结合,将SCL SDA GETSDA函数设定成I2C基本应用接口供FLASH烧录程序调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010256686 CN101937709B (zh) | 2010-08-19 | 2010-08-19 | 显示设备软件更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010256686 CN101937709B (zh) | 2010-08-19 | 2010-08-19 | 显示设备软件更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101937709A true CN101937709A (zh) | 2011-01-05 |
CN101937709B CN101937709B (zh) | 2013-10-16 |
Family
ID=43390993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010256686 Expired - Fee Related CN101937709B (zh) | 2010-08-19 | 2010-08-19 | 显示设备软件更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101937709B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364443A (zh) * | 2011-06-27 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种在线烧写网卡配置文件的方法 |
CN103838600A (zh) * | 2012-11-22 | 2014-06-04 | 三星电子株式会社 | 用于基于操作状态控制驱动条件的方法和电子设备 |
CN109739787A (zh) * | 2018-12-17 | 2019-05-10 | 联想(北京)有限公司 | 一种主板、显卡、电子设备和数据传输方法 |
CN109960524A (zh) * | 2019-03-22 | 2019-07-02 | 威海优微科技有限公司 | 一种通过i2c进行在线软件升级的方法及其设备 |
CN114706602A (zh) * | 2022-04-01 | 2022-07-05 | 珠海读书郎软件科技有限公司 | 一种基于Android的通过app更新触摸屏参数的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079247A (zh) * | 2007-06-05 | 2007-11-28 | 东莞黄江达裕科技电子厂 | 一种显示设备数据更新方法及装置 |
US20080109765A1 (en) * | 2006-11-03 | 2008-05-08 | Samsung Electronics Co., Ltd. | Display apparatus and information update method thereof |
CN201204030Y (zh) * | 2008-04-11 | 2009-03-04 | 左瑞娟 | 一种更新液晶显示器的edid的装置 |
-
2010
- 2010-08-19 CN CN 201010256686 patent/CN101937709B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080109765A1 (en) * | 2006-11-03 | 2008-05-08 | Samsung Electronics Co., Ltd. | Display apparatus and information update method thereof |
CN101079247A (zh) * | 2007-06-05 | 2007-11-28 | 东莞黄江达裕科技电子厂 | 一种显示设备数据更新方法及装置 |
CN201204030Y (zh) * | 2008-04-11 | 2009-03-04 | 左瑞娟 | 一种更新液晶显示器的edid的装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364443A (zh) * | 2011-06-27 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种在线烧写网卡配置文件的方法 |
CN103838600A (zh) * | 2012-11-22 | 2014-06-04 | 三星电子株式会社 | 用于基于操作状态控制驱动条件的方法和电子设备 |
CN103838600B (zh) * | 2012-11-22 | 2019-03-08 | 三星电子株式会社 | 用于基于操作状态控制驱动条件的方法和电子设备 |
CN109739787A (zh) * | 2018-12-17 | 2019-05-10 | 联想(北京)有限公司 | 一种主板、显卡、电子设备和数据传输方法 |
CN109960524A (zh) * | 2019-03-22 | 2019-07-02 | 威海优微科技有限公司 | 一种通过i2c进行在线软件升级的方法及其设备 |
CN114706602A (zh) * | 2022-04-01 | 2022-07-05 | 珠海读书郎软件科技有限公司 | 一种基于Android的通过app更新触摸屏参数的方法 |
CN114706602B (zh) * | 2022-04-01 | 2023-03-24 | 珠海读书郎软件科技有限公司 | 一种基于Android的通过app更新触摸屏参数的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101937709B (zh) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100321395A1 (en) | Display simulation system and method | |
CN101937709B (zh) | 显示设备软件更新方法 | |
CN100510852C (zh) | 一种液晶显示模块测试系统 | |
CN101221524B (zh) | 显示器调试系统及其调试方法 | |
WO2020057084A1 (zh) | 显示模组测试平台 | |
CN103472748A (zh) | 时序控制电路的验证系统和验证方法 | |
US8237695B2 (en) | Codec control | |
US20210056010A1 (en) | Splicing Screen Debugging Method, Splicing Screen And Splicing Wall | |
US20100107011A1 (en) | Device and Method for Outputting BIOS Post Code | |
CN104407956A (zh) | 通过串口调试的iic总线实验装置 | |
CN102110473B (zh) | 显示设备的edid数据烧写和校验方法及系统 | |
CN204270290U (zh) | 通过串口调试的iic总线实验装置 | |
CN109117108B (zh) | 一种显示配置方法和系统 | |
CN103886847B (zh) | 基于大屏幕液晶拼接显示的开窗控制器及其控制方法 | |
US11842704B2 (en) | Mainboard with at least two interfaces to boost performance for connecting different displays and the related device and method | |
US10657076B2 (en) | Electronic apparatus and method of extending peripheral device | |
CN101727374A (zh) | 一种ps/2接口的测试方法 | |
CN111338753B (zh) | 基于计算机实现电子控制单元硬件仿真的系统 | |
CN113157327A (zh) | 基于mcu可适配不同尺寸显示模组的驱动系统及方法 | |
TWI779273B (zh) | 電子裝置與多螢幕顯示方法 | |
CN113467729B (zh) | 电子装置与多屏幕显示方法 | |
TWI720426B (zh) | 電子裝置及擴展周邊設備的方法 | |
TWI223769B (en) | Method of transmitting display data | |
CN103631548A (zh) | 影像外接装置及处理影像外接装置的方法 | |
CN103077040A (zh) | Lcd模块自动识别方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131016 Termination date: 20180819 |
|
CF01 | Termination of patent right due to non-payment of annual fee |