历史上的今天
返回首页

历史上的今天

今天是:2024年12月27日(星期五)

正在发生

2019年12月27日 | PIC16系列单片机的ID码解读

2019-12-27 来源:elecfans

见过很多初学者对PIC16系列单片机的ID码的读和写犯迷糊。说实话,这方面的资料也不怎么全。有些教材可能会涉及ID区域的介绍,可是往往是一代而过。这对初学者来说是比较容易犯错的地方。今天有空,对相关的问题作了一些整理,分享给大家。可能有些地方说的不够妥当,欢迎大家多多探讨。


1.什么是ID区域?

ID区域是独立于EEPROM,FLASH,RAM的区域。程序设计人员可以利用该区域存放软件的版本号,编写日期,烧录日期,产品标识等信息。不过该区域很小PIC16系列只能存放4个字节。


2.ID码怎么烧录到ID区域里面去?

可以利用PICC自带的宏命令IDLOC(X)来实现。具体操作如下:

.....................................//头文件 其它宏定义__IDLOC(76F4); //注意:前面是两个下划线。括号里面最多可以有2个字节void main(){...................................//程序主体}

编译以后再用烧录工具烧到单片机中即可。这里要提醒一下,IDLOC(X)里面最多有2个字节的16进制数,超过部分会无效。比如你写个987FE3,E3会丢掉。另外得说一下这两个16进制数在ID区域是怎么放的。我们已经知道IDLOC(X)里面能又个字节,而ID区域能放4个字节。以X=76F4为例,它们是这样放的07060F04。也就是说,在每个16进制数前加1个0。如果你写的不是2个字节的16进制数,比如是1个字节的78。编译器会在前面补0,那就成了0078。写到ID区域的就是00000708


3.ID码怎么读出来?

可以通过烧录工具跟编译器配合读出来。我用的是PICC跟ICD2。连好线,单片机上电以后,在编程模式下,通过执行Read Target Device操作,然后在Configure菜单下的Id memory

选项可以看到刚才编程的时候设置的ID码。


其实,多数PIC都没有唯一ID,有人通过烧断PIC读出总线来实现,但设备需要自制。

只要是市场上大量销售的芯片,解密都不是什么麻烦事,只能尽量用新型号或者生僻的型号。


有人用MCU内部的EEPROM这么搞过,但不是这么简单的这么搞,对于大批量生产来说,还需要一些技巧才能比较好的处理这个问题。


1、设置一个自检程序,通过特殊操作(我有一个自制工装,可以把MCU的各个相关IO强行固定在某个逻辑电平上,软件判断逻辑组合,必须符合一个特定组合才能进入特殊操作启动代码,UART接受工装的通信数据,通信数据传入EEPROM要被擦写的次数和位置等)。

2、进入自检后,MCU疯狂的擦写EEPROM中设定的某个位置(适当提高一点VCC电压以加快失效),最多擦写200万次后停止操作,一般MCU自带的EEPROM擦写次数都不到100万次,EEPROM某个字节在0XAA和0X55之间不断的被循环擦写。

3、这个擦写的时间还是比较长的,一般要数十分钟以上,我一般放在产品通电老化阶段进行这个自检程序(产品一般要在老化房4~6个小时候通电老化时间,自检程序兼容这个时间执行,避免产生新的工时损失)

4、擦写过程中在RAM中记录EEPROM该字节失效时的操作次数,并存入到EEPROM其他字节中。

5、产品正常销售中,执行APP用户程序,继续不断的擦写那个失效字节,如果不能擦写,则说明加密成功,否则有另一个纠错程序就不讲了,各位可以自行想办法。

推荐阅读

史海拾趣

Crocus Technology公司的发展小趣事

随着技术的不断成熟和市场需求的变化,Crocus Technology开始拓展其产品线。2015年,公司成功推出了首款磁开关产品,这标志着公司在磁传感器领域迈出了重要的一步。随后,公司又陆续推出了位置传感和2D传感器产品,进一步巩固了其在磁传感器市场的地位。

DALLAS公司的发展小趣事

Dallas公司非常重视与全球客户的合作关系。公司积极与全球各地的客户建立联系,了解他们的需求和反馈,为他们提供定制化的产品和服务。这种紧密的合作关系不仅为Dallas公司带来了稳定的订单和收入来源,也促进了公司产品的不断改进和创新。

艾迪沃德公司的发展小趣事
查看保险丝是否熔断,如熔断需更换同规格保险丝。
Green Power Solutions公司的发展小趣事
定期检查稳压器的外观和内部元件,查看是否有电子管破裂、灯丝不亮、电解电容漏液或击穿等现象。
CYMBET公司的发展小趣事

在电子行业中,技术的更新换代速度极快。为了保持竞争力,CYMBET公司始终将创新作为核心驱动力。公司不断投入研发资金,引进先进设备和技术人才,对EnerChip技术进行持续的优化和升级。例如,公司成功研发出了更高能量密度、更长寿命的EnerChip电池芯片,进一步提升了产品的性能和市场竞争力。同时,CYMBET还积极探索新的应用领域,将EnerChip技术应用于可穿戴设备、物联网等新兴领域,为公司带来了新的增长点。

D3公司的发展小趣事

面对全球电子市场的巨大潜力,D3公司积极实施全球化战略。公司不仅在国内市场深耕细作,还积极拓展海外市场。通过与国外知名企业的合作,D3公司的产品逐渐进入国际市场,并在多个国家和地区取得了良好的销售业绩。同时,公司还加强了对海外市场的调研和分析,以更好地满足当地消费者的需求。这种全球化战略的实施,为D3公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

北京2008安防展上的新动向---4

停车场智能管理系统是今年展会的热门,厂家很多。而且基本实现自主研发,除了平台软件以外,票箱、远距离读卡器、道闸等基本实现了自主研发生产。…

查看全部问答>

书籍推荐《Multisim 10&Ultiboard 10原理图仿真与PCB设计》

本帖最后由 dontium 于 2015-1-23 11:49 编辑 前 言 2007年3月,美国国家仪器有限公司(National Instruments)推出了NI Circuit Design Sutie 10套件。本书结合设计实例介绍了套件中的Multisim 10和Ultiboard 10软件。与其他同类软件相比, ...…

查看全部问答>

观点:LED常被忽略的一大优点

现在大多数人都已经知道,LED是一种节能减排的新光源。但是还有一个很大的优点却经常被忽略,那就是无污染和环保。我们知道汞是一种极其有毒的物质,然而几乎大多数目前采用的高效电光源中都含有汞,各种电光源的含汞量如下表所示: 而汞的沸点 ...…

查看全部问答>

WINCE键盘驱动问题

我用流接口写了一个4*6的矩阵键盘驱动程序,现在需要将对应的按键与像PC机的键盘上的部分功能键对应起来,请问具体要如何对应呢? 具体我将每一个按键对应一个码,通过SendNotifyMessage()函数发送消息给应用,同时自己写了一个简单的WIN32应用程 ...…

查看全部问答>

怎么测试串口与GPRS MODEM是否连通,在程序中?

  在程序测试串口与GPRS MODEM是否连通,发“at”返回“ok”    这样写:      sp.WriteLine(\"at\\r\");      string str = sp.ReadLine();    运行后就没反应了, ...…

查看全部问答>

请教大家一个指定函数的分页或分段的问题,谢谢了!

小弟初学WDM,发现很多例子中都要指定函数的分页或分段,如下所示: #pragma alloc_text(INIT, DriverEntry) #pragma alloc_text(PAGE, Example_Unload) 请问这样有什么特别的用途吗?好像不加这两句程序也能正常运行!…

查看全部问答>

keil中使用扩展存储器

问一个问题:怎样在keil中使用扩展存储器,比如89c51+2764(8k*8 rom)两种情况:1.程序大于4k,比如是6k,那么我生成了hex文件(是连续的)后,怎样分开分别向芯片中烧制呢?2.程序小于4k比如是2k,但是将一部分放入89c51中,比如1k,将另一部分1k ...…

查看全部问答>

c语言的起源与概述

C语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan 和 D.M.Ritchit 合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是, ...…

查看全部问答>

Cyclone V GX试用报告--高频超声数据采集系统

Cyclone V GX试用报告--高频超声数据采集系统    首先感谢EEworld网站和Altera公司联合提供了这么好的活动,使得我有机会接触到Altera最新的Cyclone系列的FPGA。本次评估的目的是借助Altera 提供的Cyclone V GX FPGA开发板的平台来验证一 ...…

查看全部问答>

quarus ii中的signal tap是否可以复制多个node

之前一直使用Xilinx的ISE进行开发,使用chipscope看波形时可以将探针信号进行复制、重新编组等操作,很方便。现在刚开始用Quartus ii 9.1,在使用signal tap上板调试时,发现没有办法复制node。 比如信号 a位宽为32位,第一拍,第二拍和第三拍的数 ...…

查看全部问答>