总线传输装置和方法

文档序号:6606733阅读:213来源:国知局
专利名称:总线传输装置和方法
技术领域
本发明涉及串行数据总线的传输技术,特别涉及适用于内部集成电路 (Inter-Integrated Circuit, I2C)总线的一种总线传输装置、以及一种总线传输方法。
背景技术
I2C总线是一种常用于数据传输的串行总线、并广泛应用于各领域。图1为现有技术中I2C总线的一种典型应用的实例示意图。如图1所示,I2C总线包括一串行数据信号线(Serial Data,SDA)、以及一串行时钟信号线(Serial Clock Line, SCL),网络通讯设备中的CPU作为1 主机,其通过1 总线挂接有温度传感器、非易失性可擦写只读存储器(E2PROM)、风扇、模拟开关等具有1 总线接口的1 设备。然而,类似于如图1所示的1 主机挂接多个1 设备的典型应用中,通常会存在如下问题1、同一 1 主机无法支持不同速率的传输当同一个1 主机所挂接的多个1 设备采用高低不同的速率模式(高速模式、快速模式、标准模式)时,虽然高速模式和快速模式能够向下兼容,但快速模式和标准模式却无法向上兼容,因而即便有1 设备采用高速模式,1 主机也只能以所有1 设备中采用的最低的快速模式、甚至标准模式与所有1 设备通信,从而使支持高速率模式的1 设备的传输速率受限;而且,由于不同生产厂家的实现的器件指标不同,不同生产厂家的1 设备在同一速率模式的典型速率又有可能互不相同,例如,标准模式下的速率范围0 lOOlcbps、快速模式下的速率范围0 4001ibpS、高速模式下的速率最高可达3. 4Mbps,每种速率模式下的典型速率差异很大;因此,即便是所有1 设备均采用同一速率模式,I2C主机也不得不以该速率模式下最低的一种典型速率与所有1 设备通信,而无法使同一速率模式下的典型速率差异无法相互适配。2、页面模式写的固有特性导致的问题为了克服单字节写所导致的写效率低的缺点,现有的多数1 设备都会支持页模式写,但由于不同生产厂家的1 设备所支持的物理页面大小不一定相同,例如8字节、16 字节、32字节等,因而导致1 主机中用于页面模式写的软件难以达到统一。3、I2C主机的效率不高 对于连续传输的情况,如果采用查询方式驱动数据传输,则需要占用1 主机的资源来频繁查询,从而会降低1 主机的效率;而如果采用中断方式驱动数据传输,虽然1 主机的效率相比于查询方式能够略有提高,但对于字节传输或小页面传输的情况,产生中断的频率会比较高,仍然会导致1 主机的过多资源被占用,从而也会降低1 主机的效率;
而且,标准模式和快速模式下的读、写操作之间均需要预定的切换间隔、页面模式写时的页与页之间也存在预订的页面间隔,而不同生产厂家的1 设备所需要的上述间隔有可能互不相同、且均不受控于1 主机,从而使得1 主机不得不进行长时间的无谓等待,进而也会降低1 主机的效率。

发明内容
有鉴于此,本发明提供了一种总线传输装置、以及一种总线传输方法,能够使同一 I2C主机支持多种速率的传输,进一步地,还可能同时兼容字节读写和不同大小物理页面的页面读写、以及提高1 主机的效率。本发明提供的一种总线传输装置,该总线传输装置包括一本地总线单元,其通过本地总线连接1 主机;分别对应不同速率模式的若干线路数据单元,对应每种速率模式的一个线路数据单元通过一路1 总线与采用该速率模式的1 设备相连;核心处理单元,其在任意1 设备初始化时,通过本地总线单元接收1 主机针对该1 设备的配置命令以及该1 设备的速率模式、典型速率、设备地址,并依据配置命令记录该1 设备的速率模式、典型速率、设备地址;在通过本地总线单元接收1 主机针对任意 1 设备的读命令及对应的设备地址后,驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址从该1 设备读取数据、供1 主机获取;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后, 驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址将待写入的数据写入该1 设备。核心处理单元进一步缓存对应的线路数据单元以字节为单位所读取到的连续数据,每当缓存的数据达到预定逻辑页面大小、或读取数据完成时,通知1 主机以逻辑页面为单位获取读取的数据;核心处理单元进一步缓存来自1 主机的待写入的连续数据,每当缓存的待写入的数据达到预定逻辑页面大小、或接收待写入的数据完成时,驱动对应的线路数据单元以字节为单位将该逻辑页面内的待写入的数据写入至1 设备,且每完成一个逻辑页面的写入后通知1 主机。核心处理单元以中断上报的方式通知1 主机以逻辑页面为单位获取读取的数据、以及通知1 主机已完成一个逻辑页面的写入。核心处理单元进一步依据配置命令,记录1 主机提供的1 设备的操作切换间隔、物理页面大小、页面间隔。核心处理单元包括设备特征子单元、接口缓存、处理控制子单元、以及分别对应每一速率模式的缓冲区,其中,在任意1 设备初始化时,处理控制子单元通过本地总线单元接收1 主机针对该 1 设备的配置命令,并依据配置命令将1 主机写入至接口缓存的该1 设备的速率模式、 典型速率、设备地址记录于设备特征子单元;在通过本地总线单元接收1 主机针对任意1 设备的读命令及对应的设备地址后,处理控制子单元驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址以字节为单位从该1 设备读取数据、并缓存于该速率模式对应的缓冲区,每当有任意速率模式对应的缓冲区的数据达到预定逻辑页面大小、或读取数据完成时, 将该速率模式对应的缓冲区中缓存的数据移至接口缓存、并通过上报中断信号来通知1 主机以逻辑页面为单位从接口缓存获取读取的数据;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,待写入的数据被连续缓存至接口缓存,每当接口缓存中的数据达到预定逻辑页面大小、或接收待写入的数据完成时,处理控制子单元将接口缓存中已达到逻辑页面大小的数据移至该1 设备的速率模式所对应的缓冲区中,并驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址,将该1 设备的速率模式所对应的缓冲区中的待写入的数据以字节为单位写入至该1 设备,且在每完成一个逻辑页面的写入后,处理控制子单元通过上报中断信号来通知1 主机。接口缓存、以及分别对应每一速率模式的缓冲区,分别设置为预定逻辑页面的大小。核心处理单元进一步包括接口命令寄存器,用于通过本地总线单元接收1 主机针对该1 设备的配置命令、读命令、以及写命令;接口地址寄存器,用于通过本地总线单元接收1 主机发送的当前读命令或写命令所对应的设备地址;接口状态寄存器,用于处理控制子单元向1 主机告知中断信号所针对的速率模式、以及处理控制子单元当前所处理的速率模式。接口模式寄存器,用于I2C主机告知处理控制子单元需要屏蔽中断信号的速率模式。本发明提供的一种总线传输方法,设置分别对应不同速率模式的若干路1 总线, 对应每种速率模式的一路1 总线挂接有采用该速率模式的1 设备,且该总线传输方法包括在任意1 设备初始化时,通过本地总线接收1 主机针对该1 设备的配置命令以及该1 设备的速率模式、典型速率、设备地址,并依据配置命令记录该1 设备的速率模式、典型速率、设备地址;在通过本地总线接收1 主机针对任意1 设备的读命令及对应的设备地址后,通过该1 设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址从该1 设备读取数据、供1 主机获取;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,通过该1 设备的速率模式所对应的一路I2C总线,按照该1 设备的典型速率和设备地址将待写入的数据写入该1 设备。该总线传输方法进一步缓存对应的线路数据单元以字节为单位所读取到的连续数据,每当缓存的数据达到预定逻辑页面大小、或读取数据完成时,通知1 主机以逻辑页面为单位获取读取的数据;该总线传输方法进一步缓存来自1 主机的待写入的连续数据,每当缓存的待写入的数据达到预定逻辑页面大小、或接收待写入的数据完成时,在对应的一路1 总线以字节为单位将该逻辑页面内的数据写入1 设备,且每完成一个逻辑页面的写入后通知1 主机。该总线传输方法以中断上报的方式通知1 主机以逻辑页面为单位获取读取的数据、以及通知1 主机已完成一个逻辑页面的写入。该总线传输方法预先设置设备特征表、接口缓存、以及分别对应每一速率模式的缓冲区,其中,在任意1 设备初始化时,该总线传输方法通过本地总线单元接收1 主机针对该 1 设备的配置命令,并依据配置命令将1 主机写入至接口缓存中的该1 设备的速率模式、典型速率、设备地址记录于设备特征表中;在通过本地总线单元接收1 主机针对任意1 设备的读命令及对应的设备地址后,该总线传输方法通过该1 设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址从该1 设备以字节为单位读取数据、并缓存于该速率模式对应的缓冲区中,每当有任意速率模式对应的缓冲区中的数据达到预定逻辑页面大小、或读取数据完成时,将该速率模式对应的缓冲区中的数据移至接口缓存、并通过上报中断信号来通知1 主机以逻辑页面为单位从接口缓存获取读取的数据;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,待写入的数据被连续缓存至接口缓存,每当接口缓存中的数据达到预定逻辑页面大小、或接收待写入的数据完成时,该总线传输方法将接口缓存中已达到逻辑页面大小的数据移至该1 设备的速率模式所对应的缓冲区中,并通过该1 设备的速率模式所对应一路1 总线,按照该1 设备的典型速率和设备地址将该1 设备的速率模式所对应的缓冲区中的待写入的数据以字节为单位写入至该1 设备,且在每完成一个逻辑页面的写入后,通过上报中断信号来通知1 主机。接口缓存、以及分别对应每一速率模式的缓冲区,分别设置为预定逻辑页面的大小。由上述技术方案可见,本发明分别为每种速率模式提供一路1 总线、用于挂接采用该速率模式的1 设备,并在1 设备初始化时接收1 主机所配置的各1 设备的速率模式、典型速率,如此一来,即可按照1 主机所配置的速率模式选择对应的一路1 总线, 然后代替1 主机、并按照所配置的典型速率对1 设备进行读写操作。从而,由于能够对每路1 总线所挂接的1 设备分别采用对应的速率模式、而无需对所有1 设备均采用最低速率模式,因而能够避免支持高速率模式的1 设备的传输速率受限;而且,对于采用相同速率模式的1 设备,也可于同一路1 总线上分别采用不同的典型速率,使同一速率模式下的典型速率差异能够相互兼容。进一步地,本发明可以通过缓存的方式将读写数据整合为相同大小的逻辑页面, 因而在代替1 主机进行读写操作时无需关注真实的物理页面大小,从而能够同时兼容字节读写和不同大小物理页面的页面读写。再进一步地,相比于字节传输或小页面传输的情况,本发明产生中断的频率会有所降低,从而能够提高1 主机的效率。


图1为现有技术中1 总线的一种典型应用的实例示意图;图2为本发明实施例中总线传输装置的示例性结构示意图;图3如图2所示装置中的核心处理单元的一种较佳结构示意图4为本发明实施例中总线传输装置的配置操作的过程示意图;图5为本发明实施例中总线传输装置的读操作的过程示意图;图6为本发明实施例中总线传输装置的写操作的过程示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。图2为本发明实施例中总线传输装置的示例性结构示意图。如图2所示,本实施例中的总线传输装置包括一本地总线单元、分别对应不同速率模式的若干线路数据单元、 以及一核心处理单元。本地总线单元通过例如PCI总线等串行或并行的传输速率不低于1 总线的本地总线连接1 主机。对应每种速率模式的一个线路数据单元通过一路I2C总线与采用该速率模式的 I2C设备相连,即,对应高速模式的高速线路数据单元通过一路I2C总线与采用高速模式的 1 设备、对应快速模式的快速线路数据单元通过一路1 总线与采用快速模式的1 设备、 对应标准模式的标准线路数据单元通过一路1 总线与采用标准模式的1 设备。核心处理单元在任一路I2C总线所挂接的任意I2C设备初始化时,通过本地总线单元接收1 主机针对该1 设备的配置命令以及该1 设备的设备特征、并依据配置命令记录该1 设备的设备特征,该设备特征至少包括速率模式、典型速率、设备地址;可选地,设备特征中还可以包括操作切换间隔以及物理页面大小和页面间隔等信息、且也可以同时予以记录。在任意1 设备的初始化完成、且核心处理单元完成对该1 设备的设备特征的记录后,本实施例中如图2所示的装置即可实现1 主机与1 设备之间的读写操作,其中,由于不同的1 设备可能支持不同大小的物理页面、或者可能不支持页面模式,因而在1 主机侧将针对所有1 设备的读写操作均统一为预定的逻辑页面,即1 主机与本实施例中如图2所示的装置之间以预定大小的逻辑页面为单位进行交互;而由于各1 设备所支持的物理页面大小、以及其是否支持页面模式是无法改变的,即,支持不同大小的物理页面、或不支持页面模式的1 设备不能匹配逻辑页面,因而本实施例中如图2所示的装置与1 设备之间以字节为单位进行交互。也就是说,逻辑页面只有1 主机和本实施例中如图2所示的装置能够识别,而1 设备则无法识别。具体说,本实施例中如图2所示的装置按照如下方式实现1 主机与1 设备之间的读写操作核心处理单元在通过本地总线单元接收1 主机针对任一路1 总线所挂接的任意1 设备的读命令、及该读命令所对应的设备地址(即已记录的该1 设备的设备地址) 后,驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址、并以字节为单位从该1 设备连续读取串行数据,并缓存对应的线路数据单元所读取到的数据,每当缓存的数据达到预定逻辑页面大小、或对该1 设备的读取完成时,以中断上报的方式通知1 主机,即可使1 主机以逻辑页面为单位获取已缓存的读取到的连续数
9据;核心处理单元在通过本地总线单元接收1 主机针对任一路1 总线所挂接的任意1 设备的写命令、待写入的数据(一个逻辑页面)、及该写命令所对应的设备地址(即已记录的该1 设备的设备地址)后,缓存接收自1 主机的待写入的数据,每当缓存的待写入的数据达到预定逻辑页面大小、或针对该1 设备的待写入的数据接收完成时,驱动该 I2C设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址,以字节为单位将待写入的数据串行写入该1 设备,且每完成一个逻辑页面的写入后通过中断上报的方式通知1 主机、以便于1 主机继续下一个逻辑页面的写操作。如此一来,由于核心处理单元按照1 主机所配置的速率模式选择对应的一路1 总线,然后驱动对应的线路数据单元代替1 主机、并按照所配置的典型速率对1 设备进行读写操作,因而能够对每路1 总线所挂接的1 设备分别采用对应的速率模式、而无需对所有1 设备均采用最低速率模式,且对于采用相同速率模式的1 设备也可采用不同的典型速率,能够避免支持高速率模式的1 设备的传输速率受限、并使同一速率模式下的典型速率差异能够相互兼容。当然,对于不同速率模式、不同的典型速率,1 总线中SCL的时钟信号频率自然也就不同,由此,如图2所示的装置中还可以提供一个时钟合成单元,其在核心处理单元或者对应的线路数据单元(其从核心处理单元处获知当前处理的1 设备的典型速率)的控制下,依据参考时钟产生匹配不同速率模式、不同典型速率的时钟信号,并将产生的时钟信号提供给对应的线路数据单元。具体如何实现时钟合成单元为本领域技术人员所熟知的技术,本文就不再予以赘述。而且,由于核心处理单元能够通过缓存的方式将读写数据整合为相同大小的逻辑页面,因而在对应的线路数据单元代替1 主机进行读写操作时无需关注真实的物理页面大小,从而能够同时兼容字节读写和不同大小物理页面的页面读写,相应地,1 主机也只关注逻辑页面、而非字节或物理页面,即,1 主机的每个读命令/写命令均可以逻辑页面为单位;关于线路数据单元如何识别总线事件、以及进行读写操作,均属于已有技术,本文不再针对线路数据单元予以详述。此外,相比于字节传输或小页面传输的情况,核心处理单元产生中断的频率有所降低,从而能够提高1 主机的效率。图3如图2所示装置中的核心处理单元的一种较佳结构示意图。如图3所示,本实施例中总线传输装置的核心处理单元可以包括设备特征子单元、接口缓存、处理控制子单元、以及分别对应每一速率模式的缓冲区。设备特征子单元中设置有设备特征表,设备特征表中针对每一 1 设备设置有一个对应的表项。接口缓存用于存放1 主机配置的1 设备的速率模式、典型速率、设备地址、等待 1 主机获取的读取的数据、或来自1 主机的待写入的数据,即接口缓存可看作是核心处理单元与1 主机的缓存接口 ;可选地,1 主机还可以将该1 设备对应的物理页面大小和页面间隔存入至接口缓存。分别对应每一速率模式的缓冲区分别连接相应速率模式的线路数据单元,S卩,对应高速模式的高速缓冲区连接高速线路数据单元、对应快速模式的快速缓冲区连接快速线路数据单元、对应标准模式的标准缓冲区连接标准线路数据单元。处理控制子单元在任意1 设备初始化时,通过本地总线单元接收1 主机针对该1 设备的配置命令,并依据配置命令将1 主机写入至接口缓存的该1 设备的速率模式、典型速率、设备地址记录于设备特征子单元的对应表项中,如果该1 设备支持页面模式写,则1 主机还会将该1 设备对应的物理页面大小和页面间隔写入至接口缓存,此时, 也可以同时记录于设备特征子单元的对应表项中。假设,设备特征表针对每一 I2C设备的对应表项可以包括如下信息第0比特表项有效位,0表示该表项无效、1表示该表项有效;第1 2比特表示设备所属模式,00表示高速模式、01表示快速模式、10表示标准模式、11保留;第3 8比特表示设备地址;第9 15比特表示物理页面长度(假设页面最长为1 字节);第16 23比特表示页与页之间的页面间隔,粒度可根据需要调整(例如可为10000个写周期)。在通过本地总线单元接收1 主机针对任意1 设备的读命令、及该读命令对应的设备地址(即已记录于设备特征子单元的该1 设备的设备地址)后,处理控制子单元驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址以字节为单位从该1 设备串行读取连续数据、并缓存于该速率模式对应的缓冲区,每当有任意速率模式对应的缓冲区的数据达到1 主机所识别的一个预定逻辑页面大小、或读取数据完成时,将该速率模式对应的缓冲区中缓存的数据移至接口缓存、并通过上报中断信号来通知1 主机以逻辑页面为单位从接口缓存获取读取的数据;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据(一个逻辑页面)、及该读命令对应的设备地址(即已记录于设备特征子单元的该1 设备的设备地址)后,待写入的数据被连续缓存至接口缓存,每当接口缓存中的数据达到预定1 主机所识别的一个逻辑页面大小、或接收待写入的数据完成时,处理控制子单元将接口缓存中已达到1 主机所识别的一个逻辑页面大小的数据移至该1 设备的速率模式所对应的缓冲区中,并驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址,将该1 设备的速率模式所对应的缓冲区中的待写入的数据以字节为单位串行写入至该1 设备,且在每完成1 主机所识别的一个逻辑页面数据的以字节为单位的写入后,处理控制子单元通过上报中断信号来通知1 主机。对于需要核心处理单元控制前述时钟合成单元的情况,可以由处理控制子单元依据当前所处理的速率模式、以及当前所处理的1 设备的典型速率来执行所述的控制。实际应用中,接口缓存、以及分别对应每一速率模式的缓冲区,分别设置为1 主机所识别的一个预定逻辑页面的大小,例如32字节、64字节。这样,在读操作时,只要对应速率模式的缓冲区存满读取的数据,即表示读取的数据已缓存满1 主机所识别的一个逻辑页面、并可移至接口缓存,1 主机读取接口缓存中的所有数据即可实现一个逻辑页面的读取;而在写操作时,1 主机只要将待写入数据写满接口缓存,即表示待写入的数据已缓存满一个逻辑页面、并可移至对应速率模式的缓冲区,从而简化了读写操作所需的软件设计。另需要说明的是,虽然图3所示出的核心处理单元除了接口缓存之外,还包括分别对应每一速率模式的缓冲区,但分别对应每一速率模式的缓冲区只是为了支持多种速率模式可以并行操作、而非必须。
例如,在对应高速模式的高速线路数据单元读取1 设备的数据、并缓存于高速缓冲区的过程中,1 主机还可以针对快速模式/标准模式的1 设备向接口缓存写入待写入数据;接口缓存的待写入数据存满后,即可移至对应快速模式的快速线路数据单元/对应标准模式的接标准线路数据单元;然后,高速缓冲区中的读数据存满,即可移至接口缓存供 I2C主机获取,同时,对应快速模式的快速线路数据单元/对应标准模式的接标准线路数据单元即可将快速缓冲区/标准模式的标准缓冲区中的数据向快速模式/标准模式的1 设备写入,从而实现了多种速率模式的并行操作。也就是说,核心处理单元只需要一个缓存即可,而非必须采用如图3所示的四个缓存。此外,仍参见图3,为了便于处理控制子单元与1 主机的交互,核心处理单元还可以进一步包括接口命令寄存器、接口地址寄存器、接口模式寄存器、接口状态寄存器。可供1 主机写入和读取、处理控制子单元读取和写入的接口命令寄存器,用于通过本地总线单元接收1 主机针对该1 设备的配置命令、读命令、以及写命令。例如,命令寄存器的宽度可设置为32比特,第0 1比特用于标识操作类型,00表示配置操作、01表示读操作,10表示写操作,11保留;第2 3比特用于表示配置操作所对应的1 设备的速率模式,00表示高速模式、01表示快速模式、10表示标准模式、11保留; 第8 13比特用于表示命令长度;第31比特用于表示命令使能位,启动命令时设为1,命令执行完后由处理控制子单元将该位清0,从而使1 主机在接收到中断信号后通过对该位的读取即可获知已完成命令;其它比特位保留;可供1 主机写入、处理控制子单元读取的接口地址寄存器,用于通过本地总线单元接收1 主机发送的1 设备的设备地址。例如,设备地址寄存器的宽度可设置为32比特,第0 15比特表示1 设备的设备地址,第16 31比特表示I2C设备的E2PROM偏移地址。可供处理控制子单元写入、I2C主机读取的接口状态寄存器,用于处理控制子单元向1 主机告知中断信号所针对的速率模式、以及处理控制子单元当前所处理的速率模式。例如,接口状态寄存器的宽度可设置为32比特,第0 3比特表示高速模式中断事件状态位;第4 7比特表示快速模式中断事件状态位;第8 11比特表示标准模式中断事件状态位;第12 14比特中,每位对应一种速率模式,为1表明该速率模式正在处理过程中。这样,处理控制子单元即可通过对接口状态寄存器的设置,使1 主机在接收到中断信号后可通过接口状态寄存器获知该中断信号所对应的中断事件针对何种速率模式。可供1 主机写入、处理控制子单元读取的接口模式寄存器,用于1 主机告知处理控制子单元需要屏蔽中断信号的速率模式。例如,接口模式寄存器的宽度可以设置为32比特,第0 3比特表示高速模式的中断屏蔽位,第4 7比特表示快速模式的中断屏蔽位,第8 11比特表示标准模式的中断屏蔽位,其于比特保留;这样,在当前速率模式不需要产生中断信号时,1 主机即可通过对接口模式寄存器的设置,使处理控制子单元屏蔽对应速率模式的中断信号。当然,实际应用中,可任意设置供处理控制子单元与1 主机交互的寄存器,但由于处理控制子单元可通过本地总线单元与1 主机直接交互各种信息,因而设置寄存器也并非必须。
为了进一步说明本实施例种总线传输装置的工作原理,下面,再结合1 主机予以详细说明。图4为本发明实施例中总线传输装置的配置操作的过程示意图。参见图4并结合图2和图3,总线传输装置针对每一 1 设备的配置操作主要包括如下过程S411,I2C主机准备对应1 设备的设备特征。本步骤中可选地,还可以由1 主机配置总线传输装置的接口模式寄存器。S412,I2C主机将1 设备的设备特征写入至总线传输装置的接口缓存。具体说,设备特征至少包括速率模式、典型速率、设备地址,进一步可以包括物理页面大小和页面间隔。S413,1 主机向总线传输装置中的接口命令寄存器写入配置命令。S414,I2C主机等待总线传输装置完成S421 S4M的配置相关操作,如果完成,则 I2C主机结束配置操作过程,否则,I2C主机继续在S414等待。S421,总线传输装置中的处理控制子单元读取命令寄存器中由1 主机写入的命令、并解析。S422,总线传输装置中的处理控制子单元判断解析得到的命令是否为配置命令, 如果是则总线传输装置跳转至S423,否则,不属于本流程的处理范畴、跳转至其他操作过程 (其他操作过程于后续分别予以说明)。S423,总线传输装置中的处理控制子单元从接口缓存中读取由1 主机写入的设备特征、并记录于设备特征子单元的对应表项中。S424,总线传输装置中的处理控制子单元配置接口状态寄存器、并上报中断,然后总线传输装置结束配置操作过程。在S4M后,I2C主机即可接收到中断信号、并查询状态寄存器,从而获知总线传输装置完成S421 S4M的配置相关操作。至此,配置操作过程结束。图5为本发明实施例中总线传输装置的读操作的过程示意图。参见图5并结合图 2和图3,总线传输装置针对每一 1 设备的一个逻辑页面的读操作主要包括如下过程S511,I2C主机配置其需要读取数据的读命令。S512,1 主机向总线传输装置中的接口命令寄存器写入读命令、向总线传输装置中的设备地址寄存器写入需要读取的1 设备的设备地址。S513,I2C主机等待总线传输装置完成S521 的一个逻辑页面的读相关操作,如果完成,则1 主机跳转至514,否则,I2C主机继续在S513等待。S514,1 主机从总线传输装置中的接口缓存以逻辑页面为单位读取数据,然后 I2C主机结束读操作过程。S521,总线传输装置中的处理控制子单元读取命令寄存器中由1 主机写入的命令、并解析。S522,总线传输装置中的处理控制子单元判断解析得到的命令是否为读命令,如果是则总线传输装置跳转至S523,否则,不属于本流程的处理范畴、跳转至其他操作过程 (其他操作过程于其他流程中分别予以说明)。S523,总线传输装置中的处理控制子单元从接口地址寄存其中读取由1 主机写入的1 设备的设备地址、并依据读取的设备地址在设备特征子单元中查找对应的设备特征,将包含设备地址的设备特征提供给对应的线路数据单元,以供对应的线路数据单元读取数据。S524,总线传输装置中的处理控制子单元将对应的线路数据单元所读取到的数据缓存至一个逻辑页面大小的对应的缓冲区中。S525,总线传输装置中的处理控制子单元判断接口缓存是否为空,如果是,则跳转至,否则继续在S525等待。S526,总线传输装置中的处理控制子单元将对应的缓冲区中存满的数据移至一个逻辑页面大小的接口缓存,设置接口状态寄存器、并向1 主机上报中断,然后总线传输装置结束读操作过程。在后,I2C主机即可接收到中断信号、并查询状态寄存器,从而获知总线传输装置完成S521 的一个逻辑页面的读相关操作、并利用S514以逻辑页面为单位读取数据。至此,针对1 主机所识别的一个逻辑页面的读操作过程结束,S卩,完成上述流程后,I2C主机即认为针对一个1 设备的一个逻辑页面的读操作完成。图6为本发明实施例中总线传输装置的写操作的过程示意图。参见图6并结合图 2和图3,总线传输装置针对每一 1 设备的一个逻辑页面的写操作主要包括如下过程S611,1 主机判断总线传输装置是否可执行写操作,如果是则跳转至S612,否则继续在S611等待。本步骤之前,如果1 主机已向总线传输装置写入一个逻辑页面的待写数据、且未收到总线传输装置完成该逻辑页面的写操作,则确定总线传输装置当前不可执行写操作, 待总线传输装置已完成该逻辑页面的写操作后,即表示总线传输装置当前可执行写操作。S612,1 主机配置其需要写入的数据的写命令,并将待写入的数据写入至总线传输装置中一个逻辑页面大小的接口缓存。S613,1 主机向总线传输装置中的接口命令寄存器写入写命令、向总线传输装置中的设备地址寄存器写入需要写入的1 设备的设备地址。S614,I2C主机等待总线传输装置完成S621 的一个逻辑页面的写相关操作,如果完成,则1 主机结束写操作过程,否则,I2C主机继续在S614等待。S621,总线传输装置中的处理控制子单元读取命令寄存器中由1 主机写入的命令、并解析。S622,总线传输装置中的处理控制子单元判断解析得到的命令是否为写命令,如果是则总线传输装置跳转至S623,否则,不属于本流程的处理范畴、跳转至其他操作过程 (其他操作过程于其他流程中分别予以说明)。S623,总线传输装置中的处理控制子单元从接口地址寄存其中读取1 设备的设备地址、并依据读取的设备地址在设备特征子单元中查找对应的设备特征。S624,总线传输装置中的处理控制子单元将接口缓存中的待写入的数据移至一个逻辑页面大小的对应的缓冲区,以供对应的线路数据单元写入数据。S625,总线传输装置中的处理控制子单元将包含设备地址的设备特征提供给对应的线路数据单元、以及对应的缓冲区中的待写入的数据提供给线路数据单元,以供对应的线路数据单元向1 设备写入数据。S626,总线传输装置中的处理控制子单元在对应的线路数据单元写完成后,设置接口状态寄存器、并向1 主机上报中断,然后总线传输装置结束读操作过程。在后,I2C主机即可接收到中断信号、并查询状态寄存器,从而获知总线传输装置完成S621 的一个逻辑页面的写相关操作。至此,针对1 主机所识别的一个逻辑页面的写操作过程结束,S卩,完成上述流程后,I2C主机即认为针对一个1 设备的一个逻辑页面的写操作完成。以上,是对本实施例中总线传输装置的详细说明。下面,再对本实施例中的总线传输方法进行说明。在设置分别对应不同速率模式的若干路1 总线、对应每种速率模式的一路1 总线挂接有采用该速率模式的1 设备之后,本实施例中的总线传输方法包括配置操作的步骤,在任意1 设备初始化时,通过本地总线接收1 主机针对该1 设备的配置命令以及该1 设备的速率模式、典型速率、设备地址,并依据配置命令记录该 1 设备的速率模式、典型速率、设备地址;读操作的步骤,在通过本地总线接收1 主机针对任意1 设备的读命令及对应的设备地址后,通过该1 设备的速率模式所对应的一路I2C总线,按照该1 设备的典型速率和设备地址从该1 设备读取数据、供1 主机获取;写操作的步骤,在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,通过该1 设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址将待写入的数据写入该1 设备。对于同一个1 设备来说,上述三个步骤中的配置操作的步骤要先于读操作的步骤和写操作的步骤,且读操作的步骤和写操作的步骤之间不存在固定顺序。如此一来,由于上述方法按照1 主机所配置的速率模式选择对应的一路1 总线,然后代替1 主机、并按照所配置的典型速率对1 设备进行读写操作,因而能够对每路 I2C总线所挂接的1 设备分别采用对应的速率模式、而无需对所有1 设备均采用最低速率模式,且对于采用相同速率模式的1 设备也可采用不同的典型速率,能够避免支持高速率模式的1 设备的传输速率受限、并使同一速率模式下的典型速率差异能够相互兼容。此外,为了能够兼容字节读写和不同大小物理页面的页面读写在读操作的步骤中,可以缓存对应的线路数据单元以字节为单位所读取到的连续数据,每当缓存的数据达到预定逻辑页面大小、或读取数据完成时,再通知1 主机以逻辑页面为单位获取读取的数据,例如,以中断上报的方式通知1 主机以逻辑页面为单位获取读取的数据;在写操作的步骤中,可以缓存来自1 主机的待写入的连续数据(以逻辑页面为单位),每当缓存的待写入的数据达到预定逻辑页面大小、或接收待写入的数据完成时,在对应的一路1 总线以字节为单位将该逻辑页面内的数据写入1 设备,且每完成一个逻辑页面的写入后再通知1 主机,例如,以中断上报的方式通知1 主机已完成一个逻辑页面的写入。可选地,在配置操作的步骤中,还可以配置命令,记录1 主机提供的1 设备的操作切换间隔、物理页面大小、页面间隔。
实际应用中,还可以预先设置设备特征表、接口缓存、以及分别对应每一速率模式的缓冲区,这种情况下在配置操作的步骤中,每当任意1 设备初始化时,均可通过本地总线单元接收 1 主机针对该1 设备的配置命令,并依据配置命令将1 主机写入至接口缓存中的该1 设备的速率模式、典型速率、设备地址记录于设备特征表中;在读操作的步骤中,每当通过本地总线单元接收1 主机针对任意1 设备的读命令及对应的设备地址后,可通过该1 设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址从该1 设备以字节为单位读取数据、并缓存于该速率模式对应的缓冲区中,每当有任意速率模式对应的缓冲区中的数据达到预定逻辑页面大小、或读取数据完成时,将该速率模式对应的缓冲区中的数据移至接口缓存、并通过上报中断信号来通知1 主机以逻辑页面为单位从接口缓存获取读取的数据;在写操作的步骤中,每当通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,待写入的数据被连续缓存至接口缓存,每当接口缓存中的数据达到预定逻辑页面大小、或接收待写入的数据完成时,将接口缓存中已达到逻辑页面大小的数据移至该1 设备的速率模式所对应的缓冲区中,并通过该1 设备的速率模式所对应一路1 总线,按照该1 设备的典型速率和设备地址将该1 设备的速率模式所对应的缓冲区中的待写入的数据以字节为单位写入至该1 设备,且在每完成一个逻辑页面的写入后,通过上报中断信号来通知1 主机。其中,接口缓存、以及分别对应每一速率模式的缓冲区,分别设置为预定逻辑页面的大小,例如32字节、64字节。这样,在读操作时,只要对应速率模式的缓冲区存满读取的数据,即表示读取的数据已缓存满一个逻辑页面、并可移至接口缓存,1 主机读取接口缓存中的所有数据即可实现一个逻辑页面的读取;而在写操作时,I2C主机只要将待写入数据写满接口缓存,即表示待写入的数据已缓存满一个逻辑页面、并可移至对应速率模式的缓冲区,从而简化了读写操作所需的软件设计。另需要说明的是,分别对应每一速率模式的缓冲区只是为了支持多种速率模式可以并行操作、而非必须。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种总线传输装置,其特征在于,该总线传输装置包括一本地总线单元,其通过本地总线连接1 主机;分别对应不同速率模式的若干线路数据单元,对应每种速率模式的一个线路数据单元通过一路1 总线与采用该速率模式的1 设备相连;核心处理单元,其在任意1 设备初始化时,通过本地总线单元接收1 主机针对该1 设备的配置命令以及该1 设备的速率模式、典型速率、设备地址,并依据配置命令记录该 I2C设备的速率模式、典型速率、设备地址;在通过本地总线单元接收1 主机针对任意1 设备的读命令及对应的设备地址后,驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址从该1 设备读取数据、供1 主机获取;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址将待写入的数据写入该1 设备。
2.如权利要求1所述的总线传输装置,其特征在于,核心处理单元进一步缓存对应的线路数据单元以字节为单位所读取到的连续数据,每当缓存的数据达到预定逻辑页面大小、或读取数据完成时,通知1 主机以逻辑页面为单位获取读取的数据;核心处理单元进一步缓存来自1 主机的待写入的连续数据,每当缓存的待写入的数据达到预定逻辑页面大小、或接收待写入的数据完成时,驱动对应的线路数据单元以字节为单位将该逻辑页面内的待写入的数据写入至1 设备,且每完成一个逻辑页面的写入后通知1 主机。
3.如权利要求2所述的总线传输装置,其特征在于,核心处理单元以中断上报的方式通知1 主机以逻辑页面为单位获取读取的数据、以及通知1 主机已完成一个逻辑页面的写入。
4.如权利要求3所述的总线传输装置,其特征在于,核心处理单元进一步依据配置命令,记录1 主机提供的1 设备的操作切换间隔、物理页面大小、页面间隔。
5.如权利要求3所述的总线传输装置,其特征在于,核心处理单元包括设备特征子单元、接口缓存、处理控制子单元、以及分别对应每一速率模式的缓冲区,其中,在任意1 设备初始化时,处理控制子单元通过本地总线单元接收1 主机针对该1 设备的配置命令,并依据配置命令将1 主机写入至接口缓存的该1 设备的速率模式、典型速率、设备地址记录于设备特征子单元;在通过本地总线单元接收1 主机针对任意1 设备的读命令及对应的设备地址后,处理控制子单元驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址以字节为单位从该1 设备读取数据、并缓存于该速率模式对应的缓冲区,每当有任意速率模式对应的缓冲区的数据达到预定逻辑页面大小、或读取数据完成时,将该速率模式对应的缓冲区中缓存的数据移至接口缓存、并通过上报中断信号来通知1 主机以逻辑页面为单位从接口缓存获取读取的数据;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,待写入的数据被连续缓存至接口缓存,每当接口缓存中的数据达到预定逻辑页面大小、或接收待写入的数据完成时,处理控制子单元将接口缓存中已达到逻辑页面大小的数据移至该1 设备的速率模式所对应的缓冲区中,并驱动该1 设备的速率模式所对应的线路数据单元按照该1 设备的典型速率和设备地址,将该1 设备的速率模式所对应的缓冲区中的待写入的数据以字节为单位写入至该1 设备,且在每完成一个逻辑页面的写入后,处理控制子单元通过上报中断信号来通知1 主机。
6.如权利要求5所述的总线传输装置,其特征在于,接口缓存、以及分别对应每一速率模式的缓冲区,分别设置为预定逻辑页面的大小。
7.如权利要求5所述的总线传输装置,其特征在于,核心处理单元进一步包括接口命令寄存器,用于通过本地总线单元接收1 主机针对该1 设备的配置命令、读命令、以及写命令;接口地址寄存器,用于通过本地总线单元接收1 主机发送的当前读命令或写命令所对应的设备地址;接口状态寄存器,用于处理控制子单元向1 主机告知中断信号所针对的速率模式、以及处理控制子单元当前所处理的速率模式。接口模式寄存器,用于1 主机告知处理控制子单元需要屏蔽中断信号的速率模式。
8.一种总线传输方法,其特征在于,设置分别对应不同速率模式的若干路I2C总线,对应每种速率模式的一路1 总线挂接有采用该速率模式的1 设备,且该总线传输方法包括在任意1 设备初始化时,通过本地总线接收1 主机针对该1 设备的配置命令以及该1 设备的速率模式、典型速率、设备地址,并依据配置命令记录该1 设备的速率模式、 典型速率、设备地址;在通过本地总线接收1 主机针对任意1 设备的读命令及对应的设备地址后,通过该 I2C设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址从该1 设备读取数据、供1 主机获取;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,通过该1 设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址将待写入的数据写入该1 设备。
9.如权利要求8所述的总线传输方法,其特征在于,该总线传输方法进一步缓存对应的线路数据单元以字节为单位所读取到的连续数据, 每当缓存的数据达到预定逻辑页面大小、或读取数据完成时,通知1 主机以逻辑页面为单位获取读取的数据;该总线传输方法进一步缓存来自1 主机的待写入的连续数据,每当缓存的待写入的数据达到预定逻辑页面大小、或接收待写入的数据完成时,在对应的一路1 总线以字节为单位将该逻辑页面内的数据写入1 设备,且每完成一个逻辑页面的写入后通知1 主机。
10.如权利要求9所述的总线传输方法,其特征在于,该总线传输方法以中断上报的方式通知1 主机以逻辑页面为单位获取读取的数据、以及通知1 主机已完成一个逻辑页面的写入。
11.如权利要求10所述的总线传输方法,其特征在于,该总线传输方法预先设置设备特征表、接口缓存、以及分别对应每一速率模式的缓冲区;在任意1 设备初始化时,该总线传输方法通过本地总线单元接收1 主机针对该1 设备的配置命令,并依据配置命令将1 主机写入至接口缓存中的该1 设备的速率模式、 典型速率、设备地址记录于设备特征表中;在通过本地总线单元接收1 主机针对任意1 设备的读命令及对应的设备地址后,该总线传输方法通过该1 设备的速率模式所对应的一路1 总线,按照该1 设备的典型速率和设备地址从该1 设备以字节为单位读取数据、并缓存于该速率模式对应的缓冲区中, 每当有任意速率模式对应的缓冲区中的数据达到预定逻辑页面大小、或读取数据完成时, 将该速率模式对应的缓冲区中的数据移至接口缓存、并通过上报中断信号来通知1 主机以逻辑页面为单位从接口缓存获取读取的数据;在通过本地总线单元接收1 主机针对任意1 设备的写命令、待写入的数据、及对应的设备地址后,待写入的数据被连续缓存至接口缓存,每当接口缓存中的数据达到预定逻辑页面大小、或接收待写入的数据完成时,该总线传输方法将接口缓存中已达到逻辑页面大小的数据移至该1 设备的速率模式所对应的缓冲区中,并通过该1 设备的速率模式所对应一路1 总线,按照该1 设备的典型速率和设备地址将该1 设备的速率模式所对应的缓冲区中的待写入的数据以字节为单位写入至该1 设备,且在每完成一个逻辑页面的写入后,通过上报中断信号来通知1 主机。
12.如权利要求10或11所述的总线传输方法,其特征在于,接口缓存、以及分别对应每一速率模式的缓冲区,分别设置为预定逻辑页面的大小。
全文摘要
本发明公开了一种总线传输装置和方法。本发明分别为每种速率模式提供一路I2C总线、用于挂接采用该速率模式的I2C设备,并在I2C设备初始化时接收I2C主机所配置的各I2C设备的速率模式、典型速率,如此一来,就能够对每路I2C总线所挂接的I2C设备分别采用对应的速率模式、且对于采用相同速率模式的I2C设备也可采用不同的典型速率,从而能够实现混合速率传输。而且,本发明可以将读写数据整合为相同大小的逻辑页面、而无需关注物理页面大小,从而能够同时兼容字节读写和不同大小物理页面的页面读写;进一步地,中断上报次数减少能够提高I2C主机的效率。
文档编号G06F13/38GK102339263SQ20101023899
公开日2012年2月1日 申请日期2010年7月26日 优先权日2010年7月26日
发明者郭道荣 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1