CN103279434A - 从设备地址修改方法和装置 - Google Patents
从设备地址修改方法和装置 Download PDFInfo
- Publication number
- CN103279434A CN103279434A CN2013101733700A CN201310173370A CN103279434A CN 103279434 A CN103279434 A CN 103279434A CN 2013101733700 A CN2013101733700 A CN 2013101733700A CN 201310173370 A CN201310173370 A CN 201310173370A CN 103279434 A CN103279434 A CN 103279434A
- Authority
- CN
- China
- Prior art keywords
- equipment
- address
- data
- bus
- main equipment
- 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
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种从设备地址修改方法和装置,所述方法包括:主设备向总线上发送读命令;具有相同从设备地址的从设备在接收到读命令后,根据其中的内存首地址向主设备返回数据;在从设备返回数据过程中,若其中一个从设备检测到数据冲突,则该从设备退出此次通信;主设备读取到由从设备返回的设定字节的数据后发送非应答信号,并发送携带从设备新地址的修改从设备地址命令;未退出此次通信的从设备根据接收的从设备新地址更改本从设备的地址。这样,主设备只修改了众多具有相同地址的从设备中的一个从设备的地址,从而实现对总线上的从设备分别进行地址设置;而不必进行从设备的更换操作,大大减少了工作人员的工作量,提高了从设备地址修改效率。
Description
技术领域
本发明涉及通信技术,尤其涉及一种从设备地址修改方法和装置。
背景技术
总线是电路中很多个设备之间通讯用的公用线路。总线上的从设备必须有不同的地址才能和主设备双向通信,当两个设备同时往总线上发送数据的时候会造成总线冲突。常见的总线有PCI(Peripheral Component Interconnect,外部控制器接口)总线,USB(Universal Serial Bus,通用串行总线)总线、IIC(Inter-Integrated Circuit,集成电路)总线等。
在一些从设备高密度应用的场合,如图1所示,一个主设备需要通过总线管理多个从设备,如果要实现从设备与主设备之间的双向通信,则要求这些从设备之间地址互不相同。如果这些从设备是同一类型、同一型号的产品,它们出厂时设置的初始从设备地址往往是相同的;为了保证主设备与每个从设备之间的正常双向通信,一种解决方案,如图2所示,增加了一个复用开关,主设备通过控制该复用开关,可以选择与哪个从设备相连进行通信。然而,增加了复用开关就增加了系统的成本,并且由于开关的切换也降低了总线速度,而且增加了主设备控制开关的软件复杂度而降低了系统的可靠性。
为了避免在总线中使用开关,就需要将连接在总线上的从设备的地址修改为互不相同的地址。然而,由于连接在总线上的各从设备的地址相同,主设备在通过总线发送修改从设备地址命令时,总线上所有的从设备都会接收并响应该命令,将本设备的地址修改为命令中携带的从设备新地址;也就是说,主设备发送一个修改从设备地址命令,将会同时修改与总线连接的众多具有相同地址的从设备的地址;这样,无法达到将总线上的从设备的地址修改为互不相同的地址的目的。
因此,现有技术中不得不在总线上连接单个从设备,主设备向总线上的唯一的从设备发送修改从设备地址命令,将该从设备的地址修改为第一地址;之后,再在总线上连接另一个从设备,主设备向所述发送修改从设备地址命令,将该从设备的地址修改为第二地址;如此,逐个修改各从设备的地址,以使得这些从设备的地址互不相同。然而,这个过程中工作人员不得不频繁地进行总线上的从设备的更换操作,这大大增加了工作人员的工作量,并导致修改从设备地址的效率低下。
由此,有必要提供一种减少工作人员工作量的、效率更高的从设备地址修改方法。
发明内容
本发明的实施例提供了一种从设备地址修改方法和装置,用以减少工作人员在修改从设备地址时的工作量,提高从设备地址修改效率。
根据本发明的一个方面,提供了一种从设备地址修改方法,包括:
主设备向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;
与所述总线相连的、具有所述从设备地址的至少两个从设备在接收到所述读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;其中,所述至少两个从设备中,两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;
在所述至少两个从设备向所述主设备返回数据过程中,若其中一个从设备检测到数据发送冲突,则该从设备退出此次通信;
所述主设备读取到由从设备返回的所述设定字节的数据后发送非应答信号;之后,
所述主设备发送携带从设备新地址的修改从设备地址命令;
所述至少两个从设备中的、未退出此次通信的从设备在接收到所述修改从设备地址命令后,根据所述从设备新地址更改本从设备的地址。
较佳地,所述主设备读取到由从设备返回的所述设定字节的数据,具体包括:
所述主设备每接收到一个字节的数据,则向所述总线上发送应答信号,直到接收到所述设定字节的数据。
较佳地,所述总线具体为IIC总线;所述读命令具体为随机读命令。
较佳地,所述随机读命令依次包括如下信息:
开始标志、所述从设备地址和写标志、所述内存首地址、重新开始标志、所述从设备地址和读标志;以及
所述与所述总线相连的、具有所述从设备地址的至少两个从设备在接收到所述读命令后,根据所述读命令中的内存首地址向所述主设备返回数据具体包括:
所述至少两个从设备在接收到所述随机读命令中的从设备地址和写标志后,在确定从接收的信息中解析出的从设备地址与本从设备的地址相同后,转为准备接收状态;
处于准备接收状态的从设备在接收到所述随机读命令中的内存首地址后,记录所述内存首地址;
所述至少两个从设备在接收到所述随机读命令中的所述从设备地址和读标志后,在确定从接收的信息中解析出的从设备地址与本从设备的地址相同后,转为准备发送状态;
处于准备发送状态的从设备将所述内存首地址中存储的数据向所述主设备返回;并在接收到所述主设备发送的应答信号后,发送下一个地址的数据。
根据本发明的另一个方面,还提供了一种从设备地址修改方法,包括:
主设备向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;其中,所述总线还连接至少两个具有所述从设备地址的从设备,且两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;
所述主设备读取到由与所述总线连接的从设备返回的所述设定字节的数据后发送非应答信号;之后,
所述主设备发送携带从设备新地址的修改从设备地址命令,以修改所述至少两个具有所述从设备地址的从设备中的、未退出此次通信的从设备的地址。
较佳地,所述主设备读取到由与所述总线连接的从设备返回的所述设定字节的数据,具体包括:
所述主设备每接收到一个字节由与所述总线连接的从设备返回的数据,则向所述总线上发送应答信号,直到接收到所述设定字节的数据。
较佳地,所述总线具体为IIC总线;所述读命令具体为随机读命令。
根据本发明的另一个方面,还提供了一种从设备地址修改方法,包括:
从设备在接收到主设备通过所述总线发送的携带有本从设备的地址和内存首地址的读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;
若所述从设备在向所述主设备返回数据过程中,检测到数据发送冲突,则退出此次通信;
若所述从设备在向所述主设备返回数据后,接收到所述主设备发送的非应答信号,则停止继续发送数据;之后,所述从设备若接收到所述主设备发送的携带从设备新地址的修改从设备地址命令,则根据所述从设备新地址更改本从设备的地址。
较佳地,所述总线具体为IIC总线;所述读命令具体为随机读命令。
较佳地,所述根据所述读命令中的内存首地址向所述主设备返回数据具体包括:
所述从设备将所述内存首地址中存储的数据向所述主设备返回;并在接收到所述主设备发送的应答信号后,发送下一个地址的数据。
根据本发明的另一个方面,还提供了一种从设备地址修改装置,包括:
读取从设备数据模块,用于向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;其中,所述总线还连接至少两个具有所述从设备地址的从设备,且两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;并在读取到由与所述总线连接的从设备返回的所述设定字节的数据后发送非应答信号;之后,发送地址修改通知;
地址修改命令发送模块,用于接收到所述地址修改通知后,发送携带从设备新地址的修改从设备地址命令,以修改所述至少两个具有所述从设备地址的从设备中的、未退出此次通信的从设备的地址。
根据本发明的另一个方面,还提供了一种从设备,包括:
本机事件处理模块,用于在确认本从设备接收到主设备通过总线发送的携带有本从设备的地址和内存首地址的读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;以及在向所述主设备返回一个字节的数据后,若接收到主设备发送的应答信号,则继续发送下一个地址的数据;若接收到主设备发送的非应答信号后,接收到所述主设备发送的携带从设备新地址的修改从设备地址命令,则发送地址修改通知;以及在向所述主设备返回数据过程中,若确认检测到数据发送冲突,则中断此次通信,发送冲突处理通知;
冲突处理模块,用于接收到所述冲突处理通知后,中断与所述主设备的此处通信;
地址修改模块,用于接收到所述地址修改通知后,根据所述从设备新地址更改本从设备的地址。
较佳地,所述读命令处理模块具体包括:
中断处理单元,用于在接收到中断请求后,若判断出是IIC从机控制器发送的中断请求,则发送从机状态判断通知;
状态判断单元,用于接收到所述从机状态判断通知后,读取所述IIC从机控制器的状态寄存器中的数值;根据读取的数值,若判断出当前中断事件为收到本从设备地址的事件,则发送事件处理通知;若判断出当前中断事件为收到数据事件,则发送数据接收通知;若判断出当前中断事件为数据发送完毕事件,则发送数据发送完毕通知;若判断出当前中断事件为数据发送冲突事件,则发送所述冲突处理通知;
事件处理单元,用于接收到所述事件处理通知后,读取并解析所述所述IIC从机控制器的数据寄存器中的数据,若解析出所述数据寄存器中的数据包含写标志信息,则将收发状态变量设置为地址接收状态;
所述事件处理单元还用于接收到所述数据接收通知后,若判断出所述收发状态变量为所述地址接收状态,则将所述数据寄存器中的数据作为所述内存首地址进行记录,并将所述内存首地址作为当前地址后,修改所述收发状态变量为数据接收状态;
所述事件处理单元还用于接收到所述事件处理通知后,若解析出所述数据寄存器中的数据包含读标志信息,则将所述收发状态变量设置为数据发送状态,并将所述当前地址的数据赋值到所述数据寄存器进行发送;
所述事件处理单元还用于在接收到所述数据发送完毕通知后,将所述收发状态变量设置为数据发送完毕状态;
所述事件处理单元还用于接收到所述数据接收通知后,若判断出所述收发状态变量为所述数据发送完毕状态,则进一步判断所述数据寄存器中的数据为应答信号还是非应答信号;若为应答信号,则将所述收发状态变量设置为数据发送状态后,对所述当前地址加1后,将所述当前地址的数据赋值到所述数据寄存器进行发送;若为非应答信号,则将所述收发状态变量设置为命令接收状态;
所述事件处理单元还用于接收到所述数据接收通知后,若判断出所述收发状态变量为所述命令接收状态,则在判断出所述数据寄存器中的数据为所述修改从设备地址命令后,将所述收发状态变量设置为新地址接收状态;
所述事件处理单元还用于接收到所述数据接收通知后,若判断出所述收发状态变量为所述新地址接收状态,则将所述数据寄存器中的数据作为接收的从设备新地址进行记录,并发送所述地址修改通知。
本发明实施例提供的技术方案中,由于利用多个从设备同时在总线上发送数据而产生冲突后,有的从设备会自动退出本次通信,最终只保留下一个从设备与主设备保持通信的特性,来实现主设备向该保留下的从设备发送修改从设备地址命令,达到只修改保留下的从设备的地址的目的。这样,就可以实现主设备发送修改从设备地址命令时,只修改与总线连接的众多具有相同地址的从设备中的一个从设备的地址的目的;从而达到分别将与总线连接的众多具有相同地址的从设备,依次设置为不同地址的目的。而在对从设备的地址进行修改的过程中,由于所有的从设备都是连接到总线上的,不必进行从设备的更换操作,大大减少了工作人员的工作量,提高了从设备地址修改效率。
附图说明
图1为现有技术的主设备通过总线管理多个从设备的示意图;
图2为现有技术的主设备通过总线与多个具有相同地址的从设备进行通信的示意图;
图3为本发明实施例的主设备通过总线修改多个具有相同地址的从设备的地址的系统示意图;
图4为本发明实施例的从设备地址修改方法的流程图;
图5为本发明实施例的主设备中的从设备地址修改装置的内部结构框图;
图6为本发明实施例的从设备内部结构框图;
图7为本发明实施例的本机事件处理模块的内部结构框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明的主要思路为,利用多个从设备同时在总线上发送数据而产生冲突后,有的从设备会自动退出本次通信,最终只保留下一个从设备与主设备保持通信的特性,来实现主设备向该保留下的从设备发送修改从设备地址命令,达到只修改保留下的从设备的地址的目的。这样,就可以实现主设备发送修改从设备地址命令时,只修改与总线连接的众多具有相同地址的从设备中的一个从设备的地址的目的;从而达到分别将与总线连接的众多具有相同地址的从设备,依次设置为不同地址的目的。而在对从设备的地址进行修改的过程中,由于所有的从设备都是连接到总线上的,不必进行从设备的更换操作,大大减少了工作人员的工作量,提高了从设备地址修改效率。
下面结合附图详细说明本发明实施例的技术方案。本发明的主设备通过总线修改多个具有相同地址的从设备的地址的系统示意图,如图3所示,包括:主设备301,和至少两个具有相同从设备地址的从设备302。
主设备301和各从设备302均与总线相连;所述总线具体可以是IIC总线,也可以是支持冲突检查的其它总线。在后续讲述的技术方案中,主要以IIC总线为例讲述从设备地址修改的方法。本发明提供的主设备301对从设备302进行从设备地址修改的方法,具体流程如图4所示,包括如下步骤:
S401:主设备301发送携带有从设备地址和内存首地址的读命令。
具体地,主设备301向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址。
例如,对于主设备通过IIC总线与各从设备相连的情况,IIC总线上的读操作通过包括如下模式:当前地址读、随机读模式。由于当前地址读模式中,不能指定特定的读取数据的地址,而随机读模式中可以指定出特定的读取数据的地址;因此,本发明的主设备发送的读命令具体采用随机读模式中的随机读命令,该随机读命令中指定出特定的读取数据的地址,即内存首地址。
随机读模式中主设备发送随机读命令,从设备进行响应的时序如下表1所示:
表1
从上表1可以看出,主设备发送随机读命令的时序是:主设备在发送开始标志后连续发送带有写标志的从设备地址信息;在收到从设备的应答信号后,继续发送内存首地址,用以指定从设备内存中的特定地址;在收到从设备的应答信号后,主设备发送重新开始标志后连续发送带有读标志的从设备地址信息,从而完成随机读命令的发送。
也就是说,主设备发送的随机读命令依次包括如下信息:开始标志、从设备地址和写标志、内存首地址、重新开始标志、从设备地址和读标志。
事实上,在主设备301发送开始标志,以及带有写标志的从设备地址信息后,IIC总线上具有该从设备地址的各从设备302在接收到主设备301发送的信息后,由于解析出其中携带的从设备地址与本从设备的地址相同,则均会向主设备301发送应答信号。
S402:具有所述从设备地址的从设备302在接收到所述读命令后,根据所述读命令中的内存首地址向所述主设备返回数据。
具体地,具有所述从设备地址的从设备302在接收到所述读命令后,由于从中解析出的从设备地址与本从设备的地址相同;因此,每个具有所述从设备地址的从设备302都会响应该读命令:在接收到该读命令后,通过总线向主设备301发送数据。
例如,对于主设备301通过IIC总线与各从设备302相连的情况,各个具有所述从设备地址的从设备302响应主设备301发送的随机读命令的具体过程如下:
至少两个从设备302在接收到所述随机读命令中的从设备地址和写标志后,在确定从接收的信息中解析出的从设备地址与本从设备的地址相同后,转为准备接收状态;
处于准备接收状态的从设备302在接收到所述随机读命令中的内存首地址后,记录所述内存首地址;
所述至少两个从设备302在接收到所述随机读命令中的所述从设备地址和读标志后,在确定从接收的信息中解析出的从设备地址与本从设备的地址相同后,转为准备发送状态,并将所述内存首地址作为当前地址;
处于准备发送状态的从设备302将所述内存首地址中存储的数据向主设备301返回;并在接收到主设备301发送的应答信号(ACK信号)后,发送下一个地址的数据;也就是说,处于准备发送状态的从设备302将当前地址中的数据向主设备301返回后,自动对当前地址进行更新:将当前地址加1,得到更新后的当前地址;并在接收到主设备301发送的应答信号后,将更新后的当前地址中的数据向主设备301返回。如此,处于准备发送状态的从设备302每在接收到主设备301发送的应答信号后,都继续发送下一个地址的数据。
在各从设备302都根据读命令向主设备301返回数据的过程中,总线上同一时刻可能存在多个从设备302发送的数据。由于本发明中的两两从设备302(即任意两个从设备)的待读取数据均不同,因此,多个从设备在同时发送各自的待读取数据的过程中,必然会发生数据冲突。其中,所述待读取数据具体指的是首地址为内存首地址、设定字节的存储区域中所存储的数据。
事实上,为了保证各从设备302中的待读取数据都不一样,待读取数据可以是从设备302的序列号,或者是从设备302的厂家信息与设备序列号的组合;而这些信息往往存储在从设备302的特定区域中;因此,主设备301从各从设备302的特定区域中同时读取这些信息时,必然会出现总线上发送的数据发生冲突的现象;发生冲突后有的从设备302就会自动退出与主设备301的此次通信。
例如,多个从设备302同时向IIC总线上发送数据时,若有的从设备输出数据“1”,有的从设备输出数据“0”,就会产生冲突;IIC总线标准中规定了数据“1”是由弱上拉产生的,因此,在“1”和“0”发生冲突时,冲突的结果为“0”;而发送数据“1”的从设备会检测到本设备在发送“1”时总线上的数据却为“0”的情况,从而发现自己被冲突而且仲裁失败;而发送“0”的从设备则不会发现任何异常情况继续保持与主设备的通信。发现自己被冲突而仲裁失败的从设备将自动中断、退出该次与主设备的通信。这样,在若干次冲突后,将只保留一个从设备继续与主设备通信。
S403:主设备301读取到由从设备302返回的设定字节的数据后发送非应答信号(NACK信号)。
具体地,本领域技术人员可以根据实际情况设置设定字节的大小;例如,厂家信息与设备序列号的组合为8个字节的信息,则可以设置所述设定字节为8个字节。
主设备301在读取了从设备302返回的设定字节的数据后,可以保证已发生了足够次的冲突而只剩下一个从设备与主设备通信。
主设备301读取到由从设备302返回的设定字节的数据后发送非应答信号,剩下的唯一的一个从设备302可以收到主设备发送的非应答信号,而其它因冲突退出通信的从设备302则不能收到主设备发送的非应答信号。这里需要指出的是,非应答信号是一个数据值与应答信号的数据值不同的信号,而不是指不发送应答信号。
收到非应答信号的从设备302停止继续发送数据,并准备接收来自主设备301的数据。
S404:主设备301发送携带从设备新地址的修改从设备地址命令。
具体地,主设备301在发送了非应答信号后,发送修改从设备地址命令,该修改从设备地址命令中携带有地址修改标志和从设备新地址。
例如,主设备301通过IIC总线发送的修改从设备地址命令的时序如下表2所示:
表2
字节顺序 | 1 | 2 | 3 | 4 | 5 |
主设备 | 地址修改标志 | 从设备新地址 | 停止标志 | ||
从设备 | 应答信号 | 应答信号 |
从上表2可以看出,主设备发送修改从设备地址命令的时序是:主设备发送地址修改标志;在收到从设备的应答信号后,继续发送从设备新地址;在收到从设备的应答信号后发送停止标志,以结束此次通信过程。
S405:未退出此次通信的从设备302在接收到所述修改从设备地址命令后,根据所述从设备新地址更改本从设备的地址。
具体地,收到非应答信号的从设备302接收到地址修改标识后,确认接收到修改从设备地址命令,并根据在地址修改标识之后接收到的从设备新地址对本设备的地址进行更改。例如,从设备302接收到的修改从设备地址命令中携带的从设备新地址具体为第一地址,则该从设备使用第一地址对本设备的地址进行更改。
如果总线上有n个具有相同从设备地址的从设备,则主设备通过上述S401-S405步骤的方法分别发送n次修改从设备地址命令,命令中携带的从设备新地址分别为第一地址、第二地址……第n地址,从而实现将原本具有相同从设备地址的n个从设备,分别设置为不同的地址。
本发明实施例提供的一种主设备中的从设备地址修改装置的内部结构如图5所示,包括:读取从设备数据模块501、地址修改命令发送模块502。
读取从设备数据模块501用于向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;其中,所述总线还连接至少两个具有所述从设备地址的从设备,且两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;并在读取到由与所述总线连接的从设备返回的所述设定字节的数据后发送非应答信号;之后,向地址修改命令发送模块502发送地址修改通知;
地址修改命令发送模块502用于接收到所述地址修改通知后,发送携带从设备新地址的修改从设备地址命令,以修改所述至少两个具有所述从设备地址的从设备中的、未退出此次通信的从设备的地址。
本发明实施例提供的一种从设备,其内部结构框图如图6所示,包括:本机事件处理模块601、冲突处理模块602、地址修改模块603。
本机事件处理模块601用于在确认本从设备接收到主设备通过总线发送的携带有本从设备的地址和内存首地址的读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;以及在向所述主设备返回一个字节的数据后,若接收到主设备发送的应答信号,则继续发送下一个地址的数据;若接收到主设备发送的非应答信号后,接收到所述主设备发送的携带从设备新地址的修改从设备地址命令,则发送地址修改通知;以及在向所述主设备返回数据过程中,若确认检测到数据发送冲突,则中断此次通信,发送冲突处理通知;
冲突处理模块602用于接收到本机事件处理模块601发送的冲突处理通知后,中断与所述主设备的此处通信;
地址修改模块603用于接收到本机事件处理模块601发送的地址修改通知后,根据所述从设备新地址更改本从设备的地址。
具体地,对于总线为IIC总线的情况,从设备用以实现与主设备进行通信的单片机或MCU中通常内置有符合IIC协议的IIC从机控制器;IIC从机控制器有数据寄存器、状态寄存器和控制寄存器;编程人员可以利用这三个寄存器编写程序来实现利用单片机或MCU的IIC接口进行数据的收发。而在单片机或MCU的IIC接口每接收到一个字节的数据或发送完毕一个数据,IIC从机控制器就会发出中断请求;而编程人员可以编制程序来处理该中断请求,以实现所希望达到的功能。
由此,如图7所示,上述的本机事件处理模块601中具体可以包括:中断处理单元701、状态判断单元702、事件处理单元703。
中断处理单元701用于在接收到中断请求后,若判断出是IIC从机控制器发送的中断请求,则发送从机状态判断通知;
状态判断单元702用于接收到中断处理单元701发送的从机状态判断通知后,读取所述IIC从机控制器的状态寄存器中的数值;根据读取的数值,若判断出当前中断事件为收到本从设备地址的事件,则发送事件处理通知;若判断出当前中断事件为收到数据事件,则发送数据接收通知;若判断出当前中断事件为数据发送完毕事件,则发送数据发送完毕通知;若判断出当前中断事件为数据发送冲突事件,则发送所述冲突处理通知;
事件处理单元703用于接收到状态判断单元702发送的事件处理通知后,读取并解析所述所述IIC从机控制器的数据寄存器中的数据,若解析出所述数据寄存器中的数据包含写标志信息,则将收发状态变量设置为地址接收状态;
所述事件处理单元还用于接收到状态判断单元702发送的数据接收通知后,若判断出所述收发状态变量为所述地址接收状态,则将所述数据寄存器中的数据作为所述内存首地址进行记录,并将所述内存首地址作为当前地址后,修改所述收发状态变量为数据接收状态;
所述事件处理单元还用于接收到状态判断单元702发送的事件处理通知后,若解析出所述数据寄存器中的数据包含读标志信息,则将所述收发状态变量设置为数据发送状态,并将所述当前地址的数据赋值到所述数据寄存器进行发送;
所述事件处理单元还用于在接收到状态判断单元702发送的数据发送完毕通知后,将所述收发状态变量设置为数据发送完毕状态;
所述事件处理单元还用于接收到状态判断单元702发送的数据接收通知后,若判断出所述收发状态变量为所述数据发送完毕状态,则进一步判断所述数据寄存器中的数据为应答信号还是非应答信号;若为应答信号,则将所述收发状态变量设置为数据发送状态后,对所述当前地址加1后,将所述当前地址的数据赋值到所述数据寄存器进行发送;若为非应答信号,则将所述收发状态变量设置为命令接收状态;
所述事件处理单元还用于接收到状态判断单元702发送的数据接收通知后,若判断出所述收发状态变量为所述命令接收状态、且所述地址修改状态变量为所述地址修改命令接收状态,则在判断出所述数据寄存器中的数据为所述修改从设备地址命令后,将所述收发状态变量设置为新地址接收状态;
所述事件处理单元还用于接收到状态判断单元702发送的数据接收通知后,若判断出所述收发状态变量为所述新地址接收状态,则将所述数据寄存器中的数据作为接收的从设备新地址进行记录,并发送所述地址修改通知。
本发明中的从设备具体可以是骨干网的DWDM(Dense WaveLengthDivision Multiplexing,高密度波分多路复用技术)、接入网的OLT(Optical LineTerminal,光线路终端)、企业存储网的光交换机中应用的光模块。
本发明实施例提供的技术方案中,由于利用多个从设备同时在总线上发送数据而产生冲突后,有的从设备会自动退出本次通信,最终只保留下一个从设备与主设备保持通信的特性,来实现主设备向该保留下的从设备发送修改从设备地址命令,达到只修改保留下的从设备的地址的目的。这样,就可以实现主设备发送修改从设备地址命令时,只修改与总线连接的众多具有相同地址的从设备中的一个从设备的地址的目的;从而达到分别将与总线连接的众多具有相同地址的从设备,依次设置为不同地址的目的。而在对从设备的地址进行修改的过程中,由于所有的从设备都是连接到总线上的,不必进行从设备的更换操作,大大减少了工作人员的工作量,提高了从设备地址修改效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种从设备地址修改方法,其特征在于,包括:
主设备向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;
与所述总线相连的、具有所述从设备地址的至少两个从设备在接收到所述读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;其中,所述至少两个从设备中,两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;
在所述至少两个从设备向所述主设备返回数据过程中,若其中一个从设备检测到数据发送冲突,则该从设备退出此次通信;
所述主设备读取到由从设备返回的所述设定字节的数据后发送非应答信号;之后,
所述主设备发送携带从设备新地址的修改从设备地址命令;
所述至少两个从设备中的、未退出此次通信的从设备在接收到所述修改从设备地址命令后,根据所述从设备新地址更改本从设备的地址。
2.如权利要求1所述的方法,其特征在于,所述主设备读取到由从设备返回的所述设定字节的数据,具体包括:
所述主设备每接收到一个字节的数据,则向所述总线上发送应答信号,直到接收到所述设定字节的数据。
3.如权利要求1或2所述的方法,其特征在于,所述总线具体为IIC总线;所述读命令具体为随机读命令。
4.一种从设备地址修改方法,其特征在于,包括:
主设备向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;其中,所述总线还连接至少两个具有所述从设备地址的从设备,且两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;
所述主设备读取到由与所述总线连接的从设备返回的所述设定字节的数据后发送非应答信号;之后,
所述主设备发送携带从设备新地址的修改从设备地址命令,以修改所述至少两个具有所述从设备地址的从设备中的、未退出此次通信的从设备的地址。
5.如权利要求4所述的方法,其特征在于,所述主设备读取到由与所述总线连接的从设备返回的所述设定字节的数据,具体包括:
所述主设备每接收到一个字节由与所述总线连接的从设备返回的数据,则向所述总线上发送应答信号,直到接收到所述设定字节的数据。
6.一种从设备地址修改方法,其特征在于,包括:
从设备在接收到主设备通过所述总线发送的携带有本从设备的地址和内存首地址的读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;
若所述从设备在向所述主设备返回数据过程中,检测到数据发送冲突,则退出此次通信;
若所述从设备在向所述主设备返回数据后,接收到所述主设备发送的非应答信号,则停止继续发送数据;之后,所述从设备若接收到所述主设备发送的携带从设备新地址的修改从设备地址命令,则根据所述从设备新地址更改本从设备的地址。
7.如权利要求6所述的方法,其特征在于,所述根据所述读命令中的内存首地址向所述主设备返回数据具体包括:
所述从设备将所述内存首地址中存储的数据向所述主设备返回;并在接收到所述主设备发送的应答信号后,发送下一个地址的数据。
8.一种从设备地址修改装置,其特征在于,包括:
读取从设备数据模块,用于向总线上发送读命令,所述读命令中携带有从设备地址和内存首地址;其中,所述总线还连接至少两个具有所述从设备地址的从设备,且两两从设备的待读取数据均不同;所述待读取数据指的是首地址为所述内存首地址、设定字节的存储区域中所存储的数据;并在读取到由与所述总线连接的从设备返回的所述设定字节的数据后发送非应答信号;之后,发送地址修改通知;
地址修改命令发送模块,用于接收到所述地址修改通知后,发送携带从设备新地址的修改从设备地址命令,以修改所述至少两个具有所述从设备地址的从设备中的、未退出此次通信的从设备的地址。
9.一种从设备,其特征在于,包括:
本机事件处理模块,用于在确认本从设备接收到主设备通过总线发送的携带有本从设备的地址和内存首地址的读命令后,根据所述读命令中的内存首地址向所述主设备返回数据;以及在向所述主设备返回一个字节的数据后,若接收到主设备发送的应答信号,则继续发送下一个地址的数据;若接收到主设备发送的非应答信号后,接收到所述主设备发送的携带从设备新地址的修改从设备地址命令,则发送地址修改通知;以及在向所述主设备返回数据过程中,若确认检测到数据发送冲突,则中断此次通信,发送冲突处理通知;
冲突处理模块,用于接收到所述冲突处理通知后,中断与所述主设备的此处通信;
地址修改模块,用于接收到所述地址修改通知后,根据所述从设备新地址更改本从设备的地址。
10.如权利要求9所述的从设备,其特征在于,所述总线具体为IIC总线;所述读命令具体为随机读命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310173370.0A CN103279434B (zh) | 2013-05-10 | 2013-05-10 | 从设备地址修改方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310173370.0A CN103279434B (zh) | 2013-05-10 | 2013-05-10 | 从设备地址修改方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279434A true CN103279434A (zh) | 2013-09-04 |
CN103279434B CN103279434B (zh) | 2016-06-29 |
Family
ID=49061960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310173370.0A Active CN103279434B (zh) | 2013-05-10 | 2013-05-10 | 从设备地址修改方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279434B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138485A (zh) * | 2015-08-21 | 2015-12-09 | 上海斐讯数据通信技术有限公司 | 一种串行总线地址管理装置 |
CN105530153A (zh) * | 2015-12-11 | 2016-04-27 | 上海新时达电气股份有限公司 | 网络内的从设备通信方法、通信网络、主设备及从设备 |
CN106371920A (zh) * | 2016-08-24 | 2017-02-01 | 天脉聚源(北京)传媒科技有限公司 | 一种避免内存地址冲突的方法及装置 |
CN107847140A (zh) * | 2015-07-06 | 2018-03-27 | 雅培糖尿病护理公司 | 用于症状发作检测和评估的系统、装置和方法 |
CN112131165A (zh) * | 2019-06-24 | 2020-12-25 | 半导体元件工业有限责任公司 | 用于集成电路的方法和系统 |
CN113010463A (zh) * | 2019-12-20 | 2021-06-22 | 林德(中国)叉车有限公司 | 一种用于锂电池管理的iic通信方法及系统 |
CN114341827A (zh) * | 2019-09-23 | 2022-04-12 | 英飞凌科技股份有限公司 | 从设备,总线系统和方法 |
CN114756500A (zh) * | 2021-07-28 | 2022-07-15 | 义明科技股份有限公司 | 主从式系统及其副集成电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470402B1 (en) * | 1998-11-03 | 2002-10-22 | Texas Instruments Incorporated | Increasing values of a read and a trigger pointers when a write pointer reaches the read pointer in a circular FIFO (first-in-first-out) store |
CN101447931A (zh) * | 2008-12-26 | 2009-06-03 | 华为技术有限公司 | 一种排他操作的实现方法和装置 |
CN101630298A (zh) * | 2009-07-28 | 2010-01-20 | 中兴通讯股份有限公司 | 串行总线从设备地址设置系统 |
CN102759913A (zh) * | 2012-07-13 | 2012-10-31 | 李崇平 | 智能家居设备在线地址修改方法 |
-
2013
- 2013-05-10 CN CN201310173370.0A patent/CN103279434B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470402B1 (en) * | 1998-11-03 | 2002-10-22 | Texas Instruments Incorporated | Increasing values of a read and a trigger pointers when a write pointer reaches the read pointer in a circular FIFO (first-in-first-out) store |
CN101447931A (zh) * | 2008-12-26 | 2009-06-03 | 华为技术有限公司 | 一种排他操作的实现方法和装置 |
CN101630298A (zh) * | 2009-07-28 | 2010-01-20 | 中兴通讯股份有限公司 | 串行总线从设备地址设置系统 |
CN102759913A (zh) * | 2012-07-13 | 2012-10-31 | 李崇平 | 智能家居设备在线地址修改方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107847140A (zh) * | 2015-07-06 | 2018-03-27 | 雅培糖尿病护理公司 | 用于症状发作检测和评估的系统、装置和方法 |
CN105138485A (zh) * | 2015-08-21 | 2015-12-09 | 上海斐讯数据通信技术有限公司 | 一种串行总线地址管理装置 |
CN105530153A (zh) * | 2015-12-11 | 2016-04-27 | 上海新时达电气股份有限公司 | 网络内的从设备通信方法、通信网络、主设备及从设备 |
CN105530153B (zh) * | 2015-12-11 | 2019-02-05 | 上海新时达电气股份有限公司 | 网络内的从设备通信方法、通信网络、主设备及从设备 |
CN106371920A (zh) * | 2016-08-24 | 2017-02-01 | 天脉聚源(北京)传媒科技有限公司 | 一种避免内存地址冲突的方法及装置 |
CN112131165A (zh) * | 2019-06-24 | 2020-12-25 | 半导体元件工业有限责任公司 | 用于集成电路的方法和系统 |
CN114341827A (zh) * | 2019-09-23 | 2022-04-12 | 英飞凌科技股份有限公司 | 从设备,总线系统和方法 |
CN113010463A (zh) * | 2019-12-20 | 2021-06-22 | 林德(中国)叉车有限公司 | 一种用于锂电池管理的iic通信方法及系统 |
CN113010463B (zh) * | 2019-12-20 | 2024-05-14 | 林德(中国)叉车有限公司 | 一种用于锂电池管理的iic通信方法及系统 |
CN114756500A (zh) * | 2021-07-28 | 2022-07-15 | 义明科技股份有限公司 | 主从式系统及其副集成电路 |
Also Published As
Publication number | Publication date |
---|---|
CN103279434B (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279434A (zh) | 从设备地址修改方法和装置 | |
US4730251A (en) | Automatic I/O address assignment | |
US7603501B2 (en) | Communication circuit of serial peripheral interface devices | |
EP3086511B1 (en) | Data transmission and reception system | |
CN105721357A (zh) | 交换设备、外围部件互连高速系统及其初始化方法 | |
CN101663650B (zh) | 用于适配卡故障转移的设备、系统和方法 | |
JP6340962B2 (ja) | バス制御装置、データ転送システム、及びバス制御方法 | |
US20090135715A1 (en) | Duplicate internet protocol address resolution in a fragmented switch stack environment | |
EP2388960B1 (en) | Intelligent bus address self-configuration in a multi-module system | |
CN101996128A (zh) | 硬盘状态指示灯控制系统 | |
CN110380911B (zh) | 一种冗余系统主备识别的方法 | |
CN103345407A (zh) | 控制电路、连通控制器、连通控制方法及主板 | |
CN100399289C (zh) | 计算机、io扩展装置和io扩展装置的连接识别方法 | |
CN102636987B (zh) | 双重化控制装置 | |
CN102724093A (zh) | 一种atca机框及其ipmb连接方法 | |
CN103186440B (zh) | 检测子卡在位的方法、装置及系统 | |
CN103106113A (zh) | 一种中断事件处理方法和处理设备 | |
CN102402422A (zh) | 处理器组件及该组件内存共享的方法 | |
CN103412838B (zh) | 一种扩展系统、通信方法、地址配置方法、设备及装置 | |
CN106030554B (zh) | 减少芯片选择的装置、系统及方法 | |
CN106126465A (zh) | 一种数据传输方法及装置 | |
CN103309245A (zh) | 模块化可配置工业控制仪的控制系统 | |
CN106155954A (zh) | 一种模块识别和通信端口自动分配的系统及方法 | |
US9824052B2 (en) | Backplane bus structure of communication system and board recognition method using same | |
CN106598888A (zh) | 一种采用rs485协议的多板卡通讯系统及方法 |
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 |