技术领域
[0001] 本发明涉及根据权利要求1的前序部分所述的接口单元。
相关背景技术
[0002] 布置在总线系统处并且通过总线系统执行存储器直接访问(DMA=direct memory access(直接存储器访问))的系统是已知的。尤其已知的是,由于总线系统处的多个所谓的DMA单元,对总线系统的访问冲突增加。
[0003] 为了观察不同子网络或不同网络类型——比如CAN(controller area network,控制器域网)、Flexray和/或以太网——的网络通信,例如在个人计算机处需要多个必须受到管理的接口卡。
[0004] 不同子网络、以及诸如CAN(控制器域网)、Flexray和/或以太网的不同网络类型之间的网关单元必须始终与子网络之间的所期望的通信相匹配,对此相应逻辑以软件来实施。
具体实施方式
[0008] 图1以示意图示出了通信系统2。接口单元4布置在总线系统6处。总线系统6例如可以是PCI总线或微控制器的专有总线。处理器单元8和数据存储器10连接到总线系统6上。在处理器单元8上能够运行多个应用12a、12b和12c。处理器单元8、数据存储器10以及总线系统6形成通信单元14,该通信单元14例如可以被构造成微控制器形式的网关或者被构造成个人计算机。通信单元14可以包括接口单元4和/或数据传输单元20。
[0009] 接口单元4与数据传输单元20连接并且因此可以布置在数据传输单元20与总线系统6之间。数据传输单元20也可以被称为网络处理器。除了接口单元4以外还有另外的通信接口22a、22b和22c连接到数据传输单元20上。通信接口20既可以分配给不同的网络类型、例如CAN、FlexRay或以太网和/或前述网络类型的不同子网络。当然还可以设想另外的网络类型,针对这些网络类型可以存在相应的接口单元22。在通信系统2投入运行以前,在应用12a-12c之一与数据传输单元20之间商定对一个或多个数据段有效的标志chid。接口单元4在通信系统2的运行期间根据之前在应用12a、12b、12c与数据传输单元20之间商定的标志chid来执行通过总线系统6对数据存储器10的存储器直接访问。
[0010] 由于接口单元4和数据传输单元20优选地以硬件来实施,因此可以通过之前商定的标志chid为一个或多个数据段实现:针对由接口单元4进行的针对多个通信接口22的存储器直接访问,高度地简化了总线系统6上的仲裁,由此可以通过总线系统6更加快速和更加有效地开展数据处理。因此,可以有利地将多个通信接口22映射到接口单元4上并且因此映射通信单元14。之前商定的标志chid也可称为信道标识符。因此,还得出数据传输单元20的优点,因为其可以遵循确定性的处理步骤并且因此可以以硬件来实施。
[0011] 图2以示意性形式示出了接口单元4的片段24。在框26中示出了框28、输出单元30和框32。此外,示出了输入描述符池34。为了将来自数据存储器10的数据段发送给数据传输单元20,从输入描述符池34的描述符中确定数据存储器10中的数据段的存储器范围地址和所商定的标志chid并且将其转交给框28。接口单元10或框28根据箭头36以存储器直接访问的形式通过总线系统6从数据存储器10中读取数据段,并且根据箭头38将该数据段置于输出单元 30的等待队列40中。输入描述符池中的描述符包括数据段和所商定的标志的存储器范围地址以及另外的参量。描述符由框32转交给框28。相应地根据描述符借助于框28生成适合于根据箭头26读出的数据段的报头,该报头根据箭头42被置入到等待队列44中。框46根据箭头48为数据传输单元20生成合适的数据传输单元数据段,所述数据传输单元数据段分别包括等待队列40的数据段以及等待队列44的对其适合的报头。该报头可以包括标识输出单元的信息devid,其亦可称为设备标识。因此,来自等待队列40的数据段与包括所商定的标志chid的所属报头一起作为数据传输单元数据段被提供给数据传输单元20。
[0012] 根据箭头50,输入描述符池34可以由处理器单元8读出和写入。针对根据箭头50对输入描述符池34的该写入和读取访问,总线系统6处的接口单元4充当总线从机(Bus-Slave)。对于根据箭头27对数据存储器10的读取式的存储器直接访问,接口单元26作为总线主机(Bus-Master)访问总线系统6。因此,总线系统6被构造成多主机总线。当然,总线系统6也可以具有或支持其它总线仲裁方法而不限于多主机总线。
[0013] 图5示例性地示出了接口单元4与通信单元14之间的交互,所述通信单元14包括处理器单元8和数据存储器10。
[0014] 图3针对从数据存储器10发送数据段。在数据存储器10的片段中示出了数据块56的第一数据段52和最后的数据段54。接下来描述具有多个数据段的数据块56的发送。
数据段52-54是数据块56的一部分。针对数据段52-54中的每个,在输入描述符池34中都存放有相应的描述符62-64。通信单元14存放描述符62-64以用于通过在处理器单元8上实施的相应应用12来发送相应数据段52-54。为此,通信单元14在数据存储器
10中存放数据段52、54的存储器范围地址以及所商定的标志chid。此外,在描述符62-
64中存放了:相应数据段52-54在数据块56中具有哪个位置。例如,在描述符62-64中存放:数据段52-54是否如数据段52那样是第一数据段。例如,在描述符62-64中存放:数据段52-54是否如数据段54那样是最后的数据段。此外,在描述符52-54之一中分别存放数据段52-54的大小。此外,也可以存放数据段52-54的存储器范围地址或存储器起始地址。根据箭头66示出了该写入访问。
[0015] 如果在处理器单元8上运行的应用12想要发送数据块56,则应用12将数据块56存储在数据存储器10中。然后,根据箭头66,数据块56关于存储器范围和所商定的标志chid所需的信息被写入到输入描述符池34中。此外,在相应描述符62-64中用信号通知相应数据段52-54的发送准备。
[0016] 如果相应段52-54通过所属的描述符62-64被标记为准备好发送的,则接口单元4可以根据箭头68执行根据箭头26对数据存储器10的存储器直接访问。相应地,从描述符62出发直到描述符64,根据箭头70从数据存储器10中读出整个数据块56。在此,数据块56的读出是逐段或逐描述符地进行的,由此有利地可由应用12来实现数据块56的并行填充并且由接口单元4来实现相同数据块56的清空。在根据箭头26读出和转发数据段52、54以后,接口单元4在相应描述符62-64中的发送准备被删除。发送准备可以由通信单元14通过监视相应描述符62-64的发送准备来监视。通过逐段的处理以及描述符池34,处于数据存储器10中的数据段或数据块的处理被简化,这实现了接口单元4的硬件实施并且因此实现了用于发送数据段52-54的快速处理。
[0017] 图4以示意图示出了接口单元4的片段74。在框76中,在输入单元80中根据箭头28向框84输送从数据传输单元20发出的数据传输单元数据段。根据箭头28的数据传输单元数据段包含报头信息,所述报头信息被置入到输入单元80的等待队列86中并且包含所商定的标志chid。数据段在本说明书的意义上、即以应存放在数据存储器10中的数据形式被从框84置入到等待队列88中。输出描述符池90由框92根据来自等待队列86的报头信息根据箭头94来填充。在此,来自所接收的报头的所商定的标志chid被输送给描述符池90。此外,基于来自等待队列86的报头将确定数据段52、54在数据块56中的位置的信息写入到描述符池90的所属描述符中。框96根据箭头98获得来自等待队列88的数据段。
[0018] 描述符被相应应用20或被通信单元14根据箭头100填充上存储器范围地址,所述存储器范围地址指向数据存储器10中要写入的范围。借助于来自输出描述符池90的描述符,框96可以根据箭头102借助于存储器直接访问来访问数据存储器10,并且将数据段52、54写入到由描述符所提供的存储器地址处。
[0019] 框92维护输出描述符池90并且根据箭头104用信号向输入单元80通知:存在指向数据存储器10中的空闲存储器范围的空闲描述符。
[0020] 接口单元4或框76或框96为了数据段52、54的写访问根据箭头102以对数据存储器10的存储器直接访问的形式作为总线主机来访问总线系统6。对于对输出描述符池90的写入和读取访问,接口单元4或框76根据箭头100作为总线从机访问总线系统6。
[0021] 框96在描述符池90中检查:是否存在指向数据存储器10中的空闲存储器范围的描述符。如果存在这样的指向数据存储器10中的空闲存储器范围的描述符,则框92根据箭头104在框80中和/或以未示出的形式向数据传输单元20通知:数据存储器10准备好接收。
[0022] 根据箭头28,数据传输单元数据段被从数据传输单元20接收。数据传输单元数据段的有效载荷作为数据段52、54通过等待队列88和框96借助于合适的描述符被传输到数据存储器10中。该写入访问在相应描述符中被记录。相应应用12可以通过为之对数据存储器10进行写入访问、包含表示数据存储器10中的哪个数据范围或数据存储器范围已经被填充的信息的描述符来访问所述数据范围或数据存储器范围并且读出数据段52、54。除此之外,描述符还包含数据段52、54的相应长度以及之前商定的标志chid。在应用12从数据存储器10中读取数据段52、54以后,应用12可以在描述符中将数据段52、54标记为空闲的或者删除相应的描述符。一旦框96识别数据块56的最后的数据段54,则中断信息就被生成。根据该中断信息,负责数据段52、54的相应应用12可以被激活。当然,也可以收集一定数目的中断信息,并且在达到确定数目时将中断发送给应用12或处理器单元8。描述符池34以及描述符池90可以被实施成环形缓冲器,并且可以由接口单元4以及处理器单元8来读取和写入。
[0023] 图5以示意性、示例性形式示出了用于从数据传输单元20将至少一个数据段52、54接收到数据存储器10的通信。数据块56包括第一数据段52、最后的数据段54以及另外的处于其之间的数据段。
[0024] 通信单元14为了接收数据段而根据箭头106将描述符108至110写入到描述符池90中,其中描述符分别包括数据段52-54的首先仍然为空的存储器范围的存储器地址。
接口单元4监视描述符池90并且当在数据存储器10中存在空闲的存储器范围时用信号通知给单元80。在用信号通知空闲的存储器范围以后,可以从根据箭头112的存储器直接访问开始。在写入数据段52-54以后,在相应描述符108-110中由接口单元4来记录该写入访问。相应地,通信单元14可以从描述符108-110得知:相应数据段52-54是否已经被写入到数据存储器10中。
[0025] 图2和3的输入描述符池34优选地由应用12以下降的地址顺序来写入,其中从最后的数据段54的最后的描述符64开始并且以第一数据段52的第一描述符62结束。接口单元4以上升的顺序从第一描述符62出发直到最后的描述符64来读出描述符62-64。
[0026] 而框92在数据段根据图4中的箭头28到达时以上升的顺序从第一描述符108开始并且以最后的描述符110结束地来填充输出数据池90。