首页> 中国专利> 在C.A.N.总线上减少闪速存储装置编程时间的方法和设备

在C.A.N.总线上减少闪速存储装置编程时间的方法和设备

摘要

在C.A.N.总线上减少闪速存储装置编程时间的方法和设备。将要被编程到闪速存储装置中的数据帧(诸如,控制器接入网络帧)经相对高速度总线被从编程站发送到目标装置,并在目标装置被临时存储在编号的帧缓冲器中。每个帧传送净荷。在发送帧之前,标识符被分配给帧,或者标识符被附加于帧。标识符识别目标装置中的特定缓冲器,帧将会在目标装置中被存储在该特定缓冲器,直至目标装置能够处理帧并把其净荷写入到闪速存储装置中。

著录项

  • 公开/公告号CN103365810A

    专利类型发明专利

  • 公开/公告日2013-10-23

    原文格式PDF

  • 申请/专利权人 大陆汽车系统公司;

    申请/专利号CN201310099491.5

  • 发明设计人 G.D.怀特;

    申请日2013-03-26

  • 分类号G06F13/38;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人杜荔南

  • 地址 美国密执安州

  • 入库时间 2024-02-19 21:14:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-17

    未缴年费专利权终止 IPC(主分类):G06F13/38 授权公告日:20171219 终止日期:20190326 申请日:20130326

    专利权的终止

  • 2017-12-19

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F13/38 申请日:20130326

    实质审查的生效

  • 2013-10-23

    公开

    公开

说明书

背景技术

如本文所使用的,总线被视为计算机系统中的一个或多个导体,该导体形成代表信息的电信号的主要传输路径。控制器域网或C.A.N.是公知的总线标准,该总线标准最初被设计以允许微控制器和相关装置在交通工具内彼此通信而没有主机计算机对通信进行仲裁。C.A.N.是基于消息的协议,该协议被具体地设计用于汽车和交通应用,但现在也用在其它领域中,诸如工业自动化和医学装备。在C.A.N.总线上在帧中传送信息,在C.A.N.规范中定义帧的结构。“帧”被视为代表数据块的二进制数字或“位”的集合。Behrouz A. Forouzan, “Data Communications and Networking,”第四版,1082页。

图1描述C.A.N.数据帧100的例子。帧100由几个不同的字段102组成,其中的一些字段是单位字段,其它字段是多位字段。第一字段104是位于第一位位置中的单位帧开始字段。接下来十一位是标识符字段106,标识符字段106通常用于代表数据帧100的优先级。接下来三位包括三个单独字段108、110和112,这三个字段是远程传输请求或RTR位/字段、和标识符扩展位或IDE位/字段、以及保留位/字段。在它们后面跟着称为数据长度代码字段114的四位字段。四位的数据长度代码或DLC字段代表下一字段中的数据的字节数量,该下一字段是数据字段或净荷字段116。在C.A.N.标准下,数据字段或净荷字段116能够多达64位或八个8位字节。15位的循环冗余校验或CRC字段118跟在净荷字段116后面,并且在该15位的循环冗余校验或CRC字段118后面跟着各种其它“内务”位字段120、122和124。帧100结束于七位的帧结束字段126。

基于C.A.N.的通信通常用于对建立在汽车或其它交通装备中的装置编程。这种编程通常包括把文件从编程站传输到微控制器。编程经常包括把一个或多个文件写到或编程到闪速存储装置中。根据2011年的L.E.E.E.标准字典,闪速存储装置是电可擦除可编程只读存储器(EEPROM),在该EEPROM中,仅能够对块或整个阵列执行清除和编程。

如本文所使用的,文件被视为相关数据(即,二进制数字)的集合,其例子包括由计算机当作单个单元的文本或程序,尤其是为了输入和输出的目的。文件包括计算机或其它处理器的可执行指令以及数据的表示。

发明人已发现与在C.A.N.总线上传输文件相关联的缺点,包括:对闪速存储装置编程花费大量时间。甚至利用几百字节的数据对闪速存储装置编程所需的时间通常花费比在C.A.N.总线上发送这几百数据字节所需的时间多得多的时间。结果,经常低效地使用C.A.N.总线,因为必须等待闪速编程装置来接收C.A.N.数据帧,从所述C.A.N.数据帧提取净荷信息,并把该信息复制或写到闪速存储装置中。能够更高效地使用C.A.N.总线传送尤其大数据文件的方法和设备将会是对现有技术的改进。

发明内容

将要被编程到闪速存储装置中的数据帧(诸如,控制器接入网络帧)经相对高速度总线被从编程站发送到目标装置,并在目标装置处被临时存储在编号的帧缓冲器中。每个帧传送净荷。在发送帧之前,标识符被分配给该帧,或者标识符被附加于该帧。标识符识别目标装置中的特定缓冲器,帧将会在目标装置中被存储在该特定缓冲器,直至目标装置能够处理帧并把该帧的净荷写入到闪速存储装置中。

附图说明

图1是C.A.N.数据帧的描述;

图2是用于把信息从闪速编程站发送到目标装置的系统的方框图,在目标装置中,来自闪速站的程序和/或数据信息将会被使用;

图3和4是把C.A.N.数据帧的净荷部分中的信息存储到闪速存储装置中的方法的描述;和

图5和6是把在C.A.N.数据帧中接收的信息存储到闪速存储装置中的方法的描述。

具体实施方式

图2描述设备或系统200,该设备或系统200用于在C.A.N.总线上对闪速存储装置编程,以及用于减少编程站202通过目标装置206实现闪速存储装置204的编程所需的时间量。目标装置206通常是具有闪速存储器的微控制器,该闪速存储器与关联的中央处理单元(CPU)210共同位于同一硅片上,或者目标装置206通过在CPU 210和外部闪速存储装置204之间延伸的地址/控制总线212耦合到单独的在目标装置外部的闪速存储装置204。在实施例中,目标装置206是PowerPC® 561。也可使用其它合适的目标装置。

闪速编程装置202(其在本文中也称为闪速站202)可包括具有CPU或中央处理单元214的个人计算机或工作站,所述CPU或中央处理单元214耦合到存储程序指令218和/或数据220的一个或多个存储装置216。程序指令218和/或数据220能够用于闪速编程装置CPU 214或者用于位于目标装置206上的CPU 210。为了本公开的目的,对存储在闪速编程装置中的指令218和数据220的参考由目标装置(例如,PowerPC® 561)使用,并被传输到目标装置以便由目标装置206编程到闪速存储装置204中。

闪速站202包括C.A.N.接口222,该C.A.N.接口222经由常规地址/数据总线224有效地耦合到CPU 214。相同的总线224或其等同物把CPU 214耦合到存储用于目标装置206的指令218和数据220的存储装置216。CPU 214因此能够读取存储装置216的内容,把存储装置216的内容格式化为C.A.N.帧,并把这些帧写到或发送到C.A.N.接口222。

C.A.N.接口222是本领域普通技术人员公知的装置,该C.A.N.接口222耦合到C.A.N.总线228,C.A.N.总线228自身耦合到另一第二C.A.N.接口230。第二C.A.N.接口230可以是与CPU 210共同位于同一硅片上的电子电路的集合。第二C.A.N.接口230因此形成或包括目标装置206的一部分。

C.A.N.接口在本领域是已知的。除其它以外,C.A.N.接口把C.A.N.数据帧传输到C.A.N.总线上并且从总线接收C.A.N.数据帧。在闪速站202中,C.A.N.接口222把C.A.N.帧转发到CPU 214并且从CPU 214接收C.A.N.帧。换句话说,C.A.N.接口222用于在CPU 214和C.A.N.总线228之间传送C.A.N.帧。C.A.N.接口222还处理与其相关的格式化和定时要求。

在C.A.N.总线228的另一端,目标装置206(其在本文也称为闪速编程装置206)包括经常规地址和数据总线232耦合到存储装置226的CPU 210。存储在存储装置226中的程序指令和数据使CPU 210具有执行各种操作的能力,包括对闪速存储装置204编程。

在图2中,闪速存储装置204构造为被利用CPU 210从其本地C.A.N.接口230接收的指令和/或数据编程。在实施例中,C.A.N.接口230接收C.A.N.数据帧,诸如图1中示出的数据帧100。如图1中所示,C.A.N.帧包括被封在各种字段中的净荷。CPU 210和C.A.N.接口230中的至少一个的功能在于剥去开销字段和位以恢复净荷,净荷然后被编程到闪速存储装置204中。

对闪速存储装置204编程所需的时间能够超过从编程站202接收C.A.N.帧所需的时间。换句话说,与CPU 210能够接收帧、剥去开销数据和字段并且把数据或净荷写到闪速存储装置204相比,C.A.N.数据帧通常以快得多的速率在C.A.N.总线228上被发送。

为了更高效地使用C.A.N.总线228,即不会使来自闪速站202的C.A.N.数据帧的传输变慢,目标装置206构造为具有C.A.N.接口230,C.A.N.接口230构造或布置为能够把完整的C.A.N.帧存储到可单独寻址、可单独读取并且可单独写的C.A.N.帧缓冲器234-1至234-N中。

缓冲器在本文被视为临时存储单元或装置,诸如“锁存器”或双稳态多谐振荡器电路,而不管其如何实现。“缓冲器”还包括构造为存储包括帧的一个或多个二进制数字的多个锁存器和多个双稳态多谐振荡器。缓冲器存储信息,至少直至存储的二进制数字被从缓冲器读出,被利用其它二进制数字改写,或者缓冲器被复位,即擦除。缓冲器能够被串联地或并联地加载。PowerPC® 561具有作为硅片的一部分的几个C.A.N.缓冲器,PowerPC® 561装置在该硅片上制造。

在实施例中,由C.A.N.接口230接收的输入C.A.N.数据帧被接口230写到片上缓冲器234-1至234-N中的特定的一个缓冲器中。在由闪速站202传输C.A.N.帧之前,由附加于每个C.A.N.帧的C.A.N.消息标识符独一无二地并且明确地识别目的地缓冲器。通过封装或者通过“重新确定”帧的一个或多个已有位字段或数据字段的“目的”,用于C.A.N.帧、以太网帧、I.E.E.E. 802.3帧或任何其它类型的帧的消息标识符能够“附加”于帧。在实施例中,闪速站202把C.A.N.消息标识符附加于C.A.N.帧以指定帧应该在目标装置中被存储在哪里。附加于C.A.N.消息的C.A.N.消息标识符具体地识别目标装置206中的特定缓冲器,对应的C.A.N.帧将会被写到并存储到该特定缓冲器中。C.A.N.帧被存储在缓冲器中,直至这样的时间:CPU 224能够从C.A.N.缓冲器检索C.A.N.帧并处理该C.A.N.帧以便存储到闪速存储装置204中,即剥去头和尾部信息,即对净荷字段去封装。因此,在目标装置206中具有几个C.A.N.缓冲器234-1至234-N能够使发送C.A.N.接口222几乎连续地(即,以总线228的全速)传输C.A.N.数据帧。还允许目标装置206中的C.A.N.接口230自主地存储C.A.N.数据帧,即不需要来自CPU 224的干预,因此保存输入帧直至这样的时间:目标装置206的CPU 210能够处理每个帧中的净荷以便存储到存储装置204中。

图3描述存储控制器域网或“C.A.N.”数据帧的净荷部分中的信息的方法300的步骤。净荷部分将会被写到(编程到) 闪速存储装置中,该闪速存储装置耦合到位于远处的闪速编程装置(即,目标装置),该闪速编程装置具有可用于存储完整的C.A.N.帧的两个或更多个或“N”个C.A.N.帧缓冲器。

在步骤310,该方法确定将要被写到闪速存储装置的数据的量。能够以几种方法进行这种确定,并且准确的确定方法是无关的。在实施例中,步骤310包括:确定将要被写到闪速存储器的字节数,即数据字节的数量。

在步骤320,方法300确定闪速编程器(例如,目标装置,诸如目标装置206)是否具有能够接收并保存C.A.N.帧的专用C.A.N.帧缓冲器,即可用的帧缓冲器。更具体地,步骤320确定闪速编程器是否具有以下类型的专用C.A.N.帧缓冲器:在闪速编程装置处理以前存储的数据或执行其它功能的同时能够接收完整的C.A.N.帧并存储该帧。

在步骤330,如果存在专用C.A.N.帧缓冲器,则确定这种可用缓冲器的数量,并且在步骤340中,确定每个可用缓冲器的地址或其它标识符。另外在步骤340中,可用缓冲器的地址或标识符被存储在列表或阵列中,能够从列表或阵列检索所述可用缓冲器的地址或标识符以便以后在传输会话期间使用。

计数器在步骤350被初始化,并被设置为等于可用C.A.N.缓冲器的数量。如本文所使用的,这种可用缓冲器的数量被识别为“N”。在PowerPC® 561的情况下,能够存在多达四十八个缓冲器,这些缓冲器的地址/标识符也是可编程的。

现在参照图4,图3中示出的方法在步骤410继续进行,在步骤410,闪速编程站202中的处理器或CPU 208格式化C.A.N.帧,诸如图1中描述的帧或其衍生物。在步骤410中格式化的C.A.N.帧具有从存储在存储器210中的数据和/或程序指令获得的帧净荷。

在步骤420,C.A.N.消息标识符被附加于在步骤410中创建的C.A.N.帧。C.A.N.消息标识符是C.A.N.编程装置206中的特定C.A.N.帧缓冲器的地址或标识符,C.A.N.编程装置206的功能在于获取净荷的内容并把其编程到闪速存储装置中。

在步骤430,在C.A.N.总线220上传输在步骤420中创建的具有C.A.N.消息标识符的C.A.N.帧。在步骤440中,缓冲器计数器减小,在步骤440之后跟着步骤450,在步骤450,测试是否存在将要被“闪速存储”的另外的数据和/或程序指令。

如果将要被编程到闪速存储装置中的所有数据已被发送,则该方法前进至步骤460,在步骤460,方法300结束。如果将要发送另外的数据并且缓冲器计数器不等于零,则方法300前进至步骤460,其中在步骤410格式化下一C.A.N.帧。如果在步骤465,缓冲器计数器等于零,则该方法等待来自目标装置的确认或“ACK”信号466。在步骤468,执行测试以确定是否接收到确认。程序继续循环执行通过466至468,直至接收到该ACK。一旦接收到ACK,在步骤470,该方法返回到开始或初始步骤310。

图5描述第二方法的步骤,该第二方法是目标装置(诸如,微控制器)把在C.A.N.数据帧的净荷部分中接收的信息编程到闪速存储装置204中的方法。

在步骤510,目标装置206在可存在可用C.A.N.帧缓冲器时确定该可用C.A.N.帧缓冲器的数量,并设置该数量等于“N”。作为步骤510的一部分,目标装置把可用缓冲器的数量发送给闪速站,诸如在图2中描述的闪速站202。

在步骤520,目标装置把C.A.N.帧发送给闪速编程站,该C.A.N.帧指示闪速编程站应该开始传输具有将要被写入到闪速存储装置中的净荷的C.A.N.帧。在步骤540,该方法等待C.A.N.帧从闪速编程站到达。一旦C.A.N.帧到达,在步骤550,目标装置读取接收到的C.A.N.帧中的消息标识符。在步骤560,接收到的C.A.N.帧被全部写入到由附加于在步骤550接收到的C.A.N.帧的消息标识符所识别的缓冲器中。

重要的是注意到,在优选实施例中,当缓冲器计数器值“N”=0时,确认或“ACK”帧被从目标装置发送到编程站。当缓冲器计数器值等于N的一半或N/2时,也能够发送“ACK”。

在步骤610,进行测试以确定是否所有的N个可用缓冲器已被发送帧。如果测试的结果是真,则在步骤615,当N=0时确认被从目标装置发送到闪速站以向闪速站指示目标装置已完成所有的帧缓冲器的内容的处理。图5和6中描述的方法随后在步骤616返回到该方法的“开始”。

在另一实施例中,在步骤620,当N的值已减小至其原始值的一半时发送“N/2”确认,以向闪速站指示可用缓冲器的一半已被目标装置处理。闪速站获取ACK,该ACK指示目标装置已完成该组缓冲器的处理,闪速站接下来将会把C.A.N.帧发送给这些缓冲器。因此,如果缓冲器计数器=0,则闪速站获取通知:目标装置完成了多达N/2个缓冲器的处理,因此闪速站能够更快地继续发送更多的帧而非等待目标装置完成所有N个缓冲器。以这种方法,当缓冲器计数器=N/2时,并且如果闪速站已接收到ACK指示目标装置已完成后一半的缓冲器(包括N=0),则闪速站“知道”其能够针对剩余的可用缓冲器继续发送C.A.N.帧。

在步骤630,该方法等待下一C.A.N.帧,并且如果该C.A.N.帧未到达,则程序经640的“否”分支返回到步骤520,在步骤520,目标站向闪速站发送另一请求以开始传输。如果已接收到另一C.A.N.帧,则程序流程经640的“是”分支返回到步骤550,在步骤550,在接收到的所述下一C.A.N.帧中重读C.A.N.消息标识符。

本领域普通技术人员将会意识到,尽管上述方法和设备应用于在C.A.N.总线上的C.A.N.帧的传输,但它同样适用于在其它网络上的其它类型的帧的传输。因此,为了权利要求构造的目的,术语“C.A.N.帧”应该被解释为包括其它帧,诸如标准以太网帧、与以太网帧相似的I.E.E.E. 802.3 MAC帧或者代表数据块的二进制数字的任何其它群集。

前面的描述仅用于说明的目的。考虑到以上进行的描述,在所附权利要求中阐述本发明的真正范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号