(18) -系统设计之DCSM 双代码安全模块

+荐课 提问/讨论 评论 收藏
  • 本课程为精品课,您可以登录eeworld继续观看:
  • (18) -系统设计之DCSM 双代码安全模块
  • 登录
最后我们来看看2837X 它独有的双代码安全模块 DCSM 它的保护性能更好 它能够有效阻止 其他的一些黑客手段 来获取我芯片内部保护区域的数据和代码 也就是说 flash和RAM这些受保护区域的 数据不能通过[听不清]或者黑客程序 来访问到 那么针对F2837X有两个 安全区域 区域1和2 针对2837XD的话 每个CPU有一个区域 针对2837XS的话 有两个区域 每个区域有自己的专属的OTP OTP里面保存我的安全设置 编译地址啊 我的密码啊等等 这两个区域都能给线上的flash RAM CLA等等提供保护 也就是我的Flash或者RAM区块 可以自由分配到区域1和2保护 只有在同一个区域里面的代码或者数据可以互相访问 针对受保护存储器里面的代码 只能从保护区域中读取数据 也就是说 如果我的Flash A分配到RAM1里面 我的LS0分配到RAM2里面 从FLASH1访问LS0 这个RAM空间的数据是不可以的 只有LS0也位于区块里面 那就可以访问该数据 我们看看两个区块如何选择 针对刚才说的flash RAM 等等都可以自由分配到 区域1和2里面 我们可以通过这些区域的控制寄存器 来设置放在哪个区域 还是强调一点就是说 只有本区块的中的代码 或者数据才能互相访问 外部未加密的区域 或者区域2是不能访问区域1里面的东西的 我们看看密码保护 传统的C2000芯片都有128字节的加密 针对2837X 我们有两个password 就是两个16位的 每个区域都有自己128位的保护制 而且这个保护制是放在专用的OTK里面的 密码保护有三种权限 一种是数据和程序的读取 假如有这密码保护的话 只能是同一个区块 能够进行数据或程序的读取 第二个是CSM的权限 如果有了这个密码保护的话 CSM是不能访问这些加密区域的 还有我们的程序取址 是不受密码影响的 它是从芯片内部取址 因此不受密码保护的影响 在设置128字节的密码制的时候 需要注意一点 不能设置为全零 如果四个字都是全0的话 这个芯片会永久消失 比如四个字都是1的话 那就是芯片没有加密 一个芯片最开始 拿到手的话 是[听不清]的话 可以随意使用烧结程序 在程序里面 我们可以设置这个加密制 比如第一次烧完程序后 有这个加密密码的话 再次烧结程序的时候 第一步要把密码匹配上 进行解密 然后才能进行拆除烧结等工作 因此 建议在程序开发过程中 这个密码制是不需要设置的 程序开发完成 转到生产的时候 必须设置这个密码制 我们再来看看每个区块自己对应的OTP 在这个OTP里面 主要是存放我们的安全设置 以及我们的128字节的字 前面的这些安全设置 就是我们的分配 flash RAM这些东西分配到本区块还是另外一个区块 的设置 那么这个表格我们怎么看 首先我们看左边这些 最左侧的zx-link链接 链接的指针 由于我们所有的东西都是放在OTP里面的 OTP只能一次编程 所以我们要做到多次修改的话 必须要放多个保存地址 这个zxlink的话 是指向我每次保存的地址 比如说 我所有的字 第一个是放在第一个链接地址 也就是ox020的地址 这里设置完之后 我们要重新设置一次的话 我们不能放在同一个区域里面 我只能放在下一个区 0x030 我把link地址的最后一位改成0 因为在OTP里面 所有的最开始的全是1的话 编写一次 把1改成0 所以我们是通过最后面的这个0 来表示我的link地址不一样的 那么我们这个怎么看呢 前面是我的链接地址 中间是我的偏移量 最后是针对这个地址的偏移 举个例子 我这个password 第一次烧结 这个固定的话 就是0x020 是RAM的配置值 0x0202的话 是我的flash选择的配置值 0x0204是我的另外一个RAM的配置值 等等 这个是一个偏移量 这个地址 是另外一个总体的偏移量 我们在下个表格中看到 我们看这个表 前面这个表是通过Link 指针来表示它指向的地址 比如第一个 我三个连接地址是一样的话 比如这个地方是0x78010 然后加上偏移量 0200 0202 0204等等 如果把这个零往前移动一位 我就是0x78030 然后加上偏移量 比如0300 0302 也就是这两个表格要统一起来 这个地方 我们必须保证地址有效的话 123这三个链接地址必须是一样的 这个地方的020 还是030 一直到UF0 具体的指向由这三个来确定 我们来看看芯片的加密和解密 如果我的128字节 密码已经上锁的话 芯片复位后 我们立即进入加密状态 也就是保护状态 这个时刻 我们使用M1M0 访问权限 那需要重新对FLASH操作 读取数据的时候 必须要先解密 解密的过程 我首先要 虚拟去读我的password 就是我的密码区 四个字节 然后将正确密码写入CSMKEY 这个寄存器 写入正确的字节后 我们把这个密码打开 就能进行正常的操作 在加密时 我们要注意几点 不要把所有密码写成0 这样会永久锁死 第二 不要将所有密码设成1 这样就相当于没有加密 空的芯片的状态 还要记住一点 不受保护的RAM代码是无法访问受保护区域的数据的 还有最后给大家一个建议 不要将密码放到代码中 在我们的CCS里面可以进行加密和解密操作 是在我们的烧结插件上 进行操作 最后 我们看看解密的过程 解密匹配的过程是非常简单 在开始的时候 我们在复位后对CSM的密码区域 进行虚拟读入 如果读取这个字都是零的话 就永久锁死 如果不为零的话 芯片是加密的 把正确的字节写入CSMKEY寄存器里面 假如正确的话 就解开密码 假如password全部是1的话 芯片没有加密 就进行正常的操作 这个是CSM密码区解密的过程 那么综上所述 我们的双代码安全模块 其实是两个区域模块 两个128字节的保护 然后每个区块用OTP来配置 设置它的密码区 以及它的密码等等 记住一点在程序开发过程中 可以不加密 在程序开发完到生产时 必须加上密码保护 有效保护芯片内部的程序代码以及数据 最后一个LAB10主要是将数据放到我的FLASH 中 可以调到我的RAM中运行 然后用CLA来读取代码等等 这个试验大家可以参考我们的 试验的教材 好 谢谢大家
课程介绍 共计28课时,4小时27分22秒

C2837x入门指南

TI C2000 MCU PWM F2837xD ADC DAC DMA CLA C2837x CMP SDFM CAP QEP c28x

F2837x系列的最新 C2000™ Delfino™ 32 位 F2837xD 微控制器 (MCU),为工业实时控制实现最新创新,并设定了全新性能标准。这些最新 MCU 支持双核 C28x 处理功能与双实时控制加速器(也称为控制律加速器或 CLA),可提供 800 MIPS 浮点性能,从而可帮助设计人员为计算要求严格的控制应用开发低时延系统。此外,设计人员还可通过将多个嵌入式处理器整合在单个 MCU 中以降低复杂性,充分满足高级伺服驱动器、太阳能中央逆变器以及工业不间断电源 (UPS) 等需要实时信号分析的应用需求。

推荐帖子

luck_gfb

电机驱动的软件还是很复杂的。也就是说 你用我们的技术 你不需要做很多的操作调整 重新标定啊等等这些工作 只需要将我们的板子连接到电机 在10分钟内 可以让我们的电机转起来 而且这是无传感的技术 InstaSPIN TM motion是有传感的 会带给编码器的 我们会将速度网和[听不清]结合成一个环路 用IDC控制起来做 它的性能比较高端 而且只需要调整一个参数就可以了。

2020年09月02日 17:07:38

hawkier

哈哈哈,学完这章要点时间啊

2019年11月21日 16:12:10

大明58

学习C2837x入门指南

2019年08月22日 12:32:36

zhangleiat185

好好学习天天向上。。

2019年07月12日 16:34:47

hellokt43

好好学习天天向上。。

2019年06月09日 11:05:30

dingxilindy

学习C2000开发所需软件工具

2019年05月16日 14:51:31

zx1988ZX

终于看完了,不错的!

2019年04月25日 06:53:06

wudianjun2001

不错的视频资料。。。。。。

2019年03月04日 10:15:26

59477cq

学习了

2019年01月21日 20:28:50

凤凰息梧桐

学习一下

2019年01月21日 17:28:12

分享到X
微博
QQ
QQ空间
微信

EEWorld订阅号

EEWorld服务号

汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved