半导体集成电路装置 技术领域 本 发 明 涉 及 通 信 网 络 中 的 通 信 技 术, 特 别 地 说, 涉及有效提高经由 CAN(Controller Area Network) 总线通信的通信网络系统中的通信速度的技术。
背景技术 作为 LAN 等中采用的通信协议, 特别是汽车用的通信网络的通信协议, 例如, 广泛 采用 CAN 协议。
该 CAN 协议中, 例如, 在 ECU(Electric Control Unit) 等设置的接收单元正常接 收消息时, 从该接收单元向发送单元发送称为 ACK 的 1 比特的应答信号。
然后, 发送单元通过接收 ACK, 确认至少一个以上的单元 (ECU) 正常接收了消息。
作为该种 LAN 通信协议中的通信技术, 例如, 已知有设置用于变更 ACKX 信号幅度 的 ACKX 幅度可变电路和对该 ACKX 幅可变电路设定变更相关的 ACKX 信号幅度的 ACKX 幅 度设定键, 根据主计算机、 打印机的性能, 尽可能地提高从主计算机到打印机的数据传送速 度, 实现打印机的高速打印的技术 ( 参照专利文献 1)。
现有技术文献
专利文献
专利文献 1 : 日本特开平 11-91212 号公报
发明内容 ( 发明要解决的问题 )
但是, 基于上述的通信网络协议的通信技术中, 本发明者发现了如下的问题。
在 CAN 协议中, 发送单元对接收单元在帧的 ACK 时隙位置 (1 比特 ) 发送的 ACK 比 特 (1 比特 ) 必须在发送单元自身的帧的 ACK(1 比特 ) 时隙位置接收。因此, 1 比特以上的 传播迟延在规格上是不允许的。
通信速度越高速化, 1 比特的时间变得越短 ( 例如, 1Mbps 的情况下为 1μs, 2Mbps 的情况下为 500ns 等 ), 考虑连接单元间的线束的长度导致的总线迟延和收发器的处理等 所需的迟延等的情况下, CAN 通信难以实现 1Mbps 以上的高速化。
例如, 如图 5 所示, 作为发送单元的 ECU100 及作为接收单元的 ECU101、 102 与 CAN 总线 103 连接的构成中, 在来自 ECU100 的 ACK 比特发生 1 比特以上的传送迟延的情况下, ECU100 无法在自身的 ACK 时隙 (1 比特 ) 内接收来自 ECU101 的 ACK, 帧被破坏, 通信不成立。
近年来, 存在汽车的车内单元增加的倾向, 另外, 一个单元具有的信息量也增大, 要求单元间的高速通信协议。
但是, CAN 通信协议的最大通信速度如上所述, 在现状中难以实现 1Mbps 以上的高 速化, 以该通信速度恐怕无法处理完信息。
本发明的目的是提供能够与通信网络中的通信协议维持互换性并实现通信的高 速化的技术。
根据本说明书的记述及附图, 将更加清楚本发明的上述以及其他目的和新的特征。 ( 解决课题的方案 )
将本申请中公开的发明中的代表例的概要简单说明如下。
本发明的半导体集成电路装置, 具备根据经由通信总线传送的 CAN 协议的消息来 控制进行规定的动作的执行器的控制器, 上述控制器具备按照上述 CAN 协议控制通信的通 信控制部, 上述通信控制部将确认正常接收了上述消息的情况的应答信号的时隙长从 1 比 特到多个比特任意可变, 利用与可变的比特数的应答信号相应的通信速度进行通信。作为 应答信号的 ACK 比特与通常的 CAN 协议相同, 为 1 比特, 在 ACK 时隙的开始的定时发送。
另外, 简单说明本申请的其他发明的概要。
本发明的上述通信控制部具备存储变更后的 ACK 时隙长的第 1 存储部, 被通知变 更 ACK 时隙长的 ACK 变更协议时, 将在上述 ACK 变更协议中设定的 ACK 时隙长存储在上述 第 1 存储部, 而变更 ACK 时隙长。
另外, 本发明的上述通信控制部具备存储变更后的 ACK 时隙长的第 1 存储部和存 储能够通信的最大频率的第 2 存储部, 在通信主机以外的上述半导体集成电路装置中设置 的通信控制部, 在成为通信主机的上述半导体集成电路装置通知了询问最大通信速度的通 信速度询问协议时, 返回在上述第 2 存储部存储的能够通信的最大频率, 将成为上述通信 主机的半导体集成电路装置算出的 ACK 时隙长存储在上述第 1 存储部, 在成为上述通信主 机的半导体集成电路装置中设置的通信控制部根据从上述通信主机以外的半导体集成电 路装置返回的频率算出 ACK 时隙长, 将算出的上述 ACK 时隙长中最短的时隙长通知给上述 通信主机以外的半导体集成电路装置, 利用与可变的时隙长的应答信号相应的通信速度进 行通信。
( 发明的效果 )
本申请中公开的发明中的代表例获得的效果简单说明如下。
(1) 能够使由 CAN 协议进行通信的半导体集成电路装置的 ACK 时隙长任意可变, 因 此, 能够不受线束长等限制而实现通信速度高速化。
(2) 另外, 通过上述 (1), 能够无损通信的可靠性地处理大量的信息, 能够实现通 信系统的可靠性及高性能化。
附图说明 图 1 是示出本发明一实施例的车内网络的连接形态的一例的方框图。
图 2 是示出说明图 1 的 ECU 的通信中采用的可变 ACK 时隙长的帧传送定时的一例 的定时图。
图 3 是示出图 2 的 ACK 可变时的帧的构成的一例的说明图。
图 4 是示出设定基于图 1 的 ECU 的 ACK 时隙长的一例的流程图。
图 5 是示出本发明者研究的应答的迟延导致无法接收 ACK 时的一例的说明图。
具体实施方式
以下, 根据图面详细说明本发明的实施例。另外, 用于说明实施例的全图中, 同一部件原则上附上同一的符号, 省略重复的说明。
图 1 是示出本发明一实施例的车内网络的连接形态的一例的方框图, 图 2 是示出 说明图 1 的 ECU 的通信中采用的可变 ACK 时隙长的帧传送定时的一例的定时图, 图 3 是示 出图 2 的 ACK 可变时的帧的构成的一例的说明图, 图 4 是示出设定基于图 1 的 ECU 的 ACK 时隙长的一例的流程图。
本实施例中, 汽车的车内网络的连接形态如图 1 所示, 由多个 ECU1、 1a、 1b 经由成 为通信总线的 CAN 总线 Bc 相互连接的构成组成。但是, ECU 与执行器的连接不是必须的。
这些 ECU1、 1a、 1b, 例如, 是负责导航系统、 音频等的信息、 发动机、 底盘等的动力传 送系统, 或者空调和头灯、 门锁等的车体系统等的各种控制的半导体集成电路装置。另外, ECU1、 1a、 1b 分别与由各 ECU1、 1a、 1b 控制的执行器 Ac 连接。
ECU1 由 CAN 收发器 / 接收器 2 及成为控制器的 MCU(Micro Controller Unit)3 构 成。ECU1 经由 CAN 收发器 / 接收器 2 与 CAN 总线 Bc 相互连接。CAN 协议的差动信号传送 到 CAN 总线 Bc。
CAN 收发器 / 接收器 2 将经由 CAN 总线 Bc 输入的差动信号变换为数字信号后向 MCU3 输出, 并且将从 MCU3 输出的数字信号变换为差动信号后向 CAN 总线 Bc 输出。
MCU3 由 CAN 接口 4、 通信控制部 5、 定时器 6、 RAM(Random Access Memory)7、 由例 示为闪速存储器的非易失性半导体存储器等组成的存储器 8 及 CPU(Central Processing Unit)9 构成。另外, 通信控制部 5、 定时器 6、 RAM7、 存储器 8 以及 CPU9 经由内部总线 Bs 相 互连接。
CAN 接口 4 是 MCU3 与 CAN 总线 Bc 的接口。通信控制部 5 按照 CAN 协议控制与其 他 ECU 的通信。另外, 通信控制部 5 具备起到第 1 存储部及第 2 存储部的功能的寄存器 5a, 具有根据该寄存器 5a 存储的信息使 ACK 时隙长的应答信号即 ACK 的比特数静态可变的功 能。
定时器 6 进行定时器时钟等的上计数, 设定期望的时间, 在到达某时间时, 输出定 时器计数信号。RAM7 用于数据的暂时保存, 例如, 用于从 CAN 网络接收的数据、 向 CAN 网络 发送的数据的暂时转移等。
存储器 8 由例示为闪速存储器的非易失性半导体存储器组成, 主要存储 MCU3 的动 作程序。动作程序是例如 CAN 通信程序、 执行器控制程序等。CPU9 负责 MCU3 中的全部的控 制。
这里, 说明了 ECU1 的构成, 其他 ECU1a、 1b 也具有与 ECU1 同样的构成。
接着, 说明本实施例 1 的 ECU1、 1a、 1b 的动作。
首先, 作为一例, 说明车上搭载的 ECU1、 1a、 1b 的控制程序的改写技术。
在车载用的 ECU 中的非易失性存储器中存储的程序、 数据 ( 以下称为程序等 ) 进 行版本升级时, 通常不是仅变更 ECU, 而是将全部的 ECU 的程序等变更为最新数据。 通常, 由 于在约 1Mbps 以下进行通信, 全 ECU 的版本升级需要长时间。
因而, 仅仅在全 ECU 的程序等的版本升级时, 设定成将 ACK 比特长可变为多个比特 例如 2 比特程度, 以使通信速度高速化的方式变更。
首先, 成为主机的 ECU1 对全部的 ECU1a、 1b 通知 ACK 时隙长 ( 例如, 通常的 2 倍的 时隙长 ) 的变更。ECU1a、 1b 变更为从主机的 ECU1 接收的 ACK 时隙长。此时, 变更的 ACK 时隙长分别存储在各 ECU1a、 1b 中设置的寄存器 5a 中。
基于 CAN 协议的通信中, 可以是车载的多个 ECU 中任意的 ECU 成为主机的 ECU, 但 是, 本实施例中设为可从外部输入新程序的、 例如与导航系统、 车外网络连接的无线网络收 发器等的 ECU。
接着, 主机的 ECU1 对各 ECU1a、 1b, 以与可变的 ACK 时隙长匹配的通信速度, 发送 版本升级用的最新的程序等。然后, 全 ECU1、 1a、 1b 的版本升级结束后, 主机的 ECU1 通知将 ACK 时隙长设为原来的 ACK 时隙长。接受该通知后, ECU1a、 1b 的寄存器 5a 存储通知的 ACK 时隙长。
这样, 在 ECU 的程序等的更新时等, 能够使 ACK 时隙长可变, 提高通信速度, 因此, 能够显著缩短更新时间。
图 2 是示出说明可变 ACK 时隙长的帧传送定时的一例的定时图。
图 2 的上方所示的定时图表示通常的 CAN 通信中采用的传送速率 ( 通信频率 ) 的 频率 n 中的帧传送定时, 图 2 的下方所示的定时图表示频率 n 的 2 倍的传送速率即频率 2n 中的帧传送定时。
如图所示, 传送速率为频率 n 的 ACK 时隙长 t1 和传送速率为频率 2n 的 ACK 时隙 长 t2 的长相等, 但是, 将时隙长变换为比特数的值成为 2 倍的比特数。 这样, 将传送速率设为 2 倍后, 由于 1 比特宽度成为 1/2, 因此需要将基于 ACK 时隙 长的比特数的设定设为 2 倍。因此, 通信速度设为 2 倍的情况下, 例如, 将成为与频率 n 的 ACK 时隙长 t1 相同时间 (ACK 时隙长 t2) 的 2 循环作为设定 ACK 时隙的比特数而算出。
图 3 是 ACK 时隙长可变时的帧 10 的构成的一例的说明图。
帧 10 如图示, 由 SOF(Start Of Frame)11、 仲裁字段 12、 控制字段 13、 数据字段 14、 CRC 字段 15、 ACK 字段 16、 EOF(End Of Frame)17 构成。
SOF11 表 示 帧 的 开 始, 仲 裁 字 段 12 由 例 如 ID 值 及 RTR(Remote Transmission Request) 组成。控制字段 13 是表示预约比特和数据的字节数的字段, 数据字段 14 由多个 比特 ( 例如, 64 比特 ) 的数据构成。
CRC 字段 15 是检验传送的错误的字段, 由 CRC 及表示 CRC 的结束的 CRC 定界符构 成。ACK 字段 16 是正常确认接收结束的字段, 由 ACK 以及表示 ACK 的结束的 ACK 定界符构 成。EOF17 表示帧的结束。
这里, ACK 字段 16 中的 ACK 时隙长可以任意可变地设定为从 1 比特到多个比特 ( 本例中, 4 比特程度 )。
在 CRC 字段 15 的后半部分中, 若考虑比特填充功能, 则′ H′连续发送的最大比特 数成为 4 比特 ( 阴影表示部分 )。比特填充功能是指, 从 SOF11 到 CRC 字段 15 之间 5 比特 的同一电平比特连续的情况下, 附加使下一个比特电平反相的比特的功能。另外, 若′ H′ 以 11 比特连续, 则有其他 ECU 检出总线空闲, 存在向总线发送帧的可能性。
因此, 作为 ACK 字段 (ACK 时隙 ) 而容许的范围成为从 10 比特 -(CRC 字段的剩余 4 比特 +1 比特的 CRC 定界符 ) 到 5 比特。若将各个 ECU 持有的本地时钟的误差例如考虑为 1 比特程度, 则成为 5 比特 -1 比特= 4 比特。
因此, 这里, 可将 ACK 时隙长最大设为 4 比特 (1 ~ 4 比特可变 )。另外, ACK 时隙 长以 1 比特为默认值, 在为 1 比特的情况下, 能够与通常的 CAN 协议同样地使用。
接着, 用图 4 的流程图说明多个不同通信速度对应的 ECU 被连接时的 ACK 时隙长 的设定技术。
这里, ECU1 成为通信主机, ECU1a 设为能够以最大 2n 频率的通信速度 ( 通信频率 ) 通信, ECU1、 1b 设为能够以最大 4n 频率的通信速度 ( 通信频率 ) 通信。另外, 以下所示的 处理例如主要由通信控制部 5 处理。
首先, 主机即 ECU1 向 ECU1a 询问该 ECU1a 的最大通信速度 ( 步骤 S101)。ECU1a 将预先设定的最大通信速度 (2n 频率 ) 向 ECU1 返回 ( 步骤 S102)。
ECU1 根据接受的 ECU1a 的通信速度算出 ACK 时隙长 t1, 将结果按比特数存储在 ECU1 的寄存器 5a 中 ( 步骤 S103)。接着, ECU1 对 ECU1b 询问该 ECU1b 的最大通信速度 ( 步 骤 S104)。ECU1b 将预先设定的最大通信速度 (4n 频率 ) 向 ECU1 返回 ( 步骤 S105)。
与步骤 S103 的处理同样, ECU1 根据接受的 ECU1b 的通信速度算出 ACK 时隙长 t2, 将结果按比特数存储在 ECU1 的寄存器 5a 中 ( 步骤 S106)。
然后, ECU1 比较寄存器 5a 中存储的 ACK 时隙长 t1 和 ACK 时隙长 t2, 选择比特数 最小的值 (t1)( 步骤 S107)。
接着, ECU1 对 ECU1a 及 ECU1b 通知选择的 ACK 时隙长 ( 比特数 )( 步骤 S108, S109), ECU1、 1a、 1b 进行通信速度和时隙长的变更处理 ( 步骤 S110), 开始基于频率 2n 的 CAN 通信 ( 步骤 S111)。 另外, 在系统设计阶段等中, 在各 ECU 的 ACK 时隙长确定的情况下, ACK 循环询问 的协议变得不必要。
另外, 图 4 中, 主机的 ECU1 进行向其他 ECU1a、 1b 询问通信速度而选择最短 ACK 时 隙长的处理, 但是, 也可以不询问通信速度, 而由主机的 ECU1 向其他 ECU1a、 1b 询问 ACK 时 隙长 ( 能够对应的最大比特数 ), 选择最小的比特数。
从而, 即使是通信速度不同的 ECU 混在的系统构成, 也能够灵活选择效率最佳的 通信速度, 因此, 能够使通信速度高速化。
从而, 根据本实施例, 能够使 ECU1、 1a、 1b 的 ACK 时隙长任意可变, 因此, 能够不受 线束长等限制而使通信速度高速化。
另外, 也可以将 ACK 时隙长设定为 1 比特, 因此能够与通常的 CAN 通信协议保持互 换性。
产业上的利用可能性
本发明适用于提高汽车等的通信系统中采用的半导体集成电路装置中的通信速 度的技术。