打印
[国产单片机]

有没有ISP下载时需要验证的MCU呢

[复制链接]
1508|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
urcllr|  楼主 | 2013-9-13 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 urcllr 于 2013-9-13 10:25 编辑

我公司一直用STC的芯片开发产品,但后来发现这些MCU的ISP并没有写保护(STC宣称的也只是读保护。粗略看了一下其他厂家,多数也是宣传读保护,或者是我未了解深入吧)。

因为特殊的原因,我们的产品设计成外壳装上后不容易打开。但产品要求能后期升级程序,所以就把ISP端口(串口)引到外壳表面,升级时不用盖,插数据线上去就可以升级了,而且用户使用过程中也需要使用这个串口进行多机通讯,这也必须把此串口引到外壳表面。

问题是有产品到了用户手中后,某些用户可能出于某种非正常原因,通过这个端口触发ISP,擅自烧录一些垃圾数据,令产品无法运行。结果就会像当年的CIH病毒那样。

因为售出之后的升级是要在客户现场进行的,一切特殊操作(比如升级前调整某些电路、短接、断开某些引脚,就像STC的升级前先接地某些引脚等)都将被客户看到,因此无法通过外围电路来防止用户触发ISP。而且遇到这类用户,估计他也会尝试不同厂家的编程器来试探芯片的型号,所以打磨**也撑不了多长时间。

在这里想咨询大家,有什么厂家或型号的MCU,8位、16位、32位均可(要普及广泛的,不要偏门的),带2k以上RAM/ADC/60k以上FLASH空间动态分配(类似STC的IAP功能那样),而且它的ISP是必须先验证正确后,才会擦写FLASH的呢(比如在上电时必须收到一串密码才进入ISP,否则进入用户程序,而且每片芯片的密码不同。)?

相关帖子

沙发
urcllr|  楼主 | 2013-9-13 10:21 | 只看该作者
其实我觉得MCU程序区的写保护比读保护更加重要,为何芯片厂家都不重视呢?
没有读保护,最多只是产品被克隆,但一点也不影响已销售的产品。损害的只是知识产权,对公司的质量形象没有一丝损害。只要原创公司不断创新,别人就只有跟屁的份。
但没有写保护,分分钟都会危及已销售的产品,损害的却是公司的质量形象。
孰重孰轻,一看就明。就是不明白芯片厂家不重视,至少这方面的宣传不重视。

使用特权

评论回复
板凳
McuPlayer| | 2013-9-13 11:30 | 只看该作者
你可使用IAP功能,这样升级部分自己来做,灵活性就掌控在自己手中了。
可以把升级模块做得很灵活,同时胜任读保护和写保护的功能。

使用特权

评论回复
地板
autopccopy| | 2013-9-13 19:27 | 只看该作者
人家要恶意ISP重写,这个是没办法的。用条款限制吧。例如人家要人为接高压烧毁单片机,你难道要提高耐压?

使用特权

评论回复
5
urcllr|  楼主 | 2013-9-14 07:42 | 只看该作者
to mcuplayer.你能否推荐一些MCU型号?就我用着的STC来讲,它的ISP优先级是最高的,无法通过程序来屏蔽。至于通过外围电路来屏蔽,我原帖也说过了,用户是可以跳过外围电路的。

至于auto的说法,虽然条款限制是一条可行的路子,估计也是当前大多数电子厂家的路子来。不过对于我们这些规模较小的公司,总会带来一些潜在的纠纷。如果技术可以防范,就更好了。单片机虽然不可能无限制耐高压,不过对于高压的脉冲,好多芯片都可以耐受,至少他们已经这样宣传了,证明还是有在这方面下功夫的,只是当今技术水平限制,只能做到耐脉冲而已。

但我想,防恶意ISP根本不存在技术难题,只要在出厂的BOOTLOADER程序里面加上密码更新和校验,纯软件就可以解决,绝对比搞什么片上仿真的功能要简单得多。

使用特权

评论回复
6
McuPlayer| | 2013-9-14 12:44 | 只看该作者
我现在用的是STM32就是自己做的loader,USB升级,对升级固件做合法性检查,非法固件不给下载。
IAP方法,不仅仅是STM32,适用于很多MCU,STC是把这个功能隐藏了,因为他用来做了ISP下载用途。
STC的下载确实比较简陋,缺乏防呆机制。

使用特权

评论回复
7
urcllr|  楼主 | 2013-9-15 08:53 | 只看该作者
看来还是要投入STM32中

使用特权

评论回复
8
lirunze| | 2013-9-15 09:08 | 只看该作者
恩,强烈推荐STM32

使用特权

评论回复
9
天命风流| | 2013-9-22 15:06 | 只看该作者
长知识了!!!

使用特权

评论回复
10
logicok| | 2013-9-22 15:17 | 只看该作者
通常我们涉及的MCU都有IAP或叫Bootload功能。可以用串口写一个IAP程序,这个程序升级的时候是不会被擦除,是用久保留的,要升级的部分放在另外的程序块当中就行,升级程序还可以自己加入加密程序,防止意外触发升级。例如加入AES加密功能。我们已经在苹果的数据线采用了这个方法,当苹果升级后,我们也跟着升级。

使用特权

评论回复
11
urcllr|  楼主 | 2013-12-15 12:17 | 只看该作者
logicok,我去看看贵公司的网站。不过有个问题也想深入一下,您们的MCU,那个IAP区域是一次写入不能修改?还是通过与用户程序区不同的途径来修改?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝