传送分布式设备的单板硬件信息的方法和装置与流程
未命名
10-09
阅读:119
评论:0
1.本技术涉及通信技术,具体的讲是一种传送分布式设备的单板硬件信息的方法和装置。
背景技术:
2.分布式通信设备由主控板21、接口板/网板等不同功能的多个单板,接口板/网板的处理器生成带有本板记录的故障信息的ipc报文经由本板ipc芯片和主控板21的ipc芯片发送到主控板21的cpu,由主控板21的cpu分析、定位故障原因。
3.分布式通信设备的接口板/网板的单板电源的其中一路故障时,接口板/网板的ipc芯片和cpu芯片会为了满足芯片下电时序掉电,但是电源管理芯片以及上电控制器件采用单独供电,电源管理芯片通过上电控制器件输出变化的pg(power good)信号,将主控板21上记录接口板/网板电源状态的寄存器置位为标识电源故障的数值,主控板21的cpu通过can(controller area network)总线及i2c访问电源管理芯片,获取电源管理芯片的寄存器记录的信息定位接口板/网板的电源故障问题。
4.主控板21还可以在接口板/网板的ipc(inter-processor communication)芯片无法上电期间,通过can总线以及i2c总线获取接口板/网板的其他硬件器件的寄存器存储的信息,从而定位接口板/网板,获取/分析接口板/网板的运行状态。
5.但是,主控板21的cpu通过can总线访问接口板/网板的电源管理芯片的调试接口复杂度较高,背板走线较多,功能实现更复杂,需要涉及的硬件和软件联调功能较多。
技术实现要素:
6.本技术的目的在于一种传送分布式设备的单板硬件信息的方法和装置,在ipc芯片无法上电时通过i2c对接口板/网板的硬件进行读写操作。
7.为实现上述目的,本技术提供了一种传送分布式设备的单板硬件信息的方法,该方法包括,从另一单板接收具有写控制位的第一i2c控制器设置串码命令字;解析第一i2c控制器设置串码命令字携带的被写入器件地址;解析第一i2c控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;解析第一i2c控制器设置串码命令字中的写入数据宽度;从另一单板接收一个以上的被写入数据串码命令字;从另一单板接收第一i2c控制器启动串码命令字;解析一个以上被写入数据串码命令字携带的被写入数据;被写入数据的字节数小于或等于写入数据宽度;通过i2c总线将解析的数据写入被写入器件地址对应的硬件器件上对应于被写入寄存器地址的寄存器。
8.为实现上述目的,本技术还提供了一种传送分布式设备的单板硬件信息的装置,该装置包括串行码流模块和i2c模块;其中,串行码流模块,用于从另一单板接收具有写控制位的第一i2c控制器设置串码命令字;解析第一i2c控制器设置串码命令字携带的被写入器件地址;解析第一i2c控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;解析第一i2c控制器设置串码命令字中的写入数据宽度;从另一单板接收一个以上的被
写入数据串码命令字;从另一单板接收第一i2c控制器启动串码命令字;解析一个以上被写入数据串码命令字携带的被写入数据;被写入数据的字节数小于或等于写入数据宽度;i2c模块,用于通过i2c总线将解析的数据写入被写入器件地址对应的硬件器件上对应于被写入寄存器地址的寄存器。
9.本技术的有益效果在于,通过串行码流和i2c信号之间的数据转换,实现分布式通信设备的不同单板之间的硬件寄存器的数据读取,无需复杂度高的can总线在不同单板的硬件存储器之间传送数据,即使不同单板之间的ipc通道因为掉电故障,也可以通过本技术实现不同单板的硬件存储器之间的数据传送。
附图说明
10.图1为本技术提供的传送分布式设备的单板硬件信息的方法实施例的流程图;
11.图2为本技术提供的传送分布式设备的业务板的电源管理芯片信息的实施例的示意图;
12.图3为本技术提供的传送分布式设备的单板硬件信息的装置实施例的示意图。
具体实施方式
13.将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本技术的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。
14.使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。
15.图1所示本技术提供的一种传送分布式设备的单板硬件信息的方法实施例,包括,
16.步骤101,从另一单板接收具有写控制位的i2c控制器设置串码命令字;
17.步骤102,解析i2c控制器设置串码命令字携带的被写入器件地址;
18.步骤103,解析i2c控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;
19.步骤104,解析i2c控制器设置串码命令字中的写入数据宽度;
20.步骤105,从另一单板接收一个以上的被写入数据串码命令字;
21.步骤106,从另一单板接收i2c控制器启动串码命令字;
22.步骤107,解析一个以上被写入数据串码命令字携带的被写入数据;被写入数据的字节数小于或等于写入数据宽度;
23.步骤108,通过i2c总线将解析的数据写入被写入器件地址对应的硬件器件上对应于被写入寄存器地址的寄存器。
24.图1实施例的有益效果,通过串行码流和i2c信号之间的数据转换,实现分布式通信设备的不同单板之间的硬件寄存器的数据读取,无需复杂度高的can总线在不同单板的硬件存储器之间传送数据,即使不同单板之间的ipc通道因为掉电故障,也可以通过本技术实现不同单板的硬件存储器之间的数据传送。
25.图2为本技术提供的传送分布式设备的业务板的电源管理芯片信息的实施例的示
意图。
26.分布式通信设备中,主控板21与业务板/网板20通过各自单板上的ipc芯片的建立的ipc通道作为信息交互的通道。当业务板/网板20的本板电源故障时,业务板/网板20的ipc芯片和cpu为保护芯片按照芯片掉电时序掉电,无法通过ipc通道与主控板21之间传递电源管理芯片的信息。
27.业务板/网板20通过串行码流不停上传表示电源正常的pg(power good)信号给主控板21,主控板21软件轮询访问主控板21上存储各业务板电源状态的逻辑寄存器,随时获取业务板电源状态。
28.当业务板/网板20板内电源故障时,ipc芯片和cpu都掉电(为满足芯片掉电时序,保护芯片),电源管理芯片和上电控制模块23单独供电,可以正常工作。上电控制模块23向主控板21上送表示业务板上电异常的pg的串行码流,主控板21根据变化的pg信号变化确定业务板上电异常时,向cpld实现的上电控制模块23发送串行码流,由上电控制模块23对串行码流和i2c信号进行转换,在主控板21和电源管理芯片之间传送读写信息来访问电源管理芯片。
29.图2中,主控板21与业务板/网板20之间串行线路由两个单向的line组成,其协议定义如下表1所示:
30.startbit[7:0]bit[15:8]bit[23:16]bit[31:24]bit[39:32]stop0cmdbyte0byte1byte2byte30
[0031]
表1
[0032]
串行码流中,定义bit[7:0]为串行码码流cmd(命令字),定义bit[39:8]为数据传输内容。
[0033]
基于表1中定义串行码流的格式,本实施例中主控板21发往上电控制模块23串行码流的定义如下表2所示:
[0034][0035]
表2
[0036]
表2中,cmd字节的值,i2c控制器复位命令字以及i2c控制器启动命令字的字节0-字节3的值仅用于图2实施例实现的说明,可根据业务需求自定义。
[0037]
i2c控制器设置命令字中,如果字节3中自定义的寄存器地址宽度为2个字节,则可以自定义字节1和字节2的寄存器地址0以及寄存器地址1表示寄存器地址低8bit和寄存器地址的高8bit;如果自定义字节3的寄存器地址宽度的值为1个字节,则字节1的寄存器地址0表示寄存器地址。
[0038]
i2c控制器设置命令字中,如果自定义的字节3数据宽度为4个字节,则定义一个i2c控制器写数据命令字的cmd值,如表2的0b xxxx xxxx xxxx xxxx,如果自定义的数据宽度为8个字节,则再自定义一个i2c控制器写数据命令字的cmd,譬如0c xxxx xxxx xxxx xxxx;cmd为0b的命令字的数据的存储顺序在前,cmd为0c的命令字的数据的存储数据在后;当字节3自定义的数据宽度为16个字节时,可以另外定义两个i2c控制器写数据命令字分别包含cmd0d、cmd0e表示被写入数据的存储数据。
[0039]
基于表1中定义串行码流的格式,本实施例中业务板/网板20发往主控板21的串行码流的自定义如下表2所示:
[0040]
命令字cmdbyte0byte1byte2byte3i2c控制器读数据111rdata0rdata1rdata2rdata3i2c控制器读数据2 12rdata4rdata5rdata6rdata7i2c控制器读数据313rdata8rdata9rdata10rdata11i2c控制器读数据414rdata12rdata13rdata14rdata15
[0041]
表2
[0042]
串行码流的串行码流一帧可以传4字节数据,当实施例中,定义多个i2c控制器读数据命令字,每个i2c控制读数据命令字的cmd标识被读取的数据的存储顺序,当需要读取的电源管理芯片的寄存器的数据为13字节数据;业务板/网板20上的上电控制模块23依次发送的i2c控制器读数据命令字11、12、13、14;其中命令字14的字节1-字节3的rdata13-15值为全ff。
[0043]
图2中,主控板21确定业务板/网板20发生上电异常时,需要读取电源管理芯片的寄存器记录的电源故障信息时。
[0044]
主控板21先下发串行码流09cb 05 00 28(16进制)。
[0045]
业务板/网板20的上电控制模块23收到上述串行码流,串行码流模块231基于收到串行码流的cmd的值09(16进制)识别i2c控制器设置命令字,根据字节0的值“cb”(16进制)的高七位比特(1100101)识别电源管理芯片的器件地址为65,根据字节0的值“cb”的低1位(1)识别读操作,根据字节3的值“28”的高三位(001)识别寄存器地址宽度为1个字节,低第5位(01000)识别数据宽度为8个字节;根据识别的1个字节的寄存器宽度从字节1的值05获取寄存器地址为05。
[0046]
主控板21再下发i2c控制器启动串行码流0a ff ff ff ff。
[0047]
业务板/网板20的上电控制模块23的i2c模块232启动对电源管理芯片的读操作。
[0048]
i2c模块232发送起始信号,然后发送识别的电源管理芯片器件地址(65)+写操作标识位w(高七位为器件地址65,低1为写操作标识位0),收到电源管理芯片的应答信号。
[0049]
i2c模块232发送需要读取的寄存器地址(05);收到电源管理芯片的应答信号。
[0050]
i2c模块232送电源管理芯片设备地址(65)+读操作标识位r(高七位为器件地址65,低1为读操作标识位1),收到电源管理芯片的应答信号。
[0051]
i2c模块232收到电源管理芯片的应答信号后,开始接收电源管理芯片发送的数据,将收到第一个字节的数据存储串行码模块的第一数据寄存器(图中未示),即,命令字cmd11对应的寄存器;再将收到的字节存入第二数据寄存器;即,cmd12对应的寄存器;当i2c模块232读取到最后一个字节时,即已收到数据的数据宽度为8字节时,产生一个时钟的高电平无应答信号,数据传输结束,将i2c模块的(作为串行码流上传启动的)标识位置1,总线被挂起。
[0052]
串行码流模块231向主控板21发送串行码流11xx xx xx xx(16进制)和12xx xx xx xx;这两个串行码流的字节0-字节3各自携带的四个字节的被读取数据。
[0053]
主控板需要将数据写入业务板/网板20上的电源管理芯片的某个寄存器,发送串行码流09ca 06 00 28(16进制)到上电控制模块23。
[0054]
业务板/网板20的上电控制模块23收到上述串行码流,串行码流模块231基于收到串行码流的cmd的值09(16进制)识别i2c控制器设置命令字,根据字节0的值“ca”(16进制)的高七位比特(1100101)识别电源管理芯片的器件地址为65,根据字节0的值“ca”的低1位(0)识别写操作,根据字节3的值“24”的高三位(001)识别寄存器地址宽度为1个字节,低第5位(00100)识别数据宽度为4个字节;根据识别的1个字节的寄存器宽度从字节1的值“06”获取寄存器地址。
[0055]
主控板21需要将需要被写入数据的通过串行码流0b xx xx xx xx(16进制)发送到上电控制模块23。
[0056]
业务板/网板20的上电控制模块23的串行码流模块231基于收到这条串行码流的cmd的值0b(16进制)识别i2c控制器写数据,根据字节0-字节3的值获取4个字节的被写入数据。
[0057]
主控板21发送串行码流0a ff ff ff ff到业务板/网板20,上电控制模块23的i2c模块232启动对电源管理芯片的读操作。
[0058]
i2c模块232发送电源管理芯片设备地址(譬如上文65)+w,收到电源管理芯片的应答信号;
[0059]
i2c模块232发送需要写入数据的寄存器地址(譬如上文06);收到电源管理芯片的应答信号;
[0060]
i2c模块232收到电源管理芯片的应答信号后,开始将串行码流0b寄存器存入的数据写入i2c设备(i2c根据数据位宽依次送被写入数据da0,被写入数据da1,被写入数据da2,被写入数据da3)。
[0061]
为了防止电源管理芯片挂死,主控板21可以发送串行码流对其进行复位。主控板分别发送2帧的命令字:第1帧是08f0 ff ff ff;第2帧是0a ff ff ff ff。上电控制模块23的串行码流模块231通知i2c模块232发送复位信号,通知i2c模块232发送9个时钟周期的scl信号。这里主控板不需要发送带有电源管理芯片地址的i2c控制器设置命令字09h(电源管理芯片的设备地址)。
[0062]
图2以分布式通信设备的主控板21读取业务板/网板20的电源管理芯片数据为例,通过串行码流和i2c信号之间的数据转换,实现不同单板之间的硬件的寄存器的数据读取,可根据图2所示实施例,实现分布式通信设备的主控板21读取业务板/网板20的其他器件的寄存器数据,或者业务板/网板20读取其他业务板/网板20上硬件器件的寄存器的数据。本
申请在单板之间的ipc通道故障时,无需使用复杂can总线在不同单板的硬件存储器之间传送数据。
[0063]
图3为本技术提供的传送分布式设备的单板硬件信息的装置实施例的示意图。该装置30包括串行码流模块31和i2c模块32。
[0064]
串行码流模块31,用于从另一单板接收具有写控制位的第一i2c控制器设置串码命令字;解析第一i2c控制器设置串码命令字携带的被写入器件地址;解析第一i2c控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;解析第一i2c控制器设置串码命令字中的写入数据宽度;从另一单板接收一个以上的被写入数据串码命令字;从另一单板接收第一i2c控制器启动串码命令字;解析一个以上被写入数据串码命令字携带的被写入数据;被写入数据的字节数小于或等于写入数据宽度;
[0065]
i2c模块32,用于通过i2c总线将解析的数据写入被写入器件地址对应的硬件器件上对应于被写入寄存器地址的寄存器。
[0066]
串行码流模块31,还用于从另一单板接收具有读控制位的第二i2c控制器设置串码命令字;解析第二i2c控制器设置串码命令字携带的被读取器件地址;解析第二i2c控制器设置串码命令字中寄存器地址宽度对应的被读取寄存器地址;解析第二i2c控制器设置串码命令字中的读取数据宽度;从另一单板接收第二i2c控制器启动串码命令字;i2c模块32,还用于通过i2c总线接收被读取器件地址对应的硬件器件发送的被读取寄存器地址对应的寄存器存储的数据;串行码流模块31,还用于将收到的数据存储依序写入每个上行数据寄存器并将每个已写满的上行数据寄存器存储的数据通过一个以上的上行数据串码命令字发往另一单板;i2c模块32,还用于当收到的数据的总字节数等于读取数据宽度,停止通过i2c总线接收。
[0067]
串行码流模块31,还用于从另一单板接收具有读控制位的i2c控制器复位串码命令字;从另一单板接收第三i2c控制器启动串码命令字;i2c模块32,还用于通过i2c总线发送九个时钟周期的复位信号。
[0068]
串行码流模块31,从另一单板接收被写入数据串码命令字为多个且按照被写入数据串码命令字的类型命令字依序为被写入数据的存储顺序。
[0069]
串行码流模块31还用发往另一单板多个上行数据串码命令字且按照被读取数据的存储顺序设置多个上行数据串码命令字的类型命令字。
[0070]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
技术特征:
1.一种传送分布式设备的单板硬件信息的方法,其特征在于,所述方法包括,从另一单板接收具有写控制位的第一i2c控制器设置串码命令字;解析所述第一i2c控制器设置串码命令字携带的被写入器件地址;解析所述第一i2c控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;解析所述第一i2c控制器设置串码命令字中的写入数据宽度;从所述另一单板接收一个以上的被写入数据串码命令字;从所述另一单板接收第一i2c控制器启动串码命令字;解析所述一个以上被写入数据串码命令字携带的被写入数据;所述被写入数据的字节数小于或等于所述写入数据宽度;通过i2c总线将解析的数据写入所述被写入器件地址对应的硬件器件上对应于所述被写入寄存器地址的寄存器。2.根据权利要求1所述的方法,其特征在于,所述方法还包括;从所述另一单板接收具有读控制位的第二i2c控制器设置串码命令字;解析所述第二i2c控制器设置串码命令字携带的被读取器件地址;解析所述第二i2c控制器设置串码命令字中寄存器地址宽度对应的被读取寄存器地址;解析所述第二i2c控制器设置串码命令字中的读取数据宽度;从所述另一单板接收第二i2c控制器启动串码命令字;通过所述i2c总线接收所述被读取器件地址对应的硬件器件发送的所述被读取寄存器地址对应的寄存器存储的数据;将收到的数据存储依序写入每个上行数据寄存器并将每个已写满的上行数据寄存器存储的数据通过一个以上的上行数据串码命令字发往所述另一单板;当收到的数据的总字节数等于所述读取数据宽度,停止通过所述i2c总线接收。3.根据权利要求1所述的方法,其特征在于,所述方法还包括,从所述另一单板接收具有读控制位的i2c控制器复位串码命令字;从所述另一单板接收第三i2c控制器启动串码命令字;通过所述i2c总线发送九个时钟周期的复位信号。4.根据权利要求1所述的方法,其特征在于,从所述另一单板接收所述被写入数据串码命令字为多个且按照所述被写入数据的存储顺序设置多个所述被写入数据串码命令字的类型命令字。5.根据权利要求2所述的方法,其特征在于,所述上行数据串码命令字为多个且按照所述被读取数据的存储顺序设置多个所述上行数据串码命令字的类型命令字。6.一种传送分布式设备的单板硬件信息的装置,其特征在于,串行码流模块,用于从另一单板接收具有写控制位的第一i2c控制器设置串码命令字;解析所述第一i2c控制器设置串码命令字携带的被写入器件地址;解析所述第一i2c控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;解析所述第一i2c控制器设置串码命令字中的写入数据宽度;从所述另一单板接收一个以上的被写入数据串码命令字;从所述另一单板接收第一i2c控制器启动串码命令字;解析所述一个以上被写入数据串码命令字携带的被写入数据;所述被写入数据的字节数小于或等于所述写入数据宽度;i2c模块,用于通过i2c总线将解析的数据写入所述被写入器件地址对应的硬件器件上
对应于所述被写入寄存器地址的寄存器。7.根据权利要求6所述的装置,其特征在于,所述串行码流模块,还用于从所述另一单板接收具有读控制位的第二i2c控制器设置串码命令字;解析所述第二i2c控制器设置串码命令字携带的被读取器件地址;解析所述第二i2c控制器设置串码命令字中寄存器地址宽度对应的被读取寄存器地址;解析所述第二i2c控制器设置串码命令字中的读取数据宽度;从所述另一单板接收第二i2c控制器启动串码命令字;所述i2c模块,还用于通过所述i2c总线接收所述被读取器件地址对应的硬件器件发送的所述被读取寄存器地址对应的寄存器存储的数据;所述串行码流模块,还用于将收到的数据存储依序写入每个上行数据寄存器并将每个已写满的上行数据寄存器存储的数据通过一个以上的上行数据串码命令字发往所述另一单板;所述i2c模块,还用于当收到的数据的总字节数等于所述读取数据宽度,停止通过所述i2c总线接收。8.根据权利要求6所述的装置,其特征在于,所述串行码流模块,还用于从所述另一单板接收具有读控制位的i2c控制器复位串码命令字;从所述另一单板接收第三i2c控制器启动串码命令字;所述i2c模块,还用于通过所述i2c总线发送九个时钟周期的复位信号。9.根据权利要求7所述的装置,其特征在于,所述串行码流模块,从所述另一单板接收所述被写入数据串码命令字为多个且按照所述被写入数据串码命令字的类型命令字依序为所述被写入数据的存储顺序。10.根据权利要求7所述的装置,其特征在于,所述串行码流模块还用发往所述另一单板多个所述上行数据串码命令字且按照所述被读取数据的存储顺序设置多个所述上行数据串码命令字的类型命令字。
技术总结
本申请提供了一种传送分布式设备的单板硬件信息的方法和装置,该方法包括,从另一单板接收具有写控制位的第一I2C控制器设置串码命令字;解析第一I2C控制器设置串码命令字携带的被写入器件地址;解析第一I2C控制器设置串码命令字中寄存器地址宽度对应的被写入寄存器地址;解析第一I2C控制器设置串码命令字中的写入数据宽度;从另一单板接收一个以上的被写入数据串码命令字;从另一单板接收第一I2C控制器启动串码命令字;解析一个以上被写入数据串码命令字携带的被写入数据;被写入数据的字节数小于或等于写入数据宽度;通过I2C总线将解析的数据写入被写入器件地址对应的硬件器件上对应于被写入寄存器地址的寄存器。硬件器件上对应于被写入寄存器地址的寄存器。硬件器件上对应于被写入寄存器地址的寄存器。
技术研发人员:乔雪莲 李瑞
受保护的技术使用者:新华三技术有限公司
技术研发日:2023.02.28
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
