数据转换方法及数据处理方法与流程

文档序号:31792934发布日期:2022-10-14 16:21阅读:180来源:国知局
数据转换方法及数据处理方法与流程
数据转换方法及数据处理方法
1.本技术为申请日为2021年2月19日、申请号为202110195735.4、申请名称为“接口转换装置及计算设备”的分案申请。
技术领域
2.本技术涉及数据通信技术领域,特别是指一种数据转换方法及数据处理方法。


背景技术:

3.目前,局域互联网络(lin,local interconnect network)和以太网之间的接口转换大多直接使用cpu来处理,其架构如图1所示,cpu将以太网报文解析后再配置到lin主节点(lin_core)。由于lin接口速度慢,而以太网速度快,一个以太网数据包的收发过程中lin主节点需要多次向cpu发起中断以进行中间处理,严重影响cpu效率。


技术实现要素:

4.鉴于现有技术的以上问题,本技术提供一种专用于以太网接口和lin接口之间转换的接口转换装置,以通过硬件来实现以太网报文和lin报文的转换,无需cpu直接处理,从而有效提升效率,节省cpu资源。
5.为达到上述目的,本技术第一方面提供了一种接口转换装置,包括:至少一路局域互联网络lin单元、处理器接口和taxi接口,每一所述lin单元包括一状态机和一lin主节点,所述状态机分别连接一所述lin主节点、所述处理器接口和所述taxi接口,所述taxi接口连接所述状态机和所述lin主节点、同时外接taxi总线,所述处理器接口分别连接所述状态机和所述lin主节点、同时外接cpu;
6.其中,来自taxi总线的以太网报文由所述taxi接口接收并按照其中的lin编号缓存所述以太网报文中的有效承载部分;所述以太网报文中的有效承载部分进入对应其lin编号的lin单元中的状态机,所述状态机通过解析所述以太网报文中的有效承载部分对所述lin单元中的lin主节点进行配置,所述lin主节点按照所述配置和来自所述处理器接口的lin控制信息完成收发后返回对应所述以太网报文的lin数据给所述taxi接口,所述taxi接口利用所述lin数据和来自所述处理器接口的对应所述lin编号的lin控制信息封装lin报文并发送到所述taxi总线上。
7.由上,通过硬件实现了以太网报文到lin报文的转换,无需cpu直接处理,有效提升了效率和节省了cpu资源。
8.至少一些实施例中,所述taxi接口中包括:第一缓存器,所述第一缓存器配置为按照lin编号缓存所述以太网报文中的有效承载部分。
9.由上,实现了多路lin的并行收发,有效减少多路lin同时收发而引起的竞争冒险。
10.至少一些实施例中,所述taxi接口中包括第二缓存器,配置为按照所述lin编号缓存所述lin报文,以便并行发送所述至少一路lin单元的lin报文。
11.由上,实现了多路lin报文的并行处理,有效减少多路lin同时收发而引起的竞争
冒险。
12.至少一些实施例中,所述状态机,还配置为接收所述lin主节点发起的中断,在所述中断指示异常时通过所述处理器接口向cpu发送中断消息,在所述中断指示正常时直接屏蔽所述中断消息。
13.由上,有效避免了lin主节点在数据收发过程中多次发起中断而影响cpu效率。
14.至少一些实施例中,所述处理器接口,还配置为接收到来自cpu的中断恢复信号后更新错误标志为中断复位,以便各路所述lin单元通过检测所述错误标志位来继续使能工作。
15.由上,实现了接口转换装置的硬件复位。
16.至少一些实施例中,每一lin单元还包括:判断逻辑电路;其中,所述lin单元中的状态机通过所述判断逻辑电路连接所述taxi接口、处理器接口和lin主节点,所述taxi接口、处理器接口分别通过所述判断逻辑电路连接所述lin单元中的lin主节点。
17.由上,实现了接口转换装置中数据交互的统一管理和合理分路。
18.至少一些实施例中,所述状态机,具体配置为截取所述以太网报文中有效承载部分的id位域并配置到所述lin主节点的ip中。
19.由上,实现了lin主机的ip配置。
20.至少一些实施例中,所述状态机,具体配置为截取所述以太网报文中有效承载部分的数据长度位域并配置到所述lin主节点的数据长度寄存器中。
21.由上,实现了lin主节点数据长度配置。
22.至少一些实施例中,所述状态机,具体配置为截取所述以太网报文中有效承载部分的数据位域并配置到所述lin主节点中的相应数据寄存器中。
23.由上,实现了lin主节点的数据配置。
24.本技术第二方面提供了一种计算设备,包括:上述的接口转换装置。
附图说明
25.以下参照附图来进一步说明本技术的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本技术所涉及领域的惯常的且对于本技术非必要的特征,或是额外示出了对于本技术非必要的特征,附图所示的各个特征的组合并不用以限制本技术。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
26.图1是相关技术中以太网和lin之间接口转换的结构示意图;
27.图2是本技术实施例提供的一种接口转换装置的结构示意图;
28.图3是本技术实施例中以太网报文中lin相关的payload格式示意图;
29.图4是本技术实施例中接口转换装置的示例性硬件结构及其外接示意图;
30.图5是本技术实施例提供的接口转换装置中状态机的处理状态示意图;
31.图6是本技术实施例提供的一种计算设备的结构性示意图。
具体实施方式
32.说明书和权利要求书中的词语“第一、第二、第三等”或模块a、模块b、模块c等类似
用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
33.说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置a和b的设备”不应局限为仅由部件a和b组成的设备。
34.本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
35.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
36.如前文所述,相关技术中,芯片中的以太网接口与lin接口之间的转换主要通过cpu来完成,这需要lin设备向cpu多次发起中断才可完成中间处理,不仅处理效率低,而且需要占用大量cpu资源以致严重影响cpu效率。针对该技术问题,本技术实施例的基本思想是提供一种通过硬件实现的接口转换装置,通过将该接口转换装置连接在cpu、以太网和taxi接口之间即可实现接口转换,无需cpu直接处理,从而有效提升效率,节省cpu资源。
37.本文中,taxi接口,也可称为以太网接口,是指taxi总线的接口,其可配置为在路由器之间传输以太网报文。需要说明的是,尽管本文统称为taxi接口,但可以理解的是,该taxi接口可以替换为其他任何能够传输以太网报文的接口。
38.图2示出了本技术实施例提供的接口转换装置100的示例性结构。参见图2所示,本技术实施例的接口转换装置可以包括至少一路lin单元110、出租车总线(taxi)接口120和处理器接口130,每一lin单元110可以包括一状态机111和一lin主节点(lin core)112,状态机111分别连接一lin主节点112、处理器接口130和taxi接口120,taxi接口120连接状态机111和lin主节点112、同时外接taxi总线,处理器接口130分别连接状态机111和lin主节点112、同时外接cpu。
39.其中,来自taxi总线的以太网报文由taxi接口120接收并按照其中的lin编号缓存以太网报文中的有效承载部分(payload),以太网报文中的有效承载部分进入对应其lin编号的lin单元110中的状态机111,状态机111通过解析以太网报文中的有效承载部分对lin单元110中的lin主节点112进行配置,lin主节点112按照状态机的配置和来自处理器接口的lin控制信息完成收发后返回对应以太网报文的lin数据给taxi接口120,taxi接口120利用lin数据和来自处理器接口130的对应lin编号的lin控制信息封装lin报文并发送到taxi总线上。由此,本技术实施例通过硬件实现了以太网报文到lin报文的转换,无需cpu直接处理,可有效避免lin收发过程中多次发起中断而影响cpu效率,从而在实现以太网与lin之间报文转换的同时有效提升了效率和节省了cpu资源。
40.本技术实施例中,taxi接口120可以配置为接收来自taxi总线的以太网报文,按照以太网报文中的lin编号缓存以太网报文中的payload;以及,配置为利用来自lin主节点112的lin数据和来自处理器接口130的lin控制信息封装lin报文,并发送到taxi总线上。
41.参见图2所示,taxi接口120连接在各路lin单元110和taxi总线之间,可通过taxi总线接收以太网报文和向以太网返回lin报文,并且taxi接口120通过分别连接各路lin单元110,可以并行接收来自各路lin单元110的lin数据,从而实现多路lin报文的并行发送。
42.一些实施例中,taxi接口120中可以包括第一缓存器121,第一缓存器121可配置为按照lin编号缓存以太网报文中的有效承载部分。具体地,参见图2所示,第一缓存器121可以包括按照lin编号区分的第一缓存区1211,这些第一缓存区1211配置为缓存需发往其lin编号所标识lin单元110的有效承载部分。该实施例中,taxi接口120可以按照以太网报文中的lin编号将相应的有效承载部分送入对应的第一缓存区1211中,相应lin单元110中的状态机111只需向其lin编号对应的第一缓存区1211读取以太网报文的有效承载部分即可。这样,多路lin单元110可以并行且相对独立的完成报文收发,有效减少多路lin同时收发而引起的竞争冒险。
43.一些实施例中,taxi接口120中还可以包括第二缓存器122,第二缓存器122配置为按照lin编号缓存lin报文,以便并行发送至少一路lin单元的lin报文。具体地,参照图2所示,第二缓存器122可以包括按照lin编号区分的第二缓存区1221,每一第二缓存区1221配置为缓存来自对应lin编号所标识lin单元110的lin数据。该实施例中,可以按照lin编号将来自各路lin单元110的lin数据送入相应的第二缓存区1221,taxi接口120只需向第二缓存区1221读取一lin编号的lin数据即可。这样,多路lin单元110的lin报文可以并行且相对独立的进行处理,有效减少多路lin同时收发而存在的竞争冒险。
44.一些实施例中,taxi接口120中还可保存用于存储以太网报文的存储器(图2中未示出),该存储器可以通过诸如先进先出(fifo)等来实现,以太网报文到达taxi接口后按照先进先出原则存储,该存储器满时可暂停接收以太网报文,以避免丢包。参见图4的示例,该存储器可以是但不限于位宽96、深度为16的fifo,其反压水线可以设为10。
45.lin速度较慢,为解决来不及传输的问题,一些示例中,可以通过设置两组buffer来实现上述的第一缓存器和第二缓存器,这些buffer可以通过寄存器实现。
46.以多路lin并行为例,参见下文图4的示例,发往不同路lin(即图4中ctrl_1~ctrl_6)的有效承载部分分别将按lin_num存入fifo中,再分别进入多组96bits*6的buffer_1(第一缓存区的示例)。这样,多路lin单元110(即图4中ctrl_1~ctrl_6)可以并行从taxi接口120读相应的有效承载部分。本文接口转换装置处于使能工作状态时(例如,状态机的状态跳转到硬件处理),ctrl_1~ctrl_6中之一或多项(lin单元110的示例)会以96位宽从buffer_1中取走数据。即使数据不足96bits,也需要按96bits读取,数据到达ctrl_1~ctrl_6中之一或多项之后可以根据其中的data_length截取。
47.一些实施例中,taxi接口120中可以包括识别模块123,其配置为识别来自taxi总线的以太网报文中的payload并提取后送入第一缓存器121中对应该以太网报文中lin编号的第一缓存区1211。
48.图3示出了以太网报文中payload的格式示意图。参见图3的示例,从以太网报文中提取到的与lin有关的payload部分可以包括但不限于如下位域:vld、transmit、rfu、数据
长度(byte_num)[3:0]、lin_num[2:0]、id[5:0]、wakeup、等待将来使用(rfu,reserved for used)、command maker[5:0]、crc[4:0]、rfu[2:0]、data。
[0049]
图3中各位域说明如下:
[0050]
lin_num表示lin编号。
[0051]
vld:此位为高说明本帧有效,此位是为了与报文不足64b时的填充帧区分。若此位为低,不对本帧进行处理直接透传。
[0052]
wakeup、transmit、id由lin协议定义,可以参考文档《lin-usg-2x21n00s00》。wakeup表明此lin主节点接收或发送了一个唤醒(wake up)信号,transmit为1表示发送、为0表示接收。id是标识符。
[0053]
command_marker用于标志不同的帧,来自同一个taxi总线的包里的帧的command_marker可能相同、也可能不同。
[0054]
crc用于对整个lin的payload字段(约96bits)进行crc5校验。若接收到的报文crc5校验错误,报文不再进行处理,报文丢弃。
[0055]
一些实施例中,taxi接口120中可以包括封装模块124,其配置为利用以太网报文中的payload和相应lin主节点112返回的lin数据封装lin报文并经taxi总线发送到以太网上。具体地,封装模块124可配置为从第一缓存器121中的一第一缓存区1211中获取以太网报文的payload、同时从第二缓存器122中的相应第二缓存区1221获取同一lin编号的lin数据,按照预定的lin报文格式封装为lin报文并发送到taxi总线上。
[0056]
一些实施例中,taxi接口120可以配置为将各lin单元110的lin报文按照优先级依次发出。具体地,taxi接口120对多路lin单元110的lin报文进行优先级排序,多路lin报文的并行发送过程中taxi接口120按优先级依次将这些lin报文发送到以太网上。
[0057]
处理器接口130可以配置为向taxi接口120和lin主节点112提供lin控制信息,以及将lin主节点112发起的中断消息发送给cpu。
[0058]
一些实施例中,处理器接口130中可以包括寄存器(图2中未示出),寄存器中可以按照lin编号存放各路lin控制信息。处理器接口130中的这些寄存器可根据状态机111提供的lin编号等信息查询lin主节点112进行收发所需的lin控制信息并提供给状态机111,以便状态机111对lin主节点112进行配置。此外,处理器接口130中的这些寄存器还可根据taxi接口120提供的lin编号等信息查询封装lin报文所需的lin控制信息并提供给taxi接口120,以便taxi接口120完成lin报文的封装。
[0059]
这里,lin主节点112进行收发所需的lin控制信息可以包括:地址和必要的数据。例如,报文格式、需要返回的内容、标识符、数据长度、软件控制状态、硬件控制状态等控制位。
[0060]
这里,封装lin报文所需的控制信息可以包括:与lin编号相对应的封装各路lin报文所需的控制项,这些控制项包括但不限于媒体访问控制(mac)、错误类型(分两大类,lin总线规定的错误3种和taxi报文不符合预期3种)、vlan标签(vlan tag)等。一些实施例中,可以通过在处理器接口130中设置对应各路lin编号的寄存器来存储相应lin编号的控制项。
[0061]
状态机111可配置为解析来自taxi接口120的对应自身lin编号的以太网报文中payload以截取lin相关信息,利用lin相关信息配置lin主节点112。关于状态机的具体细节
可参见下文图4和图5的示例。需要说明的是,下文图5仅作为一示例,并非用于限制本技术实施例中状态机的具体实现方式。可以理解,状态机111的具体功能及其执行逻辑、状态等均可根据实际应用场景的不同、lin格式的不同、以太网报文格式的不同来进行调整。
[0062]
本技术实施例中,lin主节点112可配置为按照状态机111的配置完成数据收发,并返回相应的lin数据。具体地,lin主节点112可以配置为按照状态机111的配置,利用来自处理器接口130的对应自身lin编号的lin控制信息完成数据收发,并返回lin数据给taxi接口120。这里,lin主节点112的数据收发可以包括但不限于lin主节点112与其连接的至少一个从节点(slave)之间的数据交互。具体应用中,lin主节点112发送数据时,按照lin协议规定的最小包长为64b进行发送,如果数据长度不足,lin主节点112会在数据之后补0将其填充至64b大小再发送。
[0063]
一些实施例中,lin主节点112可直接或间接地连接taxi接口120,以便在完成数据收发之后将lin数据返回给taxi接口120。例如,lin主节点112可通过判断逻辑电路113与taxi接口120连接。
[0064]
这里,lin数据可以包括但不限于lin主节点与其从节点(slave)交互所获得的lin payload、错误提示信息等。其中,lin payload可以包括诸如状态数据等。错误提示信息是指用于指示lin设备端异常的信息。这里,错误提示信息可以包括两类,一类是lin总线规定的错误提示信息,例如,“slave响应超时”、“lin协议位错误”、“lin协议校验和错误”等;另一类是指示错误动作的错误提示信息,例如,“taxi报文中长度信息越界或lin数量越界”、“taxi报文crc校验出错”、“cpu在错误的情况命令状态强制跳转”等。
[0065]
一些实施例中,每一lin单元110中还可包括一判断逻辑电路113,该判断逻辑电路113可配置为将状态机111分别与taxi接口120、处理器接口130、lin主节点112连接。此外,判断逻辑电路113还可配置为将lin主节点112与taxi接口120连接,以将lin数据返回给taxi接口120。
[0066]
这里,判断逻辑电路113可以根据taxi接口120的状态和状态机111的状态确定lin主节点112需要执行的动作(例如,唤醒、发送、接收等动作)并通知lin主节点112。
[0067]
一些示例中,判断逻辑电路113还具有分路功能。具体地,判断逻辑电路113可以将发往lin主节点112的数据送入lin主节点112的数据端,将发送lin主节点112的地址信息送入lin主节点112的地址端。
[0068]
此外,判断逻辑电路113还可配置为将状态机111的状态位(例如下文图5所示的各种状态对应的标志位)送入处理器接口130或者lin主节点112,以便处理器接口130和taxi接口120能够及时获知状态机111的状态和lin主节点112的状态。
[0069]
一些实施例中,每一lin单元110中还可包括存储器(图中未示出),该存储器可配置为存储来自taxi接口120的payload、来自处理器接口130的lin控制信息、需要发往taxi接口120的lin数据、和/或需要发往处理器接口130的中断消息。lin单元110中的判断逻辑电路113、状态机111均可访问该存储器。一些示例中,需要提供给lin主节点112的数据或信息、来自lin主节点112的数据或信息均可通过判断逻辑电路113访问该存储器来完成其存取。实际应用中,该存储器可以包括但不限于一组或多组寄存器。
[0070]
本技术实施例中,接口转换装置的各个部分均可发起中断。taxi接口120、处理器接口130、状态机111或者lin主节点112在发生异常错误(例如,lin主节点112的lin协议错
误、taxi接口120的以太网报文错误、drc校验等;状态机111的超时(timing)中断等)时可以发起中断。在某些正常状态下也可以发起中断,例如lin主节点112在每执行完成一次收发之后可以发起完成(complete)中断。一些实施例中,状态机111还可以配置为接收lin主节点112发起的中断,在中断指示异常时通过处理器接口130向cpu发送中断消息,在中断指示正常(例如,lin主节点112发起的complete中断)时直接屏蔽中断消息(例如可以直接由lin主节点丢弃或消除)。这样,对于指示异常的中断,可以由cpu来处理,同时由状态机111控制相应lin主节点112停止工作,对于指示正常的中断消息则可以直接清除而无需通知cpu,由此可以有效避免lin主节点在数据收发过程中多次发起中断而影响cpu效率。
[0071]
举例来说,诸如“complete”等正常型中断可以不传送给cpu,以避免影响cpu效率。诸如“slave超时”、“lin协议错误”、“报文格式不合法”等异常型中断,状态机111可以通过判断逻辑电路113和处理器接口130将其中断消息送至cpu,由cpu进行处理。这样,lin主节点112或状态机111发起中断后,只有异常的中断消息才会发给cpu进一步处理。
[0072]
一些实施例中,cpu处理完中断后,将向处理器接口130发送中断恢复信号。处理器接口130还可配置为接收到来自cpu的中断恢复信号后更新预先配置的错误标志为中断复位,以便各路lin单元110(例如lin单元中的状态机)通过检测该错误标志位来继续使能工作。
[0073]
以6路lin为例,图4示出了本技术实施例接口转换装置100的示例性具体结构。参见图4所示,接口转换装置100包括6路lin单元110(即ctrl_1~ctrl_6)、taxi接口120(即taxi_if)、处理器接口130(即cpu_if),cpu_if外接cpu,cpu外接串行外设接口(spi,serial peripheral interface)、先进高性能总线(ahb,advanced high performance bus)等,taxi_if外接taxi_i总线,taxi_i总线与switch core连接,每一路lin单元110包括一状态机111、一判断逻辑电路113和一lin主节点lin-core 112,状态机111和lin-core 112之间通过判断逻辑电路113连接,每一lin主节点112外接有至少一个从节点(slave)。
[0074]
图4的示例中,taxi接口120中还可以包括流压反控模块,流压反控模块可以配置为在buffer_1(第一缓存器121的示例)和/或buffer_2(第二缓存器122的示例)超出预定水线时向taxi总线上报。此外,该流压反控模块还可配置为在fifo超出预定水线时向taxi总线上报。
[0075]
参见图4所示,接口转换装置100中,taxi_if接收来自taxi_i总线(taxi总线的示例)的以太网报文(data_1),通过以太网报文的端口号(port_num)判断报文是否应该处理,若应该处理,taxi_if将以太网报文送入96bits*16的fifo(taxi接口120中用于存储以太网报文的存储器的示例)中。然后,taxi_if针对fifo中的每一以太网报文,通过其lin编号(lin_num)位域提取出目的lin编号,然后按照目的lin编号将以太网报文中的payload部分按96位宽送入96bits*6的buffer_1中对应lin编号的分区。
[0076]
各路lin单元110可以并行收发。每一路lin单元110中,状态机111从buffer_1中获取自身lin编号的payload,按位域提取其中的相关信息(例如,按照报文格式提取lin编号和id等位域的信息),根据当前状态通过判断逻辑电路113将相关信息配置到lin-core(lin主节点的示例)上以控制lin-core进行数据收发。lin-core数据收发所需的lin控制信息由cpu_if通过判断逻辑电路113发送给lin-core。lin-core完成数据收发之后,通过判断逻辑电路113将相应的lin数据返回给taxi_if。
[0077]
接口转换装置工作过程中,taxi_if中的流控反压模块可以实时检测各个buffer、fifo是否超出水线,在buffer或fifo超出预定水线时向前级模块汇报无法继续接收以太网数据的通知。
[0078]
针对各路lin单元返回的lin数据,taxi_if可以并行处理。taxi_if中的封装模块按照报文格式编辑lin报文(包括数据、lin编号和id)并缓存在出口的96bits*6buffer中,通过在这些lin报文前添加包头或其他方式将其封装为以太网报文(data_0),并在合适的时候发送到taxi总线上,例如,可以通过计数器来控制何时发出。这里,可以对多路lin的以太网报文进行优先级排序,并行发送多路lin报文的以太网报文时按优先级将这些lin报文的以太网报文依次发送到taxi_i总线,以送往以太网。这里,taxi_if进行lin报文封装所需的lin控制信息由cpu_if通过判断逻辑电路113发送给taxi_if。
[0079]
lin-core或lin单元中其他部分发起中断后,针对指示正常的中断可以直接屏蔽。针对指示异常的中断,状态机将相应的中断消息通过cpu_if发送到cpu,由cpu继续处理,同时状态机111可以跳转到下文所述的软件处理态,接口转换装置的硬件转换功能停止。cpu处理完中断后,返回中断复位信号,cpu_if对该中断复位信号进行译码,将其中的错误标志重置为中断复位,从而完成中断信号的复位。接口转换装置(例如,状态机)通过监测错误标志检测到错误恢复后继续使能工作。
[0080]
图5示出了状态机111的示例性处理过程。参见图5所示,状态机111的工作状态可以包括软件处理态、等待态、id态、byte_num态、data态、传送(transmit)状态、req态、收发态和拼装(encap)态。
[0081]
在软件处理态下,状态机111及其lin主节点112停止工作,由cpu来完成以太网接口和lin接口之间的接口转换。此状态下,接口转换的过程可参见图1所示。实际应用中,在发生异常中断的情况下可以通过切换到软件处理状态来停止硬件的接口转换而通过cpu来完成接口转换。
[0082]
例如,在cpu配置hardw标志位为高的情况下,状态机111跳转至等待态,等待态下状态机111及其lin主节点112可以处于待机状态。
[0083]
taxi接口120接收以太网报文并按照其中的lin编号将其中的payload送入第一缓存器121的相应第一缓存区1211之后,该lin编号所对应lin单元110中的状态机111进入id态,在id态下状态机111可配置为截取以太网报文中payload的id位域并配置相应lin主节点112的ip。
[0084]
ip配置完成之后,状态机111跳转到byte_num态。在byte_num态下,状态机111可以配置为截取以太网报文中payload的byte_num位域,计算并配置lin主节点112的数据长度(data length寄存器)。
[0085]
data length寄存器配置完成后,状态机111进入transmit态。在transmit态下,状态机111根据字节计数器的计数n配置相应lin主节点112的transmit位,transmit位用于指示lin主节点112的传送状态,取0时表示lin-core处于接收状态,取1则表示lin-core处于发送状态。在n=0时,状态机111配置lin主节点112的transmit位为0,即配置lin主节点112为接收状态,在n大于0时,配置lin主节点112的transmit位为1,即lin主节点112为发送状态。
[0086]
lin主节点112为发送状态时,状态机111进入data态。在data态下,状态机111可以
配置为截取以太网报文中payload的data位域,将各data位域中的数据配置到lin主节点112的相应data寄存器中,同时设置n=n+1,n表示字节计数器的计数值。
[0087]
transmit位中n=0时,状态机111进入req态。在req态,状态机111配置lin主节点112的收发标志位(start req),start req用于指示lin主节点112执行收发动作。置start req位时lin主节点112开始收发。
[0088]
n=data length-1时状态机111进入收发态。在收发态下,状态机111等待lin主节点112返回中断消息,接收到lin主节点112返回的中断消息之后进入拼装态。
[0089]
在拼装(encap)态下,状态机111可配置为根据lin主节点112返回的中断消息拼装lin数据并送入taxi接口120中第二缓冲器122中的相应缓存区1221中。如果中断消息指示正常,状态机111将lin主节点112与其从设备(slave)之间交互的payload拼装后送往taxi接口120。如果中断消息指示异常,状态机111将来自lin主节点112的错误指示信息拼装后送往taxi接口120,该错误指示信息用于指示所述异常。
[0090]
一些示例中,可以通过设置一强制位(例如,force_soft)来控制状态机111切换到软件处理态。在强制位为高时状态机111从当前状态跳转至软件处理态。由此,可以控制接口转换装置的硬件停止工作。
[0091]
参照图4和图5的示例,本技术实施例中接口转换装置的另一示例性工作过程如下:
[0092]
接口转换装置中各个寄存器的初始化配置只能在状态机111的初始态和软件处理态进行,不允许在其他时间配置。
[0093]
软件处理态,由cpu控制lin_core,需要先配置主节点、从节点、速率、校验类型等。软件处理状态下,状态机111不能操作寄存器,cpu控制操作。
[0094]
硬件处理态,状态机111控制判断逻辑电路从taxi_if的buffer中读payload,从payload对应位置提取相关的lin配置信息,配置lin_core,以使得lin_core进行数据收发。
[0095]
cpu配置hardw为高时,进入等待态。在wait态时,收到taxi_if发来数据时进入配置态,按96位数据存入ctrl模块的寄存器中,以便判断逻辑电路根据状态机的指示从该寄存器中读取数据并处理后送至lin_core。同时,若在wait态时收到taxi_if的not_empty为高后,从taxi_if的buffer中取回payload后分解为id、data_length、transmit、data等标志位信息并依次发送至ip端口上。然后,进入配置态。
[0096]
在配置态,状态机111按照报文格式(参见图3所示)截取控制字段并顺序依次配置到lin-core中。这里,lin-core内部的寄存器一般为8bits,寄存器支持硬件控制,设置连续的报文格式,分别存储id、data_length、transmit、data等标志位信息。
[0097]
在配置态,按照图5所示依次配置lin-core相应寄存器,直到配置了start_req以后,进入收发态,此时状态机111等待lin core返回中断。
[0098]
如果lin-core的中断拉高,读取lin-core的状态寄存器。
[0099]
若错误标志位(error)为高且lin core的寄存器的错误封装标志位(err_ena)(该标志位为高时指示将错误信息封装到以太网报文中,该标志位为低时指示无需将错误信息封装到以太网报文中)为高,读取lin-core的错误寄存器(error register)(该寄存器用于存储lin-core的错误信息),存入内部寄存器lin_err(即状态机111中的寄存器)。在err_ena为低时,不需要读。
[0100]
若完成标志位(complete)为高且是从lin-core与其从节点之间的接口读取数据(即transmit为0),则状态机111控制判断逻辑模块读取lin-core的数据data_length次。若complete为高且是向lin-core与其从节点之间的接口发送数据(即transmit为1),则无需读取数据。
[0101]
无论lin-core与其从节点之间的接口接收还是发送,为了方便统一处理,收到complete后,状态机拼成3拍32bits数据返回taxi_if。这里,向lin-core与其从节点之间的接口处于发送数据的状态时,如果无返回数据,lin payload中的数据位将被填充0后发往taxi_if。
[0102]
拼包结束后,若无错误(即中断消息指示正常),可以按照报文格式(参见3.1)编辑报文(包括数据和对应的lin编号和id)。拼包过程:从状态机的内部寄存器或者lin单元(图4中的ctrl_1~ctrl_6中之一)中的存储器中读取的数据,和lin_num、complete、lin_err、id作为附加信息,按照报文格式一并发往taxi_if。其中,lin_num为lin编号,也可以用于标识lin单元,取固定值。id为向lin-core发送时从来自taxi_if的payload中截取的位域。发送时,上述信息并行发送至taxi_if,无论哪路的complete标志置高,即开始编辑在当前lin单元封装报文并发送至taxi_if。最后,计算整个lin payload帧的crc5值,放入lin payload帧头。
[0103]
若有错误(即中断消息指示异常),则相应lin单元(图4中的ctrl_1~ctrl_6中之一)将wr接口信号(wr接口信号为进入软件处理态的标志信号)拉高并发送给taxi_if,同时进入软件处理态,由软件控制lin-core处理错误。
[0104]
在lin数据发送至taxi_if后,各lin单元(图4中的ctrl_1~ctrl_6)中的寄存器或其中状态机的状态寄存器均复位。
[0105]
图6是本技术实施例提供的一种计算设备500的结构性示意性图。该计算设备500包括:上文所述的接口转换装置100。此外,该计算设备还可包括处理器510、存储器520、通信接口530、总线540。
[0106]
应理解,图6所示的计算设备500中的通信接口530可以用于与其他设备之间进行通信。
[0107]
其中,该处理器510可以与存储器520连接。该存储器520可以用于存储该程序代码和数据。因此,该存储器520可以是处理器510内部的存储单元,也可以是与处理器510独立的外部存储单元,还可以是包括处理器510内部的存储单元和与处理器510独立的外部存储单元的部件。
[0108]
可选的,计算设备500还可以包括总线540。其中,存储器520、通信接口530可以通过总线540与处理器510连接。总线540可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线、taxi总线等。所述总线540可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
[0109]
应理解,在本技术实施例中,该处理器510可以采用中央处理单元(central processing unit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑
器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器510采用一个或多个集成电路,用于执行相关程序,以实现本技术实施例所提供技术方案中的一些技术细节,例如中断等的处理。
[0110]
该存储器520可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。处理器510的一部分还可以包括非易失性随机存取存储器。例如,处理器510还可以存储设备类型的信息。
[0111]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0112]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0113]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0114]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0115]
注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,均属于本技术保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1