用于存取通信模块的信息存储器的数据的方法和装置的制作方法

文档序号:7948465阅读:209来源:国知局
专利名称:用于存取通信模块的信息存储器的数据的方法和装置的制作方法
技术领域
本发明涉及根据独立权利要求的前序部分、通过把数据输入信息存储器或从信息存储器输出数据存取通信模块的信息存储器的数据的方法和装置。
背景技术
最近几年来,在新式汽车的结构中或也在机械制造、特别是在机床范围内、也就是在自动化内控制设备、传感器和调节器借助于通信系统和总线系统、也就是通信连接的网状连接迅速增加。对此通过把功能分配给多个控制设备可以实现协同作用。这就是说这里所谈论的是分布系统。越来越多地通过总线系统、也就是说一个通信系统在不同站之间进行通信。通过协议调整在总线系统上的通信量、存储与接收机制以及错误处理。对此已知的协议是CAN协议或TTCAN协议以及FlexRay协议,其中以FlexRay协议规范V2.0为基础。对此FlexRay是一个快速、决定性的和容错的总线系统,特别适合于在汽车中使用。FlexRay协议按照时分复用存取(TDMA)方法工作,其中给各个组成部分、也就是用户或者要传输的信息分配固定的时隙,在这些时隙内这些组成部分拥有通信连接专门存取。这可以对照移植到TTCAN中。对此在一个固定的周期中重复这些时隙,从而可以准确地预言该时刻,在该时刻通过总线传输信息,并且确定地实现总线存取。为了最佳地使用在总线系统上信息传输的带宽,FlexRay把周期划分为静态和动态部分。对此固定时隙处在总线周期开始的静态部分。在动态部分动态地安排时隙。其中分别仅仅对于较短时间、所谓的小段时间能够进行专门的总线存取。仅仅在一个小段时间内部实现一个总线存取,时隙延长了所需的时间。因此仅仅耗费了其实际需要的带宽。对此FlexRay经过两个物理分离的线路以每一最大每秒10MB的数据传输率进行通信。对此两个信道相当于物理层,特别是OSI(Open System Architecture)层模式的物理层。这主要以冗余方式起作用并因此容错地进行信息传输,可是也可以传输不同的信息,由此当然使数据传输率加倍。可是FlexRay也可以以较低的数据传输率工作。
为了实现同步功能并且通过在两个信息之间的较小间隔来优化带宽,在通信网络中分布的各个组成部分(也就是用户)需要一个公共时基,所谓的整体时间。对于时钟同步在周期的静态部分传输同步消息,其中借助于一个特殊算法根据FlexRay规范校正一个组成部分的本地时间,使得所有本地时钟与整体时钟同步运行。对照地也在一个TTCAN网络中实现同步。
一个FlexRay网络节点或FlexRay用户或主机包含一个用户处理器、也就是主处理器、一个FlexRay控制器或通信控制器以及在总线监控的情况下包含一个总线保护器。对此主处理器、也就是用户处理器提供并处理经过FlexRay通信控制器传输的数据。对于在FlexRay网络中的通信可以配置具有例如直到254数据字节的信息或信息对象。为了在物理层、也就是通信连接和主处理器之间传输信息或者信息对象,使用通信模块、特别是通信控制器。
不仅通过主处理器单元、也就是主CPU,而且也经过到物理层的接口模块实现对特别是FlexRay通信控制器的通信模块的信息存储器的存取。对此对主CPU的存取包含配置数据、状态数据和真正要发送的数据的写和读。对此到物理层的接口模块的存取包含读取发送信息、存储接收的信息,其中在这两种情况下通过适当的措施确保信息的完整。

发明内容
因此本发明的技术问题是在传输速度和数据完整性方面优化在主CPU、也就是用户处理器和信息存储器之间的数据传输。
为了解决这个技术问题,本发明以用于通过把数据输入信息存储器或从信息存储器中输出数据来存取通信模块的信息存储器的数据的方法和装置为出发点,其中信息存储器与缓冲存储器布置连接并且数据沿第一传输方向传输到信息存储器并沿第二传输方向从信息存储器传输出来,其中缓冲存储器布置沿第一传输方向具有一个输入缓冲存储器并且沿第二传输方向具有一个输出缓冲存储器,并且输入缓冲存储器和输出缓冲存储器有益地分别被划分为一个子缓冲存储器和一个针对子缓冲存储器的影子存储器,其中在每个传输方向上实施如下步骤数据输入各自的子缓冲存储器并且交换对子缓冲存储器和影子存储器的存取,如此后续的数据可以输入影子存储器,同时已输入的数据在设置的传输方向上已经从子缓冲存储器中输出。根据本发明因此用于存取信息存储器的数据的缓冲存储器布置采用一个具有输入缓冲存储器和一个输出缓冲存储器的通信模块,其中输入缓冲存储器包含一个第一子缓冲存储器和一个第一影子存储器并且输出缓冲存储器包含一个第二子缓冲存储器和一个第二影子存储器,其中设置第一单元,通过该单元交换对第一子缓冲存储器和第一影子存储器的存取并且设置第二单元,通过该单元交换对第二子缓冲存储器和第二影子存储器的存取。
也就是说有益地设置一个缓冲存储器用于存取通信模块的信息存储器的数据,其中缓冲存储器包含一个子缓冲存储器和该子缓冲存储器的一个影子存储器并且设置一个单元,通过该单元交换对子缓冲存储器和影子存储器的存取。
也就是说本发明描述了用于在主CPU和信息存储器之间的数据传输的方法和装置,通过中间连接一个缓冲存储器布置、特别是用于写入的输入缓冲器和用于读出的输出缓冲存储器与发送和接收单元的存取脱离。对此特别通过信息处理器、也就是信息管理器控制并检验所有涉及信息存储器的存取,由此确保已存储信息的所要求的数据完整性。介绍的发明此外有以下优点通过这种交换可以明显提高传输速度并且通过等分缓冲存储器能够交替地进行写和读,从而省去了在数据传输时同时对相同存储单元的存取并因此确保数据完整性。
有益地通过一个识别码表明对子缓冲存储器和影子存储器存取的交换或在一个特别的实施形式中通过该识别码触发对子缓冲存储器和影子存储器存取的交换。
适当地在信息中传输数据并且所述信息具备一个信息识别码,其中如果信息识别码写入一个可预先确定的寄存器,则实现对子缓冲存储器和影子存储器的存取交换。
对此这是特别有益的,即信息中的数据至少被划分为第一数据、也就是配置数据、状态数据、和第二数据、也就是真正要传输的数据,其中依赖于至少一个数据识别码或者仅仅传输第一数据或者仅仅传输第二数据或者传输第一和第二数据。
适当地通过一个在寄存器中记录的存取识别码表明数据的存取。从存取识别码本身或从其在寄存器中的位置可以有益地确定一个信息直接存取哪一个子缓冲存储器或哪一个影子存储器。
在交换存取的情况下也适当地交换在寄存器中的至少一部分寄存器记录、特别是上述的识别码。
为了触发对子缓冲存储器和影子存储器的存取交换可以适当地设置一个转换识别码。
此外如果数据要写入一个存储器,则对于至少一个传输方向可以适当地在寄存器中记录一个启动识别码。
通过具有缓冲存储器布置和包含的输入和输出缓冲存储器以及存取交换的的本发明确保,尽管模块内部的等待时间,可是主CPU仍可以无中断地存取信息存储器。通过最佳的存储器利用和无中断特性一方面提高了传输速度,同时通过本发明确保了数据完整性。
从权利要求的特征和实施例的描述中得出另外的优点和有益设计方案。


根据下面的图详细阐述本发明。
对此图1以示意图指出了通信模块和其在物理层上的连接,也就是通信连结和通信用户或主机用户。
图2在一个特殊的实施形式中详细示出了图1的通信模块以及其连接。
图3示出了信息存储器的结构。
图4至6图解描述了在从用户到信息存储器的方向上数据存取的结构格式和过程。
图7至9图解描述了在从信息存储器到用户的方向上数据存取的结构格式和过程。
在图10中图解示出了信息管理器和其中包含的有限状态机。
图11再一次大致示出了通信模块的部件以及用户和相应的、通过信息管理器控制的数据通道。
图12描述了涉及在图11中数据通道的存取分配。
具体实施例方式
下面根据实施例详细阐述本发明。
具体实施形式图1大致示出了一个用于使用户或主机102连接在FlexRay通信线路101上的FlexRay通信模块100,也就是FlexRay的物理层。为此FlexRay通信模块100经过线路107与用户或者用户处理器102连接并且经过线路106与通信线路101连接。为了一方面关于传输时间并且另一方面关于数据完整性的毫无问题的连接主要图解区分在FlexRay通信模块中的三个设备。其中第一设备105用于存储、特别是缓存至少一部分要传输的信息。在用户102和这个第一设备105之间通过线路107和108连接一个第二设备104。同样在用户101和第一设备105之间通过线路106和109连接一个第三设备103,由此以最佳速度可以实现数据作为信息、特别是FlexRay信息的一部分保证数据完整、非常灵活地输入第一设备105或从第一设备中输出。
在图2中以优选的实施形式再一次详细示出了这个通信模块100。同样详细示出了各自的线路106至109。对此第二设备104包含一个输入缓冲存储器201(Input Buffer IBF)、一个输出缓冲器202(OutputBuffer OBF)以及一个包括两个部件203和204的接口模块,其中一个子模块203独立于用户并且第二子模块204是用户专用的。用户特定的子模块204(Customer CPU Interface CIF)使用户特定的主CPU102、也就是一个客户专用的用户与FlexRay通信模块连接。为此设置一个双向的数据传输线216、一个地址线217以及一个控制输入端218。同样设置一个中断输出端219。用户专用的子模块204与用户独立的子模块203(Generic CPU Interface,GIF)连接,也就是说FlexRay通信模块或FlexRay-IP模块支配一个同类的、也就是公共的CPU接口,多个不同的客户专用的主CPU经过一个相应的、用户专用的子模块、也就是用户CPU接口CIF能够连接在该CPU接口上。由此必须依赖于用户仅仅改变子模块,这表明明显低的费用。
输入缓冲存储器201和输出缓冲存储器202可以在一个存储模块或在独立的存储模块中形成。对此输入缓冲存储器201为了到信息存储器200的传输而用于信息的缓存。对此最好如此形成输入缓冲模块,即其可以存储两个完整的、包括各一个标题段的信息,该信息特别具有配置数据和一个数据段或有效负荷段。对此由两部分形成输入缓冲存储器(子缓冲存储器和影子存储器),由此通过交替地写入两部分输入缓冲存储器或者通过存取切换能够加速在用户CPU102和信息存储器200之间的传输。同样输出端缓冲存储器(Output Buffer OBF)为了从信息存储器200到用户CPU102的传输而用于信息的缓存。对此也构成输出缓冲器202使得可以存储两个完整的、包括标题段的信息,特别具有配置数据和数据段、也就是有效负荷段。在此输出缓冲存储器202也划分为两部分、一个子缓冲存储器和一个影子存储器,由此通过交替读出这两部分也能够加速传输或者通过存取切换加速在用户CPU或者主CPU102和信息存储器200之间的传输。包括方框201至204的第二设备104与第一设备105如示出的一样连接。
设备105包括一个信息管理器200(Message Handler MHD)和一个信息存储器300(Message RAM)。信息管理器检验或者控制在输入缓冲存储器201以及输出缓冲存储器202和信息存储器300之间的数据传输。同时其检验或者控制在另外方向上经过第三设备103的数据传输。信息存储器最好实施为单端RAM。该RAM存储器与配置数据和状态数据一起存储信息或者信息对象、也就是真正的数据。在图3中详细示出了信息存储器300的详细结构。
第三设备103包括方框205至208。根据FlexRay物理层的两个信道该设备103划分为两个具有各两个数据方向的数据通道。这通过线路213和214清楚说明,其中示出了用于接收(RxA)和发送(TxA)的信道A、RxA和TxA以及信道B、RxB和TxB的两个数据方向。以线路215表示选择的双向控制输入端。通过信道B的第一缓冲存储器205和信道A的第二缓冲存储器206实现第三设备103的连接。这两个缓冲存储器(Transient Buffer Ram`sRAM A和RAM B)用作来自或到达第一设备105的数据传输的缓存器。根据两个信道这两个缓冲存储器205和206与各一个接口模块207和208连接,其包含FlexRay协议控制器或总线协议控制器,其包括一个发送/接收移位寄存器和FlexRay协议有限状态机。这两个缓冲存储器205和206因此用作在接口模块的移位寄存器或FlexRay协议控制器207和208与信息存储器300之间的数据传输的缓存器。在此有利地通过每个缓冲存储器205或206存储数据组、也就是两个FlexRay信息的有效负荷段或数据段。
此外在通信模块100中以209示出了整体时钟单元(Global Time UnitGTU),其在FlexRay中主管整体时间周期的表达,也就是微计时(Mikrotick)μT和宏计时(Makrotick)MT。同样通过整体时间单元209调节循环计数器(Cycle Counter)的容错的时钟同步和在FlexRay的静态与动态部分的时序控制。
以方框210表示公共的系统控制(System Universal Control SUC),通过系统控制检验并控制FlexRay通信控制器的操作模式。唤醒、启动、重新整体化或者整体化、标准操作(normal Operation)和被动操作(passiveOperation)属于操作模式。
方框211指出了网络和错误管理(Network-und Error ManagementNEM),正如在FlexRay协议规范中说明的。最后方框212指出了中断控制(Interrupt Control INT),其管理状态与错误中断标志(status and errorinterrupt flags)并且检验或者控制到用户CPU102的中断输出端219。方框212此外包含一个绝对和一个相对的、用于产生时间中断的计时器。
对于在FlexRay网络中的通信可以配置具有直到254数据字节的信息对象或者信息(Message Buffer)。信息存储器300特别是一个信息RAM存储器(Message RAM),其例如可以存储直到最大64个信息对象。信息处理器200执行所有涉及信息处理或者管理的功能。这例如是在两个FlexRay协议控制器方框207和208与信息存储器300、也就是信息RAM之间的信息接收过滤、传输以及发送序列的检验和配置数据或者状态数据的提供。
一个外部的CPU、也就是一个外部的用户处理器102可以通过用户接口以用户专用的部分204直接存取FlexRay通信模块的寄存器。对此应用多个寄存器。使用这些寄存器,以使FlexRay协议控制器、也就是接口模块207和208配置并控制信息管理器(message Handler MHD)200、整体时间单元(Global Time Unit GTU)209、公共系统控制器(System UniversalController SUC)210、网络和错误管理单元(Network und Error Management UnitNEM)211、中断控制器(Interrupt Controller INT)212以及对信息RAM、也就是信息存储器300的存取,并且同样显示相应的状态。在图4至6和7至9中至少还详细探讨了部分寄存器。如此描述的、根据本发明的FlexRay通信模块能够简单转换FlexRay规范v2.0,由此可以简单产生一个ASIC或一个具有相应FlexRay功能的微控制器。
在图3中详细描述了信息存储器300的分配。对于按照FlexRay协议规范要求的FlexRay通信控制器的功能性需要一个用于提供要发送的信息的信息存储器(Transmit Buffer)以及无错误接受的信息的缓存器(Receive Buffer)。FlexRay协议允许具有数据区、也就是0至254字节的有效负荷区域的信息。正如在图2中示出的,信息存储器是FlexRay通信模块100的一部分。下面描述的方法以及相应的信息存储器描述了特别是在应用随机存取存储器(RAM)的情况下要发送的信息以及接收的信息的存储,其中通过根据本发明的机制能够在一个规定大小的信息存储器中存储可变数目的信息。对此可存储的信息的数目依赖于各个信息的数据区的大小,由此一方面在不限制信息数据区大小的情况下可以最小化所需存储器的大小并且另一方面实现存储器的最佳利用。下面详细描述FlexRay通信控制器的、特别基于RAM的信息存储器的可变分配。
为了实现例如设置一个具有n位、例如8、16、32位等字宽以及规定的、m个字存储深度的信息存储器(m、n为自然数)。对此信息存储器300划分为两个段,一个标题段HS和一个数据段DS(PayloadSection)。因此每个信息占用一个标题区域HB和一个数据区域DB。因此对于信息0、1至k(k是自然数)占用标题区域HB0、HB1至HBk和数据区DB0、DB1至DBk。在一个信息中区分第一和第二数据,其中第一数据相当于关于FlexRay信息的配置数据和/或状态数据并且分别保存在标题区域HB(HB0、HB1、...、HBk)中。相当于应当传输的真正数据的第二数据相应保存在数据区域DB(DB0、DB1、...、DBk)中。因此对于每信息的第一数据产生一个第一数据规模(以位、字节或存储字测量)并且对于一个信息的第二数据产生一个第二数据规模(同样以位、字节或存储字测量),其中每信息的第二数据规模可以是不同的。在标题段HS和数据段DS之间的划分在信息存储器300中是可变的,也就是说不存在设置的、在区域之间的界限。在标题段HS和数据段DS之间的划分根据本发明共同依赖于信息的数目k以及一个信息或者所有k个信息的第二数据规模、也就是真正数据的规模。根据本发明各自信息的配置数据KD1、KD1至KDk分别直接分配一个指针元或数据指针DP0、DP1至DPk。在这个特殊的设计方案中给每个标题区域HB0、HB1至HBk分配一个固定数目的存储字,在此是两个,如此配置数据KD(KD0、KD1、...、KDk)和指针元DP(DP0、DP1、...、DPk)共同保存在一个标题区域HB内。用于存储真正信息数据D0、D1至Dk的数据段DS连接具有标题区域HB的标题段HS,标题区域的大小或者第一数据规模依赖于要存储的信息的数目k。该数据段(或数据段)DS在其数据规模上依赖于保存的信息数据的各自数据规模,在此例如在DB0中六个字、在DB1中一个字并且在DBk中两个字。各自指针元DB0、DP1至DPk因此始终指向开始,也就是各自数据区域DB0、DB1至DBk的起始地址,在该地址内存放各自信息0、1至k的数据D0、D1至Dk。因此在标题段HS和数据段DS之间信息存储器的划分是可变的并依赖于信息本身的数目以及信息的各自数据规模并因此依赖于全部的第二数据规模。如果配置较少的信息,则标题段较小并且在信息存储器中的空区域可以附加用于数据存储的数据段DS。通过这种可变性可以保证最佳的存储器利用,由此也可以应用较小的存储器。空的数据段FDS、特别是其大小、同样依赖于存储的信息的数目k和信息的各自第二数据规模的组合,因此是最小的并且甚至可以为0。
除了应用指针元之外也可以按设置的顺序保存第一和第二数据、也就是配置数据KD(KD1、KD1、...、KDk)和真正的数据D(D0、D1、...、DK),如此在标题段HS中的标题区域HB0至HBk的顺序和在数据段DS中数据区域DB0至DBk的顺序分别是相同的。当然甚至也许可以放弃指针元。
在一个特别的设计方案中给信息存储器分配一个错误识别码发生器、特别是一个寄偶校验位发生器元件和一个错误识别码检验器、特别是一个寄偶校验位检验元件,以便保证在HS和DS中存储的数据的正确性。这是通过每存储字或每区域(HB和/或DB)可以共同存放一个检验和特别作为寄偶校验位实现的。也可以考虑另外的检验识别码、例如一个CRC(Cyclic redundancy check)或较高基数的识别码、比如ECC(ErrorCode Correction)。因此与信息存储器的确定划分相比得出如下优点用户在编程时可以判断,其可以应用较大数目的、具有较小数据组的信息还是应用较小数目的、具有较大数据组的信息。在配置具有不同大小数据区的信息的情况下最佳利用存在的存储单元。用户能够使用一个数据存储区域共同用于不同的信息。
当在一个集成电路上实现通信控制器的情况下可以通过匹配所应用的存储器深度使信息存储器的大小匹配于应用需求,不必改变通信控制器的另外功能。
此外根据图4至6以及7至9详细说明主CPU存取、也就是通过缓冲存储器布置201和202写入并读出配置数据或者状态数据和真正的数据。对此目的是如此建立关于数据传输的去耦合,即可以确保数据完整性并且同时保证较高的传输速度。通过信息管理器200实现该过程的控制,这在后面在图10、11和12中还要详细说明。
在图4、5和6中首先详细阐述了用户CPU102的主CPU经过输入缓冲存储器201对信息存储器300的写存取。对此图4再一次指出了通信模块100,其中为了层次清楚仅仅指出了通信模块100的重要部分。这一方面是负责该过程控制的信息管理器200以及两个检验寄存器403和404,其正如示出的可以安置在通信模块100的信息管理器200的外部,可是也可以包含在信息管理器内。对此403表示输入请求寄存器(Input Buffer Command Request Register)并且404表示输入掩蔽寄存器(Input Buffer Command Mask Register)。通过一个中间连接的输入缓冲存储器201(Input Buffer)实现主CPU102对信息缓冲存储器300的写存取。该输入缓冲存储器201等分或者加倍设计,也就是说作为子缓冲存储器400和一个属于子缓冲存储器的影子存储器401。正如下面描述的,因此可以实现主CPU102连续存取信息或者信息对象或者信息存储器300的数据,并因此保证数据完整性和加速传输。通过输入请求寄存器403并通过输入掩蔽寄存器404实现存取控制。在寄存器403中以数字0至31表示例如用于32位宽度的、在403中的各自位单元。同样适用于寄存器404和在404中位单元0至31。
根据本发明例如寄存器403的位单元0至5、15、16至21和31关于过程控制获得一个特别的功能。如此在寄存器403的位单元0至5中可以记录一个识别码IBRH(Input Buffer Request Host)作为信息识别码。同样在寄存器403的位单元16至21中可以记录一个识别码IBRS(InputBuffer Request Shadow)。同样在403的寄存器位置15中记录IBSYH并且在403的寄存器位置31中记录IBSYS作为存取识别码。也标记寄存器404的位置0至2,其中在0和1中以LHSH(Load Header Section Host)和LDSH(Load Data Section Host)记录另外的识别码作为数据识别码。在此以最简单的形式形成该数据识别码,即分别形成一个位。在寄存器404的位单元2中以STXRH(Set Transmission X Request Host)写入一个启动识别码。
此外说明通过输入缓冲器对信息存储器的写存取过程。
主CPU102把要传输的信息的数据写入输入缓冲存储器201。对此主CPU102对于信息存储器的标题段HS仅仅写入信息的配置数据和标题数据KD或者对于信息存储器的数据段DS仅仅写入信息的真正要传输的数据D或者二者都写入。通过在输入掩蔽存储器404中的特殊数据识别码LHSH和LDSH确定,应当传输那一部分信息、也就是配置数据和/或真正的数据。对此通过LHSH(Load Header Section Host)确定,是否应当传输标题数据、也就是配置数据KD,并通过LDSH(Load Data Section Host)确定,是否应当传输数据。由此以缓冲存储器400的一部分和附属的影子存储器401两部分形成输入缓冲存储器201,并实现交替存取,设置两个另外的数据识别码区域作为LHSH和LDSH的配对,这两个数据识别码区域涉及影子存储器401。在寄存器404的位单元16和17中的数据识别码以LHSS(Load Header Section Shadow)和LDSS(Load Data SectionShadow)表示。因此通过这两个识别码控制关于影子存储器401的传输过程。
如果设置在输入掩蔽寄存器404的位单元2中的启动位或者启动识别码STXRH(Set Transmission X Request Host),则在后面的、把分别要传输的配置数据和/或真正的数据传送到信息存储器300中之后为相应的信息对象自动设置发送请求(Transmission Request)。也就是说通过启动识别码STXRH控制、特别是启动自动发送要传输的信息对象。
相应对于影子存储器与此相对的配对是启动识别码STXRS(SetTransmission X Request Shadow),其例如包含在输入掩蔽寄存器404的位单元18中并且在此以最简单的情况恰好形成为一个位。STXRS的功能类似于STXRH的功能,仅仅涉及影子存储器1。
如果主CPU102按照IBRH把信息识别码、特别是在信息存储器300中的信息对象的号码写入输入请求寄存器403的位单元0至5,输入缓冲存储器201的数据传送入该信息存储器300,则交换输入缓冲存储器201的子缓冲存储器400和附属的影子存储器401或者交换主CPU102和信息存储器300对两个子存储器400和401的各自存取,正如通过半圆形箭头表明的。对此例如也启动数据传送、也就是到信息存储器的数据传输。离开影子存储器401数据传输到信息存储器300。同时寄存器区IBRH和IBRS互换。同样LHSS和LDSS与LHSH和LDSH互换。同样STXRH与STXRS互换。因此IBRS表明信息的识别码、也就是信息对象的号码,对于该信息对象正在进行传输、也就是离开影子存储器401的传输,或者从影子存储器401获得哪一个信息对象、也就是影子存储器401的哪一个区域作为最后的数据(KD和/或D)。通过在输入请求寄存器403的位单元31中的识别码(在此再次例如为1位)IBSYS(InputBuffer Busy Shadow)表明,是否正好实现影子存储器401参与的传输。如此例如在IBSYS=1的情况下刚好从影子存储器401中传输出来并且在IBSYS=0的情况下正好不传输。例如通过在寄存器403中写入IBRH、也就是位单元0至5设置该位IBSYS,以便表明正在进行在影子存储器401和信息存储器300之间的传输。在结束到信息存储器300的数据传输之后重新复位IBSYS。
在从影子存储器401进行数据传送期间主CPU102可能刚好运行,其首先把要传送的信息写入输入缓冲存储器或者写入子缓冲存储器400中。借助于例如在寄存器403的位单元5中的另外的存取识别码IBSYH(Input Buffer Busy Host)还可以进一步细化该识别码。如果在影子存储器401和信息存储器300之间进行传输时,主CPU102刚好写入IBRH、也就是寄存器403的位单元0至5,也就是IBSYS=1,则在输入请求寄存器403中设置IBSYH。当前的传送、也就是当前的传输一结束,就启动请求的传送(STXRH的请求,见上)并且位IBSYH复位。该位IBSYH在整个时间保持设置,以便表明到信息存储器传送数据。对此所有实施例的所有应用的位也可以形成为具有多于一位的识别码。为了节约存储器和简化处理一个位是有益的。
如此说明的机制允许主CPU102连续把数据传送入处于信息存储器中的、包括标题区域HB和数据区域DB的信息对象,前提条件是主CPU102对输入缓冲存储器的存取速度较小或等于FlexRay-IP模块的、也就是通信模块的内部数据传送速率。
在图7、8和9中详细阐述了主CPU或用户CPU102通过输出缓冲存储器202对信息存储器300的读取。为此图7再一次指出了通信模块100,其中为了层次清楚在此也仅仅指出了通信模块100的重要部分。这一方面是负责该过程控制的信息管理器200以及两个检验寄存器703和704,其正如示出的可以安置在通信模块200的信息管理器300的外部,可是也可以包含在信息管理器200内。对此703表示输出请求寄存器(Output Buffer Command Request Register)并且704表示输出掩蔽寄存器(Output Buffer Command Mask Register)。通过中间连接的输出缓冲存储器202(Output Buffer)实现主CPU102对信息存储器300的读取。该输出缓冲存储器202同样等分或者加倍设计,也就是说作为子缓冲存储器701和一个属于子缓冲存储器的影子存储器700。正如下面描述的,因此可以实现主CPU102连续存取信息存储器300的信息或者信息对象或者数据,并因此保证数据完整性和在从信息存储器到主机的反方向上的加速传输。通过输出请求寄存器703并通过输入掩蔽寄存器704实现存取控制。在寄存器703中以数字0至31表示例如用于32位宽度的、在703中的各自位单元。同样适用于704和在704中位单元0至31。
根据本发明例如寄存器703的位单元0至5、8和9、15和16至21关于读取的过程控制获得一个特别的功能。如此在寄存器703的位单元0至5中可以记录一个识别码OBRS(Output Buffer Request Shadow)作为信息识别码。同样在寄存器703的位单元16至21中可以记录一个识别码OBRH(Output Beffer Request Host)。在寄存器703的位单元15中可以记录一个识别码OBSYS(Output Buffer Busy Shadow)作为存取识别码。也标记输出掩蔽寄存器704的位置0和1,其中在0和1中以RDSS(Read DataSection Shadow)和RHSS(Read Header Section Shadow)记录另外的识别码作为数据识别码。例如在位单元16和17中以RDSH(Read Data Section Host)和RHSH(Read Header Section Host)设置另外的数据识别码。该数据识别码在此也例如以最简单的形式形成,即分别形成一个位。在寄存器703的位单元9中记录一个启动识别码REQ。此外设置一个转换识别码VIEW,其例如记录在寄存器703的位单元8中。
主CPU把所希望的信息的识别码、也就是特别是所希望的信息对象的号码按照OBRS写入寄存器703的位单元0至5,这样主CPU102从信息存储器300请求信息对象的数据。在此主CPU也象在反方向上一样或者仅仅从标题区域读出信息的状态数据或者配置数据和标题数据KD或者仅仅从数据区域读出信息的真正要传输的数据D或二者都读出。在此可以与反方向对比通过RHSS和RDSS确定,应当从标题区域和/或数据区域传输那一部分数据。也就是说RHSS说明是否应当读出标题数据,并且RDSS表明,是否应当读出真正的数据。
启动识别码用于启动从信息存储器到影子存储器700的传输。也就是说象在最简单情况下一样一个位用作识别码,通过设置在输出请求寄存器703中的位单元9的位REQ启动从信息存储器300到影子存储器700的传输。再度通过一个存取识别码、在此还是在最简单情况下通过寄存器703中的一个位OBSYS表明当前的传输。为了避免碰撞这是有益的,仅仅可以设置位REQ,不设置OBSYS,刚好不实现当前的传输。在此然后也实现在信息存储器300和影子存储器700之间的信息传送。一方面可以与反方向对比、比如在图4、5和6中描述的、控制真正的过程,或者也可以在一个变体中通过附加识别码、也就是在寄存器703的位单元8中的转换识别码VIEW实现该过程。也就是说在结束传输之后位OBSYS复位并且通过设置输出请求寄存器703中的位VIEW互换子缓冲存储器701和附属的影子存储器703或者互换对二者的存取,并且主CPU102可以从子缓冲存储器701中读出由信息存储器请求的信息对象、也就是相应的信息。对此在此也可以与在图4至6中的相反传输方向对比互换寄存器单元OBRS和OBRH。同样RHSH和RDSH与RHSS和RDSS互换。在此作为保护机制也可以规定如果OBSYS不设置,也就是不进行当前的传输,则可以仅仅以后设置位VIEW。
因此通过一个中间连接的输出缓冲存储器202实现主CPU102对信息存储器300的读取。该输出缓冲存储器同输入缓冲存储器一样加倍或者等分设计,以便保证主CPU102连续存取在信息存储器300中保存的信息对象。在此也实现较高数据完整和加速传输的优点。
通过应用所描述的输入和输出缓冲器确保,尽管模块内部的执行时间主CPU还是可以无中断地存取信息存储器。
为了保证数据完整性通过信息管理器(Message Handler MHD)进行数据传输、特别是在通信模块100内的传递。为此在图10中示出了信息管理器200。该信息管理器通过多个状态机或状态自动机、也就是有限的自动机、所谓的有限状态机(FSM)描述其功能性。对此设置至少三个状态机并且在一个特别的实施例中设置四个有限状态机。第一个有限状态机是IOBF-FSM并以501表示(Input/Output Buffer State Machine)。该IOBF-FSM也可以每传输方向上关于输入缓冲存储器或输出缓冲存储器划分为两个有限状态机IBF-FSM(Input Buffer FSM)和OBF-FSM(OutputBuffer FSM),由此可以考虑最多五个状态机(IBF-FSM、OBF-FSM、TBF1-FSM、TBF2-FSM、AFSM)。可是优选设置一个公共的IOBF-FSM。第二有限状态机在优选实施例的过程中划分为两个部件502和503并且关于存储器205和206管理两个信道A和B,正如就图2描述的。对此可以设置一个有限状态机,以便管理两个信道A和B或者也可以象在优选形式中一样一个以502表示的有限状态机TBF1-FSM(Transient Buffer1(206,RAMA)State Machine)用于信道A,一个以503表示的TBF2-FSM(TransientBuffer2(205,RAM B)State Machine)用于信道B。
在优选实施例中一个以500的有限状态判优器、所谓的AFSM、用于控制三个有限状态机501-503的存取。在通信模块中在一个通过时钟单元、比如VCO(Voltage Controlled oszillator)、一个石英振荡器等、产生的或来自该时钟单元匹配的时钟内传输数据(KD和/或D)。对此该时钟可以在模块内部产生或由外部产生,例如预先确定为总线时钟。该有限状态判优器特别分别在一个时钟周期T交替地提供三个有限状态机501-503之一存取信息存储器。也就是说提供使用的时间根据各个状态机501、502、503的存取请求分配给请求的状态机。如果仅仅一个有限状态机进行存取请求,则其获得100%的存取时间,也就是所有时钟T。如果两个状态机进行存取请求,则每一个有限状态机获得50%的存取时间。最后如果三个状态机进行存取请求,则每一个有限状态机获得1/3的存取时间。由此最佳利用分别提供使用的带宽。
以501表示第一有限状态机,也就是IOBF-FSM,在需要时其实施如下动作-数据从输入缓冲存储器201传送到在信息存储器300中选择的信息对象。
-数据从在信息存储器300中选择的信息对象传送到输出缓冲存储器202。
信道A的状态机502、也就是TBF1FSM实施如下动作-数据从在信息存储器300中选择的信息对象传送到信道A的缓冲存储器206。
-数据从缓冲存储器206传送到在信息存储器300中选择的信息对象。
-在信息存储器中寻找合适的信息对象,其中在接收时在接收过滤的范围内寻找用于存储在信道A上接收的信息的信息对象(ReceiveBuffer)并且在发送时寻找最近在信道A上要发送的信息对象(TransmitBuffer)。
TBF2-FSM的动作与此类似,也就是在方框503中有限状态机用于信道B。其把数据从在信息存储器300中选择的信息对象传送到信道B的缓冲存储器205,并且把数据从缓冲存储器205传送到在信息存储器300中选择的信息对象。类似于TBF1-FSM也在信息存储器中寻找一个合适的信息对象,其中在接收时在接收过滤的范围内寻找用于存储在B信道上接收的信息的信息对象(Receive Buffer)并且在发送时寻找最近在信道B上要发送的信息或信息对象(Transmit Buffer)。
在图11中再一次示出了过程和传输路径。三个状态机501-503控制在各个部分之间的各自数据传输。对此再度以102表示主CPU,以201表示输入缓冲存储器并以202表示输出缓冲存储器。以300表示信息存储器并且以206和205表示信道A和信道B的两个缓冲存储器。同样示出了接口元件207和208。以501表示的第一状态自动机IOBF-FSM控制数据传输Z1A和Z1B,也就是从输入缓冲存储器201到信息存储器300和从信息存储器300到输出缓冲存储器202。对此通过例如32位字宽的数据总线进行数据传输,对此所有另外的位数也是可能的。同样适用于在信息存储器和缓冲存储器206之间的数据传输Z2。通过TBF1-FSM、也就是用于信道A的状态机502控制该数据传输。通过状态自动机TBF2-FSM、也就是503控制在信息存储器300和缓冲存储器205之间的传输Z3。在此也通过例如32位字宽的数据总线进行数据传送,其中在此所有另外的位数也是可能的。通常通过上述传输路径的一个完整的信息对象的传送需要多个时钟周期T。因此通过判优器、也就是AFSM500实现关于时钟周期T的传输时间分配。在图11中示出了在由信息处理器控制的存储器元件之间的数据通道。为了确保在信息存储器中存储的信息对象的数据完整性,有益地在同一时间仅仅在一个示出的通道、也就是Z1A和Z1B以及Z2和Z3上同时交换数据。
在图12中列举一个实例指出,提供使用的系统周期T由判优器、也就是AFSM500分配给三个请求的状态自动机。在阶段1进行状态自动机501和状态自动机502的存取请求,也就是整个时间分成一半给两个请求的状态自动机。关于在阶段1的时钟周期这表明,在时钟周期T1和T3状态自动机501获得存取并且状态自动机502在时钟周期T2和T4获得存取。在阶段2仅仅状态自动机501进行存取,如此所有三个时钟周期、也就是T5至T7的100%的存取时间分摊给IOBF-FSM。在阶段3进行所有三个状态自动机501至503的存取请求,如此整个存取时间三等分。判优器AFSM然后例如如此分配存取时间,即在时钟周期T8和T11有限状态机501获得存取、在时钟周期T9和T12有限状态机502获得存取并且在时钟周期T10和T13有限状态机503获得存取。最后在阶段4两个状态自动机502和503在通信模块的两个信道A和B上进行存取,如此时钟周期T14和T16分配给有限状态机502进行存取并且在T15和T17内分配给有限状态机503进行存取。
判优器状态自动机AFSM500关注如果多于三个状态机中的一个状态机提出请求存取信息存储器300,则循环并且交替地把存取分配给请求的状态机。这种优选措施确保在信息存储器中保存的信息对象的完整性、也就是数据完整性。如果例如主CPU102通过输出缓冲存储器202读出一个信息对象,同时刚好一个接收的信息写入该信息对象,则依赖于此首先启动哪一个请求,即或者读出旧的状态或者读出新状态,在信息存储器的信息对象中的存取本身不会发生冲突。
所描述的方法使主CPU能够在连续运行中读出在信息存储器中的每一个任意的信息对象或信息对象写入信息存储器,当在FlexRay总线的两个信道上进行数据交换时不会封锁在用户的主CPU的存储时间内所选择的信息对象(Buffer Locking)。同时通过循环交错的存取确保在信息存储器中保存的数据的完整性并通过利用所有带宽提供传输速度。
权利要求
1.通过把数据输入信息存储器(300)或从信息存储器(300)输出数据来存取一个通信模块(100)的信息存储器(300)的数据的方法,其中信息存储器与缓冲存储器布置(201和202)相连接,数据沿第一传输方向被传输给信息存储器并且沿第二传输方向从信息存储器输出数据,其特征在于,所述的缓冲存储器布置沿第一传输方向具有一个输入缓冲存储器(201)并且沿第二传输方向具有一个输出缓冲存储器(202),所述输入缓冲存储器和输出缓冲存储器分别被划分为子缓冲存储器(400、701)和针对子缓冲存储器的影子存储器(401、700),其中沿每个传输方向实施如下步骤-数据被输入各自的子缓冲存储器,-交换对子缓冲存储器和影子存储器的存取,从而-后续的数据可以被写入影子存储器,而所输入的数据在规定的传输方向上已经从子缓冲存储器输出。
2.按照权利要求1的方法,其特征在于,通过一识别码表明对子缓冲存储器和影子存储器的存取的交换。
3.按照权利要求1的方法,其特征在于,通过识别码触发对子缓冲存储器和影子存储器的存取的交换。
4.按照权利要求1的方法,其特征在于,所述数据在信息中传输并且该信息具备一个信息识别码(IBRH、IBRS、OBRH、OBRS),其中如果该信息识别被写入一个设置的寄存器(403、404、703、704),则此后交换对子缓冲存储器和影子存储器的存取。
5.按照权利要求1的方法,其特征在于,所述数据在信息中传输,并且信息中的数据至少被划分为第一数据(KD)和第二数据(D),其中依赖于至少一个数据识别码(LHSH、LDSH、LDSS、LHSS、RHSS、RDSS、RDSH、RHSH)仅仅传输第一数据(KD)或仅仅传输第二数据(D)或传输第一和第二数据。
6.按照权利要求1的方法,其特征在于,通过存取识别码(IBSYS、IBSYH、OBSYS)表明数据存取,该识别码被记录在寄存器中。
7.按照权利要求5的方法,其特征在于,从存取识别码(IBSYS、IBSYH、OBSYS)自身中或从其在寄存器中的位置可以确定一个信息正好存取哪一个子缓冲存储器或哪一个影子存储器。
8.按照权利要求3或4或5的方法,其特征在于,在交换存取时还至少部分地交换在寄存器中的寄存器记录、特别是识别码。
9.按照权利要求1的方法,其特征在于,通过转换识别码(VIEW)触发子缓冲存储器和影子存储器的存取交换。
10.按照权利要求1的方法,其特征在于,如果数据要写入一个存储器,则对于至少一个传输方向在寄存器中记录一个启动识别码(STXTH、REQ)。
11.信息存储器(300)的数据存取方法,其中设置一个缓冲存储器(201、202),其特征在于,该缓冲存储器被划分为子缓冲存储器(400、701)和针对子缓冲存储器的影子存储器(401、700),在存取数据时实施如下步骤-数据被输入子缓冲存储器,-交换对子缓冲存储器和影子存储器的存取,从而-后续的数据可以被写入影子存储器,同时输入的数据已经从子缓冲存储器输出。
12.用于通信模块(100)的信息存储器(300)的数据存取的缓冲存储器布置,其特征在于,该缓冲存储器布置被划分为输入缓冲存储器(201)和输出缓冲存储器(202),输入缓冲存储器(201)包含一个第一子缓冲存储器(400)和该子缓冲存储器的一个第一影子存储器(401),输出缓冲存储器(202)包含一个第二子缓冲存储器(701)和一个第二影子存储器(700),其中设置第一单元,通过该单元交换对第一子缓冲存储器(400)和第一影子存储器(401)的存取,并且设置第二单元,通过该单元交换对第二子缓冲存储器(701)和第二影子存储器(700)的存取。
13.用于通信模块(100)的信息存储器(300)的数据存取的缓冲存储器,其特征在于,该缓冲存储器(201、202)包含一个子缓冲存储器(400、701)和该子缓冲存储器的一个影子存储器(401、700),其中设置一个单元,通过该单元交换对子缓冲存储器(400、701)和影子存储器(401、700)的存取。
14.通信模块,该通信模块具有按照权利要求12的缓冲存储器布置。
15.通信模块,该通信模块具有按照权利要求13的缓冲存储器布置。
全文摘要
通过数据输入信息存储器(300)或从信息存储器输出数据存取一个通信模块(100)的信息存储器(300)的数据的方法,其中信息存储器与缓冲存储器布置(201和202)连接,数据沿第一传输方向传输给信息存储器并且沿第二传输方向从信息存储器传出数据,其中缓冲存储器布置沿第一传输方向具有一个输入缓冲存储器(201)并且沿第二传输方向具有一个输出缓冲存储器(202),输入缓冲存储器和输出缓冲存储器分别被划分为子缓冲存储器(400、701)和针对子缓冲存储器的影子存储器(401、700),其中在每个传输方向上实施如下步骤数据输入各自的子缓冲存储器;交换子缓冲存储器和影子存储器的存取;如此后续的数据可以写入影子存储器,同时输入的数据在设置的传输方向上已经从子缓冲存储器输出。
文档编号H04L12/56GK1993945SQ200580026342
公开日2007年7月4日 申请日期2005年6月29日 优先权日2004年8月5日
发明者F·哈特维希, C·霍尔斯特, F·拜勒 申请人:罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1