CN103019972A - 一种利用总线进行通讯的方法和装置 - Google Patents
一种利用总线进行通讯的方法和装置 Download PDFInfo
- Publication number
- CN103019972A CN103019972A CN2012104837302A CN201210483730A CN103019972A CN 103019972 A CN103019972 A CN 103019972A CN 2012104837302 A CN2012104837302 A CN 2012104837302A CN 201210483730 A CN201210483730 A CN 201210483730A CN 103019972 A CN103019972 A CN 103019972A
- Authority
- CN
- China
- Prior art keywords
- address
- register
- bus
- address information
- information
- 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
- Bus Control (AREA)
Abstract
本发明提出一种利用总线进行通讯的方法,包括步骤:在各个寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;所述段地址与另一寄存器的地址相对应;从总线信息中获取访问目的设备的地址信息;当所述地址信息属于全局地址时,根据所述地址信息访问当前寄存器;当所述地址信息属于段地址时,根据所述地址信息访问所述另一寄存器。本发明还提出一种利用总线进行通讯的装置,可以解决利用总线访问设备内部地址空间受限的问题,提高开发工作的效率。
Description
技术领域
本发明涉及设备间的数据传输领域,特别是涉及一种利用总线进行通讯的方法和装置。
背景技术
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式总线,用于连接微控制器及外围设备。由于它具有较少的连接,故常用于结构紧凑的设计中实现短距离的传输。由于I2C总线采用串行的数据传输方式进行通讯,位速率一般100kbit/s到3.4Mbit/s,所以它访问外设的速率较慢,并且被I2C总线所访问到的从设备中采用8比特数据位宽格式进行地址和数据的编码,因此它所能访问的从设备中寄存器地址也非常少;
在常见的应用中,I2C传输的数据,首先MCU主机发送一个从设备地址,这个地址共7位,紧接着发送的第八位为读写控制位,然后从设备返回应答。接下来的8个SCL时钟周期主机发送需要访问的从设备寄存器地址位(data1,8比特数据),从设备接收到需要访问的寄存器地址后,将8比特的SDA串行数据译码为8比特的寄存器地址,主机将需要写入的寄存器数据data2写入译码后对应的地址中。
当主机MCU寻址到需要访问的从设备后,对从设备的寄存器进行操作时,由于从设备寄存器地址采用data1的8比特数据译码,所以主机能访问从设备的地址段最多256个寄存器地址。如果从设备进行一些复杂的操作和控制,需要与MCU主设备进行频繁复杂的通讯,那256个寄存器地址往往是不够使用的。况且在从设备方,内部控制一般涉及到多个模块,如果在寄存器地址紧张的情况下对每个模块进行寄存器地址划分,那每个模块得到的寄存器地址将是有限的,并且模块之间寄存器地址的定义将是连续的,不方便记忆每个模块所占用的地址段无规律可循,况且紧张的寄存器地址资源将不能给每个模块预留一定的保留地址,这样不利于从设备第二次或者多次开发,降低了开发工作的效率,所以如何有效的将寄存器地址扩展一直是开发人员关注的焦点。
发明内容
本发明的目的在于提出一种总线通讯方法和装置,可以解决利用总线访问设备内部地址空间受限的问题,提高开发工作的效率。
采用的方案是:
一种利用总线进行通讯的方法,包括步骤:
在各个寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;所述段地址与另一寄存器的地址相对应;
从总线信息中获取访问目的设备的地址信息;
当所述地址信息属于全局地址时,根据所述地址信息访问当前寄存器;当所述地址信息属于段地址时,根据所述地址信息访问所述另一寄存器。
以及,一种利用总线进行通讯的装置,包括:
保存单元,用于在各个寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;所述段地址与另一寄存器的地址相对应;
地址获取单元,用于从总线信息中获取访问目的设备的地址信息;
访问单元,用于当所述地址信息属于全局地址时,根据所述地址信息访问当前寄存器;当所述地址信息属于段地址时,根据所述地址信息访问所述另一寄存器。
本发明先在目的设备中的各个寄存器中保存全局控制寄存器地址段,利用全局控制地址中的段地址对各个寄存器的地址进行扩展,可以提高总线访问目的设备寄存器的地址比特宽度;可以将目的设备寄存器的地址宽度提高到16比特或者更高的比特,相比传统的8比特地址而言,提高了总线访问设备内部地址空间数;然后从总线信息中获取地址信息;根据获取的地址信息和扩展后的寄存器地址进行访问目的设备;因此,可以解决利用总线访问设备内部地址空间受限的问题,提高开发工作的效率。
附图说明
图1为本发明方法的一个实施例流程图;
图2为本发明装置的一个结构示意图;
图3为本发明的一个具体实施例示意图。
具体实施方式
本发明提出一种利用总线进行通讯方法,具体步骤,请参见图1,包括:
101、在各个寄存器中保存全局控制寄存器地址段,其中,全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;段地址与另一寄存器的地址相对应;
具体的,可在各个寄存器中保存全局控制寄存器地址的步骤前,进行如下步骤:
在第一寄存器中开辟出全局控制寄存器地址段;
将其中一部分全局控制寄存器地址段作为段地址,其余部分作为全局地址;全局地址用于全局控制和用于频繁访问的接口,如复位,监控,中断等。这样既保证了全局控制的速度与原I2C总线访问速度的一致,也能很好的利用它进行段地址的扩展。该段地址用于后续寄存器地址的扩展;
建立第二寄存器的地址与段地址的对应关系;其中,第一寄存器和第二寄存器属于目的设备。
关于第二寄存器的地址与段地址的对应关系,其中一种表现形式是地址映射;例如:其中一个目的设备中的寄存器地址A1、A2、A3,另一目的设备的寄存器地址为B1、B2以及B3;若将地址A1作为段地址,其他地址作为全局地址;则,可将A1与B1、B2以及B3映射,由此建立第二寄存器的地址与段地址的对应关系;如需要,还可以在另一寄存器的地址中将其中的某些地址作为段地址,再将该段地址与第三个目的设备的寄存器地址进行映射;由此循环进行映射,可以建立多重映射关系,从而可以访问更多的寄存器。
由于一个寄存器的地址有限的,通过这种地址扩展方法,可以增加利用总线访问从设备的地址数目;也即是说可以提高总线访问目的设备寄存器的地址宽度。传统的总线访问目的设备寄存器的地址宽度可以达到8比特;而经过本发明的地址扩展后,可以将这个地址宽度提高到16比特或者更高的比特。
若在第一寄存器中开辟出的全局控制寄存器地址段为0至255共256个地址,将其中的N地址作为段地址;则可扩展的寄存器地址可达到(256-N)×256个。
还可以将其中另一部分全局控制寄存器地址段作为另一个段地址,进行地址扩展。
S102、从总线信息中获取访问目的设备的地址信息;
本发明适用各种总线,以I2C总线为例,当主设备通过I2C总线访问从设备时,由于I2C协议采用串行的方式发送地址和数据到从设备。所以先经过地址译码单元进行协议的解码,将一次完整的读操作或者写操作解析为并行总线访问方式,采用这种方式在大型的工程项目中能使各个接口开发人员省去研究具体的I2C协议数据格式,只需采用常见的并口访问方式操作各自负责开发的模块。
解析出的并行总线信息包括以下的1个或者多个信息:读信号、写信号、控制信号、写入的数据、地址信息以及读取的数据。
S103、当地址信息属于全局地址时,根据地址信息访问当前寄存器;当地址信息属于段地址时,根据地址信息访问另一寄存器。
具体的,访问目的设备时,根据地址信息进行选择;可以将地址信息与第一寄存器的地址进行比对;
当地址信息属于全局地址时,则按照地址信息访问当前寄存器;
当地址信息属于段地址时,进行地址仲裁,根据映射关系查找具体的地址,根据查找到的地址访问另一寄存器。
本发明先在目的设备中的各个寄存器中保存全局控制寄存器地址段,利用全局控制地址中的段地址对各个寄存器的地址进行扩展,可以提高总线访问目的设备寄存器的地址比特宽度;可以将目的设备寄存器的地址宽度提高到16比特或者更高的比特,相比传统的8比特地址而言,提高了总线访问设备内部地址空间数;然后从总线信息中获取地址信息;根据获取的地址信息和扩展后的寄存器地址进行访问目的设备;因此,可以解决利用总线访问设备内部地址空间受限的问题,提高开发工作的效率。
本发明提出一种利用总线进行通讯的装置,参考图2,包括:保存单元、获取单元以及访问单元;
其中,保存单元,用于在各个寄存器中保存全局控制寄存器地址段,其中,全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;段地址与另一寄存器的地址相对应;
地址获取单元,用于从总线信息中获取访问目的设备的地址信息;
访问单元,用于当地址信息属于全局地址时,根据地址信息访问当前寄存器;当地址信息属于段地址时,根据地址信息访问另一寄存器。具体地,访问单元将地址信息与当前寄存器中保存的全局控制寄存器地址段进行比对;当地址信息属于当前寄存器的全局地址时,则按照地址信息访问当前寄存器;当地址信息属于当前寄存器的段地址时,根据映射关系访问另一寄存器。
本发明先在目的设备中的各个寄存器中保存全局控制寄存器地址段,利用全局控制地址中的段地址对各个寄存器的地址进行扩展,可以提高总线访问目的设备寄存器的地址比特宽度;可以将目的设备寄存器的地址宽度提高到16比特或者更高的比特,相比传统的8比特地址而言,提高了总线访问设备内部地址空间数;然后从总线信息中获取地址信息;根据获取的地址信息和扩展后的寄存器地址进行访问目的设备;因此,可以解决利用总线访问设备内部地址空间受限的问题,提高开发工作的效率。
在其中一个实施方式中,请参考图3,本发明装置还包括建立单元;
其中,建立单元在第一寄存器中开辟出全局控制寄存器地址段;
将其中一部分全局控制寄存器地址段作为段地址,其余部分作为全局地址;建立第二寄存器的地址与段地址的映射关系,得到预定的寄存器地址对应关系;其中,第一寄存器和第二寄存器属于目的设备。
在其中一个实施方式中,地址获取单元接收主设备发送的串行总线信息,将串行总线信息解析为并行总线信息,从并行总线信息中获取访问目的设备的地址信息。
为更好的理解本发明,下面介绍一个具体例子,请参考图4,其中包括主设备和目的设备;目的设备包括地址译码单元S1、寄存器S2仲裁器S3以及另一寄存器S4;S4的地址段包括100、101以及102;寄存器S2中保存有全局控制寄存器地址段,假设在S2中开辟的全局控制寄存器地址段为001、002、003、004以及005;其中,001作为段地址;002至005作为全局地址;S2中段地址与另一寄存器S4的地址对应关系为001与100、101以及102映射;S3中存储有当前寄存器的段地址与另一寄存器S4的地址相对应的信息;
若主设备通过总线访问002:地址译码单元S1将串行总线信息解析成并行总线信息;得到读信号、写信号、控制信号、写入的数据、地址信息002以及读取的数据;从并行总线信息中获取从设备的寄存器地址信息002;根据获取的地址信息002在寄存器S2中寻找对应的地址端口,发现该地址信息属于S2中的全局地址,则主设备可以通过寄存器S2中002访问目的设备;
若主设备通过总线访问100,经过地址译码单元S1解析得到地址信息001,根据获取的地址信息001在寄存器S2中寻找对应的地址端口,发现该地址属于S2中的段地址,则将该地址送至仲裁器S3进行地址仲裁,根据该地址在当前寄存器的段地址与另一寄存器的地址相对应的信息进行查找,得到寄存器S4的地址100,从而可以通过寄存器S4的地址100访问目的设备。
综上,本发明可达到如下效果:
1、串行总线接口时序将所需要传递的数据内容串行化,不太容易理解。将物理上串行传输的数据逻辑化为并行传输方式,方便理解,提高效率;并且并行总线采用地址段划分的总线仲裁方式进行总线的仲裁,不仅做到了模块的很好划分,而且能保证模块信息的封闭性,总线接口的一致性。
2、I2C总线地址扩展方式提供了一种解决外部设备寄存器地址有限的技术方案。此技术方案亦可运用在其他总线基础上。并且采用此段地址扩展的方式,可以方便的管理内部不同功能模块,使其内部寄存器地址连续并且保留一定的保留位方便以后更复杂应用的扩展。
3、该方式不需要每个从设备都定义各自的寄存器外部端口,使总线读写接口都具有相同的协议,方便不同开发人员各自开发自己的模块,方便集成,缩短开发周期。
4、在此应用中我们将寄存器地址进行扩展,不需要修改具体的I2C协议,这样便可以保留原有的I2C协议,而简单的实现地址的指数倍增长。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种利用总线进行通讯的方法,其特征在于,包括步骤:
在各个寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;所述段地址与另一寄存器的地址相对应;
从总线信息中获取访问目的设备的地址信息;
当所述地址信息属于全局地址时,根据所述地址信息访问当前寄存器;当所述地址信息属于段地址时,根据所述地址信息访问所述另一寄存器。
2.根据权利要求1所述的利用总线进行通讯的方法,其特征在于,
所述从总线信息中获取访问目的设备的地址信息的步骤具体为:
接收主设备发送的串行总线信息;
将所述串行总线信息解析为并行总线信息;
从所述并行总线信息中获取访问目的设备的地址信息。
3.根据权利要求1或2所述的利用总线进行通讯的方法,其特征在于,
所述当地址信息属于全局地址时,根据所述地址信息访问当前寄存器;当所述地址信息属于段地址时,根据所述地址信息访问所述另一寄存器的步骤具体为:
将所述地址信息与当前寄存器中保存的全局控制寄存器地址段进行比对;
当所述地址信息属于当前寄存器的全局地址时,则按照所述地址信息访问所述当前寄存器;
当所述地址信息属于当前寄存器的段地址时,根据所述映射关系访问所述另一寄存器。
4.一种利用总线进行通讯的装置,其特征在于,包括:
保存单元,用于在各个寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括两个部分,第一部分为段地址,第二部分为全局地址;所述段地址与另一寄存器的地址相对应;
地址获取单元,用于从总线信息中获取访问目的设备的地址信息;
访问单元,用于当所述地址信息属于全局地址时,根据所述地址信息访问当前寄存器;当所述地址信息属于段地址时,根据所述地址信息访问所述另一寄存器。
5.根据权利要求4所述的利用总线进行通讯的装置,其特征在于,所述地址获取单元接收主设备发送的串行总线信息,将所述串行总线信息解析为并行总线信息,从所述并行总线信息中获取访问目的设备的地址信息。
6.根据权利要求4或5所述的利用总线进行通讯的装置,其特征在于,所述访问单元将所述地址信息与当前寄存器中保存的全局控制寄存器地址段进行比对;
当所述地址信息属于当前寄存器的全局地址时,则按照所述地址信息访问所述当前寄存器;当所述地址信息属于当前寄存器的段地址时,根据所述映射关系访问所述另一寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210483730.2A CN103019972B (zh) | 2012-11-23 | 2012-11-23 | 一种利用总线进行通讯的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210483730.2A CN103019972B (zh) | 2012-11-23 | 2012-11-23 | 一种利用总线进行通讯的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019972A true CN103019972A (zh) | 2013-04-03 |
CN103019972B CN103019972B (zh) | 2016-05-25 |
Family
ID=47968596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210483730.2A Expired - Fee Related CN103019972B (zh) | 2012-11-23 | 2012-11-23 | 一种利用总线进行通讯的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019972B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107270482A (zh) * | 2017-06-26 | 2017-10-20 | 珠海格力电器股份有限公司 | 空调系统及其通信控制方法 |
CN110781119A (zh) * | 2019-10-22 | 2020-02-11 | 广东高云半导体科技股份有限公司 | 一种i2c总线扩展接口及其控制方法、片上系统 |
CN110795373A (zh) * | 2019-09-27 | 2020-02-14 | 深圳震有科技股份有限公司 | 一种i2c总线到并行总线的转换方法、终端及存储介质 |
CN112181865A (zh) * | 2020-09-09 | 2021-01-05 | 北京爱芯科技有限公司 | 地址编码方法、装置、解码方法、装置及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477519A (zh) * | 2002-08-20 | 2004-02-25 | 深圳市中兴通讯股份有限公司上海第二 | 一种处理器的地址空间优化方法 |
CN1601462A (zh) * | 2003-09-27 | 2005-03-30 | 英特尔公司 | 处理器的扩展寄存器空间装置和方法 |
CN1858854A (zh) * | 2005-12-28 | 2006-11-08 | 华为技术有限公司 | 一种寄存器访问装置及方法 |
CN101464848A (zh) * | 2009-01-22 | 2009-06-24 | 成都市华为赛门铁克科技有限公司 | 一种串行总线扩展方法及设备 |
US20100042808A1 (en) * | 2008-08-15 | 2010-02-18 | Moyer William C | Provision of extended addressing modes in a single instruction multiple data (simd) data processor |
-
2012
- 2012-11-23 CN CN201210483730.2A patent/CN103019972B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477519A (zh) * | 2002-08-20 | 2004-02-25 | 深圳市中兴通讯股份有限公司上海第二 | 一种处理器的地址空间优化方法 |
CN1601462A (zh) * | 2003-09-27 | 2005-03-30 | 英特尔公司 | 处理器的扩展寄存器空间装置和方法 |
CN1858854A (zh) * | 2005-12-28 | 2006-11-08 | 华为技术有限公司 | 一种寄存器访问装置及方法 |
US20100042808A1 (en) * | 2008-08-15 | 2010-02-18 | Moyer William C | Provision of extended addressing modes in a single instruction multiple data (simd) data processor |
CN101464848A (zh) * | 2009-01-22 | 2009-06-24 | 成都市华为赛门铁克科技有限公司 | 一种串行总线扩展方法及设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107270482A (zh) * | 2017-06-26 | 2017-10-20 | 珠海格力电器股份有限公司 | 空调系统及其通信控制方法 |
CN110795373A (zh) * | 2019-09-27 | 2020-02-14 | 深圳震有科技股份有限公司 | 一种i2c总线到并行总线的转换方法、终端及存储介质 |
CN110795373B (zh) * | 2019-09-27 | 2023-09-19 | 深圳震有科技股份有限公司 | 一种i2c总线到并行总线的转换方法、终端及存储介质 |
CN110781119A (zh) * | 2019-10-22 | 2020-02-11 | 广东高云半导体科技股份有限公司 | 一种i2c总线扩展接口及其控制方法、片上系统 |
CN112181865A (zh) * | 2020-09-09 | 2021-01-05 | 北京爱芯科技有限公司 | 地址编码方法、装置、解码方法、装置及计算机存储介质 |
CN112181865B (zh) * | 2020-09-09 | 2024-05-31 | 北京爱芯科技有限公司 | 地址编码方法、装置、解码方法、装置及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103019972B (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462504B (zh) | 最终级高速缓存系统和对应的方法 | |
CN103064805B (zh) | Spi控制器及通信方法 | |
KR101832797B1 (ko) | Usb 디바이스와의 mctp 통신을 수행하기 위한 방법, 장치 및 시스템 | |
CN108701109A (zh) | 用于计算机扩展总线的插件机制的方法、装置和系统 | |
KR101995623B1 (ko) | 고속 구성 메커니즘을 위한 장치, 방법, 및 시스템 | |
CN102929836B (zh) | 一种航天专用asic芯片系统 | |
CN107924380A (zh) | 使用业务类别分配高速缓存的方法、装置和系统 | |
CN105027444B (zh) | 集成时钟差分缓冲 | |
CN110045915A (zh) | 使用存储装置中的系统时间戳的后台数据刷新 | |
CN108027785A (zh) | 用于对链路拆分进行去偏斜的方法、设备和系统 | |
CN108089940A (zh) | 处理超时的系统、方法和装置 | |
US9952643B2 (en) | Device power management state transition latency advertisement for faster boot time | |
CN104919439A (zh) | 用于支持基于处理器的系统中的异构存储器存取请求的异构存储器系统以及相关方法和计算机可读媒体 | |
CN109634899A (zh) | 针对pcie进行sris模式选择的系统、方法和装置 | |
CN104932996B (zh) | 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统 | |
CN101681323A (zh) | 装置引导的存储器屏障 | |
CN103019972B (zh) | 一种利用总线进行通讯的方法和装置 | |
CN104714907B (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
CN104850516B (zh) | 一种ddr变频设计方法和装置 | |
CN106598548A (zh) | 存储单元读写冲突的解决方法及装置 | |
CN103412829A (zh) | 扩大mcu程序地址空间的方法及装置 | |
CN104035539B (zh) | 指示移动设备中的临界电池状态 | |
WO2019019285A1 (zh) | 一种资源控制方法及装置 | |
CN102591817B (zh) | 一种多总线桥控制器及其实现方法 | |
CN103019988B (zh) | 电脑、嵌入式控制器及其方法 |
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 | ||
CP03 | Change of name, title or address |
Address after: 510670 Guangdong Province, Guangzhou high tech Industrial Development Zone Kezhu Road No. 233 Patentee after: VTRON GROUP Co.,Ltd. Address before: 510663 Guangzhou province high tech Industrial Development Zone, Guangdong, Cai road, No. 6, No. Patentee before: VTRON TECHNOLOGIES Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160525 Termination date: 20211123 |
|
CF01 | Termination of patent right due to non-payment of annual fee |