经总线连接进行随机访问的方法和数据结构的制作方法

文档序号:6418345阅读:127来源:国知局
专利名称:经总线连接进行随机访问的方法和数据结构的制作方法
技术领域
本发明涉及经总线连接进行随机访问的方法和数据结构。
背景技术
总线连接是一种经由多条导线或线路互连多个设备的方法,其中多条导线或线路至少部分地被多个设备共用。总线连接可以是串行的或并行的,例如,信息可以在单条数据线或多条并行数据线上被发送。总线连接可包括时钟线,用于确定在某一时间间隔内发送信息的速率。总线连接也可包括多条专用线,例如用于握手、芯片选择等。多种标准化的总线连接是已知的,特别是I2C总线,其是一种串行总线连接。
I2C总线是用于IC间通信的双向2-线总线。主设备控制每次与最多1024个从设备中的一个单个从设备的数据传送。对从设备的最大数量的限制是I2C总线标准所定义的地址字段(10个位)的大小的结果。在I2C总线标准中规定了单个设备的地址,并且提供了明确标识该设备的手段。
在器具和设备中广泛使用EEPROM(Electric Erasable and ProgrammableRead Only Memory(电可擦可编程只读存储器)的缩略词)来存储程序或数据,其中,即使当没有可用的电源时也必须保留所存储的信息。利用I2C总线接口来读和写数据的多种EEPROM设备是容易得到的。遵循I2C总线标准对EEPROM内容进行访问必须是顺序的。一些EEPROM制造商使用专有机制,其使主设备随机访问多达EEPROM的一个存储页(128字节)。然而,例如在ASIC(Application Specific Integrated Circuit(专用集成电路)的缩略词)和FPGA(Field Programmable Gate Array(现场可编程门阵列)的缩略词)中嵌入式EEPROM的大小已经显著增加了,并且由于标准中规定的地址空间限制,从而难以处理通过I2C总线对该存储器的内容的随机访问。
I2C总线的物理层通常由以并行方式互连所有设备的两条导线组成。串行数据线(SDA)载有要以串行方式发送的数据,以及串行时钟(SCL)提供时钟信号并确定数据数率。每个时钟周期允许传送一个单个位。通过两条线上的预定逻辑电平来建立连接的开始(START)和停止(STOP)条件。主设备是发起总线上的数据传送、产生用于当前连接的时钟信号和终止该传送的设备。从设备是被主设备寻址的设备。每个设备由唯一地址识别,并且如发送器或接收器一样进行操作。发送器是将数据发送到总线的设备。接收器是从总线接收数据的设备。在下面的描述中,I2C总线上的逻辑电平分别被称作为“高”和“低”或者“1”和“0”。I2C总线信号的绝对电平可以根据应用而变化。由于I2C总线的双向特性,设备的输入和输出端口必须是三态端口。三态端口在用于发送的低阻抗时可有效采取高电平或低电平,或者表示用于接收数据的、到总线的高阻抗。在备用或未使用状态下,通过适当的偏置装置,将时钟和数据线拉到预定电平,并且连接到总线的所有设备都表示到总线的高阻抗。通过在时钟线(SCL)保持处于高状态的同时数据线(SDA)的从高到低转变来建立开始条件。开始条件必须总是先于用于数据传输的任何命令。通过在时钟线(SCL)保持处于高状态的同时数据线(SDA)的从低到高转变来建立停止条件。停止条件终止总线主设备与从设备之间的通信。由接收设备产生的确认信号(ACK)来指示成功的数据传送。为此,发送设备(根据数据传送的方向,或者是主设备或者是从设备)在发送8位的数据之后,释放SDA线,即设备端口采取(assume)高阻抗。在第9个时钟脉冲期间,接收器有效地拉低SDA线,以确认8位数据的接收。任何进一步的纠错将在设备中独立实现,并且其并不是I2C总线协议的一部分。接收设备在时钟SCL信号的上升沿采样SDA线。SDA信号在时钟SCL从低到高的转变期间必须是稳定的,并且仅当SCL线为低时,SDA线上的数据必须改变。主设备可以通过建立开始条件,来发起与从设备的数据传送。
下面,给出根据7位寻址标准的I2C设备的普通寻址方案。10位寻址也是可用的并更复杂,但是基本上类似,因此不再对其进行详细参考。在建立开始条件之后,主设备在SDA线上发送从地址。从地址由8位组成7个最高有效位组成从地址,如在I2C总线标准中规定的,第8位或最低有效位LSB是读或写位(R/W),对于读操作,该位被设置为“1”,而对于写操作,该位被设置为“0”。如果从设备识别了在SDA线上发送的地址与其自身所分配的地址之间的匹配,则它在第9个位周期内在SDA线上产生确认信号。
普通写操作的数据传输遵循图1所示的方案。在该图中,自主设备到从设备的传输由阴影背景表示,自从设备到主设备的传输由白背景表示。主设备产生开始条件S,随后发送具有被设置成“0”的R/W位的从地址、“n”字节数据,并且最后产生停止条件P。在数据的每个接收字节之后的第9个时钟脉冲内,从设备产生确认信号A。
普通写操作的数据传送遵循图2所示的方案。主设备再次产生开始条件S。然后主设备发送具有被设置成“1”的R/W位的从地址,并将其SDA端口置于高阻抗状态以进行接收。现在,被寻址的从设备发送“n”字节数据。当主设备是发送器时,从设备在数据的每个接收字节之后的第9个时钟脉冲内产生确认信号A。当从设备是发送器时,主设备在数据的每个接收字节之后的第9个时钟脉冲内产生确认信号A。当主设备产生停止条件P时,终止传送。
然而,标准中规定的I2C协议限于顺序读和写操作,且随机访问是不可能的。当寻址存储器,例如EEPROM时,该存储器不仅需要识别它被选择了,而且需要有关将被读或写的存储单元的信息。这在当前标准中可以通过组合的读/写操作来实现,其中在写操作期间,EEPROM接收将被读取的地址,并且在随后的读操作中,读取存储单元。然而,这一过程要求总线主设备发出第一开始条件,以便寻址用于写的从设备,传送单元地址,随后发出第二开始条件,最后再次寻址用于读的设备。必须单独寻址每一单个字节。由于寻址操作的某些开销是必需的,因此与理论值相比,这降低了I2C总线的实际传送速度。如果几个设备连接到总线,总线仲裁可能进一步妨碍了快速传输的需要。仲裁是一种过程,用于确保如果多于一个主设备同时尝试控制总线,仅允许一个进行控制,从而确保不会破坏消息。一些EEPROM制造商使用写和读操作的专有组合,以便使得随机访问EEPROM成为可能,但是这些方案限于小的地址空间,例如128字节。
Microchip技术有限公司的操作说明书AN736公开了一种用于环境监测的I2C网络协议。该网络协议建议使用表示将被读或写的数据字节的数量的单个数据长度字节和表示将被读或写的从设备的存储地址的单个地址偏移字节。

发明内容
因此,期望提供一种用于对从设备内的单元进行寻址的方法,其允许真正的随机访问。
根据本发明的随机访问方案克服了I2C协议的地址空间限制,并且使主设备能够随机访问从设备(例如,EEPROM)的内部地址空间中的单元。在I2C总线体系结构中用于读和写操作的数据传送的发明方法使用开始和停止条件、确认位(ACK)产生、数据输入协议、以及以与I2C标准中规定的方式相同的从设备寻址。这就允许所述方法的写操作对仍未使用本发明方法的设备的兼容性。然而,本发明的读操作并不完全兼容于所述标准。根据本发明方法,通过“数据传送模式”字节来补充现有技术中已知的读和写操作,该字节规定了要遵循的组成存储单元地址的地址字节的数量和与所寻址的存储单元相关的数据字节的数量。“数据传送模式”字节的特性使本发明方法正交且可缩放(scalable)。正交访问是指读和写操作具有类似的结构和长度。这可以使访问设备的编程变得容易。可缩放性是指存储器的地址空间可以从相当小的大小,例如当将1字节用于寻址时的256个单元,变化到较大的单元数量,例如当将8字节用于寻址时的16Ei单元。“Ei”(exabinary,读作exbi)是从单位SI衍生的二进制倍数的前缀,该SI单位是因子2的60次方。可缩放性将总线业务量有利地减少到依赖于将被寻址的地址空间和与存储单元有关的数据量的最小值,同时保持最大灵活性。本发明方法有利地允许大存储器中的单个单元的处理,这在下列情况下通常是需要的例如,当必须仅改变较大一组参数中的少数参数时,或者当唯一序列号必须是设备的其他方面的相同存储内容(otherwise identical memory content)的一部分时。


下面,将参考附图来详细描述本发明。附图中图1示出了根据I2C总线标准的、用于写访问的I2C设备的普通寻址;图2示出了根据I2C总线标准的、用于读访问的I2C设备的普通寻址;图3示出了根据本发明方法的、用于读操作的I2C设备的寻址;图4示出了根据本发明方法的、用于写操作的I2C设备的寻址;图5示出了“数据传送模式”字节的普通表示;以及图6示出了根据本发明的可能的地址和数据长度的概观。
在上面的现有技术部分已经描述了图1和2,因此不再对其参考。
附图中,相同或相似的单元用相同的附图标记表示。
具体实施例方式
图3示出了根据本发明的、用于读操作的数据传送方案。主设备产生开始条件S,并将被设置成“1”的R/W位发送给从地址。之后,主设备发送“数据传送模式”字节。“数据传送模式”字节规定了组成存储单元地址的地址字节的数量(m)以及组成每个存储单元的内容的数据字节的数量(n)。然后,主设备通过发送所宣布的“m”个地址字节来继续传送。从设备通过发送对应于该位置的所请求的“n”个数据字节来进行答复。当主设备产生停止条件P时终止传送。与在标准I2C总线连接中类似,在接收到一字节数据之后的第9个时钟脉冲内,由接收器(或是主设备或是从设备)产生确认信号A。
在图4中示出了根据本发明的用于写操作的数据传送方案。主设备产生开始条件S,并将被设置成“0”的R/W位发送给从地址。之后,主设备发送“数据传送模式”字节,其中该“数据传送模式”字节规定了组成存储单元地址的地址字节的数量“m”以及组成每个存储单元的内容的数据字节的数量“n”。然后,主设备发送规定了将被写入的存储地址的所宣布的“m”个地址字节和将被写入到所规定的存储位置的“n”个数据字节。当主设备产生停止条件P时,终止该传送。在写操作期间,如在I2C标准中规定的一样,在接收到每个字节的数据之后的第9个时钟脉冲内,由从设备来发送确认信号A。
注意可以按所需的次数来重复主和从设备之间的循环地址-数据。
图5示例性示出了“数据传送模式”字节。该“数据传送模式”字节对于读和写操作两者都是相同的。“数据传送模式”字节的位7到0定义如下位7-5,用标记R2-R0标明,为将来使用而保留。
位4-2,用标记A2、A1、A0标明,表示在主和从设备之间的读/写传送中使用的地址字节的数量。图6的表1示出了对于每个A2、A1、A0设置的地址字节的数量。
位1-0,用标记D1、D0标明,表示在主和从设备之间的读/写传送中使用的地址字节的数量。图6的表2示出了对于每个D1、D0设置的数据字节的数量。
尽管参考I2C总线描述了本发明,但是本发明不限于这种类型的总线。可以想象到将本发明方法用于设备之间的任何通信,单向或双向,而不管相互连接的线路的数量。
权利要求
1.一种用于访问设备中的单元的方法,所述设备经由总线连接与至少一条载有数据信号的数据线和至少一条载有时钟信号的时钟线连接,其中通过设备地址来识别连接到所述总线的设备,其中第一设备建立开始条件(S)以建立总线连接,从而变成随后通信的主设备,其中所述主设备通过其设备地址来选择第二设备,所述第二设备变成随后通信的从设备,其中所述主设备选择传输模式读或写(R/W),并且其中所述主设备建立用于在成功通信之后终止所述总线连接的停止条件(P),其特征在于所述主设备在寻址所述从设备之后发送数据模式信号,其中所述数据模式信号包括有关单元地址字节的数量以及随后将被发送的数据字节的数量的信息,接着是地址单元信号(ADD()),并且所述主设备根据所述数据模式信号将数据发送到从设备和/或自从设备接收数据(DATA())。
2.如权利要求1所述的方法,其中将数据写入从设备和/或自从设备读取数据(DATA())跟随在所述数据模式信号和所述地址单元信号(ADD())的发送之后。
3.如权利要求1所述的方法,其中在接收到预定数量的位之后,各个接收设备的每一个发出确认信号(A)。
4.一种用于寻址经由总线连接连接的设备中的单元的数据结构,其特征在于所述数据结构包括有关组成单元地址的地址信息的长度和与所述单元相关的数据的长度的信息。
全文摘要
提供了一种经由I2C总线寻址设备中的单元的方法,其中通过“数据传送模式”字节来补充常见的寻址方案。所述“数据传送模式”字节规定了地址和数据字节的数量以遵循设备寻址,从而允许连接到总线的设备内部单元的正交和可缩放寻址。该方法完全兼容用于写入该从设备的现有I2C标准。建立和终止主设备与从设备之间的连接以及确认字节的接收都遵循所述标准。
文档编号G06F13/36GK1577308SQ20041006294
公开日2005年2月9日 申请日期2004年7月5日 优先权日2003年7月3日
发明者卢伊斯·蒙塔尔沃, 迪迪尔·多延, 劳伦特·布朗德, 伊曼纽尔·乔利 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1