MSDI (多重开关状态检测接口) 在车身控制模快的应用
Loading the player...
将在30s后自动为您播放下一课程
欢迎来到德州仪器的在线培训 我的名字是戴维王 德州仪器的系统工程师 那今天我们要讨论的主题是 MSDI 也就是多开关检测接口的一个器件 那 MSDI 主要用途是在车身控制模块上 也就是 BCM 的上面 那在这个培训中 我们会详细介绍 MSDI 一些特别的功能 以及它如何在车身控制模块的设计上 不管是设计的复杂度 成本的控制 或者是整体系统的一些性能上 所提供的一些帮助 那这个培训包含了四个章节 在第一个章节我们会讨论 汽车车身控制模块中的 开关检测的一个功能 传统使用分立器件来实现 开关检测的一些做法 以及使用分立器件方案上实现的一些挑战 那在第二个章节我们会讨论 MSDI 的概念以及 MSDI 如何 帮助解决在第一章我们讨论到的一些挑战 在第三个章节 我们会讨论 MSDI 提供的一些高级功能 以及硬件设计师如何使用这些功能 来提高系统的性能 培训结束后在最后也就是第四个章节 我们会重点介绍 MSDI 的价值主张 以及如何获取有关德州仪器这款 MSDI 器件的更多信息 首先让我们来讨论一下 BCM 也就是车身控制模块的重要性 那在车用电子的设计当中 车身控制模块结合安全性 和舒适性功能的管理 以及电子电源系统的管理 随着汽车电子技术的发展 其功能也在不断的扩展和增加 除了传统的灯光 雨刮 以及门锁控制等 一些基本的功能之外 近年来车身控制模块 开始逐渐集成了一些像 自动雨刮 发动机防盗 胎压检测等 一些先进的功能 以满足人们不断增加的安全性 以及舒适性等方面的一些需求 那在这一页 slice 您可以看到一个车身控制模块的框图 在车身控制系统上 开关的应用扮演了一个很重要的角色 不管是当驾驶员打开车灯 使用电动门窗 操控中控门锁 打开加热座椅 或者是使用挡风玻璃雨刮 这些所有的控制都是利用开关来实现的 在配置极全的中高档车当中 开关的数量常常可以达到一百个或甚至更多 所以如何要事半功倍的检测这些开关的状态 就变成了车身控制模块设计上 一个很重要的课题 传统的解决方案 通常的做法是利用 MCU 也就是微控制器的 IO 口来进行监控 但是这种做法常常会有一些限制 造成设计上一定的复杂性 接下来就让我们详细地讨论一下 首先让我们先来讨论一下 车身设计中使用的开关 车辆中的开关一般会有两种不同的类型 如果一个开关只有两个状态 也就是打开和关闭 我们可以简单的把它归类于数字开关 那例如安全带的开关 前后雾灯的按钮 后备箱的开关和门锁的开关 都可以被归类于数字开关 如果开关具有多个状态或是多个位置 我们则可以将其归类于模拟开关 模拟开关通常是由不同的电阻值 来实现开关切换的不同的位置 所以有时候又叫做 resistor-coded switch 或是电阻编码开关 那例如点火钥匙的开关 尾灯和大灯控制的开关 以及雨刮控制开关等 都可以被归类于模拟的开关 那为了检测开关的一个状态 通常的做法是将偏置的电流提供给开关 已建立可以被采样的电压 在车身的应用上 这种偏置电流通常称为 wetting current 也就是湿电流 湿电流是指系统给输入端口提供的 上拉以及下拉的恒流源 以去除开关金属触点上的氧化物 保证开关可以可靠地闭合 那数字的开关因为只有两个状态 所以可以经由简单的比较器来做检测 那模拟的开关 因为开关不同的位置会产生不同的电压 所以需要有模拟数字转换器或者是ADC 来做采样以及检测 检测的结果呢再根据预设的阈值 MCU 就可以判断出目前 开关的切换的状态以及位置 接下来我们来讨论一下 利用分立器件和 MCU 来实现 车身控制模块开关检测的一个设计 那这张图就是一张典型的方案设计图 S1 就是我们要检测的开关 那通常为了保证设计的可靠性 硬件工程师会加上不少 周边的保护电路 第一 在车身控制模块的接口处 常常会需要串一个电容 作为系统 ESD 或是静电释放的保护 第二 隔离的二极管 是常常使用的器件 用来作为系统端电池反向保护 和瞬态脉冲保护的一个功能 第三 电阻的分压电路也是需要的 这样可以将输入的电压 降低到 MCU 可以容忍和采样的一个电压 再来 Rwett 是一个用于 调节进入开关的湿电流的 电流值的一个电阻 那电阻值越大 当然产生的湿电流就越小 那最后为了降低车身控制模块的静态电流 设计上通常会使用一些 MOS 管 和电阻的一些组合 在 MCU 需要进行采样的时候才打开湿电流 那这样算下来 如果使用分立器件来做 一个数字开关的通道检测 通常需要高达五个电阻 两个电容 一颗二极管和两个 MOS 管 并且耗去 MCU 的 GPIO 的一个端口 了解分立方案的实现方式 接下来我们就来讨论一下 分立方案的挑战以及一些问题 那首先肯定是器件数量会增多 那假设汽车上有 24 个开关 一个车身控制模块板就需要高达78颗电阻 27 颗电容 24 个二极管 以及 6 颗 MOS 管 这样不仅会增加设计的难度 并且会大幅增加电路板的面积 其次是 MCU GPIO 口数量的要求 当然也会增多 那假设每个开关通道 都需要占有一个GPIO 口 那设计 MOS 管的时序控制 也需要 GPIO 口来控制 这样一来 GPIO 口的数量就会增多 同时会增加对 MCU 选型上的一个成本 那接下来就是一个系统的功耗 那为了快速响应开关的切换 MCU 需要始终处于一个激活的状态 或者是需要定期的被唤醒 以确保持续的开关检测的一个功能 那这样会大幅增加系统的功耗 尤其是在汽车的熄火的一个状态下 为了延长电池的寿命 许多汽车的制造商对于车身控制模块 最大的静态的一个电流 有着非常严格的一个限制 那如果 MCU 需要定期的被唤醒 这个目标有时候是非常难以达到的 那接下来就是湿电流的一个变化 那汽车的电池的电压可能会 由于启动负载的转变 以及瞬态尖峰等因素而突然的改变 那由于湿电流是由电阻来调节的 电压的变化会直接导致湿电流的值 产生了变化 尤其是在设计模拟开关的检测方案时候 湿电流的变化会使得系统设计更加的复杂 那在最坏的情况下 车辆可能会报告错误的开关状态 这样不仅给司机乘客造成直接的不便 甚至会导致系统故障等问题 那再来就是我们之前讨论到 用作 ESD 静电释放保护的电容 那为了增加对静电释放保护的可靠性 电容的值可能要求会变得更大 那大的电容值会增加充电和放电的时间 进而影响到开关切换的响应速度 以及导致整个系统上功耗的增加 那接下来就是我们之前提到的二极管 那二极管在车身控制模块的设计上 提供了几种功能 第一是防止电流回流至电源 第二是为了安全性的考量 有时候一个开关的状态 可能会用两个 MCU 来做检测 那在这个情况二极管可以防止电流回流 而影响检测的精度 第三 二极管提供电池反向保护 和瞬态脉冲保护的功能 可是呢汽车级别的二极管通常会比较贵 如果每个通道上都要使用 对整个系统的成本 和电路板的面积会大幅的增加 最后一点值得一提的是车身的设计上 因为不同的应用场景 可能会需要不同的开关种类 比如说数字开关或者模拟开关 不同的开关的连接方式 比如说接蓄电池的开关 或是接地的开关 以及不同开关湿电流的配置 有时候可能需要一个毫安 有些其他时候可能需要15个毫安 那如果用分立方案来做的话 会增加设计的复杂以及困难度 并且很难去做一个平台化 参考线路的一个设计 接下来我们就来聊一下 TI 新推出的这个 24 个通道的开关监测的解决方案 以及它如何 解决我们之前讨论到一些 用分立方案来做的一些问题 那 MSDI 是 Multi-switch Detection Interface 一个简称 那它是一个多重开关状态检测的接口器件 作为汽车开关接口和 MCU 之间的桥梁 那这张图是一张 MSDI 的系统框图 这个芯片支持 24 个输入检测的接口 那在 24 个接口当中 其中十个通道 可以编程为支持连接到地 或是连接到电池的一个开关 方便硬件工程师做灵活的设计 那其余 14 个通道 则专用于检测接地的开关 另外所有的开关输入 都能实现正负 8000 伏的 ESD 的静电释放保护 并且集成了反向的电压保护 此外通过这张系统框图 我们可以看到 24 个开关的输入通道 都可以复用到 ADC 或是比较器 这就意味着 MSDI 可以支持 模拟开关或是数字开关 另外 MSDI 可以支持低到4.5伏的 电源的电压下正常的工作 并且能在最低2.8伏的电源电压下 保持寄存器的设置 更值得一提的是 MSDI 每个开关的输入 都可以进行单独的编程 设置个别的阈值电压 当开关输入的电压 超过了预定的阈值范围的时候 MSDI 就会产生一个中断 以提醒 MCU 系统上 某个开关已经改变了一个状态 那 MSDI 这个芯片 与 MCU 的通讯方式 是通过 SPI 的接口来实现的 SPI 是一个非常常用的 MCU 的接口 因此对于 MCU 的选择难度也大大的减少 同时也降低了整个系统的成本 接下来我们来讨论一下 MSDI 这颗芯片 怎么解决之前阐述的一些问题 首先呢 MSDI 这个芯片 是一个完全集成的开关检测前端的设备 它替代了传统实现开关检测电路 所需要的许多分立的器件 大大的减少分立器件的数量 那开关的数量越多 减少的器件也相对的增多 如此大大降低了电路板的设计难度 其次呢 MSDI 这颗芯片 利用中断信号以及 SPI 的接口 与 MCU 进行通信 因此总共占用了五个 GPIO 线路 与传统方案的一个开关 需要一个 GPIO 相比 大大释放了 MCU 的 GPIO 的资源 那举个例子来说 在这张图上你可以看到 如果要检测24个开关 分立器件的做法需要 78 个电阻 27 颗电容 24颗二极管 以及 6 个 MOS 管 另外再加上 28 根的 MCU 的 GPIO 相较之下这些分立器件 完全可以用一颗 MSDI 的芯片来代替 GPIO 要的数量也大幅从24根降到5根 在上一页我们讨论到 MSDI 高度集成了许多功能 因而减少设计车身控制模块时 分立器件的使用量 如此一来整个模块 电路板的尺寸也可以大幅的缩减 电路板的布局也可以大幅的简化 这对日趋复杂的车身控制模块的设计 和成本的控制上有着很显著的帮助 那在这张图上您可以清楚的看到 用分立器件还有 MSDI 来实现开关检测的方案 在电路板上一个尺寸上的差别 接下来我们来讨论 MSDI 在降低系统功耗上的帮助 这是在上文 MSDI 的硬件框图中 无法直接看出来的 首先 MSDI 具备了两种不同的模式 除了连续模式之外 还提供了一种称为轮询模式的 特殊的操作方式 在轮询模式之下 MSDI 提供了每个开关的输入的湿电流 仅在非常短的时间内被激活 持续的时间足以对输入的电压 进行采样以及状态判断 由于激活的时间的占空比很小 整体的平均电流消耗也因此大幅的减少 在轮询的模式下 MSDI 芯片的平均整体的电流消耗 仅在 70 个微安左右 值得一提的是 MSDI 每个输入端的 是湿流激活的时间 以及每个输入的采样的频率 都可以被配置 如此以来 MSDI 可以轻松地支持 各种不同的应用场景 除了轮询模式之外 硬件工程师还可以利用 MSDI 的中断功能 对休眠模式的 MCU 做状态更改的唤醒设计 这样可以再进一步的降低整体系统的功耗 那这张图提供了一个典型的参考设计 首先 MCU 需要正确的配置 MSDI 并启动 MSDI 的开关检测的功能 接下来 MCU 就可以进入休眠 或者是低功耗的状态 因为开关监测是由 MSDI 独立进行的 无需 MCU 的干预 当检测到开关的状态改变的时候 MSDI 会对 MCU 发出中断的讯号 该中断讯号可以设计 其用为 MCU 供电的 LDO 那一旦 MCU 重新激活 他就可以使用 SPI 的命令 检查开关的状态 如此以来 与典型的 MCU 2到3个毫安的功耗相比 MSDI 在轮询模式下 消耗的平均电流仅仅为70个微安 大幅降低了整个系统的功耗 这一点对于需要低静态电流的 汽车应用场景帮助非常的大 有些情况甚至是无法使用分立器件来做到的 接下来我们来讨论一下 MSDI 湿电流的精度 因为 MSDI 湿电流 是使用电流反射镜结构而设计的 因此电源和负载的变化 对于 MSDI 的湿电流输出的精度 并没有太大的影响 在不同的温度和工艺之下 MSDI 的湿电流精度常常可以保持在10% ±10% 之间 这对于正确的检测开关的状态 尤其是电阻编码开关有着很大的帮助 对于 MSDI 的湿电流精度的信息 请参阅 MSDI 的数据表 接下来 MSDI 所有的输入引脚 都集成了 HBM CDM 和 系统及接触以及空气放电的 ESD 保护 如此以来硬件工程师 在设计系统安全防护的时候 可以减少外部的 ESD 的电容 在节省成本的同时 还可以使输入的采样的速度更快 减少开关的响应的时间以及系统的功耗 接下来我们来讨论一下 MSDI 对于二极管使用上的需求 那在上一页我们讨论到 MSDI 的湿电流 是利用电流反射镜结构设计的 因此电流的方向是被控制的 另外 MSDI 的所有的输入端 都集成了反向保护的功能 因此呢我们之前讨论到 控制电流方向的二极管是不需要的 这样对于电路板的尺寸 以及成本的控制上有着很大的帮助 最后呢 MSDI 在芯片的配置方面 提供了巨大的灵活性 首先 MSDI 集成了 ADC 和比较器 以支持模拟和数字的开关 湿电流的方向 也可以通过编程来检测连接到地 或是连接到电源的开关 湿电流的配置 则提供从 0 个毫安 到 15 个毫安六种不同的选择 以支持各种开关 对于湿电流不同的需求 另外 MSDI 采样的频率 以及时序的控制 也可以轻易的通过寄存器的配置来进行调整 如此一来 软件工程师只需要对 MSDI 进行简易的编程 就可以支持各种不同类型的开关 并且降低硬件更改的频率 这样可以有效降低跨平台设计的复杂度 更能让工程师节省宝贵的开发周期 让产品迅速的面试 在接下来这个章节中 我们将详细讨论 MSDI 提供的一些 更高级的功能 以及硬件工程师如何使用这些功能 来更加提高系统的性能 首先呢我们之前讨论到 所有 MSDI 的输入端口 都可以单独配置为 ADC 或是比较器的模式 为了让 MSDI 可以区分开关打开 和闭合的状态 硬件工程师可以预先编程 ADC 或是比较器的阈值 那在 ADC 的模式之下 阈值可以变成为 1023 个代码中的任何一个 而在比较器的模式之下 有四个预设的阈值电压可以工作选择 它们分别为 2V 2.7V 3V 以及 4V 可以调的阈值 可以让系统硬件工程师 使用 MSDI 来缓解开关检测中 一些不理想的情况 接下来我们讨论两个例子 在示例一中 系统存在了负向的 Ground Shift 也就是地面移位 那地面移位会发生的情况 是由于 MSDI 跟开关的位置距离比较远 导致连接两者的地线 存在了较大的电阻值 当返回路径的电流较高的情况下 就容易产生地面移位 地面移位有可能是正压或是负压 在这个例子是一个负压的地面移位 也就是 MSDI 的地电位 低于开关远端的地电位 那两者之间存在的 1V 的差异 假设开关在关闭的情况下 开关的电阻值为一百个欧姆 如果使用 15 毫安的湿电流 则 MSDI 输入引脚上 会产生 1.5V 的电压 但是呢由于系统中有 1V 的负地面移位 MSDI 输入端看到相对于地的有效电压 变成2.5伏 那在这种情况之下 两伏的比较器的阈值将不起作用 而需要更高的检测阈值 那在第二个例子当中 连接到电池的开关 有着 200 欧姆的电阻 那由于冷发动机启动的缘故 该电池的电压暂时降到六伏 在开关关闭的状况之下 15 个毫安的湿电流 在 MSDI 输入引脚上 产生了三伏的电压 在这种情况下 4V 的比较器阈值将不起作用 和需要较低的检测阈值 从这两个事例当中 我们可以看到检测的阈值 可能需要根据系统的状况进行调整 而 TI 的 MSDI 方案 为 ADC 和比较器 都提供了阈值调整的功能 增加了整个系统设计上的灵活性 接下来我们来讨论一下 MSDI 检测滤波的功能 由于开关的设计是利用机械性质来实现的 当切换或是按压的时候 开关的触点可能在短时间之内来回的反弹 造成 MSDI 输入端口上电压的波动 这个时候呢就适合启用 MSDI 检测滤波的功能 检测滤波的功能开启之后 MSDI 会在确保开关状态处于稳定之后 才会对 MCU 发起中断的讯号 那 MSDI 的滤波次数 可以设置为一次两次三次或是四次 如果设置为四次 就代表这个输入端口的电压 相对于一开始设置的阈值 得连续四个轮询周期 都保持固定的状态的情况下 MSDI 才会对 MCU 产生中断 那在这一页的示例图上 我们就假定滤波的次数为四次 开关状态开始为高电平 当切换过后 有一段由于开关触点来回跳动 而导致开关状态不稳的过渡期 那 MSDI 最初检测到开关 转换为低电平的状态两个周期 但是在两个周期之后回到了高电平 由于滤波的次数设置为四次 所以低电平的这两个周期呢 将会被 MSDI 给忽略 那一直到最后开关稳定下来之后 足以让 MSDI 检测到四次 连续的开关低电平状态周期之后 中断信号才会被发送给 MCU 那检测滤波这个功能只需要编程一次 一旦编程之后 就不需要 MCU 对 MSDI 做其他软件上的控制 这样呢比起以往固定的时间 就需要唤醒 MCU 并且 过采样的一个做法 不仅节省 MCU 的资源 并且帮助降低系统上的功耗 接下来我们来谈谈 MSDI 的 Matix polling 的功能 也就是矩阵轮询模式 矩阵轮询模式 是一种特殊的轮询方案 只需要使用 12 个 MSDI 的输入通道 就可以支持高达 36 个数字开关 矩阵轮询模式有三种不同的矩阵配置 分别是 4×4 的矩阵 支持高达 16 个开关 5×5 的矩阵支持高达 25 个开关 以及 6×6 的矩阵 支持高达 36 个开关 那矩阵轮询模式 是利用电流源和电流接收互相的连接 依次扫描矩阵的每一行和每一列 以检测两者之间开关的这个状态 矩阵轮询模式检测的阈值和时间 也可以像普通的轮询模式一样进行编程 检测的结果呢 将会被寄存在寄存器当中 提供给 MCU 进行读取 使用矩阵模式最好的的好处 是需要 MSDI 少量的输入通道 就可以支持大量的数字开关 由于车辆中的开关数量持续的增长 矩阵轮询模式 提供了一个很特别的解决方案 大幅的减少了 车身控制模块设计的复杂性 元件的数量和电路板的面积 那我们之前提到 为了清除机械开关 金属触点上积累的氧化物 以保证开关的可靠闭合 车身控制模块 会提供湿电流给开关 那有些开关因为用途的关系 会需要比较大的湿电流 比如说 10 毫安或是 15 毫安 而另一方面为了检测电阻编码开关 或是降低模块的整体功耗 硬件工程师会趋向使用 较低的湿电流的设置 如此一来湿电流的配置 常常会造成硬件 或是软件工程师的困扰 那这个时候 MSDI 的 Clean current polling (CCP) 简称 CCP 或是清洁电流的轮询方案 就可以适时的发挥用途 当清洁电流轮询方案开始的时候 每个轮询的周期 将会改成由两个湿电流激活的步骤组成 第一步是正常的轮询开关状态采样 这部分跟普通的轮询模式是相同的 第二步称为清洁电流 这个是对所有 CCP 开启的输入通道 同时激活的电流脉冲 目的呢就是因为要湿润开关的触点 以保持接触面的清洁 那清洁的电流的值 可以在十个毫安 或是 15 个毫安之间做选择 并且可以为每个通道启用或是停用 通过这个清洁电流的轮询方案 系统就可以利用 MSDI 提供的 这两个不同的电平的电流 来分别进行开关的检测和触点清洁 这样不管对于硬件或是软件上的设计 都具有相当显著的简化的功能 接下来我们来讨论 MSDI 的电源测量的功能 当 MSDI 进行开关检测的时候 特别是电阻编码开关 电源的电压高低变成非常的关键 如果电源的电压波动过大 超过了数据表的工作范围 MSDI 可能无法产生精确的湿电流 那这可能会影响开关检测的一个准确性 因此呢传统做法是利用 MCU 持续的采样 并且监控电源的电压 以确定它保持在一个固定的范围之内 那因为考虑到这方面的设计 TI 的 MSDI 方案 提供了电源电压测量的特殊功能 一旦启用之后 MSDI 将会将电源的电压 通过电阻分压之后 连接到内建的 ADC 并且在每个轮询的周期中进行采样 那电源测量支持两种范围选项 分别为 4.5 伏到 9伏 或者是 4.5 伏到 30 伏 那 4.5 伏到 9 伏 提供了较高的测量精度 4.5 伏至 30 伏的选项 则提供了更宽的电压测量范围 那电源测量的功能 跟传统的开关检测类似 也可以编程阈值 最多可以编程四个独立的数值 如果电源的电压低于或是超过阈值 MSDI 会发出中断讯号通知 MCU 那 ADC 转换后的数值 也会被储存到寄存器当中 提供 MCU 使用 SPI 通信 读取更多关于电源电压的信息 因为呢有中断讯号的辅助 硬件工程师也可以跟 传统的开关设计检测一样 利用电源测量的功能 做 MCU 的唤醒设计 为了提高开关检测的可靠性 MSDI 提供了许多 Fault Detection 也就是故障检测的功能 首先是电压故障的检测 那在 12V 汽车系统当中 完全充电时 电池的电压通常为 12.6 伏左右 而发动机运行的时候 电池的电压则为 13.7 伏左右 但是呢各种车辆的运行条件 比如说 Load down 负载突降 cold 冷启动 或者是搭电启动等等 可能会大幅改变电池的工作电压 那 TI 的 MSDI 建议的 电压工作范围于4.5伏到35伏之间 如果电源的电压超出建议值 MSDI 会产生过压或者是欠压的中断 以警告系统 以便采取适当的措施 除了电源电压之外 当车辆运行的时候 温度 也是一个 难以在系统中控制的参数 那 TI 的 MSDI 的工作温度 最高可以到达125度摄氏度 但是如果多个通道 同时被编程为高的湿电流 开关又保持在关闭的状态 MSDI 的芯片的温度 可能会迅速的增高 那为了防止过热 MSDI 芯片的内部 集成了许多温度传感器 如果结温高于 140 度摄氏度 MSDI 内部会产生警告中断 并且将所有的通道的 湿电流降低至两个毫安 如果结温持续升高 并超过 160 度摄氏度 MSDI 会关闭所有通道的湿电流 以防止进一步的制热 那经过了一段时间之后 一旦温度下降到阈值以下 湿电流则会恢复到其编程值 这些热保护的功能 可防止对 MSDI 的芯片 造成永久性的损坏 那再来我们来讨论一下 MSDI 芯片的 SPI 故障检测的功能 SPI 是相当普遍的汽车通信协议 那 TI 的 MSDI 就是使用 SPI 的协议与 MCU 进行通信 以进行编程和状态更新 但是呢在恶劣的汽车工作环境之下 SPI 通信的错误有可能会由于 bit-flipping 也就是位翻转而产生 为了检测 SPI 位翻转的通信错误 MSDI 为 SPI 的每一笔资料 都进行 Parity check 也就是所谓的奇偶校验 那 MSDI 使用的是奇数的奇偶校验 这意味着任何一笔 SPI 资料中 1 的比特总数必须是奇数 数据才会生效 那如果总数为偶数 芯片则会丢弃接收到的数据 同样的 MSDI 对每一笔的 输出的 SPI 数据 也都执行相同的方案 那这个方案可以大幅降低 SPI 通信错误的发生 那除了 SPI 的奇偶校验 MSDI 还提供 CRC 也就是循环冗余校验 来检查编程到芯片中数据的完整性 那 CRC 校验被初始化之后 MSDI 将根据所有配置寄存器的值 计算并储存 CRC 的数值 然后 MCU 就可以将 MSDI 的 CRC 的数值与其期望值进行比较 如果两个值不匹配 这意味着编程期间发生了一些错误 所以通过使用 CRC MCU 可以随时校验 MSDI 数据传输 或者保存之后可能出现的一个错误 那以上所提到这些故障检测功能 都大幅增加 MSDI 操作的稳定性 并允许 MSDI 被使用于 安全关键型应用的可能性 除了上一页所讨论的故障检测功能之外 TI 的 MSDI 方案 还内建了两个高级诊断的功能 持续监控 MSDI 的设备操作 那第一个是湿电流诊断 它将 MSDI 的端口的输入 或是输出的电流与参考值进行比较 如果当前输入或是输出的电流值 显著偏离参考值 MSDI 的芯片就会发出中断 以提醒 MCU 那 MCU 就可以选择利用设备重置的方式 来尝试解决这个问题 MSDI 为前四个输入端口 也就是 IN0 到 IN3 提供了 湿电流诊断的功能 所以这几个通道 适用于对于安全有需求的开关设计 那另外一个高级诊断的功能是 ADC 的自诊断的功能 目的是确保 ADC 转换正确的执行 那当这个诊断功能开启的时候 一个固定带隙基准电压 将被复用到 ADC 进行采样 并将 ADC 的输出 与预设的限值进行比较 如果ADC的输出值超出了限值 MSDI 就会发出中断 那同样的 MCU 可以选择利用 设备重置的方式来尝试解决这个问题 湿电流诊断和 ADC 的自诊断 都将在每一个轮循周期结束后运行 因此可以连续监测 MSDI 操作的稳定性 那车身控制模块的硬件工程师 可以利用这两个诊断的功能 以及之前提到的故障检测的功能 对系统的安全性实现优化的设计 以达到系统功能安全的标准 那以上呢 就是我们今天 对 MSDI 做的一个在线的培训 相信您对 MSDI 的功能 以及它对系统上的一些帮助 有着比较多一点的认识 那如果您需要更多的一些讯息 欢迎您到 TI.com 搜寻 MSDI 的产品型号 也就是 TIC12400 那你就会发现更多一些有用的一些讯息 包括 MSDI 的参考设计 EVM 板以及 GUI 的软件等等 谢谢您收看今天的在线培训 再见
欢迎来到德州仪器的在线培训 我的名字是戴维王 德州仪器的系统工程师 那今天我们要讨论的主题是 MSDI 也就是多开关检测接口的一个器件 那 MSDI 主要用途是在车身控制模块上 也就是 BCM 的上面 那在这个培训中 我们会详细介绍 MSDI 一些特别的功能 以及它如何在车身控制模块的设计上 不管是设计的复杂度 成本的控制 或者是整体系统的一些性能上 所提供的一些帮助 那这个培训包含了四个章节 在第一个章节我们会讨论 汽车车身控制模块中的 开关检测的一个功能 传统使用分立器件来实现 开关检测的一些做法 以及使用分立器件方案上实现的一些挑战 那在第二个章节我们会讨论 MSDI 的概念以及 MSDI 如何 帮助解决在第一章我们讨论到的一些挑战 在第三个章节 我们会讨论 MSDI 提供的一些高级功能 以及硬件设计师如何使用这些功能 来提高系统的性能 培训结束后在最后也就是第四个章节 我们会重点介绍 MSDI 的价值主张 以及如何获取有关德州仪器这款 MSDI 器件的更多信息 首先让我们来讨论一下 BCM 也就是车身控制模块的重要性 那在车用电子的设计当中 车身控制模块结合安全性 和舒适性功能的管理 以及电子电源系统的管理 随着汽车电子技术的发展 其功能也在不断的扩展和增加 除了传统的灯光 雨刮 以及门锁控制等 一些基本的功能之外 近年来车身控制模块 开始逐渐集成了一些像 自动雨刮 发动机防盗 胎压检测等 一些先进的功能 以满足人们不断增加的安全性 以及舒适性等方面的一些需求 那在这一页 slice 您可以看到一个车身控制模块的框图 在车身控制系统上 开关的应用扮演了一个很重要的角色 不管是当驾驶员打开车灯 使用电动门窗 操控中控门锁 打开加热座椅 或者是使用挡风玻璃雨刮 这些所有的控制都是利用开关来实现的 在配置极全的中高档车当中 开关的数量常常可以达到一百个或甚至更多 所以如何要事半功倍的检测这些开关的状态 就变成了车身控制模块设计上 一个很重要的课题 传统的解决方案 通常的做法是利用 MCU 也就是微控制器的 IO 口来进行监控 但是这种做法常常会有一些限制 造成设计上一定的复杂性 接下来就让我们详细地讨论一下 首先让我们先来讨论一下 车身设计中使用的开关 车辆中的开关一般会有两种不同的类型 如果一个开关只有两个状态 也就是打开和关闭 我们可以简单的把它归类于数字开关 那例如安全带的开关 前后雾灯的按钮 后备箱的开关和门锁的开关 都可以被归类于数字开关 如果开关具有多个状态或是多个位置 我们则可以将其归类于模拟开关 模拟开关通常是由不同的电阻值 来实现开关切换的不同的位置 所以有时候又叫做 resistor-coded switch 或是电阻编码开关 那例如点火钥匙的开关 尾灯和大灯控制的开关 以及雨刮控制开关等 都可以被归类于模拟的开关 那为了检测开关的一个状态 通常的做法是将偏置的电流提供给开关 已建立可以被采样的电压 在车身的应用上 这种偏置电流通常称为 wetting current 也就是湿电流 湿电流是指系统给输入端口提供的 上拉以及下拉的恒流源 以去除开关金属触点上的氧化物 保证开关可以可靠地闭合 那数字的开关因为只有两个状态 所以可以经由简单的比较器来做检测 那模拟的开关 因为开关不同的位置会产生不同的电压 所以需要有模拟数字转换器或者是ADC 来做采样以及检测 检测的结果呢再根据预设的阈值 MCU 就可以判断出目前 开关的切换的状态以及位置 接下来我们来讨论一下 利用分立器件和 MCU 来实现 车身控制模块开关检测的一个设计 那这张图就是一张典型的方案设计图 S1 就是我们要检测的开关 那通常为了保证设计的可靠性 硬件工程师会加上不少 周边的保护电路 第一 在车身控制模块的接口处 常常会需要串一个电容 作为系统 ESD 或是静电释放的保护 第二 隔离的二极管 是常常使用的器件 用来作为系统端电池反向保护 和瞬态脉冲保护的一个功能 第三 电阻的分压电路也是需要的 这样可以将输入的电压 降低到 MCU 可以容忍和采样的一个电压 再来 Rwett 是一个用于 调节进入开关的湿电流的 电流值的一个电阻 那电阻值越大 当然产生的湿电流就越小 那最后为了降低车身控制模块的静态电流 设计上通常会使用一些 MOS 管 和电阻的一些组合 在 MCU 需要进行采样的时候才打开湿电流 那这样算下来 如果使用分立器件来做 一个数字开关的通道检测 通常需要高达五个电阻 两个电容 一颗二极管和两个 MOS 管 并且耗去 MCU 的 GPIO 的一个端口 了解分立方案的实现方式 接下来我们就来讨论一下 分立方案的挑战以及一些问题 那首先肯定是器件数量会增多 那假设汽车上有 24 个开关 一个车身控制模块板就需要高达78颗电阻 27 颗电容 24 个二极管 以及 6 颗 MOS 管 这样不仅会增加设计的难度 并且会大幅增加电路板的面积 其次是 MCU GPIO 口数量的要求 当然也会增多 那假设每个开关通道 都需要占有一个GPIO 口 那设计 MOS 管的时序控制 也需要 GPIO 口来控制 这样一来 GPIO 口的数量就会增多 同时会增加对 MCU 选型上的一个成本 那接下来就是一个系统的功耗 那为了快速响应开关的切换 MCU 需要始终处于一个激活的状态 或者是需要定期的被唤醒 以确保持续的开关检测的一个功能 那这样会大幅增加系统的功耗 尤其是在汽车的熄火的一个状态下 为了延长电池的寿命 许多汽车的制造商对于车身控制模块 最大的静态的一个电流 有着非常严格的一个限制 那如果 MCU 需要定期的被唤醒 这个目标有时候是非常难以达到的 那接下来就是湿电流的一个变化 那汽车的电池的电压可能会 由于启动负载的转变 以及瞬态尖峰等因素而突然的改变 那由于湿电流是由电阻来调节的 电压的变化会直接导致湿电流的值 产生了变化 尤其是在设计模拟开关的检测方案时候 湿电流的变化会使得系统设计更加的复杂 那在最坏的情况下 车辆可能会报告错误的开关状态 这样不仅给司机乘客造成直接的不便 甚至会导致系统故障等问题 那再来就是我们之前讨论到 用作 ESD 静电释放保护的电容 那为了增加对静电释放保护的可靠性 电容的值可能要求会变得更大 那大的电容值会增加充电和放电的时间 进而影响到开关切换的响应速度 以及导致整个系统上功耗的增加 那接下来就是我们之前提到的二极管 那二极管在车身控制模块的设计上 提供了几种功能 第一是防止电流回流至电源 第二是为了安全性的考量 有时候一个开关的状态 可能会用两个 MCU 来做检测 那在这个情况二极管可以防止电流回流 而影响检测的精度 第三 二极管提供电池反向保护 和瞬态脉冲保护的功能 可是呢汽车级别的二极管通常会比较贵 如果每个通道上都要使用 对整个系统的成本 和电路板的面积会大幅的增加 最后一点值得一提的是车身的设计上 因为不同的应用场景 可能会需要不同的开关种类 比如说数字开关或者模拟开关 不同的开关的连接方式 比如说接蓄电池的开关 或是接地的开关 以及不同开关湿电流的配置 有时候可能需要一个毫安 有些其他时候可能需要15个毫安 那如果用分立方案来做的话 会增加设计的复杂以及困难度 并且很难去做一个平台化 参考线路的一个设计 接下来我们就来聊一下 TI 新推出的这个 24 个通道的开关监测的解决方案 以及它如何 解决我们之前讨论到一些 用分立方案来做的一些问题 那 MSDI 是 Multi-switch Detection Interface 一个简称 那它是一个多重开关状态检测的接口器件 作为汽车开关接口和 MCU 之间的桥梁 那这张图是一张 MSDI 的系统框图 这个芯片支持 24 个输入检测的接口 那在 24 个接口当中 其中十个通道 可以编程为支持连接到地 或是连接到电池的一个开关 方便硬件工程师做灵活的设计 那其余 14 个通道 则专用于检测接地的开关 另外所有的开关输入 都能实现正负 8000 伏的 ESD 的静电释放保护 并且集成了反向的电压保护 此外通过这张系统框图 我们可以看到 24 个开关的输入通道 都可以复用到 ADC 或是比较器 这就意味着 MSDI 可以支持 模拟开关或是数字开关 另外 MSDI 可以支持低到4.5伏的 电源的电压下正常的工作 并且能在最低2.8伏的电源电压下 保持寄存器的设置 更值得一提的是 MSDI 每个开关的输入 都可以进行单独的编程 设置个别的阈值电压 当开关输入的电压 超过了预定的阈值范围的时候 MSDI 就会产生一个中断 以提醒 MCU 系统上 某个开关已经改变了一个状态 那 MSDI 这个芯片 与 MCU 的通讯方式 是通过 SPI 的接口来实现的 SPI 是一个非常常用的 MCU 的接口 因此对于 MCU 的选择难度也大大的减少 同时也降低了整个系统的成本 接下来我们来讨论一下 MSDI 这颗芯片 怎么解决之前阐述的一些问题 首先呢 MSDI 这个芯片 是一个完全集成的开关检测前端的设备 它替代了传统实现开关检测电路 所需要的许多分立的器件 大大的减少分立器件的数量 那开关的数量越多 减少的器件也相对的增多 如此大大降低了电路板的设计难度 其次呢 MSDI 这颗芯片 利用中断信号以及 SPI 的接口 与 MCU 进行通信 因此总共占用了五个 GPIO 线路 与传统方案的一个开关 需要一个 GPIO 相比 大大释放了 MCU 的 GPIO 的资源 那举个例子来说 在这张图上你可以看到 如果要检测24个开关 分立器件的做法需要 78 个电阻 27 颗电容 24颗二极管 以及 6 个 MOS 管 另外再加上 28 根的 MCU 的 GPIO 相较之下这些分立器件 完全可以用一颗 MSDI 的芯片来代替 GPIO 要的数量也大幅从24根降到5根 在上一页我们讨论到 MSDI 高度集成了许多功能 因而减少设计车身控制模块时 分立器件的使用量 如此一来整个模块 电路板的尺寸也可以大幅的缩减 电路板的布局也可以大幅的简化 这对日趋复杂的车身控制模块的设计 和成本的控制上有着很显著的帮助 那在这张图上您可以清楚的看到 用分立器件还有 MSDI 来实现开关检测的方案 在电路板上一个尺寸上的差别 接下来我们来讨论 MSDI 在降低系统功耗上的帮助 这是在上文 MSDI 的硬件框图中 无法直接看出来的 首先 MSDI 具备了两种不同的模式 除了连续模式之外 还提供了一种称为轮询模式的 特殊的操作方式 在轮询模式之下 MSDI 提供了每个开关的输入的湿电流 仅在非常短的时间内被激活 持续的时间足以对输入的电压 进行采样以及状态判断 由于激活的时间的占空比很小 整体的平均电流消耗也因此大幅的减少 在轮询的模式下 MSDI 芯片的平均整体的电流消耗 仅在 70 个微安左右 值得一提的是 MSDI 每个输入端的 是湿流激活的时间 以及每个输入的采样的频率 都可以被配置 如此以来 MSDI 可以轻松地支持 各种不同的应用场景 除了轮询模式之外 硬件工程师还可以利用 MSDI 的中断功能 对休眠模式的 MCU 做状态更改的唤醒设计 这样可以再进一步的降低整体系统的功耗 那这张图提供了一个典型的参考设计 首先 MCU 需要正确的配置 MSDI 并启动 MSDI 的开关检测的功能 接下来 MCU 就可以进入休眠 或者是低功耗的状态 因为开关监测是由 MSDI 独立进行的 无需 MCU 的干预 当检测到开关的状态改变的时候 MSDI 会对 MCU 发出中断的讯号 该中断讯号可以设计 其用为 MCU 供电的 LDO 那一旦 MCU 重新激活 他就可以使用 SPI 的命令 检查开关的状态 如此以来 与典型的 MCU 2到3个毫安的功耗相比 MSDI 在轮询模式下 消耗的平均电流仅仅为70个微安 大幅降低了整个系统的功耗 这一点对于需要低静态电流的 汽车应用场景帮助非常的大 有些情况甚至是无法使用分立器件来做到的 接下来我们来讨论一下 MSDI 湿电流的精度 因为 MSDI 湿电流 是使用电流反射镜结构而设计的 因此电源和负载的变化 对于 MSDI 的湿电流输出的精度 并没有太大的影响 在不同的温度和工艺之下 MSDI 的湿电流精度常常可以保持在10% ±10% 之间 这对于正确的检测开关的状态 尤其是电阻编码开关有着很大的帮助 对于 MSDI 的湿电流精度的信息 请参阅 MSDI 的数据表 接下来 MSDI 所有的输入引脚 都集成了 HBM CDM 和 系统及接触以及空气放电的 ESD 保护 如此以来硬件工程师 在设计系统安全防护的时候 可以减少外部的 ESD 的电容 在节省成本的同时 还可以使输入的采样的速度更快 减少开关的响应的时间以及系统的功耗 接下来我们来讨论一下 MSDI 对于二极管使用上的需求 那在上一页我们讨论到 MSDI 的湿电流 是利用电流反射镜结构设计的 因此电流的方向是被控制的 另外 MSDI 的所有的输入端 都集成了反向保护的功能 因此呢我们之前讨论到 控制电流方向的二极管是不需要的 这样对于电路板的尺寸 以及成本的控制上有着很大的帮助 最后呢 MSDI 在芯片的配置方面 提供了巨大的灵活性 首先 MSDI 集成了 ADC 和比较器 以支持模拟和数字的开关 湿电流的方向 也可以通过编程来检测连接到地 或是连接到电源的开关 湿电流的配置 则提供从 0 个毫安 到 15 个毫安六种不同的选择 以支持各种开关 对于湿电流不同的需求 另外 MSDI 采样的频率 以及时序的控制 也可以轻易的通过寄存器的配置来进行调整 如此一来 软件工程师只需要对 MSDI 进行简易的编程 就可以支持各种不同类型的开关 并且降低硬件更改的频率 这样可以有效降低跨平台设计的复杂度 更能让工程师节省宝贵的开发周期 让产品迅速的面试 在接下来这个章节中 我们将详细讨论 MSDI 提供的一些 更高级的功能 以及硬件工程师如何使用这些功能 来更加提高系统的性能 首先呢我们之前讨论到 所有 MSDI 的输入端口 都可以单独配置为 ADC 或是比较器的模式 为了让 MSDI 可以区分开关打开 和闭合的状态 硬件工程师可以预先编程 ADC 或是比较器的阈值 那在 ADC 的模式之下 阈值可以变成为 1023 个代码中的任何一个 而在比较器的模式之下 有四个预设的阈值电压可以工作选择 它们分别为 2V 2.7V 3V 以及 4V 可以调的阈值 可以让系统硬件工程师 使用 MSDI 来缓解开关检测中 一些不理想的情况 接下来我们讨论两个例子 在示例一中 系统存在了负向的 Ground Shift 也就是地面移位 那地面移位会发生的情况 是由于 MSDI 跟开关的位置距离比较远 导致连接两者的地线 存在了较大的电阻值 当返回路径的电流较高的情况下 就容易产生地面移位 地面移位有可能是正压或是负压 在这个例子是一个负压的地面移位 也就是 MSDI 的地电位 低于开关远端的地电位 那两者之间存在的 1V 的差异 假设开关在关闭的情况下 开关的电阻值为一百个欧姆 如果使用 15 毫安的湿电流 则 MSDI 输入引脚上 会产生 1.5V 的电压 但是呢由于系统中有 1V 的负地面移位 MSDI 输入端看到相对于地的有效电压 变成2.5伏 那在这种情况之下 两伏的比较器的阈值将不起作用 而需要更高的检测阈值 那在第二个例子当中 连接到电池的开关 有着 200 欧姆的电阻 那由于冷发动机启动的缘故 该电池的电压暂时降到六伏 在开关关闭的状况之下 15 个毫安的湿电流 在 MSDI 输入引脚上 产生了三伏的电压 在这种情况下 4V 的比较器阈值将不起作用 和需要较低的检测阈值 从这两个事例当中 我们可以看到检测的阈值 可能需要根据系统的状况进行调整 而 TI 的 MSDI 方案 为 ADC 和比较器 都提供了阈值调整的功能 增加了整个系统设计上的灵活性 接下来我们来讨论一下 MSDI 检测滤波的功能 由于开关的设计是利用机械性质来实现的 当切换或是按压的时候 开关的触点可能在短时间之内来回的反弹 造成 MSDI 输入端口上电压的波动 这个时候呢就适合启用 MSDI 检测滤波的功能 检测滤波的功能开启之后 MSDI 会在确保开关状态处于稳定之后 才会对 MCU 发起中断的讯号 那 MSDI 的滤波次数 可以设置为一次两次三次或是四次 如果设置为四次 就代表这个输入端口的电压 相对于一开始设置的阈值 得连续四个轮询周期 都保持固定的状态的情况下 MSDI 才会对 MCU 产生中断 那在这一页的示例图上 我们就假定滤波的次数为四次 开关状态开始为高电平 当切换过后 有一段由于开关触点来回跳动 而导致开关状态不稳的过渡期 那 MSDI 最初检测到开关 转换为低电平的状态两个周期 但是在两个周期之后回到了高电平 由于滤波的次数设置为四次 所以低电平的这两个周期呢 将会被 MSDI 给忽略 那一直到最后开关稳定下来之后 足以让 MSDI 检测到四次 连续的开关低电平状态周期之后 中断信号才会被发送给 MCU 那检测滤波这个功能只需要编程一次 一旦编程之后 就不需要 MCU 对 MSDI 做其他软件上的控制 这样呢比起以往固定的时间 就需要唤醒 MCU 并且 过采样的一个做法 不仅节省 MCU 的资源 并且帮助降低系统上的功耗 接下来我们来谈谈 MSDI 的 Matix polling 的功能 也就是矩阵轮询模式 矩阵轮询模式 是一种特殊的轮询方案 只需要使用 12 个 MSDI 的输入通道 就可以支持高达 36 个数字开关 矩阵轮询模式有三种不同的矩阵配置 分别是 4×4 的矩阵 支持高达 16 个开关 5×5 的矩阵支持高达 25 个开关 以及 6×6 的矩阵 支持高达 36 个开关 那矩阵轮询模式 是利用电流源和电流接收互相的连接 依次扫描矩阵的每一行和每一列 以检测两者之间开关的这个状态 矩阵轮询模式检测的阈值和时间 也可以像普通的轮询模式一样进行编程 检测的结果呢 将会被寄存在寄存器当中 提供给 MCU 进行读取 使用矩阵模式最好的的好处 是需要 MSDI 少量的输入通道 就可以支持大量的数字开关 由于车辆中的开关数量持续的增长 矩阵轮询模式 提供了一个很特别的解决方案 大幅的减少了 车身控制模块设计的复杂性 元件的数量和电路板的面积 那我们之前提到 为了清除机械开关 金属触点上积累的氧化物 以保证开关的可靠闭合 车身控制模块 会提供湿电流给开关 那有些开关因为用途的关系 会需要比较大的湿电流 比如说 10 毫安或是 15 毫安 而另一方面为了检测电阻编码开关 或是降低模块的整体功耗 硬件工程师会趋向使用 较低的湿电流的设置 如此一来湿电流的配置 常常会造成硬件 或是软件工程师的困扰 那这个时候 MSDI 的 Clean current polling (CCP) 简称 CCP 或是清洁电流的轮询方案 就可以适时的发挥用途 当清洁电流轮询方案开始的时候 每个轮询的周期 将会改成由两个湿电流激活的步骤组成 第一步是正常的轮询开关状态采样 这部分跟普通的轮询模式是相同的 第二步称为清洁电流 这个是对所有 CCP 开启的输入通道 同时激活的电流脉冲 目的呢就是因为要湿润开关的触点 以保持接触面的清洁 那清洁的电流的值 可以在十个毫安 或是 15 个毫安之间做选择 并且可以为每个通道启用或是停用 通过这个清洁电流的轮询方案 系统就可以利用 MSDI 提供的 这两个不同的电平的电流 来分别进行开关的检测和触点清洁 这样不管对于硬件或是软件上的设计 都具有相当显著的简化的功能 接下来我们来讨论 MSDI 的电源测量的功能 当 MSDI 进行开关检测的时候 特别是电阻编码开关 电源的电压高低变成非常的关键 如果电源的电压波动过大 超过了数据表的工作范围 MSDI 可能无法产生精确的湿电流 那这可能会影响开关检测的一个准确性 因此呢传统做法是利用 MCU 持续的采样 并且监控电源的电压 以确定它保持在一个固定的范围之内 那因为考虑到这方面的设计 TI 的 MSDI 方案 提供了电源电压测量的特殊功能 一旦启用之后 MSDI 将会将电源的电压 通过电阻分压之后 连接到内建的 ADC 并且在每个轮询的周期中进行采样 那电源测量支持两种范围选项 分别为 4.5 伏到 9伏 或者是 4.5 伏到 30 伏 那 4.5 伏到 9 伏 提供了较高的测量精度 4.5 伏至 30 伏的选项 则提供了更宽的电压测量范围 那电源测量的功能 跟传统的开关检测类似 也可以编程阈值 最多可以编程四个独立的数值 如果电源的电压低于或是超过阈值 MSDI 会发出中断讯号通知 MCU 那 ADC 转换后的数值 也会被储存到寄存器当中 提供 MCU 使用 SPI 通信 读取更多关于电源电压的信息 因为呢有中断讯号的辅助 硬件工程师也可以跟 传统的开关设计检测一样 利用电源测量的功能 做 MCU 的唤醒设计 为了提高开关检测的可靠性 MSDI 提供了许多 Fault Detection 也就是故障检测的功能 首先是电压故障的检测 那在 12V 汽车系统当中 完全充电时 电池的电压通常为 12.6 伏左右 而发动机运行的时候 电池的电压则为 13.7 伏左右 但是呢各种车辆的运行条件 比如说 Load down 负载突降 cold 冷启动 或者是搭电启动等等 可能会大幅改变电池的工作电压 那 TI 的 MSDI 建议的 电压工作范围于4.5伏到35伏之间 如果电源的电压超出建议值 MSDI 会产生过压或者是欠压的中断 以警告系统 以便采取适当的措施 除了电源电压之外 当车辆运行的时候 温度 也是一个 难以在系统中控制的参数 那 TI 的 MSDI 的工作温度 最高可以到达125度摄氏度 但是如果多个通道 同时被编程为高的湿电流 开关又保持在关闭的状态 MSDI 的芯片的温度 可能会迅速的增高 那为了防止过热 MSDI 芯片的内部 集成了许多温度传感器 如果结温高于 140 度摄氏度 MSDI 内部会产生警告中断 并且将所有的通道的 湿电流降低至两个毫安 如果结温持续升高 并超过 160 度摄氏度 MSDI 会关闭所有通道的湿电流 以防止进一步的制热 那经过了一段时间之后 一旦温度下降到阈值以下 湿电流则会恢复到其编程值 这些热保护的功能 可防止对 MSDI 的芯片 造成永久性的损坏 那再来我们来讨论一下 MSDI 芯片的 SPI 故障检测的功能 SPI 是相当普遍的汽车通信协议 那 TI 的 MSDI 就是使用 SPI 的协议与 MCU 进行通信 以进行编程和状态更新 但是呢在恶劣的汽车工作环境之下 SPI 通信的错误有可能会由于 bit-flipping 也就是位翻转而产生 为了检测 SPI 位翻转的通信错误 MSDI 为 SPI 的每一笔资料 都进行 Parity check 也就是所谓的奇偶校验 那 MSDI 使用的是奇数的奇偶校验 这意味着任何一笔 SPI 资料中 1 的比特总数必须是奇数 数据才会生效 那如果总数为偶数 芯片则会丢弃接收到的数据 同样的 MSDI 对每一笔的 输出的 SPI 数据 也都执行相同的方案 那这个方案可以大幅降低 SPI 通信错误的发生 那除了 SPI 的奇偶校验 MSDI 还提供 CRC 也就是循环冗余校验 来检查编程到芯片中数据的完整性 那 CRC 校验被初始化之后 MSDI 将根据所有配置寄存器的值 计算并储存 CRC 的数值 然后 MCU 就可以将 MSDI 的 CRC 的数值与其期望值进行比较 如果两个值不匹配 这意味着编程期间发生了一些错误 所以通过使用 CRC MCU 可以随时校验 MSDI 数据传输 或者保存之后可能出现的一个错误 那以上所提到这些故障检测功能 都大幅增加 MSDI 操作的稳定性 并允许 MSDI 被使用于 安全关键型应用的可能性 除了上一页所讨论的故障检测功能之外 TI 的 MSDI 方案 还内建了两个高级诊断的功能 持续监控 MSDI 的设备操作 那第一个是湿电流诊断 它将 MSDI 的端口的输入 或是输出的电流与参考值进行比较 如果当前输入或是输出的电流值 显著偏离参考值 MSDI 的芯片就会发出中断 以提醒 MCU 那 MCU 就可以选择利用设备重置的方式 来尝试解决这个问题 MSDI 为前四个输入端口 也就是 IN0 到 IN3 提供了 湿电流诊断的功能 所以这几个通道 适用于对于安全有需求的开关设计 那另外一个高级诊断的功能是 ADC 的自诊断的功能 目的是确保 ADC 转换正确的执行 那当这个诊断功能开启的时候 一个固定带隙基准电压 将被复用到 ADC 进行采样 并将 ADC 的输出 与预设的限值进行比较 如果ADC的输出值超出了限值 MSDI 就会发出中断 那同样的 MCU 可以选择利用 设备重置的方式来尝试解决这个问题 湿电流诊断和 ADC 的自诊断 都将在每一个轮循周期结束后运行 因此可以连续监测 MSDI 操作的稳定性 那车身控制模块的硬件工程师 可以利用这两个诊断的功能 以及之前提到的故障检测的功能 对系统的安全性实现优化的设计 以达到系统功能安全的标准 那以上呢 就是我们今天 对 MSDI 做的一个在线的培训 相信您对 MSDI 的功能 以及它对系统上的一些帮助 有着比较多一点的认识 那如果您需要更多的一些讯息 欢迎您到 TI.com 搜寻 MSDI 的产品型号 也就是 TIC12400 那你就会发现更多一些有用的一些讯息 包括 MSDI 的参考设计 EVM 板以及 GUI 的软件等等 谢谢您收看今天的在线培训 再见
欢迎来到德州仪器的在线培训
我的名字是戴维王
德州仪器的系统工程师
那今天我们要讨论的主题是
MSDI 也就是多开关检测接口的一个器件
那 MSDI 主要用途是在车身控制模块上
也就是 BCM 的上面
那在这个培训中
我们会详细介绍 MSDI 一些特别的功能
以及它如何在车身控制模块的设计上
不管是设计的复杂度
成本的控制
或者是整体系统的一些性能上
所提供的一些帮助
那这个培训包含了四个章节
在第一个章节我们会讨论
汽车车身控制模块中的
开关检测的一个功能
传统使用分立器件来实现
开关检测的一些做法
以及使用分立器件方案上实现的一些挑战
那在第二个章节我们会讨论
MSDI 的概念以及 MSDI 如何
帮助解决在第一章我们讨论到的一些挑战
在第三个章节
我们会讨论 MSDI 提供的一些高级功能
以及硬件设计师如何使用这些功能
来提高系统的性能
培训结束后在最后也就是第四个章节
我们会重点介绍 MSDI 的价值主张
以及如何获取有关德州仪器这款
MSDI 器件的更多信息
首先让我们来讨论一下
BCM 也就是车身控制模块的重要性
那在车用电子的设计当中
车身控制模块结合安全性
和舒适性功能的管理
以及电子电源系统的管理
随着汽车电子技术的发展
其功能也在不断的扩展和增加
除了传统的灯光 雨刮 以及门锁控制等
一些基本的功能之外
近年来车身控制模块
开始逐渐集成了一些像
自动雨刮 发动机防盗 胎压检测等
一些先进的功能
以满足人们不断增加的安全性
以及舒适性等方面的一些需求
那在这一页 slice
您可以看到一个车身控制模块的框图
在车身控制系统上
开关的应用扮演了一个很重要的角色
不管是当驾驶员打开车灯
使用电动门窗
操控中控门锁
打开加热座椅
或者是使用挡风玻璃雨刮
这些所有的控制都是利用开关来实现的
在配置极全的中高档车当中
开关的数量常常可以达到一百个或甚至更多
所以如何要事半功倍的检测这些开关的状态
就变成了车身控制模块设计上
一个很重要的课题
传统的解决方案
通常的做法是利用 MCU
也就是微控制器的 IO 口来进行监控
但是这种做法常常会有一些限制
造成设计上一定的复杂性
接下来就让我们详细地讨论一下
首先让我们先来讨论一下
车身设计中使用的开关
车辆中的开关一般会有两种不同的类型
如果一个开关只有两个状态
也就是打开和关闭
我们可以简单的把它归类于数字开关
那例如安全带的开关
前后雾灯的按钮
后备箱的开关和门锁的开关
都可以被归类于数字开关
如果开关具有多个状态或是多个位置
我们则可以将其归类于模拟开关
模拟开关通常是由不同的电阻值
来实现开关切换的不同的位置
所以有时候又叫做
resistor-coded switch
或是电阻编码开关
那例如点火钥匙的开关
尾灯和大灯控制的开关
以及雨刮控制开关等
都可以被归类于模拟的开关
那为了检测开关的一个状态
通常的做法是将偏置的电流提供给开关
已建立可以被采样的电压
在车身的应用上
这种偏置电流通常称为
wetting current
也就是湿电流
湿电流是指系统给输入端口提供的
上拉以及下拉的恒流源
以去除开关金属触点上的氧化物
保证开关可以可靠地闭合
那数字的开关因为只有两个状态
所以可以经由简单的比较器来做检测
那模拟的开关
因为开关不同的位置会产生不同的电压
所以需要有模拟数字转换器或者是ADC
来做采样以及检测
检测的结果呢再根据预设的阈值
MCU 就可以判断出目前
开关的切换的状态以及位置
接下来我们来讨论一下
利用分立器件和 MCU 来实现
车身控制模块开关检测的一个设计
那这张图就是一张典型的方案设计图
S1 就是我们要检测的开关
那通常为了保证设计的可靠性
硬件工程师会加上不少
周边的保护电路
第一 在车身控制模块的接口处
常常会需要串一个电容
作为系统 ESD 或是静电释放的保护
第二 隔离的二极管
是常常使用的器件
用来作为系统端电池反向保护
和瞬态脉冲保护的一个功能
第三 电阻的分压电路也是需要的
这样可以将输入的电压
降低到 MCU 可以容忍和采样的一个电压
再来 Rwett 是一个用于
调节进入开关的湿电流的
电流值的一个电阻
那电阻值越大
当然产生的湿电流就越小
那最后为了降低车身控制模块的静态电流
设计上通常会使用一些 MOS 管
和电阻的一些组合
在 MCU 需要进行采样的时候才打开湿电流
那这样算下来
如果使用分立器件来做
一个数字开关的通道检测
通常需要高达五个电阻 两个电容
一颗二极管和两个 MOS 管
并且耗去 MCU 的 GPIO 的一个端口
了解分立方案的实现方式
接下来我们就来讨论一下
分立方案的挑战以及一些问题
那首先肯定是器件数量会增多
那假设汽车上有 24 个开关
一个车身控制模块板就需要高达78颗电阻
27 颗电容 24 个二极管
以及 6 颗 MOS 管
这样不仅会增加设计的难度
并且会大幅增加电路板的面积
其次是 MCU GPIO 口数量的要求
当然也会增多
那假设每个开关通道
都需要占有一个GPIO 口
那设计 MOS 管的时序控制
也需要 GPIO 口来控制
这样一来 GPIO 口的数量就会增多
同时会增加对 MCU 选型上的一个成本
那接下来就是一个系统的功耗
那为了快速响应开关的切换
MCU 需要始终处于一个激活的状态
或者是需要定期的被唤醒
以确保持续的开关检测的一个功能
那这样会大幅增加系统的功耗
尤其是在汽车的熄火的一个状态下
为了延长电池的寿命
许多汽车的制造商对于车身控制模块
最大的静态的一个电流
有着非常严格的一个限制
那如果 MCU 需要定期的被唤醒
这个目标有时候是非常难以达到的
那接下来就是湿电流的一个变化
那汽车的电池的电压可能会
由于启动负载的转变
以及瞬态尖峰等因素而突然的改变
那由于湿电流是由电阻来调节的
电压的变化会直接导致湿电流的值
产生了变化
尤其是在设计模拟开关的检测方案时候
湿电流的变化会使得系统设计更加的复杂
那在最坏的情况下
车辆可能会报告错误的开关状态
这样不仅给司机乘客造成直接的不便
甚至会导致系统故障等问题
那再来就是我们之前讨论到
用作 ESD 静电释放保护的电容
那为了增加对静电释放保护的可靠性
电容的值可能要求会变得更大
那大的电容值会增加充电和放电的时间
进而影响到开关切换的响应速度
以及导致整个系统上功耗的增加
那接下来就是我们之前提到的二极管
那二极管在车身控制模块的设计上
提供了几种功能
第一是防止电流回流至电源
第二是为了安全性的考量
有时候一个开关的状态
可能会用两个 MCU 来做检测
那在这个情况二极管可以防止电流回流
而影响检测的精度
第三 二极管提供电池反向保护
和瞬态脉冲保护的功能
可是呢汽车级别的二极管通常会比较贵
如果每个通道上都要使用
对整个系统的成本
和电路板的面积会大幅的增加
最后一点值得一提的是车身的设计上
因为不同的应用场景
可能会需要不同的开关种类
比如说数字开关或者模拟开关
不同的开关的连接方式
比如说接蓄电池的开关
或是接地的开关
以及不同开关湿电流的配置
有时候可能需要一个毫安
有些其他时候可能需要15个毫安
那如果用分立方案来做的话
会增加设计的复杂以及困难度
并且很难去做一个平台化
参考线路的一个设计
接下来我们就来聊一下
TI 新推出的这个
24 个通道的开关监测的解决方案
以及它如何
解决我们之前讨论到一些
用分立方案来做的一些问题
那 MSDI 是
Multi-switch Detection Interface
一个简称
那它是一个多重开关状态检测的接口器件
作为汽车开关接口和 MCU 之间的桥梁
那这张图是一张 MSDI 的系统框图
这个芯片支持 24 个输入检测的接口
那在 24 个接口当中
其中十个通道
可以编程为支持连接到地
或是连接到电池的一个开关
方便硬件工程师做灵活的设计
那其余 14 个通道
则专用于检测接地的开关
另外所有的开关输入
都能实现正负 8000 伏的
ESD 的静电释放保护
并且集成了反向的电压保护
此外通过这张系统框图
我们可以看到
24 个开关的输入通道
都可以复用到 ADC 或是比较器
这就意味着 MSDI 可以支持
模拟开关或是数字开关
另外 MSDI 可以支持低到4.5伏的
电源的电压下正常的工作
并且能在最低2.8伏的电源电压下
保持寄存器的设置
更值得一提的是 MSDI 每个开关的输入
都可以进行单独的编程
设置个别的阈值电压
当开关输入的电压
超过了预定的阈值范围的时候
MSDI 就会产生一个中断
以提醒 MCU 系统上
某个开关已经改变了一个状态
那 MSDI 这个芯片
与 MCU 的通讯方式
是通过 SPI 的接口来实现的
SPI 是一个非常常用的 MCU 的接口
因此对于 MCU 的选择难度也大大的减少
同时也降低了整个系统的成本
接下来我们来讨论一下
MSDI 这颗芯片
怎么解决之前阐述的一些问题
首先呢 MSDI 这个芯片
是一个完全集成的开关检测前端的设备
它替代了传统实现开关检测电路
所需要的许多分立的器件
大大的减少分立器件的数量
那开关的数量越多
减少的器件也相对的增多
如此大大降低了电路板的设计难度
其次呢 MSDI 这颗芯片
利用中断信号以及 SPI 的接口
与 MCU 进行通信
因此总共占用了五个 GPIO 线路
与传统方案的一个开关
需要一个 GPIO 相比
大大释放了 MCU 的 GPIO 的资源
那举个例子来说
在这张图上你可以看到
如果要检测24个开关
分立器件的做法需要 78 个电阻
27 颗电容 24颗二极管
以及 6 个 MOS 管
另外再加上 28 根的 MCU 的 GPIO
相较之下这些分立器件
完全可以用一颗 MSDI 的芯片来代替
GPIO 要的数量也大幅从24根降到5根
在上一页我们讨论到
MSDI 高度集成了许多功能
因而减少设计车身控制模块时
分立器件的使用量
如此一来整个模块
电路板的尺寸也可以大幅的缩减
电路板的布局也可以大幅的简化
这对日趋复杂的车身控制模块的设计
和成本的控制上有着很显著的帮助
那在这张图上您可以清楚的看到
用分立器件还有 MSDI
来实现开关检测的方案
在电路板上一个尺寸上的差别
接下来我们来讨论
MSDI 在降低系统功耗上的帮助
这是在上文 MSDI 的硬件框图中
无法直接看出来的
首先 MSDI 具备了两种不同的模式
除了连续模式之外
还提供了一种称为轮询模式的
特殊的操作方式
在轮询模式之下
MSDI 提供了每个开关的输入的湿电流
仅在非常短的时间内被激活
持续的时间足以对输入的电压
进行采样以及状态判断
由于激活的时间的占空比很小
整体的平均电流消耗也因此大幅的减少
在轮询的模式下
MSDI 芯片的平均整体的电流消耗
仅在 70 个微安左右
值得一提的是 MSDI 每个输入端的
是湿流激活的时间
以及每个输入的采样的频率
都可以被配置
如此以来 MSDI 可以轻松地支持
各种不同的应用场景
除了轮询模式之外
硬件工程师还可以利用 MSDI 的中断功能
对休眠模式的 MCU 做状态更改的唤醒设计
这样可以再进一步的降低整体系统的功耗
那这张图提供了一个典型的参考设计
首先 MCU 需要正确的配置 MSDI
并启动 MSDI 的开关检测的功能
接下来 MCU 就可以进入休眠
或者是低功耗的状态
因为开关监测是由 MSDI 独立进行的
无需 MCU 的干预
当检测到开关的状态改变的时候
MSDI 会对 MCU 发出中断的讯号
该中断讯号可以设计
其用为 MCU 供电的 LDO
那一旦 MCU 重新激活
他就可以使用 SPI 的命令
检查开关的状态
如此以来
与典型的 MCU 2到3个毫安的功耗相比
MSDI 在轮询模式下
消耗的平均电流仅仅为70个微安
大幅降低了整个系统的功耗
这一点对于需要低静态电流的
汽车应用场景帮助非常的大
有些情况甚至是无法使用分立器件来做到的
接下来我们来讨论一下
MSDI 湿电流的精度
因为 MSDI 湿电流
是使用电流反射镜结构而设计的
因此电源和负载的变化
对于 MSDI 的湿电流输出的精度
并没有太大的影响
在不同的温度和工艺之下
MSDI 的湿电流精度常常可以保持在10%
±10% 之间
这对于正确的检测开关的状态
尤其是电阻编码开关有着很大的帮助
对于 MSDI 的湿电流精度的信息
请参阅 MSDI 的数据表
接下来 MSDI 所有的输入引脚
都集成了 HBM CDM 和
系统及接触以及空气放电的 ESD 保护
如此以来硬件工程师
在设计系统安全防护的时候
可以减少外部的 ESD 的电容
在节省成本的同时
还可以使输入的采样的速度更快
减少开关的响应的时间以及系统的功耗
接下来我们来讨论一下 MSDI
对于二极管使用上的需求
那在上一页我们讨论到
MSDI 的湿电流
是利用电流反射镜结构设计的
因此电流的方向是被控制的
另外 MSDI 的所有的输入端
都集成了反向保护的功能
因此呢我们之前讨论到
控制电流方向的二极管是不需要的
这样对于电路板的尺寸
以及成本的控制上有着很大的帮助
最后呢 MSDI 在芯片的配置方面
提供了巨大的灵活性
首先 MSDI 集成了 ADC 和比较器
以支持模拟和数字的开关
湿电流的方向
也可以通过编程来检测连接到地
或是连接到电源的开关
湿电流的配置
则提供从 0 个毫安
到 15 个毫安六种不同的选择
以支持各种开关
对于湿电流不同的需求
另外 MSDI 采样的频率
以及时序的控制
也可以轻易的通过寄存器的配置来进行调整
如此一来
软件工程师只需要对 MSDI 进行简易的编程
就可以支持各种不同类型的开关
并且降低硬件更改的频率
这样可以有效降低跨平台设计的复杂度
更能让工程师节省宝贵的开发周期
让产品迅速的面试
在接下来这个章节中
我们将详细讨论 MSDI 提供的一些
更高级的功能
以及硬件工程师如何使用这些功能
来更加提高系统的性能
首先呢我们之前讨论到
所有 MSDI 的输入端口
都可以单独配置为 ADC
或是比较器的模式
为了让 MSDI 可以区分开关打开
和闭合的状态
硬件工程师可以预先编程 ADC
或是比较器的阈值
那在 ADC 的模式之下
阈值可以变成为
1023 个代码中的任何一个
而在比较器的模式之下
有四个预设的阈值电压可以工作选择
它们分别为 2V 2.7V 3V 以及 4V
可以调的阈值
可以让系统硬件工程师
使用 MSDI 来缓解开关检测中
一些不理想的情况
接下来我们讨论两个例子
在示例一中
系统存在了负向的 Ground Shift
也就是地面移位
那地面移位会发生的情况
是由于 MSDI 跟开关的位置距离比较远
导致连接两者的地线
存在了较大的电阻值
当返回路径的电流较高的情况下
就容易产生地面移位
地面移位有可能是正压或是负压
在这个例子是一个负压的地面移位
也就是 MSDI 的地电位
低于开关远端的地电位
那两者之间存在的 1V 的差异
假设开关在关闭的情况下
开关的电阻值为一百个欧姆
如果使用 15 毫安的湿电流
则 MSDI 输入引脚上
会产生 1.5V 的电压
但是呢由于系统中有 1V 的负地面移位
MSDI 输入端看到相对于地的有效电压
变成2.5伏
那在这种情况之下
两伏的比较器的阈值将不起作用
而需要更高的检测阈值
那在第二个例子当中
连接到电池的开关
有着 200 欧姆的电阻
那由于冷发动机启动的缘故
该电池的电压暂时降到六伏
在开关关闭的状况之下
15 个毫安的湿电流
在 MSDI 输入引脚上
产生了三伏的电压
在这种情况下
4V 的比较器阈值将不起作用
和需要较低的检测阈值
从这两个事例当中
我们可以看到检测的阈值
可能需要根据系统的状况进行调整
而 TI 的 MSDI 方案
为 ADC 和比较器
都提供了阈值调整的功能
增加了整个系统设计上的灵活性
接下来我们来讨论一下
MSDI 检测滤波的功能
由于开关的设计是利用机械性质来实现的
当切换或是按压的时候
开关的触点可能在短时间之内来回的反弹
造成 MSDI 输入端口上电压的波动
这个时候呢就适合启用
MSDI 检测滤波的功能
检测滤波的功能开启之后
MSDI 会在确保开关状态处于稳定之后
才会对 MCU 发起中断的讯号
那 MSDI 的滤波次数
可以设置为一次两次三次或是四次
如果设置为四次
就代表这个输入端口的电压
相对于一开始设置的阈值
得连续四个轮询周期
都保持固定的状态的情况下
MSDI 才会对 MCU 产生中断
那在这一页的示例图上
我们就假定滤波的次数为四次
开关状态开始为高电平
当切换过后
有一段由于开关触点来回跳动
而导致开关状态不稳的过渡期
那 MSDI 最初检测到开关
转换为低电平的状态两个周期
但是在两个周期之后回到了高电平
由于滤波的次数设置为四次
所以低电平的这两个周期呢
将会被 MSDI 给忽略
那一直到最后开关稳定下来之后
足以让 MSDI 检测到四次
连续的开关低电平状态周期之后
中断信号才会被发送给 MCU
那检测滤波这个功能只需要编程一次
一旦编程之后
就不需要 MCU 对 MSDI
做其他软件上的控制
这样呢比起以往固定的时间
就需要唤醒 MCU 并且
过采样的一个做法
不仅节省 MCU 的资源
并且帮助降低系统上的功耗
接下来我们来谈谈
MSDI 的 Matix polling 的功能
也就是矩阵轮询模式
矩阵轮询模式
是一种特殊的轮询方案
只需要使用 12 个 MSDI 的输入通道
就可以支持高达 36 个数字开关
矩阵轮询模式有三种不同的矩阵配置
分别是 4×4 的矩阵
支持高达 16 个开关
5×5 的矩阵支持高达 25 个开关
以及 6×6 的矩阵
支持高达 36 个开关
那矩阵轮询模式
是利用电流源和电流接收互相的连接
依次扫描矩阵的每一行和每一列
以检测两者之间开关的这个状态
矩阵轮询模式检测的阈值和时间
也可以像普通的轮询模式一样进行编程
检测的结果呢
将会被寄存在寄存器当中
提供给 MCU 进行读取
使用矩阵模式最好的的好处
是需要 MSDI 少量的输入通道
就可以支持大量的数字开关
由于车辆中的开关数量持续的增长
矩阵轮询模式
提供了一个很特别的解决方案
大幅的减少了
车身控制模块设计的复杂性
元件的数量和电路板的面积
那我们之前提到
为了清除机械开关
金属触点上积累的氧化物
以保证开关的可靠闭合
车身控制模块
会提供湿电流给开关
那有些开关因为用途的关系
会需要比较大的湿电流
比如说 10 毫安或是 15 毫安
而另一方面为了检测电阻编码开关
或是降低模块的整体功耗
硬件工程师会趋向使用
较低的湿电流的设置
如此一来湿电流的配置
常常会造成硬件
或是软件工程师的困扰
那这个时候 MSDI 的
Clean current polling (CCP)
简称 CCP 或是清洁电流的轮询方案
就可以适时的发挥用途
当清洁电流轮询方案开始的时候
每个轮询的周期
将会改成由两个湿电流激活的步骤组成
第一步是正常的轮询开关状态采样
这部分跟普通的轮询模式是相同的
第二步称为清洁电流
这个是对所有 CCP 开启的输入通道
同时激活的电流脉冲
目的呢就是因为要湿润开关的触点
以保持接触面的清洁
那清洁的电流的值
可以在十个毫安
或是 15 个毫安之间做选择
并且可以为每个通道启用或是停用
通过这个清洁电流的轮询方案
系统就可以利用 MSDI 提供的
这两个不同的电平的电流
来分别进行开关的检测和触点清洁
这样不管对于硬件或是软件上的设计
都具有相当显著的简化的功能
接下来我们来讨论
MSDI 的电源测量的功能
当 MSDI 进行开关检测的时候
特别是电阻编码开关
电源的电压高低变成非常的关键
如果电源的电压波动过大
超过了数据表的工作范围
MSDI 可能无法产生精确的湿电流
那这可能会影响开关检测的一个准确性
因此呢传统做法是利用
MCU 持续的采样
并且监控电源的电压
以确定它保持在一个固定的范围之内
那因为考虑到这方面的设计
TI 的 MSDI 方案
提供了电源电压测量的特殊功能
一旦启用之后
MSDI 将会将电源的电压
通过电阻分压之后
连接到内建的 ADC
并且在每个轮询的周期中进行采样
那电源测量支持两种范围选项
分别为 4.5 伏到 9伏
或者是 4.5 伏到 30 伏
那 4.5 伏到 9 伏
提供了较高的测量精度
4.5 伏至 30 伏的选项
则提供了更宽的电压测量范围
那电源测量的功能
跟传统的开关检测类似
也可以编程阈值
最多可以编程四个独立的数值
如果电源的电压低于或是超过阈值
MSDI 会发出中断讯号通知 MCU
那 ADC 转换后的数值
也会被储存到寄存器当中
提供 MCU 使用 SPI 通信
读取更多关于电源电压的信息
因为呢有中断讯号的辅助
硬件工程师也可以跟
传统的开关设计检测一样
利用电源测量的功能
做 MCU 的唤醒设计
为了提高开关检测的可靠性
MSDI 提供了许多 Fault Detection
也就是故障检测的功能
首先是电压故障的检测
那在 12V 汽车系统当中
完全充电时
电池的电压通常为 12.6 伏左右
而发动机运行的时候
电池的电压则为 13.7 伏左右
但是呢各种车辆的运行条件
比如说 Load down 负载突降
cold 冷启动
或者是搭电启动等等
可能会大幅改变电池的工作电压
那 TI 的 MSDI 建议的
电压工作范围于4.5伏到35伏之间
如果电源的电压超出建议值
MSDI 会产生过压或者是欠压的中断
以警告系统
以便采取适当的措施
除了电源电压之外
当车辆运行的时候
温度 也是一个
难以在系统中控制的参数
那 TI 的 MSDI 的工作温度
最高可以到达125度摄氏度
但是如果多个通道
同时被编程为高的湿电流
开关又保持在关闭的状态
MSDI 的芯片的温度
可能会迅速的增高
那为了防止过热
MSDI 芯片的内部
集成了许多温度传感器
如果结温高于 140 度摄氏度
MSDI 内部会产生警告中断
并且将所有的通道的
湿电流降低至两个毫安
如果结温持续升高
并超过 160 度摄氏度
MSDI 会关闭所有通道的湿电流
以防止进一步的制热
那经过了一段时间之后
一旦温度下降到阈值以下
湿电流则会恢复到其编程值
这些热保护的功能
可防止对 MSDI 的芯片
造成永久性的损坏
那再来我们来讨论一下
MSDI 芯片的 SPI 故障检测的功能
SPI 是相当普遍的汽车通信协议
那 TI 的 MSDI 就是使用
SPI 的协议与 MCU 进行通信
以进行编程和状态更新
但是呢在恶劣的汽车工作环境之下
SPI 通信的错误有可能会由于
bit-flipping
也就是位翻转而产生
为了检测 SPI 位翻转的通信错误
MSDI 为 SPI 的每一笔资料
都进行 Parity check
也就是所谓的奇偶校验
那 MSDI 使用的是奇数的奇偶校验
这意味着任何一笔 SPI 资料中
1 的比特总数必须是奇数
数据才会生效
那如果总数为偶数
芯片则会丢弃接收到的数据
同样的 MSDI 对每一笔的
输出的 SPI 数据
也都执行相同的方案
那这个方案可以大幅降低
SPI 通信错误的发生
那除了 SPI 的奇偶校验
MSDI 还提供 CRC
也就是循环冗余校验
来检查编程到芯片中数据的完整性
那 CRC 校验被初始化之后
MSDI 将根据所有配置寄存器的值
计算并储存 CRC 的数值
然后 MCU 就可以将 MSDI 的
CRC 的数值与其期望值进行比较
如果两个值不匹配
这意味着编程期间发生了一些错误
所以通过使用 CRC
MCU 可以随时校验 MSDI 数据传输
或者保存之后可能出现的一个错误
那以上所提到这些故障检测功能
都大幅增加 MSDI 操作的稳定性
并允许 MSDI 被使用于
安全关键型应用的可能性
除了上一页所讨论的故障检测功能之外
TI 的 MSDI 方案
还内建了两个高级诊断的功能
持续监控 MSDI 的设备操作
那第一个是湿电流诊断
它将 MSDI 的端口的输入
或是输出的电流与参考值进行比较
如果当前输入或是输出的电流值
显著偏离参考值
MSDI 的芯片就会发出中断
以提醒 MCU
那 MCU 就可以选择利用设备重置的方式
来尝试解决这个问题
MSDI 为前四个输入端口
也就是 IN0 到 IN3 提供了
湿电流诊断的功能
所以这几个通道
适用于对于安全有需求的开关设计
那另外一个高级诊断的功能是
ADC 的自诊断的功能
目的是确保 ADC 转换正确的执行
那当这个诊断功能开启的时候
一个固定带隙基准电压
将被复用到 ADC 进行采样
并将 ADC 的输出
与预设的限值进行比较
如果ADC的输出值超出了限值
MSDI 就会发出中断
那同样的 MCU 可以选择利用
设备重置的方式来尝试解决这个问题
湿电流诊断和 ADC 的自诊断
都将在每一个轮循周期结束后运行
因此可以连续监测 MSDI 操作的稳定性
那车身控制模块的硬件工程师
可以利用这两个诊断的功能
以及之前提到的故障检测的功能
对系统的安全性实现优化的设计
以达到系统功能安全的标准
那以上呢 就是我们今天
对 MSDI 做的一个在线的培训
相信您对 MSDI 的功能
以及它对系统上的一些帮助
有着比较多一点的认识
那如果您需要更多的一些讯息
欢迎您到 TI.com 搜寻 MSDI 的产品型号
也就是 TIC12400
那你就会发现更多一些有用的一些讯息
包括 MSDI 的参考设计
EVM 板以及 GUI 的软件等等
谢谢您收看今天的在线培训 再见
欢迎来到德州仪器的在线培训 我的名字是戴维王 德州仪器的系统工程师 那今天我们要讨论的主题是 MSDI 也就是多开关检测接口的一个器件 那 MSDI 主要用途是在车身控制模块上 也就是 BCM 的上面 那在这个培训中 我们会详细介绍 MSDI 一些特别的功能 以及它如何在车身控制模块的设计上 不管是设计的复杂度 成本的控制 或者是整体系统的一些性能上 所提供的一些帮助 那这个培训包含了四个章节 在第一个章节我们会讨论 汽车车身控制模块中的 开关检测的一个功能 传统使用分立器件来实现 开关检测的一些做法 以及使用分立器件方案上实现的一些挑战 那在第二个章节我们会讨论 MSDI 的概念以及 MSDI 如何 帮助解决在第一章我们讨论到的一些挑战 在第三个章节 我们会讨论 MSDI 提供的一些高级功能 以及硬件设计师如何使用这些功能 来提高系统的性能 培训结束后在最后也就是第四个章节 我们会重点介绍 MSDI 的价值主张 以及如何获取有关德州仪器这款 MSDI 器件的更多信息 首先让我们来讨论一下 BCM 也就是车身控制模块的重要性 那在车用电子的设计当中 车身控制模块结合安全性 和舒适性功能的管理 以及电子电源系统的管理 随着汽车电子技术的发展 其功能也在不断的扩展和增加 除了传统的灯光 雨刮 以及门锁控制等 一些基本的功能之外 近年来车身控制模块 开始逐渐集成了一些像 自动雨刮 发动机防盗 胎压检测等 一些先进的功能 以满足人们不断增加的安全性 以及舒适性等方面的一些需求 那在这一页 slice 您可以看到一个车身控制模块的框图 在车身控制系统上 开关的应用扮演了一个很重要的角色 不管是当驾驶员打开车灯 使用电动门窗 操控中控门锁 打开加热座椅 或者是使用挡风玻璃雨刮 这些所有的控制都是利用开关来实现的 在配置极全的中高档车当中 开关的数量常常可以达到一百个或甚至更多 所以如何要事半功倍的检测这些开关的状态 就变成了车身控制模块设计上 一个很重要的课题 传统的解决方案 通常的做法是利用 MCU 也就是微控制器的 IO 口来进行监控 但是这种做法常常会有一些限制 造成设计上一定的复杂性 接下来就让我们详细地讨论一下 首先让我们先来讨论一下 车身设计中使用的开关 车辆中的开关一般会有两种不同的类型 如果一个开关只有两个状态 也就是打开和关闭 我们可以简单的把它归类于数字开关 那例如安全带的开关 前后雾灯的按钮 后备箱的开关和门锁的开关 都可以被归类于数字开关 如果开关具有多个状态或是多个位置 我们则可以将其归类于模拟开关 模拟开关通常是由不同的电阻值 来实现开关切换的不同的位置 所以有时候又叫做 resistor-coded switch 或是电阻编码开关 那例如点火钥匙的开关 尾灯和大灯控制的开关 以及雨刮控制开关等 都可以被归类于模拟的开关 那为了检测开关的一个状态 通常的做法是将偏置的电流提供给开关 已建立可以被采样的电压 在车身的应用上 这种偏置电流通常称为 wetting current 也就是湿电流 湿电流是指系统给输入端口提供的 上拉以及下拉的恒流源 以去除开关金属触点上的氧化物 保证开关可以可靠地闭合 那数字的开关因为只有两个状态 所以可以经由简单的比较器来做检测 那模拟的开关 因为开关不同的位置会产生不同的电压 所以需要有模拟数字转换器或者是ADC 来做采样以及检测 检测的结果呢再根据预设的阈值 MCU 就可以判断出目前 开关的切换的状态以及位置 接下来我们来讨论一下 利用分立器件和 MCU 来实现 车身控制模块开关检测的一个设计 那这张图就是一张典型的方案设计图 S1 就是我们要检测的开关 那通常为了保证设计的可靠性 硬件工程师会加上不少 周边的保护电路 第一 在车身控制模块的接口处 常常会需要串一个电容 作为系统 ESD 或是静电释放的保护 第二 隔离的二极管 是常常使用的器件 用来作为系统端电池反向保护 和瞬态脉冲保护的一个功能 第三 电阻的分压电路也是需要的 这样可以将输入的电压 降低到 MCU 可以容忍和采样的一个电压 再来 Rwett 是一个用于 调节进入开关的湿电流的 电流值的一个电阻 那电阻值越大 当然产生的湿电流就越小 那最后为了降低车身控制模块的静态电流 设计上通常会使用一些 MOS 管 和电阻的一些组合 在 MCU 需要进行采样的时候才打开湿电流 那这样算下来 如果使用分立器件来做 一个数字开关的通道检测 通常需要高达五个电阻 两个电容 一颗二极管和两个 MOS 管 并且耗去 MCU 的 GPIO 的一个端口 了解分立方案的实现方式 接下来我们就来讨论一下 分立方案的挑战以及一些问题 那首先肯定是器件数量会增多 那假设汽车上有 24 个开关 一个车身控制模块板就需要高达78颗电阻 27 颗电容 24 个二极管 以及 6 颗 MOS 管 这样不仅会增加设计的难度 并且会大幅增加电路板的面积 其次是 MCU GPIO 口数量的要求 当然也会增多 那假设每个开关通道 都需要占有一个GPIO 口 那设计 MOS 管的时序控制 也需要 GPIO 口来控制 这样一来 GPIO 口的数量就会增多 同时会增加对 MCU 选型上的一个成本 那接下来就是一个系统的功耗 那为了快速响应开关的切换 MCU 需要始终处于一个激活的状态 或者是需要定期的被唤醒 以确保持续的开关检测的一个功能 那这样会大幅增加系统的功耗 尤其是在汽车的熄火的一个状态下 为了延长电池的寿命 许多汽车的制造商对于车身控制模块 最大的静态的一个电流 有着非常严格的一个限制 那如果 MCU 需要定期的被唤醒 这个目标有时候是非常难以达到的 那接下来就是湿电流的一个变化 那汽车的电池的电压可能会 由于启动负载的转变 以及瞬态尖峰等因素而突然的改变 那由于湿电流是由电阻来调节的 电压的变化会直接导致湿电流的值 产生了变化 尤其是在设计模拟开关的检测方案时候 湿电流的变化会使得系统设计更加的复杂 那在最坏的情况下 车辆可能会报告错误的开关状态 这样不仅给司机乘客造成直接的不便 甚至会导致系统故障等问题 那再来就是我们之前讨论到 用作 ESD 静电释放保护的电容 那为了增加对静电释放保护的可靠性 电容的值可能要求会变得更大 那大的电容值会增加充电和放电的时间 进而影响到开关切换的响应速度 以及导致整个系统上功耗的增加 那接下来就是我们之前提到的二极管 那二极管在车身控制模块的设计上 提供了几种功能 第一是防止电流回流至电源 第二是为了安全性的考量 有时候一个开关的状态 可能会用两个 MCU 来做检测 那在这个情况二极管可以防止电流回流 而影响检测的精度 第三 二极管提供电池反向保护 和瞬态脉冲保护的功能 可是呢汽车级别的二极管通常会比较贵 如果每个通道上都要使用 对整个系统的成本 和电路板的面积会大幅的增加 最后一点值得一提的是车身的设计上 因为不同的应用场景 可能会需要不同的开关种类 比如说数字开关或者模拟开关 不同的开关的连接方式 比如说接蓄电池的开关 或是接地的开关 以及不同开关湿电流的配置 有时候可能需要一个毫安 有些其他时候可能需要15个毫安 那如果用分立方案来做的话 会增加设计的复杂以及困难度 并且很难去做一个平台化 参考线路的一个设计 接下来我们就来聊一下 TI 新推出的这个 24 个通道的开关监测的解决方案 以及它如何 解决我们之前讨论到一些 用分立方案来做的一些问题 那 MSDI 是 Multi-switch Detection Interface 一个简称 那它是一个多重开关状态检测的接口器件 作为汽车开关接口和 MCU 之间的桥梁 那这张图是一张 MSDI 的系统框图 这个芯片支持 24 个输入检测的接口 那在 24 个接口当中 其中十个通道 可以编程为支持连接到地 或是连接到电池的一个开关 方便硬件工程师做灵活的设计 那其余 14 个通道 则专用于检测接地的开关 另外所有的开关输入 都能实现正负 8000 伏的 ESD 的静电释放保护 并且集成了反向的电压保护 此外通过这张系统框图 我们可以看到 24 个开关的输入通道 都可以复用到 ADC 或是比较器 这就意味着 MSDI 可以支持 模拟开关或是数字开关 另外 MSDI 可以支持低到4.5伏的 电源的电压下正常的工作 并且能在最低2.8伏的电源电压下 保持寄存器的设置 更值得一提的是 MSDI 每个开关的输入 都可以进行单独的编程 设置个别的阈值电压 当开关输入的电压 超过了预定的阈值范围的时候 MSDI 就会产生一个中断 以提醒 MCU 系统上 某个开关已经改变了一个状态 那 MSDI 这个芯片 与 MCU 的通讯方式 是通过 SPI 的接口来实现的 SPI 是一个非常常用的 MCU 的接口 因此对于 MCU 的选择难度也大大的减少 同时也降低了整个系统的成本 接下来我们来讨论一下 MSDI 这颗芯片 怎么解决之前阐述的一些问题 首先呢 MSDI 这个芯片 是一个完全集成的开关检测前端的设备 它替代了传统实现开关检测电路 所需要的许多分立的器件 大大的减少分立器件的数量 那开关的数量越多 减少的器件也相对的增多 如此大大降低了电路板的设计难度 其次呢 MSDI 这颗芯片 利用中断信号以及 SPI 的接口 与 MCU 进行通信 因此总共占用了五个 GPIO 线路 与传统方案的一个开关 需要一个 GPIO 相比 大大释放了 MCU 的 GPIO 的资源 那举个例子来说 在这张图上你可以看到 如果要检测24个开关 分立器件的做法需要 78 个电阻 27 颗电容 24颗二极管 以及 6 个 MOS 管 另外再加上 28 根的 MCU 的 GPIO 相较之下这些分立器件 完全可以用一颗 MSDI 的芯片来代替 GPIO 要的数量也大幅从24根降到5根 在上一页我们讨论到 MSDI 高度集成了许多功能 因而减少设计车身控制模块时 分立器件的使用量 如此一来整个模块 电路板的尺寸也可以大幅的缩减 电路板的布局也可以大幅的简化 这对日趋复杂的车身控制模块的设计 和成本的控制上有着很显著的帮助 那在这张图上您可以清楚的看到 用分立器件还有 MSDI 来实现开关检测的方案 在电路板上一个尺寸上的差别 接下来我们来讨论 MSDI 在降低系统功耗上的帮助 这是在上文 MSDI 的硬件框图中 无法直接看出来的 首先 MSDI 具备了两种不同的模式 除了连续模式之外 还提供了一种称为轮询模式的 特殊的操作方式 在轮询模式之下 MSDI 提供了每个开关的输入的湿电流 仅在非常短的时间内被激活 持续的时间足以对输入的电压 进行采样以及状态判断 由于激活的时间的占空比很小 整体的平均电流消耗也因此大幅的减少 在轮询的模式下 MSDI 芯片的平均整体的电流消耗 仅在 70 个微安左右 值得一提的是 MSDI 每个输入端的 是湿流激活的时间 以及每个输入的采样的频率 都可以被配置 如此以来 MSDI 可以轻松地支持 各种不同的应用场景 除了轮询模式之外 硬件工程师还可以利用 MSDI 的中断功能 对休眠模式的 MCU 做状态更改的唤醒设计 这样可以再进一步的降低整体系统的功耗 那这张图提供了一个典型的参考设计 首先 MCU 需要正确的配置 MSDI 并启动 MSDI 的开关检测的功能 接下来 MCU 就可以进入休眠 或者是低功耗的状态 因为开关监测是由 MSDI 独立进行的 无需 MCU 的干预 当检测到开关的状态改变的时候 MSDI 会对 MCU 发出中断的讯号 该中断讯号可以设计 其用为 MCU 供电的 LDO 那一旦 MCU 重新激活 他就可以使用 SPI 的命令 检查开关的状态 如此以来 与典型的 MCU 2到3个毫安的功耗相比 MSDI 在轮询模式下 消耗的平均电流仅仅为70个微安 大幅降低了整个系统的功耗 这一点对于需要低静态电流的 汽车应用场景帮助非常的大 有些情况甚至是无法使用分立器件来做到的 接下来我们来讨论一下 MSDI 湿电流的精度 因为 MSDI 湿电流 是使用电流反射镜结构而设计的 因此电源和负载的变化 对于 MSDI 的湿电流输出的精度 并没有太大的影响 在不同的温度和工艺之下 MSDI 的湿电流精度常常可以保持在10% ±10% 之间 这对于正确的检测开关的状态 尤其是电阻编码开关有着很大的帮助 对于 MSDI 的湿电流精度的信息 请参阅 MSDI 的数据表 接下来 MSDI 所有的输入引脚 都集成了 HBM CDM 和 系统及接触以及空气放电的 ESD 保护 如此以来硬件工程师 在设计系统安全防护的时候 可以减少外部的 ESD 的电容 在节省成本的同时 还可以使输入的采样的速度更快 减少开关的响应的时间以及系统的功耗 接下来我们来讨论一下 MSDI 对于二极管使用上的需求 那在上一页我们讨论到 MSDI 的湿电流 是利用电流反射镜结构设计的 因此电流的方向是被控制的 另外 MSDI 的所有的输入端 都集成了反向保护的功能 因此呢我们之前讨论到 控制电流方向的二极管是不需要的 这样对于电路板的尺寸 以及成本的控制上有着很大的帮助 最后呢 MSDI 在芯片的配置方面 提供了巨大的灵活性 首先 MSDI 集成了 ADC 和比较器 以支持模拟和数字的开关 湿电流的方向 也可以通过编程来检测连接到地 或是连接到电源的开关 湿电流的配置 则提供从 0 个毫安 到 15 个毫安六种不同的选择 以支持各种开关 对于湿电流不同的需求 另外 MSDI 采样的频率 以及时序的控制 也可以轻易的通过寄存器的配置来进行调整 如此一来 软件工程师只需要对 MSDI 进行简易的编程 就可以支持各种不同类型的开关 并且降低硬件更改的频率 这样可以有效降低跨平台设计的复杂度 更能让工程师节省宝贵的开发周期 让产品迅速的面试 在接下来这个章节中 我们将详细讨论 MSDI 提供的一些 更高级的功能 以及硬件工程师如何使用这些功能 来更加提高系统的性能 首先呢我们之前讨论到 所有 MSDI 的输入端口 都可以单独配置为 ADC 或是比较器的模式 为了让 MSDI 可以区分开关打开 和闭合的状态 硬件工程师可以预先编程 ADC 或是比较器的阈值 那在 ADC 的模式之下 阈值可以变成为 1023 个代码中的任何一个 而在比较器的模式之下 有四个预设的阈值电压可以工作选择 它们分别为 2V 2.7V 3V 以及 4V 可以调的阈值 可以让系统硬件工程师 使用 MSDI 来缓解开关检测中 一些不理想的情况 接下来我们讨论两个例子 在示例一中 系统存在了负向的 Ground Shift 也就是地面移位 那地面移位会发生的情况 是由于 MSDI 跟开关的位置距离比较远 导致连接两者的地线 存在了较大的电阻值 当返回路径的电流较高的情况下 就容易产生地面移位 地面移位有可能是正压或是负压 在这个例子是一个负压的地面移位 也就是 MSDI 的地电位 低于开关远端的地电位 那两者之间存在的 1V 的差异 假设开关在关闭的情况下 开关的电阻值为一百个欧姆 如果使用 15 毫安的湿电流 则 MSDI 输入引脚上 会产生 1.5V 的电压 但是呢由于系统中有 1V 的负地面移位 MSDI 输入端看到相对于地的有效电压 变成2.5伏 那在这种情况之下 两伏的比较器的阈值将不起作用 而需要更高的检测阈值 那在第二个例子当中 连接到电池的开关 有着 200 欧姆的电阻 那由于冷发动机启动的缘故 该电池的电压暂时降到六伏 在开关关闭的状况之下 15 个毫安的湿电流 在 MSDI 输入引脚上 产生了三伏的电压 在这种情况下 4V 的比较器阈值将不起作用 和需要较低的检测阈值 从这两个事例当中 我们可以看到检测的阈值 可能需要根据系统的状况进行调整 而 TI 的 MSDI 方案 为 ADC 和比较器 都提供了阈值调整的功能 增加了整个系统设计上的灵活性 接下来我们来讨论一下 MSDI 检测滤波的功能 由于开关的设计是利用机械性质来实现的 当切换或是按压的时候 开关的触点可能在短时间之内来回的反弹 造成 MSDI 输入端口上电压的波动 这个时候呢就适合启用 MSDI 检测滤波的功能 检测滤波的功能开启之后 MSDI 会在确保开关状态处于稳定之后 才会对 MCU 发起中断的讯号 那 MSDI 的滤波次数 可以设置为一次两次三次或是四次 如果设置为四次 就代表这个输入端口的电压 相对于一开始设置的阈值 得连续四个轮询周期 都保持固定的状态的情况下 MSDI 才会对 MCU 产生中断 那在这一页的示例图上 我们就假定滤波的次数为四次 开关状态开始为高电平 当切换过后 有一段由于开关触点来回跳动 而导致开关状态不稳的过渡期 那 MSDI 最初检测到开关 转换为低电平的状态两个周期 但是在两个周期之后回到了高电平 由于滤波的次数设置为四次 所以低电平的这两个周期呢 将会被 MSDI 给忽略 那一直到最后开关稳定下来之后 足以让 MSDI 检测到四次 连续的开关低电平状态周期之后 中断信号才会被发送给 MCU 那检测滤波这个功能只需要编程一次 一旦编程之后 就不需要 MCU 对 MSDI 做其他软件上的控制 这样呢比起以往固定的时间 就需要唤醒 MCU 并且 过采样的一个做法 不仅节省 MCU 的资源 并且帮助降低系统上的功耗 接下来我们来谈谈 MSDI 的 Matix polling 的功能 也就是矩阵轮询模式 矩阵轮询模式 是一种特殊的轮询方案 只需要使用 12 个 MSDI 的输入通道 就可以支持高达 36 个数字开关 矩阵轮询模式有三种不同的矩阵配置 分别是 4×4 的矩阵 支持高达 16 个开关 5×5 的矩阵支持高达 25 个开关 以及 6×6 的矩阵 支持高达 36 个开关 那矩阵轮询模式 是利用电流源和电流接收互相的连接 依次扫描矩阵的每一行和每一列 以检测两者之间开关的这个状态 矩阵轮询模式检测的阈值和时间 也可以像普通的轮询模式一样进行编程 检测的结果呢 将会被寄存在寄存器当中 提供给 MCU 进行读取 使用矩阵模式最好的的好处 是需要 MSDI 少量的输入通道 就可以支持大量的数字开关 由于车辆中的开关数量持续的增长 矩阵轮询模式 提供了一个很特别的解决方案 大幅的减少了 车身控制模块设计的复杂性 元件的数量和电路板的面积 那我们之前提到 为了清除机械开关 金属触点上积累的氧化物 以保证开关的可靠闭合 车身控制模块 会提供湿电流给开关 那有些开关因为用途的关系 会需要比较大的湿电流 比如说 10 毫安或是 15 毫安 而另一方面为了检测电阻编码开关 或是降低模块的整体功耗 硬件工程师会趋向使用 较低的湿电流的设置 如此一来湿电流的配置 常常会造成硬件 或是软件工程师的困扰 那这个时候 MSDI 的 Clean current polling (CCP) 简称 CCP 或是清洁电流的轮询方案 就可以适时的发挥用途 当清洁电流轮询方案开始的时候 每个轮询的周期 将会改成由两个湿电流激活的步骤组成 第一步是正常的轮询开关状态采样 这部分跟普通的轮询模式是相同的 第二步称为清洁电流 这个是对所有 CCP 开启的输入通道 同时激活的电流脉冲 目的呢就是因为要湿润开关的触点 以保持接触面的清洁 那清洁的电流的值 可以在十个毫安 或是 15 个毫安之间做选择 并且可以为每个通道启用或是停用 通过这个清洁电流的轮询方案 系统就可以利用 MSDI 提供的 这两个不同的电平的电流 来分别进行开关的检测和触点清洁 这样不管对于硬件或是软件上的设计 都具有相当显著的简化的功能 接下来我们来讨论 MSDI 的电源测量的功能 当 MSDI 进行开关检测的时候 特别是电阻编码开关 电源的电压高低变成非常的关键 如果电源的电压波动过大 超过了数据表的工作范围 MSDI 可能无法产生精确的湿电流 那这可能会影响开关检测的一个准确性 因此呢传统做法是利用 MCU 持续的采样 并且监控电源的电压 以确定它保持在一个固定的范围之内 那因为考虑到这方面的设计 TI 的 MSDI 方案 提供了电源电压测量的特殊功能 一旦启用之后 MSDI 将会将电源的电压 通过电阻分压之后 连接到内建的 ADC 并且在每个轮询的周期中进行采样 那电源测量支持两种范围选项 分别为 4.5 伏到 9伏 或者是 4.5 伏到 30 伏 那 4.5 伏到 9 伏 提供了较高的测量精度 4.5 伏至 30 伏的选项 则提供了更宽的电压测量范围 那电源测量的功能 跟传统的开关检测类似 也可以编程阈值 最多可以编程四个独立的数值 如果电源的电压低于或是超过阈值 MSDI 会发出中断讯号通知 MCU 那 ADC 转换后的数值 也会被储存到寄存器当中 提供 MCU 使用 SPI 通信 读取更多关于电源电压的信息 因为呢有中断讯号的辅助 硬件工程师也可以跟 传统的开关设计检测一样 利用电源测量的功能 做 MCU 的唤醒设计 为了提高开关检测的可靠性 MSDI 提供了许多 Fault Detection 也就是故障检测的功能 首先是电压故障的检测 那在 12V 汽车系统当中 完全充电时 电池的电压通常为 12.6 伏左右 而发动机运行的时候 电池的电压则为 13.7 伏左右 但是呢各种车辆的运行条件 比如说 Load down 负载突降 cold 冷启动 或者是搭电启动等等 可能会大幅改变电池的工作电压 那 TI 的 MSDI 建议的 电压工作范围于4.5伏到35伏之间 如果电源的电压超出建议值 MSDI 会产生过压或者是欠压的中断 以警告系统 以便采取适当的措施 除了电源电压之外 当车辆运行的时候 温度 也是一个 难以在系统中控制的参数 那 TI 的 MSDI 的工作温度 最高可以到达125度摄氏度 但是如果多个通道 同时被编程为高的湿电流 开关又保持在关闭的状态 MSDI 的芯片的温度 可能会迅速的增高 那为了防止过热 MSDI 芯片的内部 集成了许多温度传感器 如果结温高于 140 度摄氏度 MSDI 内部会产生警告中断 并且将所有的通道的 湿电流降低至两个毫安 如果结温持续升高 并超过 160 度摄氏度 MSDI 会关闭所有通道的湿电流 以防止进一步的制热 那经过了一段时间之后 一旦温度下降到阈值以下 湿电流则会恢复到其编程值 这些热保护的功能 可防止对 MSDI 的芯片 造成永久性的损坏 那再来我们来讨论一下 MSDI 芯片的 SPI 故障检测的功能 SPI 是相当普遍的汽车通信协议 那 TI 的 MSDI 就是使用 SPI 的协议与 MCU 进行通信 以进行编程和状态更新 但是呢在恶劣的汽车工作环境之下 SPI 通信的错误有可能会由于 bit-flipping 也就是位翻转而产生 为了检测 SPI 位翻转的通信错误 MSDI 为 SPI 的每一笔资料 都进行 Parity check 也就是所谓的奇偶校验 那 MSDI 使用的是奇数的奇偶校验 这意味着任何一笔 SPI 资料中 1 的比特总数必须是奇数 数据才会生效 那如果总数为偶数 芯片则会丢弃接收到的数据 同样的 MSDI 对每一笔的 输出的 SPI 数据 也都执行相同的方案 那这个方案可以大幅降低 SPI 通信错误的发生 那除了 SPI 的奇偶校验 MSDI 还提供 CRC 也就是循环冗余校验 来检查编程到芯片中数据的完整性 那 CRC 校验被初始化之后 MSDI 将根据所有配置寄存器的值 计算并储存 CRC 的数值 然后 MCU 就可以将 MSDI 的 CRC 的数值与其期望值进行比较 如果两个值不匹配 这意味着编程期间发生了一些错误 所以通过使用 CRC MCU 可以随时校验 MSDI 数据传输 或者保存之后可能出现的一个错误 那以上所提到这些故障检测功能 都大幅增加 MSDI 操作的稳定性 并允许 MSDI 被使用于 安全关键型应用的可能性 除了上一页所讨论的故障检测功能之外 TI 的 MSDI 方案 还内建了两个高级诊断的功能 持续监控 MSDI 的设备操作 那第一个是湿电流诊断 它将 MSDI 的端口的输入 或是输出的电流与参考值进行比较 如果当前输入或是输出的电流值 显著偏离参考值 MSDI 的芯片就会发出中断 以提醒 MCU 那 MCU 就可以选择利用设备重置的方式 来尝试解决这个问题 MSDI 为前四个输入端口 也就是 IN0 到 IN3 提供了 湿电流诊断的功能 所以这几个通道 适用于对于安全有需求的开关设计 那另外一个高级诊断的功能是 ADC 的自诊断的功能 目的是确保 ADC 转换正确的执行 那当这个诊断功能开启的时候 一个固定带隙基准电压 将被复用到 ADC 进行采样 并将 ADC 的输出 与预设的限值进行比较 如果ADC的输出值超出了限值 MSDI 就会发出中断 那同样的 MCU 可以选择利用 设备重置的方式来尝试解决这个问题 湿电流诊断和 ADC 的自诊断 都将在每一个轮循周期结束后运行 因此可以连续监测 MSDI 操作的稳定性 那车身控制模块的硬件工程师 可以利用这两个诊断的功能 以及之前提到的故障检测的功能 对系统的安全性实现优化的设计 以达到系统功能安全的标准 那以上呢 就是我们今天 对 MSDI 做的一个在线的培训 相信您对 MSDI 的功能 以及它对系统上的一些帮助 有着比较多一点的认识 那如果您需要更多的一些讯息 欢迎您到 TI.com 搜寻 MSDI 的产品型号 也就是 TIC12400 那你就会发现更多一些有用的一些讯息 包括 MSDI 的参考设计 EVM 板以及 GUI 的软件等等 谢谢您收看今天的在线培训 再见
欢迎来到德州仪器的在线培训
我的名字是戴维王
德州仪器的系统工程师
那今天我们要讨论的主题是
MSDI 也就是多开关检测接口的一个器件
那 MSDI 主要用途是在车身控制模块上
也就是 BCM 的上面
那在这个培训中
我们会详细介绍 MSDI 一些特别的功能
以及它如何在车身控制模块的设计上
不管是设计的复杂度
成本的控制
或者是整体系统的一些性能上
所提供的一些帮助
那这个培训包含了四个章节
在第一个章节我们会讨论
汽车车身控制模块中的
开关检测的一个功能
传统使用分立器件来实现
开关检测的一些做法
以及使用分立器件方案上实现的一些挑战
那在第二个章节我们会讨论
MSDI 的概念以及 MSDI 如何
帮助解决在第一章我们讨论到的一些挑战
在第三个章节
我们会讨论 MSDI 提供的一些高级功能
以及硬件设计师如何使用这些功能
来提高系统的性能
培训结束后在最后也就是第四个章节
我们会重点介绍 MSDI 的价值主张
以及如何获取有关德州仪器这款
MSDI 器件的更多信息
首先让我们来讨论一下
BCM 也就是车身控制模块的重要性
那在车用电子的设计当中
车身控制模块结合安全性
和舒适性功能的管理
以及电子电源系统的管理
随着汽车电子技术的发展
其功能也在不断的扩展和增加
除了传统的灯光 雨刮 以及门锁控制等
一些基本的功能之外
近年来车身控制模块
开始逐渐集成了一些像
自动雨刮 发动机防盗 胎压检测等
一些先进的功能
以满足人们不断增加的安全性
以及舒适性等方面的一些需求
那在这一页 slice
您可以看到一个车身控制模块的框图
在车身控制系统上
开关的应用扮演了一个很重要的角色
不管是当驾驶员打开车灯
使用电动门窗
操控中控门锁
打开加热座椅
或者是使用挡风玻璃雨刮
这些所有的控制都是利用开关来实现的
在配置极全的中高档车当中
开关的数量常常可以达到一百个或甚至更多
所以如何要事半功倍的检测这些开关的状态
就变成了车身控制模块设计上
一个很重要的课题
传统的解决方案
通常的做法是利用 MCU
也就是微控制器的 IO 口来进行监控
但是这种做法常常会有一些限制
造成设计上一定的复杂性
接下来就让我们详细地讨论一下
首先让我们先来讨论一下
车身设计中使用的开关
车辆中的开关一般会有两种不同的类型
如果一个开关只有两个状态
也就是打开和关闭
我们可以简单的把它归类于数字开关
那例如安全带的开关
前后雾灯的按钮
后备箱的开关和门锁的开关
都可以被归类于数字开关
如果开关具有多个状态或是多个位置
我们则可以将其归类于模拟开关
模拟开关通常是由不同的电阻值
来实现开关切换的不同的位置
所以有时候又叫做
resistor-coded switch
或是电阻编码开关
那例如点火钥匙的开关
尾灯和大灯控制的开关
以及雨刮控制开关等
都可以被归类于模拟的开关
那为了检测开关的一个状态
通常的做法是将偏置的电流提供给开关
已建立可以被采样的电压
在车身的应用上
这种偏置电流通常称为
wetting current
也就是湿电流
湿电流是指系统给输入端口提供的
上拉以及下拉的恒流源
以去除开关金属触点上的氧化物
保证开关可以可靠地闭合
那数字的开关因为只有两个状态
所以可以经由简单的比较器来做检测
那模拟的开关
因为开关不同的位置会产生不同的电压
所以需要有模拟数字转换器或者是ADC
来做采样以及检测
检测的结果呢再根据预设的阈值
MCU 就可以判断出目前
开关的切换的状态以及位置
接下来我们来讨论一下
利用分立器件和 MCU 来实现
车身控制模块开关检测的一个设计
那这张图就是一张典型的方案设计图
S1 就是我们要检测的开关
那通常为了保证设计的可靠性
硬件工程师会加上不少
周边的保护电路
第一 在车身控制模块的接口处
常常会需要串一个电容
作为系统 ESD 或是静电释放的保护
第二 隔离的二极管
是常常使用的器件
用来作为系统端电池反向保护
和瞬态脉冲保护的一个功能
第三 电阻的分压电路也是需要的
这样可以将输入的电压
降低到 MCU 可以容忍和采样的一个电压
再来 Rwett 是一个用于
调节进入开关的湿电流的
电流值的一个电阻
那电阻值越大
当然产生的湿电流就越小
那最后为了降低车身控制模块的静态电流
设计上通常会使用一些 MOS 管
和电阻的一些组合
在 MCU 需要进行采样的时候才打开湿电流
那这样算下来
如果使用分立器件来做
一个数字开关的通道检测
通常需要高达五个电阻 两个电容
一颗二极管和两个 MOS 管
并且耗去 MCU 的 GPIO 的一个端口
了解分立方案的实现方式
接下来我们就来讨论一下
分立方案的挑战以及一些问题
那首先肯定是器件数量会增多
那假设汽车上有 24 个开关
一个车身控制模块板就需要高达78颗电阻
27 颗电容 24 个二极管
以及 6 颗 MOS 管
这样不仅会增加设计的难度
并且会大幅增加电路板的面积
其次是 MCU GPIO 口数量的要求
当然也会增多
那假设每个开关通道
都需要占有一个GPIO 口
那设计 MOS 管的时序控制
也需要 GPIO 口来控制
这样一来 GPIO 口的数量就会增多
同时会增加对 MCU 选型上的一个成本
那接下来就是一个系统的功耗
那为了快速响应开关的切换
MCU 需要始终处于一个激活的状态
或者是需要定期的被唤醒
以确保持续的开关检测的一个功能
那这样会大幅增加系统的功耗
尤其是在汽车的熄火的一个状态下
为了延长电池的寿命
许多汽车的制造商对于车身控制模块
最大的静态的一个电流
有着非常严格的一个限制
那如果 MCU 需要定期的被唤醒
这个目标有时候是非常难以达到的
那接下来就是湿电流的一个变化
那汽车的电池的电压可能会
由于启动负载的转变
以及瞬态尖峰等因素而突然的改变
那由于湿电流是由电阻来调节的
电压的变化会直接导致湿电流的值
产生了变化
尤其是在设计模拟开关的检测方案时候
湿电流的变化会使得系统设计更加的复杂
那在最坏的情况下
车辆可能会报告错误的开关状态
这样不仅给司机乘客造成直接的不便
甚至会导致系统故障等问题
那再来就是我们之前讨论到
用作 ESD 静电释放保护的电容
那为了增加对静电释放保护的可靠性
电容的值可能要求会变得更大
那大的电容值会增加充电和放电的时间
进而影响到开关切换的响应速度
以及导致整个系统上功耗的增加
那接下来就是我们之前提到的二极管
那二极管在车身控制模块的设计上
提供了几种功能
第一是防止电流回流至电源
第二是为了安全性的考量
有时候一个开关的状态
可能会用两个 MCU 来做检测
那在这个情况二极管可以防止电流回流
而影响检测的精度
第三 二极管提供电池反向保护
和瞬态脉冲保护的功能
可是呢汽车级别的二极管通常会比较贵
如果每个通道上都要使用
对整个系统的成本
和电路板的面积会大幅的增加
最后一点值得一提的是车身的设计上
因为不同的应用场景
可能会需要不同的开关种类
比如说数字开关或者模拟开关
不同的开关的连接方式
比如说接蓄电池的开关
或是接地的开关
以及不同开关湿电流的配置
有时候可能需要一个毫安
有些其他时候可能需要15个毫安
那如果用分立方案来做的话
会增加设计的复杂以及困难度
并且很难去做一个平台化
参考线路的一个设计
接下来我们就来聊一下
TI 新推出的这个
24 个通道的开关监测的解决方案
以及它如何
解决我们之前讨论到一些
用分立方案来做的一些问题
那 MSDI 是
Multi-switch Detection Interface
一个简称
那它是一个多重开关状态检测的接口器件
作为汽车开关接口和 MCU 之间的桥梁
那这张图是一张 MSDI 的系统框图
这个芯片支持 24 个输入检测的接口
那在 24 个接口当中
其中十个通道
可以编程为支持连接到地
或是连接到电池的一个开关
方便硬件工程师做灵活的设计
那其余 14 个通道
则专用于检测接地的开关
另外所有的开关输入
都能实现正负 8000 伏的
ESD 的静电释放保护
并且集成了反向的电压保护
此外通过这张系统框图
我们可以看到
24 个开关的输入通道
都可以复用到 ADC 或是比较器
这就意味着 MSDI 可以支持
模拟开关或是数字开关
另外 MSDI 可以支持低到4.5伏的
电源的电压下正常的工作
并且能在最低2.8伏的电源电压下
保持寄存器的设置
更值得一提的是 MSDI 每个开关的输入
都可以进行单独的编程
设置个别的阈值电压
当开关输入的电压
超过了预定的阈值范围的时候
MSDI 就会产生一个中断
以提醒 MCU 系统上
某个开关已经改变了一个状态
那 MSDI 这个芯片
与 MCU 的通讯方式
是通过 SPI 的接口来实现的
SPI 是一个非常常用的 MCU 的接口
因此对于 MCU 的选择难度也大大的减少
同时也降低了整个系统的成本
接下来我们来讨论一下
MSDI 这颗芯片
怎么解决之前阐述的一些问题
首先呢 MSDI 这个芯片
是一个完全集成的开关检测前端的设备
它替代了传统实现开关检测电路
所需要的许多分立的器件
大大的减少分立器件的数量
那开关的数量越多
减少的器件也相对的增多
如此大大降低了电路板的设计难度
其次呢 MSDI 这颗芯片
利用中断信号以及 SPI 的接口
与 MCU 进行通信
因此总共占用了五个 GPIO 线路
与传统方案的一个开关
需要一个 GPIO 相比
大大释放了 MCU 的 GPIO 的资源
那举个例子来说
在这张图上你可以看到
如果要检测24个开关
分立器件的做法需要 78 个电阻
27 颗电容 24颗二极管
以及 6 个 MOS 管
另外再加上 28 根的 MCU 的 GPIO
相较之下这些分立器件
完全可以用一颗 MSDI 的芯片来代替
GPIO 要的数量也大幅从24根降到5根
在上一页我们讨论到
MSDI 高度集成了许多功能
因而减少设计车身控制模块时
分立器件的使用量
如此一来整个模块
电路板的尺寸也可以大幅的缩减
电路板的布局也可以大幅的简化
这对日趋复杂的车身控制模块的设计
和成本的控制上有着很显著的帮助
那在这张图上您可以清楚的看到
用分立器件还有 MSDI
来实现开关检测的方案
在电路板上一个尺寸上的差别
接下来我们来讨论
MSDI 在降低系统功耗上的帮助
这是在上文 MSDI 的硬件框图中
无法直接看出来的
首先 MSDI 具备了两种不同的模式
除了连续模式之外
还提供了一种称为轮询模式的
特殊的操作方式
在轮询模式之下
MSDI 提供了每个开关的输入的湿电流
仅在非常短的时间内被激活
持续的时间足以对输入的电压
进行采样以及状态判断
由于激活的时间的占空比很小
整体的平均电流消耗也因此大幅的减少
在轮询的模式下
MSDI 芯片的平均整体的电流消耗
仅在 70 个微安左右
值得一提的是 MSDI 每个输入端的
是湿流激活的时间
以及每个输入的采样的频率
都可以被配置
如此以来 MSDI 可以轻松地支持
各种不同的应用场景
除了轮询模式之外
硬件工程师还可以利用 MSDI 的中断功能
对休眠模式的 MCU 做状态更改的唤醒设计
这样可以再进一步的降低整体系统的功耗
那这张图提供了一个典型的参考设计
首先 MCU 需要正确的配置 MSDI
并启动 MSDI 的开关检测的功能
接下来 MCU 就可以进入休眠
或者是低功耗的状态
因为开关监测是由 MSDI 独立进行的
无需 MCU 的干预
当检测到开关的状态改变的时候
MSDI 会对 MCU 发出中断的讯号
该中断讯号可以设计
其用为 MCU 供电的 LDO
那一旦 MCU 重新激活
他就可以使用 SPI 的命令
检查开关的状态
如此以来
与典型的 MCU 2到3个毫安的功耗相比
MSDI 在轮询模式下
消耗的平均电流仅仅为70个微安
大幅降低了整个系统的功耗
这一点对于需要低静态电流的
汽车应用场景帮助非常的大
有些情况甚至是无法使用分立器件来做到的
接下来我们来讨论一下
MSDI 湿电流的精度
因为 MSDI 湿电流
是使用电流反射镜结构而设计的
因此电源和负载的变化
对于 MSDI 的湿电流输出的精度
并没有太大的影响
在不同的温度和工艺之下
MSDI 的湿电流精度常常可以保持在10%
±10% 之间
这对于正确的检测开关的状态
尤其是电阻编码开关有着很大的帮助
对于 MSDI 的湿电流精度的信息
请参阅 MSDI 的数据表
接下来 MSDI 所有的输入引脚
都集成了 HBM CDM 和
系统及接触以及空气放电的 ESD 保护
如此以来硬件工程师
在设计系统安全防护的时候
可以减少外部的 ESD 的电容
在节省成本的同时
还可以使输入的采样的速度更快
减少开关的响应的时间以及系统的功耗
接下来我们来讨论一下 MSDI
对于二极管使用上的需求
那在上一页我们讨论到
MSDI 的湿电流
是利用电流反射镜结构设计的
因此电流的方向是被控制的
另外 MSDI 的所有的输入端
都集成了反向保护的功能
因此呢我们之前讨论到
控制电流方向的二极管是不需要的
这样对于电路板的尺寸
以及成本的控制上有着很大的帮助
最后呢 MSDI 在芯片的配置方面
提供了巨大的灵活性
首先 MSDI 集成了 ADC 和比较器
以支持模拟和数字的开关
湿电流的方向
也可以通过编程来检测连接到地
或是连接到电源的开关
湿电流的配置
则提供从 0 个毫安
到 15 个毫安六种不同的选择
以支持各种开关
对于湿电流不同的需求
另外 MSDI 采样的频率
以及时序的控制
也可以轻易的通过寄存器的配置来进行调整
如此一来
软件工程师只需要对 MSDI 进行简易的编程
就可以支持各种不同类型的开关
并且降低硬件更改的频率
这样可以有效降低跨平台设计的复杂度
更能让工程师节省宝贵的开发周期
让产品迅速的面试
在接下来这个章节中
我们将详细讨论 MSDI 提供的一些
更高级的功能
以及硬件工程师如何使用这些功能
来更加提高系统的性能
首先呢我们之前讨论到
所有 MSDI 的输入端口
都可以单独配置为 ADC
或是比较器的模式
为了让 MSDI 可以区分开关打开
和闭合的状态
硬件工程师可以预先编程 ADC
或是比较器的阈值
那在 ADC 的模式之下
阈值可以变成为
1023 个代码中的任何一个
而在比较器的模式之下
有四个预设的阈值电压可以工作选择
它们分别为 2V 2.7V 3V 以及 4V
可以调的阈值
可以让系统硬件工程师
使用 MSDI 来缓解开关检测中
一些不理想的情况
接下来我们讨论两个例子
在示例一中
系统存在了负向的 Ground Shift
也就是地面移位
那地面移位会发生的情况
是由于 MSDI 跟开关的位置距离比较远
导致连接两者的地线
存在了较大的电阻值
当返回路径的电流较高的情况下
就容易产生地面移位
地面移位有可能是正压或是负压
在这个例子是一个负压的地面移位
也就是 MSDI 的地电位
低于开关远端的地电位
那两者之间存在的 1V 的差异
假设开关在关闭的情况下
开关的电阻值为一百个欧姆
如果使用 15 毫安的湿电流
则 MSDI 输入引脚上
会产生 1.5V 的电压
但是呢由于系统中有 1V 的负地面移位
MSDI 输入端看到相对于地的有效电压
变成2.5伏
那在这种情况之下
两伏的比较器的阈值将不起作用
而需要更高的检测阈值
那在第二个例子当中
连接到电池的开关
有着 200 欧姆的电阻
那由于冷发动机启动的缘故
该电池的电压暂时降到六伏
在开关关闭的状况之下
15 个毫安的湿电流
在 MSDI 输入引脚上
产生了三伏的电压
在这种情况下
4V 的比较器阈值将不起作用
和需要较低的检测阈值
从这两个事例当中
我们可以看到检测的阈值
可能需要根据系统的状况进行调整
而 TI 的 MSDI 方案
为 ADC 和比较器
都提供了阈值调整的功能
增加了整个系统设计上的灵活性
接下来我们来讨论一下
MSDI 检测滤波的功能
由于开关的设计是利用机械性质来实现的
当切换或是按压的时候
开关的触点可能在短时间之内来回的反弹
造成 MSDI 输入端口上电压的波动
这个时候呢就适合启用
MSDI 检测滤波的功能
检测滤波的功能开启之后
MSDI 会在确保开关状态处于稳定之后
才会对 MCU 发起中断的讯号
那 MSDI 的滤波次数
可以设置为一次两次三次或是四次
如果设置为四次
就代表这个输入端口的电压
相对于一开始设置的阈值
得连续四个轮询周期
都保持固定的状态的情况下
MSDI 才会对 MCU 产生中断
那在这一页的示例图上
我们就假定滤波的次数为四次
开关状态开始为高电平
当切换过后
有一段由于开关触点来回跳动
而导致开关状态不稳的过渡期
那 MSDI 最初检测到开关
转换为低电平的状态两个周期
但是在两个周期之后回到了高电平
由于滤波的次数设置为四次
所以低电平的这两个周期呢
将会被 MSDI 给忽略
那一直到最后开关稳定下来之后
足以让 MSDI 检测到四次
连续的开关低电平状态周期之后
中断信号才会被发送给 MCU
那检测滤波这个功能只需要编程一次
一旦编程之后
就不需要 MCU 对 MSDI
做其他软件上的控制
这样呢比起以往固定的时间
就需要唤醒 MCU 并且
过采样的一个做法
不仅节省 MCU 的资源
并且帮助降低系统上的功耗
接下来我们来谈谈
MSDI 的 Matix polling 的功能
也就是矩阵轮询模式
矩阵轮询模式
是一种特殊的轮询方案
只需要使用 12 个 MSDI 的输入通道
就可以支持高达 36 个数字开关
矩阵轮询模式有三种不同的矩阵配置
分别是 4×4 的矩阵
支持高达 16 个开关
5×5 的矩阵支持高达 25 个开关
以及 6×6 的矩阵
支持高达 36 个开关
那矩阵轮询模式
是利用电流源和电流接收互相的连接
依次扫描矩阵的每一行和每一列
以检测两者之间开关的这个状态
矩阵轮询模式检测的阈值和时间
也可以像普通的轮询模式一样进行编程
检测的结果呢
将会被寄存在寄存器当中
提供给 MCU 进行读取
使用矩阵模式最好的的好处
是需要 MSDI 少量的输入通道
就可以支持大量的数字开关
由于车辆中的开关数量持续的增长
矩阵轮询模式
提供了一个很特别的解决方案
大幅的减少了
车身控制模块设计的复杂性
元件的数量和电路板的面积
那我们之前提到
为了清除机械开关
金属触点上积累的氧化物
以保证开关的可靠闭合
车身控制模块
会提供湿电流给开关
那有些开关因为用途的关系
会需要比较大的湿电流
比如说 10 毫安或是 15 毫安
而另一方面为了检测电阻编码开关
或是降低模块的整体功耗
硬件工程师会趋向使用
较低的湿电流的设置
如此一来湿电流的配置
常常会造成硬件
或是软件工程师的困扰
那这个时候 MSDI 的
Clean current polling (CCP)
简称 CCP 或是清洁电流的轮询方案
就可以适时的发挥用途
当清洁电流轮询方案开始的时候
每个轮询的周期
将会改成由两个湿电流激活的步骤组成
第一步是正常的轮询开关状态采样
这部分跟普通的轮询模式是相同的
第二步称为清洁电流
这个是对所有 CCP 开启的输入通道
同时激活的电流脉冲
目的呢就是因为要湿润开关的触点
以保持接触面的清洁
那清洁的电流的值
可以在十个毫安
或是 15 个毫安之间做选择
并且可以为每个通道启用或是停用
通过这个清洁电流的轮询方案
系统就可以利用 MSDI 提供的
这两个不同的电平的电流
来分别进行开关的检测和触点清洁
这样不管对于硬件或是软件上的设计
都具有相当显著的简化的功能
接下来我们来讨论
MSDI 的电源测量的功能
当 MSDI 进行开关检测的时候
特别是电阻编码开关
电源的电压高低变成非常的关键
如果电源的电压波动过大
超过了数据表的工作范围
MSDI 可能无法产生精确的湿电流
那这可能会影响开关检测的一个准确性
因此呢传统做法是利用
MCU 持续的采样
并且监控电源的电压
以确定它保持在一个固定的范围之内
那因为考虑到这方面的设计
TI 的 MSDI 方案
提供了电源电压测量的特殊功能
一旦启用之后
MSDI 将会将电源的电压
通过电阻分压之后
连接到内建的 ADC
并且在每个轮询的周期中进行采样
那电源测量支持两种范围选项
分别为 4.5 伏到 9伏
或者是 4.5 伏到 30 伏
那 4.5 伏到 9 伏
提供了较高的测量精度
4.5 伏至 30 伏的选项
则提供了更宽的电压测量范围
那电源测量的功能
跟传统的开关检测类似
也可以编程阈值
最多可以编程四个独立的数值
如果电源的电压低于或是超过阈值
MSDI 会发出中断讯号通知 MCU
那 ADC 转换后的数值
也会被储存到寄存器当中
提供 MCU 使用 SPI 通信
读取更多关于电源电压的信息
因为呢有中断讯号的辅助
硬件工程师也可以跟
传统的开关设计检测一样
利用电源测量的功能
做 MCU 的唤醒设计
为了提高开关检测的可靠性
MSDI 提供了许多 Fault Detection
也就是故障检测的功能
首先是电压故障的检测
那在 12V 汽车系统当中
完全充电时
电池的电压通常为 12.6 伏左右
而发动机运行的时候
电池的电压则为 13.7 伏左右
但是呢各种车辆的运行条件
比如说 Load down 负载突降
cold 冷启动
或者是搭电启动等等
可能会大幅改变电池的工作电压
那 TI 的 MSDI 建议的
电压工作范围于4.5伏到35伏之间
如果电源的电压超出建议值
MSDI 会产生过压或者是欠压的中断
以警告系统
以便采取适当的措施
除了电源电压之外
当车辆运行的时候
温度 也是一个
难以在系统中控制的参数
那 TI 的 MSDI 的工作温度
最高可以到达125度摄氏度
但是如果多个通道
同时被编程为高的湿电流
开关又保持在关闭的状态
MSDI 的芯片的温度
可能会迅速的增高
那为了防止过热
MSDI 芯片的内部
集成了许多温度传感器
如果结温高于 140 度摄氏度
MSDI 内部会产生警告中断
并且将所有的通道的
湿电流降低至两个毫安
如果结温持续升高
并超过 160 度摄氏度
MSDI 会关闭所有通道的湿电流
以防止进一步的制热
那经过了一段时间之后
一旦温度下降到阈值以下
湿电流则会恢复到其编程值
这些热保护的功能
可防止对 MSDI 的芯片
造成永久性的损坏
那再来我们来讨论一下
MSDI 芯片的 SPI 故障检测的功能
SPI 是相当普遍的汽车通信协议
那 TI 的 MSDI 就是使用
SPI 的协议与 MCU 进行通信
以进行编程和状态更新
但是呢在恶劣的汽车工作环境之下
SPI 通信的错误有可能会由于
bit-flipping
也就是位翻转而产生
为了检测 SPI 位翻转的通信错误
MSDI 为 SPI 的每一笔资料
都进行 Parity check
也就是所谓的奇偶校验
那 MSDI 使用的是奇数的奇偶校验
这意味着任何一笔 SPI 资料中
1 的比特总数必须是奇数
数据才会生效
那如果总数为偶数
芯片则会丢弃接收到的数据
同样的 MSDI 对每一笔的
输出的 SPI 数据
也都执行相同的方案
那这个方案可以大幅降低
SPI 通信错误的发生
那除了 SPI 的奇偶校验
MSDI 还提供 CRC
也就是循环冗余校验
来检查编程到芯片中数据的完整性
那 CRC 校验被初始化之后
MSDI 将根据所有配置寄存器的值
计算并储存 CRC 的数值
然后 MCU 就可以将 MSDI 的
CRC 的数值与其期望值进行比较
如果两个值不匹配
这意味着编程期间发生了一些错误
所以通过使用 CRC
MCU 可以随时校验 MSDI 数据传输
或者保存之后可能出现的一个错误
那以上所提到这些故障检测功能
都大幅增加 MSDI 操作的稳定性
并允许 MSDI 被使用于
安全关键型应用的可能性
除了上一页所讨论的故障检测功能之外
TI 的 MSDI 方案
还内建了两个高级诊断的功能
持续监控 MSDI 的设备操作
那第一个是湿电流诊断
它将 MSDI 的端口的输入
或是输出的电流与参考值进行比较
如果当前输入或是输出的电流值
显著偏离参考值
MSDI 的芯片就会发出中断
以提醒 MCU
那 MCU 就可以选择利用设备重置的方式
来尝试解决这个问题
MSDI 为前四个输入端口
也就是 IN0 到 IN3 提供了
湿电流诊断的功能
所以这几个通道
适用于对于安全有需求的开关设计
那另外一个高级诊断的功能是
ADC 的自诊断的功能
目的是确保 ADC 转换正确的执行
那当这个诊断功能开启的时候
一个固定带隙基准电压
将被复用到 ADC 进行采样
并将 ADC 的输出
与预设的限值进行比较
如果ADC的输出值超出了限值
MSDI 就会发出中断
那同样的 MCU 可以选择利用
设备重置的方式来尝试解决这个问题
湿电流诊断和 ADC 的自诊断
都将在每一个轮循周期结束后运行
因此可以连续监测 MSDI 操作的稳定性
那车身控制模块的硬件工程师
可以利用这两个诊断的功能
以及之前提到的故障检测的功能
对系统的安全性实现优化的设计
以达到系统功能安全的标准
那以上呢 就是我们今天
对 MSDI 做的一个在线的培训
相信您对 MSDI 的功能
以及它对系统上的一些帮助
有着比较多一点的认识
那如果您需要更多的一些讯息
欢迎您到 TI.com 搜寻 MSDI 的产品型号
也就是 TIC12400
那你就会发现更多一些有用的一些讯息
包括 MSDI 的参考设计
EVM 板以及 GUI 的软件等等
谢谢您收看今天的在线培训 再见
视频报错
手机看
扫码用手机观看
收藏本课程
-
未学习 MSDI (多重开关状态检测接口) 在车身控制模快的应用
00:38:38
播放中
视频简介
MSDI (多重开关状态检测接口) 在车身控制模快的应用
所属课程:MSDI (多重开关状态检测接口) 在车身控制模快的应用
发布时间:2018.07.09
视频集数:1
本节视频时长:00:38:38
第一章节讨论汽车车身控制模快中的开关检测功能,传统使用分立器件来实现开关检测的做法,以及使用分立器件方案实现上的一些挑战。
第二章节讨论MSDI的概念,以及MSDI如何帮助解决在第一章节提到的一些挑战。
第三章节讨论MSDI提供的一些高级功能,以及硬件设计师如何利用这些功能来提高系统的性能。
培训结束后,在最后,也就是第四章节,我们会重点介绍MSDI的价值主张以及如何获取有关德州仪器这款MSDI器件的更多信息。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>