发烧友10周年庆典,全网超值优惠来袭!千元现金券,下单抽奖赶紧参与》》

单片机程序存储中的软件标识分析

集成电路应用杂志 2018-11-28 17:16 次阅读

在某些特殊设备中,如智能电表等产品,由于使用方并非产品设计方,而使用方又担心设计方将程序外泄,带来使用的安全问题,便要求设计方在单片机存储程序时可自动形成带有一定特征和加密特性的软件标识,以达到使用方可以溯源程序的目的。采用对软件代码计算,并形成校验码的方式,是单片机程序存储中的软件标识的一种良好设计方式。

1  引言

目前,电子设备、智能仪表等器件实现一些功能通常需要安装对应的应用软件。为了便于管理,需要对应用软件进行软件标识,特别是像电能表这类仪表需要执行法制计量机构颁布的相关标准,更加需要对安装于其中的软件进行软件标识,以实现有效管理[1,2]。

现有技术中,软件标识一般是由微处理器软件生成的,用户可更改软件标识,也存在软件更改或更新而未更改软件标识的情形,不利于器件的管理,存在数据泄露的风险[3,4]。

2  设计思路

在单片机生成方法为存储在存储介质中的软件代码生成软件标识,这需要一个前提,即存储介质包括至少一个第一存储单元、至少一个第二存储单元、第三存储单元。第一存储单元用于存储软件代码,第二存储单元用于存储多项式。其中,每个第二存储单元中存储的多项式是不同的。

2.1 实施方法一

如图 1 所示软件标识生成方法,包括以下步骤。

步骤一,设置第二存储单元与第一存储单元的对应关系。

步骤二,对软件代码进行计算以生成校验码。其中,不同的软件代码生成不同的校验码本实施例中,步骤二还包括:(1)从第一存储单元中获取软件代码,从对应的第二存储单元中获取多项式。(2)根据多项式对软件代码进行计算,生成校验码。

具体,当下载软件代码时,将软件代码依次写入第一存储单元中,每将一个第一存储单元写满则从该第一存储单元中获取软件代码,从对应的第二存储单元中获取多项式,根据多项式对软件代码进行计算。

以下通过一个具体实例说明根据多项式对软件代码进行计算的过程:例如,一个第一存储单元中存储的软件代码为 1010。与该第一存储单元对应的第二存储单元中存储的多项式为:H(x)=x3+x+1。

首先,根据变量的指数,将H(x)=x3+x+1转换成对应的二进制数 1011;由于多项式有4位,则把软件代码左移 3(4-1)位,得到 1010000。

其次,用多项式的二进制数对左移 3 位后的软件代码进行模2除,得到余位 011,即为校验码。

由于每个第一存储单元均会生成一个校验码,软件代码存储于几个第一存储单元中,即可得到几个校验码。需要说明的是,校验码的位数可根据实际需要自行设置,也即通过设置多项式的最高次幂实现。

步骤三,根据校验码生成软件标识。若一段软件代码共有 i 个 16 Bit 的校验码,生成软件标识具体可以是:将 i 个校验码进行分组后先进行同或运算,产生 64 Bit 数据,将这 64 Bit 数据与 Flash 的 Key 进行异或运算生成软件标识。

步骤四,将校验码存储于第三存储单元中。本实例中,根据不同的软件代码生成不同的校验码,进而生成不同的软件标识,也即只要软件代码不同,软件标识必不相同。当器件中的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别器件的应用软件是否符合用户要求,实现器件的安全管理。

2.2 实施方法二

在这种实施方法中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现实施例一所提供的软件标识生成方法。计算机可读存储介质为 Flash 存储器

Flash 存储器的程序存储区一般由 M 个存储块(也即第一存储单元)组成,每一存储块分若干个页。程序存储区只支持片擦除,不支持块擦除和页擦除。Flash 存储器的 NVR 区的 NVR1(也即第二存储单元)存有一定的长度的数据码 K(多项式的二进制数),数据码 K 中的第 n 个 16 Bit 数据 Kn 与 M个数据块中的第 n 个块 Mn 对应,在写 Flash 每个存储块时,Flash 控制器根据对应关系选择相应的多项式计算校验码。

其中,NVR1 对用户不支持读写功能。写完一个存储块,则计算出一个 16 Bit 的校验码 Cn,并将此校验码 Cn 存储在 NVR 区的 NVR2(也即第三存储单元)中。NVR2 对用户有只读功能。

下载程序时所需要的存储块都写完后,共有 M 个16 Bit 的校验码。再将这些校验码进行分组后先进行同或运算,产生 64 Bit 数据,将这 64 Bit 数据与Flash 的 Key 进行异或运算生成软件标识。并将此软件标识的 64 Bit 数据存储到 NVR2 中的固定位置。

使用这种方法的计算机可读存储介质存储应用程式,只要 Flash 存储器中的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别 Flash 存储器的应用软件是否符合用户要求,实现器件的安全管理

2.3 实施方法三

在这种实施方法中,提供一种单片机,如图 2 所示,单片机包括:计算机可读存储介质、控制单元和 TR 接口。其中,计算机可读存储介质为实施例 2 所提供的计算机可读存储介质。

控制单元分别与计算机可读存储介质和 TR 接口电连接。控制单元用于在接收到读取指令时从计算机可读存储介质中获取软件标识,并通过 TR 接口向外输出软件标识。其中读取指令由外设设备生成并发送至单片机。本实施例中,不需要单片机干预,外设设备即可读取软件标识,避免单片机对软件标识进行处理的可能性,便于法律监督机构管理。

在这种实施方法中,可根据实际需求,还可在单片机中设置并串转换电路。控制单元通过并串转换电路与 TR 接口电连接。并串转换电路用于将软件标识转换成串行的 Bit 数据流。从而,经过并串转换的软件标识可有红外RS485 通信接口输出至外设设备。

3  结语

根据不同的软件代码生成不同的校验码,进而生成不同的软件标识,也即只要软件代码不同,软件标识必不相同。当器件中的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别器件的应用软件是否符合用户要求,实现器件的安全管理。

原文标题:单片机程序存储中的软件标识研究

文章出处:【微信号:appic-cn,微信公众号:集成电路应用杂志】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

玩单片机到千万身家,“技术型老总”需要哪些神技能?

中国硬件创新大赛网络培训会—技术培训篇如果你就干这行,毫无疑问你不能错过这次直播;如果不是,可能你不一定喜欢单片机,也不
发表于 05-16 00:00 585次 阅读
玩单片机到千万身家,“技术型老总”需要哪些神技能?

22个有趣新颖的STM32作品项目资料,提高单片机设计技能!

                            本...
发表于 09-20 18:10 10次 阅读
22个有趣新颖的STM32作品项目资料,提高单片机设计技能!

单片机电源接反,怎么判断芯片是否已经损坏

刚刚烧录程序的时候一不小心接反了电源,烧程序也是为检测到目标,不知道是不是因为芯片烧坏的原因,怎么才能知道芯片是不是烧坏...
发表于 09-20 17:14 4次 阅读
单片机电源接反,怎么判断芯片是否已经损坏

Protel DXP使用教程之层次电路原理图设计教程免费下载

本文档的主要内容详细介绍的是Protel DXP使用教程之层次电路原理图设计教程免费下载。
发表于 09-20 16:45 10次 阅读
Protel DXP使用教程之层次电路原理图设计教程免费下载

求图中单片机输出信号产生的原理

这是无刷直流电机调速系统中的电子换向器中的单片机,这是触发电路图,2764...
发表于 09-20 16:22 58次 阅读
求图中单片机输出信号产生的原理

单片机中PWM的工作原理解析

这是一个周期是10ms,即频率是 100Hz的波形,但是每个周期内,高低电平脉冲宽度各不相同,这就是....
发表于 09-20 16:09 19次 阅读
单片机中PWM的工作原理解析

华为推出Mate30 RS保时捷设计手机,机身采用真皮设计

9月19日消息,华为在德国慕尼黑举办发布会,正式推出下半年旗舰产品——Mate30 系列。和往年Ma....
的头像 牵手一起梦 发表于 09-20 15:55 89次 阅读
华为推出Mate30 RS保时捷设计手机,机身采用真皮设计

如何避免单片机死机

死机是指CPU的程序指针进入一个死循环,无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键....
的头像 电子工程技术 发表于 09-20 15:24 34次 阅读
如何避免单片机死机

请问马达干扰到单片机怎么解决?

最近生产的一批产品出现批量故障——输出讯号不对,经测试是单片机受电机干扰(去除马达负载,讯号很正常)。我的电路马达上就并...
发表于 09-20 09:02 5次 阅读
请问马达干扰到单片机怎么解决?

请问有51单片机例程吗?

用AD采集开发板自带的18B20温度传感器(或其他型号),并将温度信息显示到开发板显示屏幕上,利用一个按键,通过外部中断进行...
发表于 09-20 09:01 6次 阅读
请问有51单片机例程吗?

请问1117把9V转成5V给stc的单片机供电会太热吗?

如题。 板子上有一个STC12C5A60S2,4个LED,一个串口。 姚总说“STC12C5A60S2系列单片机的典型功耗是2mA ...
发表于 09-20 09:00 2次 阅读
请问1117把9V转成5V给stc的单片机供电会太热吗?

智能家居报警系统怎么构成?

随着电子信息技术和计算机网络技术的发展,实现家居信息化、网络化是当前智能家居系统发展的新趋势。报警系统作为智能家居系统的...
发表于 09-20 08:08 7次 阅读
智能家居报警系统怎么构成?

SH79F1611集成ADC和PWM的增强型8051微控制器的数据手册免费下载

SH79F1611是一种高速高效率8051兼容单片机。在同样振荡频率下,较之传统的8051芯片具有运....
发表于 09-20 08:00 14次 阅读
SH79F1611集成ADC和PWM的增强型8051微控制器的数据手册免费下载

新型单片机开关电源的设计与应用

《新型单片机开关电源的设计与应用》是2002年清华大学出版社出版的图书。本书主要介绍了单片开关、三端....
发表于 09-20 08:00 9次 阅读
新型单片机开关电源的设计与应用

请问利用单片机可以实现动态称重吗?

单片机在静态称重中是可以的,但动态称重能行不?看了网上的关于动态称重的文章,一长串的公式,看着着实吓人,那个运算量一般单...
发表于 09-20 06:51 11次 阅读
请问利用单片机可以实现动态称重吗?

请问谁做过C51系列单片机的软件函数实现double(8字节 )对double的浮点运算?

惊天发现51系列单片机例如新华龙的 在keil for51 里定义 double依然是4字节。呵呵了。那么问题来了。既然double 和float一样。请...
发表于 09-20 01:26 55次 阅读
请问谁做过C51系列单片机的软件函数实现double(8字节 )对double的浮点运算?

AltiumDesigner10视频教程 | 免费获取

网盘链接: 提取码:dn42
发表于 09-19 22:15 229次 阅读
AltiumDesigner10视频教程 | 免费获取

使用MSP430单片机设计声音导引系统的资料免费下载

本设计采用两片低功耗MSP430 单片机作为主辅控制单元。通过麦克风检测音频信号,辅控单元计算声源坐....
发表于 09-19 17:48 31次 阅读
使用MSP430单片机设计声音导引系统的资料免费下载

使用89C52单片机设计简易智能电动车的论文资料免费下载

简易智能电动车由一个电动玩具车改造而成。系统的控制部分以单片机为核心,通过对前向通道各种传感器信号的....
发表于 09-19 17:48 44次 阅读
使用89C52单片机设计简易智能电动车的论文资料免费下载

使用单片机控制继电器与DA转换器的宽带直流放大器设计论文免费下载

本文设计了一种前置放大电路,在较宽的频率范围内具有良好的直流和交流特性。该电路具有输出频率高(DC~....
发表于 09-19 17:04 30次 阅读
使用单片机控制继电器与DA转换器的宽带直流放大器设计论文免费下载

如何防止单片机被恶意攻击技术破解

单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。....
发表于 09-19 16:23 72次 阅读
如何防止单片机被恶意攻击技术破解

使用PROTEUS和单片机设计100以内计数器的资料说明

在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都....
发表于 09-19 11:28 19次 阅读
使用PROTEUS和单片机设计100以内计数器的资料说明

hFCT8单片机测量控制板的用户手册免费下载

FCT 系列是适用于 PCB 电路板自动各种功能测量的控制板。控制板采用“步骤”为核心理念,把需要测....
发表于 09-19 08:00 33次 阅读
hFCT8单片机测量控制板的用户手册免费下载

国内公有云服务市场逐渐向BAT聚拢

近日,英国调研机构Canalys发布了2019年第二季度中国公有云服务市场报告,报告显示:阿里云Q2....
的头像 牵手一起梦 发表于 09-18 16:34 302次 阅读
国内公有云服务市场逐渐向BAT聚拢

PIC12C508单片机控制灯光慢慢的变亮和变灭的程序设计

以上程序使用PIC12C508 单片机 ,内部4MHz时钟,4脚输入50HZ脉冲信号,7,6,3脚(....
发表于 09-18 16:08 112次 阅读
PIC12C508单片机控制灯光慢慢的变亮和变灭的程序设计

单片机定时器的四种工作方式解析

1 工作方式0 定时器/计数器T0工作在方式0时,16位计数器只用了13位,即TH0的高8位和....
发表于 09-18 15:57 82次 阅读
单片机定时器的四种工作方式解析

单片机空闲模式和掉电模式的应用解析

单片机进入空闲模式的时候,除了cpu处于休眠状态外,其余的硬件全部处于活动状态,芯片中未涉及的数据存....
发表于 09-18 15:16 49次 阅读
单片机空闲模式和掉电模式的应用解析

HR7P169B单片机的数据手册和特尔驰MCU芯片使用注意事项免费下载

特尔驰 MCU 芯片具有独立电源管脚。当 MCU 芯片应用在多电源供电系统时,应先对 MCU 芯片上....
发表于 09-17 17:07 62次 阅读
HR7P169B单片机的数据手册和特尔驰MCU芯片使用注意事项免费下载

使用MSP430F149单片机设计宽带直流放大器的详细论文说明

本设计由输入缓冲电路,增益控制电路,后级功率放大电路,测量电路,单片机控制及显示和电源模块六个功能模....
发表于 09-17 15:56 41次 阅读
使用MSP430F149单片机设计宽带直流放大器的详细论文说明

使用51单片机和EPM7128设计实现简易逻辑分析仪的论文免费下载

本设计采用单片机(89C51)和可编程逻辑器件(EPM7128)作为系统的控制核心。整个设计采用了模....
发表于 09-17 15:56 41次 阅读
使用51单片机和EPM7128设计实现简易逻辑分析仪的论文免费下载

使用单片机和THS3001设计宽带直流放大器的论文免费下载

本设计使用两片集成运放THS3001级联组成前置放大电路,并由运算放大器加分立器件三极管构成复合放大....
发表于 09-17 15:54 49次 阅读
使用单片机和THS3001设计宽带直流放大器的论文免费下载

使用CXA1019芯片和PLL频率合成器BU2614与单片机实现调频收音机的论文

本调频收音机主要由SONY 公司的FM/AM 收音机芯片CXA1019、ROHM 公司的PLL 频率....
发表于 09-17 15:54 41次 阅读
使用CXA1019芯片和PLL频率合成器BU2614与单片机实现调频收音机的论文

单片机实现寄存器寻址的方法解析

1、4个工作寄存器组共有32个通用寄存器,但在指令中只能使用当前寄存器组(工作寄存器组的选择在前面专....
发表于 09-17 15:43 36次 阅读
单片机实现寄存器寻址的方法解析

Modbus调试精灵与单片机实现多机通信的设计

写寄存器的时候,如果我们要把01写到一个地址是0000的寄存器地址里,点一下“写入”,就会出现发送指....
发表于 09-17 15:28 68次 阅读
Modbus调试精灵与单片机实现多机通信的设计

使用AT89S51单片机进行交通灯控制器的仿真与实现

交通灯控制器是智能交通系统中重要的组成部分,设计中选用AT89S51作为交通灯控制器的处理芯片,由单....
发表于 09-17 15:22 35次 阅读
使用AT89S51单片机进行交通灯控制器的仿真与实现

使用HCS12单片机开发板设计自主识别的智能小车论文免费下载

本论文制作了一个能够自主识别黑线行驶的智能车。该智能小车以飞思卡尔HCS12单片机作为核心控制器,采....
发表于 09-17 11:22 51次 阅读
使用HCS12单片机开发板设计自主识别的智能小车论文免费下载

单片机入门教程之常用电子元器件的详细视频教程免费下载

元器件的基本知识:原理图符号,封装,直插,结实,体积大,功率大,只能手工焊接,贴片,体积小,一般都 ....
发表于 09-17 11:22 61次 阅读
单片机入门教程之常用电子元器件的详细视频教程免费下载

51单片机案例分析:按钮控制灯亮接线原理

若同时按下两个以上的按钮,则对应的发光二极管发亮。例如按下SB1和SB3,则对应的输出端口P1.4和....
的头像 畅学单片机 发表于 09-17 10:25 143次 阅读
51单片机案例分析:按钮控制灯亮接线原理

使用STC12C5A60S2单片机设计一个光伏并网发电模拟装置的论文资料说明

当今,并网逆变器以它节能,高效等突出优点越来越受到人们的欢迎。并网逆变器主要分为光伏并网逆变器、风力....
发表于 09-16 17:48 52次 阅读
使用STC12C5A60S2单片机设计一个光伏并网发电模拟装置的论文资料说明

单片机中的时间片轮询法解析

时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中....
发表于 09-16 16:11 72次 阅读
单片机中的时间片轮询法解析

如何快速的学习单片机编程

CPU,它的名字没有改,还是叫CPU(Central Processing Unit)。它是单片机的....
发表于 09-16 16:08 116次 阅读
如何快速的学习单片机编程

NRF24L01和单片机2.4GHz收发器产品规范免费下载

NRF24L01+是一款带有嵌入式基带协议引擎(Enhanced ShockBurst™)的单芯片2....
发表于 09-16 15:52 39次 阅读
NRF24L01和单片机2.4GHz收发器产品规范免费下载

如何为单片机选择合适的负载电容

各种逻辑芯片的晶振引脚可以等效为电容三点式振荡器。晶振引脚的内部通常是一个反相器,或者是奇数个反相器....
发表于 09-16 15:44 67次 阅读
如何为单片机选择合适的负载电容

YL90角度传感器模块使用说明和倾斜模块原理图与使用程序免费下载

该传感器模块将倾角信号转换成电压输出,且可以设置比较器的阈值,达到倾角过大输出报警的功能,精度相比陀....
发表于 09-16 08:00 18次 阅读
YL90角度传感器模块使用说明和倾斜模块原理图与使用程序免费下载

常见单片机的实用工具万用表和示波器与逻辑分析仪的介绍与使用方法

工欲善其事必先利其器,我们做单片机开发的时候,不管是调试电路还是调试程序,都需要借助一些辅助工具来帮....
发表于 09-16 08:00 70次 阅读
常见单片机的实用工具万用表和示波器与逻辑分析仪的介绍与使用方法

PIC24FV16KM204系列通用16位闪存单片机数据手册

PIC24FV16KM204系列器件为超低功耗Microchip器件引入了许多新的模拟特性。该 16....
发表于 09-16 08:00 25次 阅读
PIC24FV16KM204系列通用16位闪存单片机数据手册

STM32F0XXX CortexM0系列单片机的编程手册免费下载

本编程手册为应用程序和系统级软件开发人员提供信息。本文详细介绍了stm32 cortex™-m0处理....
发表于 09-16 08:00 47次 阅读
STM32F0XXX CortexM0系列单片机的编程手册免费下载

单片机中的AD精度是如何定义的

AD精度指的是AD实际转换的结果和理想的计算结果之间的误差,也叫做积分非线性误差,符号是(INL) ....
发表于 09-12 16:24 118次 阅读
单片机中的AD精度是如何定义的

单片机执行编制程序的全过程解析

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可....
发表于 09-12 16:21 197次 阅读
单片机执行编制程序的全过程解析

单片机编程的常见问题解答

C 语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使 用的一种计算机语言。缺点是占用....
发表于 09-12 16:11 134次 阅读
单片机编程的常见问题解答

使用ADUC812单片机和AD603设计一个宽带放大器的报告资料免费下载

本设计由三个模块电路构成:前级放大电路(带AGC部分)、后级放大电路和单片机显示与控制模块。在前级放....
发表于 09-12 11:39 58次 阅读
使用ADUC812单片机和AD603设计一个宽带放大器的报告资料免费下载

使用LabWindows实现多个单片机与PC进行串口通信的工程文件和程序

本文档的主要内容详细介绍的是使用LabWindows实现多个单片机与PC进行串口通信的工程文件和程序....
发表于 09-12 11:37 70次 阅读
使用LabWindows实现多个单片机与PC进行串口通信的工程文件和程序

54个单片机的经典设计案例的程序和工程文件免费下载

本文档的主要内容详细介绍的是54个单片机的经典设计案例的程序和工程文件免费下载包括了:33个基础实验....
发表于 09-12 08:00 117次 阅读
54个单片机的经典设计案例的程序和工程文件免费下载

嵌入式技术是怎么一回事

物联网时代的到来,不管是从行业应用,还是智能硬件的爆发,亦或是大数据等等嵌入式技术都得到了史无前例的....
发表于 09-11 16:14 117次 阅读
嵌入式技术是怎么一回事

单片机和嵌入式之间有什么差异

嵌入式在软件系统层次,比单片机丰富了许多。
发表于 09-11 16:10 132次 阅读
单片机和嵌入式之间有什么差异

基于STC89C54RD单片机的高精度自动电阻测试仪设计

本系统由单片机STC89C54RD 控制,将被测电阻通过测量电路,将电阻的变化转变为电压和电流的变化....
发表于 09-11 15:42 74次 阅读
基于STC89C54RD单片机的高精度自动电阻测试仪设计

如何将单片机的TMR用作定时器和计数器使用

TMR1为16位宽,附带一个可编程的预分频器和一个可选的低频时基振荡器,适合与CPP模块配合使用来实....
发表于 09-11 15:36 76次 阅读
如何将单片机的TMR用作定时器和计数器使用

单片机嵌入式编程需要注意哪一些事项

在单片机嵌入式的编程过程中程序的好坏往往是由细节决定的,一个程序写的是否详细、灵活,是与日积月累的知....
发表于 09-11 15:31 79次 阅读
单片机嵌入式编程需要注意哪一些事项

使用STM32单片机实现手势识别的程序和工程文件免费下载

本文档的主要内容详细介绍的是单片机使用STM32单片机实现手势识别的程序和工程文件免费下载。
发表于 09-11 11:37 73次 阅读
使用STM32单片机实现手势识别的程序和工程文件免费下载

Kineties系列单片机中的FTM模块的详细资料概述

FTM是Kinetis 单片机中重要的一个外设,如果你仅仅认为其仅仅是能够产生PWM波来控制你的小车....
发表于 09-11 11:36 61次 阅读
Kineties系列单片机中的FTM模块的详细资料概述

单片机通信与控制应用编程实例的实例源程序免费下载

本文档的主要内容详细介绍的是单片机通信与控制应用编程实例的实例源程序免费下载包括了:单片机开发板B的....
发表于 09-11 08:00 69次 阅读
单片机通信与控制应用编程实例的实例源程序免费下载