单片机编程器的制作方法

文档序号:6590088阅读:533来源:国知局

专利名称::单片机编程器的制作方法
技术领域
:本实用新型涉及单片机
技术领域
,更具体地说,涉及一种单片机编程器。
背景技术
:单片机应用中,常以散件方式向用户提供单片机芯片,供用户自行生产相关电子产品,因此,需要通过单片机软件授权的方式来控制用户的生产数量。该授权方式分为两种其一是在提供用户单片机芯片之前预先将软件下载于芯片中;其二是直接提供未携带软件的单片机芯片,由用户自行通过单片机编程器下载软件。由于第一种方式需要破坏单片机芯片的包装,会导致芯片引脚氧化,因此,常采用第二种方式。第二种方式中,单片机编程器,是用来将软件代码写入存储器芯片或者单片机内部的工具。现有的单片机编程器多为公共平台,没有对用户进行许可控制,因此,无法对单片机编程器进行下载许可限制保护,令他人很容易窃取或复制软件,即使部分编程器中对下载次数进行了限制,但其保护不够充分,很容易被破解。此外,现有单片机编成器也无法防止用户通过拆除存储器来复制许可。这样就不能很好地控制用户生产整机的数量,从而导致经济损失。
实用新型内容本实用新型要解决的技术问题在于,针对现有技术存在的上述缺陷,提供一种能够有效防止他人窃取或复制软件从而有效控制用户生产整机数量的单片机编程器。本实用新型解决其技术问题所采用的技术方案是提供一种单片机编程器,包括电源模块以及由该电源模块供电的中央处理器主控模块、通信接口、信息存储器、存储待下载软件的程序存储器、数据存储器、加密解密模块、锁定解锁模块和编程接口,其中,所述通信接口从外部计算机装置接收编成许可信息,并将该编成许可信息传送至所述中央处理器主控模块,所述编成许可信息包括登记信息和许可信息;所述中央处理器主控模块根据所述登记信息产生可上电更新的认证码以及认证码绑定数据,并分别将该认证码和认证码绑定数据传送并存储于所述数据存储器和所述信息存储器中;所述加密解密模块分别连接至所述中央处理器主控模块和所述锁定解锁模块,对其传送的许可信息进行加密和解密;所述锁定解锁模块分别连接至所述加密解密模块和所述中央处理器主控模块,对其传送的许可信息进行锁定和解锁;经所述加密解密模块和所述锁定解锁模块得到的加密并锁定的许可信息存储在所述数据存储器和所述信息存储器中;所述编程接口一端连接至所述中央处理器主控模块,另一端可连接至外接装置,将存储在所述程序存储器中的待下载软件传送至该外接装置。所述中央处理器主控模块将所述许可信息传送至所述加密解密模块,由该加密解密模块进行加密后再将加密的许可信息传送至所述锁定解锁模块,由该锁定解锁模块进行锁定,得到所述加密并锁定的许可信息。所述中央处理器主控模块将经所述加密并锁定的许可信息传送至所述锁定解锁模块,由该锁定解锁模块进行解锁后再传送至所述加密解密模块,由该加密解密模块进行解密,得到所述许可信息,将其传至所述中央处理器主控模块。所述通信接口是RS232接口。所述信息存储器是闪存。所述信息存储器是所述中央处理器主控模块的内嵌闪存。所述数据存储器通过串行总线连接至所述中央处理器主控模块。所述数据存储器是电可擦可编程只读存储器,通过两线式串行总线连接至所述中央处理器主控模块。所示登记信息包括用户标识、产品信息和序列号。所述的单片机编成器,还包括显示模块,该显示模块连接至所述中央处理器主控模块。本实用新型通过设置可由中央处理器主控模块数据绑定的信息存储器与数据存储器,有效防止用户采用拆除存储器复制许可的方法来获得许可;且本实用新型通过设置加密解密模块以及锁定解锁模块将每一次获得的许可信息进行加密和锁定后分别存储于信息存储器和数据存储器中,单片机编程器每次上电之后要依次对存储于信息存储器和数据存储器中的许可信息进行解锁和解密,并验证无误后,才能进行编程,故可以有效防止他人篡改许可信息进行编程。因此,本实用新型能够非常有效地防止他人窃取或复制软件,从而避免用户自行采购器件生产,以控制用户生产整机数量,同时也可以避免单片机目标代码直接暴露给用户,有效防止用户采用反编译手段来获得源代码,避免由于他人窃取或复制软件而产生经济损失。下面将结合附图及实施例对本实用新型作进一步说明。图1是本实用新型单片机编程器的结构框图。具体实施方式如图1所示,本实用新型单片机编程器包括电源模块10、中央处理器主控模块12、通信接口14、信息存储器16、程序存储器18、数据存储器20、加密解密模块22、锁定解锁模块24、编程接口26以及显示模块28。其中,电源模块10通过内部电池或外接电源向该单片机编程器其他各部件供电。通信接口14连接至中央处理器主控模块12。该通信接口14可外接至外部计算机装置,以从中获取编程许可信息,并将该编程许可信息传送至中央处理器主控模块12。该编程许可信息中包含有登记信息、许可信息等,其中登记信息包括用户标识、产品信息、序列号(ID号)等固定数据。在本实施例中,该通信接口14可采用RS232接口实现。中央处理器主控模块12在接收到编程许可信息时,利用该编程许可信息的登记信息中的一固定数据与其所产生的随机数生成认证码以及认证码绑定数据,并分别将该认证码和认证码绑定数据传送至数据存储器20和信息存储器16,在二者之间建立绑定关系,每次上电时,该中央处理器主控模块12均更新该认证码和认证码绑定数据;该中央处理器主控模块12还将编程许可信息中的许可信息依次传送至加密解密模块22和锁定解锁模块24,进行加密、锁定后,保存在数据存储器20和信息存储器16中。在本实施例中,该固定数据可选用用户标识,中央处理器主控模块12以用户标识作为运算基数(8个字节),通过与其随机数生成6字节结果数据即认证码,其生成过程可如结果数据1=运算基数1+运算基数8+随机数1;结果数据2=运算基数2+运算基数7+随机数2;结果数据3=运算基数3+运算基数6+随机数1;结果数据4=运算基数4+运算基数5+随机数2;结果数据5=CRC16(运算基数1结果数据4)低字节;结果数据6二CRC16(运算基数1结果数据4)高字节。结果数据l表示结果数据的第一个字节,其他依次类推;CRC16是16位循环冗余校验(CyclicRedundancyCheck)。更新认证码的过程则可如结果数据1=运算基数1+运算基数8+CRCl+BCH;结果数据2=运算基数2+运算基数7+CRC2+CBH;结果数据3=运算基数3+运算基数6+CRCl+93H;结果数据4=运算基数4+运算基数5+CRC2+39H;运算基数1=运算基数1+运算基数8+结果数据l+BCH;运算基数2=运算基数2+运算基数7+结果数据2+CBH;运算基数3=运算基数3+运算基数6+结果数据3+93H;运算基数4=运算基数4+运算基数5+结果数据4+39H;运算基数5=结果数据l+BCH;运算基数6=结果数据2+CBH;运算基数7=结果数据3+93H;运算基数8=结果数据4+39H;结果数据5=CRC16(运算基数1结果数据4)低字节;结果数据6=CRC16(运算基数1结果数据4)高字节。当然中央处理器主控模块12也可以采用其他方式生成认证码及认证码绑定数据。加密解密模块22分别连接至中央处理器主控模块12和锁定解锁模块24,用于对许可信息进行加密和解密。锁定解锁模块24分别连接至加密解密模块22和中央处理器主控模块12,用于对许可信息进行锁定和解锁。在本实施例中,该加密解密模块22将从中央处理器主控模块12接收的编程许可文件中的登记信息以及CPU内部扰码进行编码,形成授权码,利用该授权码作为加密的主密钥,将许可信息加密;解密则是其相反过程。锁定解锁模块24则可采用标准CRC算法和非标准CRC-A算法,也就是对许可信息添加标准CRC校验码和非标准CRC-A校验码,将许可信息锁定;解锁则是其相反过程。信息存储器16和程序存储器18分别连接至中央处理器主控模块12,并与该中央处理器主控模块12构成中央处理单元。其中,程序存储器18用于存储待下载软件,信息存储器16则用于存储中央处理器主控模块12传送的认证码绑定数据以及加密并锁定后的许可信息。该认证码绑定数据与加密并锁定后的许可信息可以以一第一授权信息的形式存放在信息存储器16中。在本实施例中,该信息存储器16为Flash存储器,简称闪存,也可作为中央处理器主控模块12内嵌闪存实现。数据存储器20通过串行总线,例如I2C(Inter-IntegratedCircuit)两线式串行总线,与中央处理器主控模块12连接,用于存放中央处理器主控模块12传送的认证码和加密并锁定后的许可信息。该认证码和加密并锁定后的许可信息可以以一第二授权信息的形式存放在数据存储器20中。在本实施例中,该数据存储器20为电可擦可编程只读存储器(ElectricallyErasableProgrammableRead_OnlyMemory,简禾尔EEPROM)。在一实施例中,第一授权信息和第二授权信息的结构可举例如下表所列<table>tableseeoriginaldocumentpage6</column></row><table>[0031]其中,许可信息以伪码的方式分别存储在两个位置30H和32H,各占用两字节,具体而言,许可信息可以16位无符号整数形式存在,这意味着其最大值可为65535;存储时首先将许可信息循环左移5位,将结果高字节减5AH,低字节加5AH后保存到30H的"许可信息l",将结果高字节减85H,低字节加58H后保存到32H的"许可信息2";然后通过非标准CRC-A算法计算得到校验码,存放到"非标准CRC-A校验码"中,通过标准CRC算法计算得到校验码,存放到"标准CRC校验码"中。第一扰码则可通过将产品信息、编程器序号及许可信息1起始地址的8个字节对应相加,得出8字节结果后,通过循环累积相加法(例如,对于四个数据标识为数据1、数据2、数据3和数据4,结果1=数据1X2,结果2=结果1+数据2X2,......,结果n二结果(n-l)+数据nX2)获得。第二扰码则可通过将第一扰码与许可信息1起始地址的8个字节对应相加,然后将ID号的顺序颠倒后再顺序与前面的结果相加,得到8个字节之后,通过上述循环累积相加法得到。地址48H处存放的标准CRC校验码可通过将从"用于标识"至"ID号"的所有字节经标准CRC算法计算得到。除此之外,第一授权信息和第二授权信息也可以有其他结构。[0033]编程接口26—端连接至中央处理器主控模块12,另一端则可连接至外接装置例如外界存储器芯片或单片机,其可在中央处理器主控模块12的控制下,将存储在程序存储器18中的待下载软件传送至该外接装置例如存储器芯片或单片机内部,以实现编程。[0034]显示模块28连接至中央处理器主控模块12,用于显示单片机编程器的工作状态。该显示模块28可采用LCD液晶显示器实现。当本实用新型单片机编程器通过通信接口14接收到编程许可信息时,该编程许可信息由该通信接口14传送至中央处理器主控模块12。该中央处理器主控模块12根据该编程许可信息生成认证码和认证码绑定数据,分别将该认证码和认证码绑定数据传送至数据存储器20和信息存储器16予以存储;并将该编程许可信息传送至加密解密模块22,由加密解密模块22对其中的许可信息进行加密,得到加密的许可信息;再由该加密解密模块22将加密的许可信息传送至锁定解锁模块24,进行锁定,得到加密并锁定的许可信息。该加密并锁定的许可信息由中央处理器主控模块12保存在信息存储器16和数据存储器20中。本实用新型单片机编程器上电工作时,中央处理器主控模块12从数据存储器20和信息存储器16中读取认证码和认证码绑定数据,在二者对应正确的情况下,从信息存储器16中读取加密并锁定的许可信息,将该加密并锁定的许可信息依次传送至锁定解锁模块24、加密解密模块22进行解锁、解密,得到许可信息;在该许可信息合法时,该中央处理器主控模块12可生成新许可信息和新认证码以及新认证码绑定数据。中央处理器主控模块12并从数据存储器20中读取加密并锁定的许可信息,将该加密并锁定的许可信息依次传送至锁定解锁模块24、加密解密模块22进行解锁、解密,得到许可信息;在该许可信息合法时,该中央处理器主控模块12通过编程接口26将存储在程序存储器中的待下载软件传送至外接装置例如存储器芯片或单片机内部,实现编程。新认证码以及新认证码绑定数据分别传送并存储在数据存储器20和信息存储器16中,新许可信息则经加密解密模块22加密、锁定解锁模块24锁定后存储在数据存储器20和信息存储器16中。[0037]本实用新型通过设置可由中央处理器主控模块数据绑定的信息存储器与数据存储器,有效防止用户采用拆除存储器复制许可的方法来获得许可;且本实用新型通过设置加密解密模块以及锁定解锁模块将每一次获得的许可信息进行加密和锁定后分别存储于信息存储器和数据存储器中,单片机编程器每次上电之后要分别对存储于信息存储器和数据存储器中的许可信息进行解锁和解密,并验证无误后,才能进行编程,故可以有效防止他人篡改许可信息进行编程。因此,本实用新型能够非常有效地防止他人窃取或复制软件,从而避免用户自行采购器件生产,以控制用户生产整机数量,同时也可以避免单片机目标代码直接暴露给用户,有效防止用户采用反编译手段来获得源代码,避免由于他人窃取或复制软件而产生经济损失。权利要求一种单片机编程器,其特征在于,包括电源模块以及由该电源模块供电的中央处理器主控模块、通信接口、信息存储器、存储待下载软件的程序存储器、数据存储器、加密解密模块、锁定解锁模块和编程接口,其中,所述通信接口从外部计算机装置接收编成许可信息,并将该编成许可信息传送至所述中央处理器主控模块,所述编成许可信息包括登记信息和许可信息;所述中央处理器主控模块根据所述登记信息产生可上电更新的认证码以及认证码绑定数据,并分别将该认证码和认证码绑定数据传送并存储于所述数据存储器和所述信息存储器中;所述加密解密模块分别连接至所述中央处理器主控模块和所述锁定解锁模块,对其传送的许可信息进行加密和解密;所述锁定解锁模块分别连接至所述加密解密模块和所述中央处理器主控模块,对其传送的许可信息进行锁定和解锁;经所述加密解密模块和所述锁定解锁模块得到的加密并锁定的许可信息存储在所述数据存储器和所述信息存储器中;所述编程接口一端连接至所述中央处理器主控模块,另一端可连接至外接装置,将存储在所述程序存储器中的待下载软件传送至该外接装置。2.根据权利要求1所述的单片机编成器,其特征在于,所述中央处理器主控模块将所述许可信息传送至所述加密解密模块,由该加密解密模块进行加密后再将加密的许可信息传送至所述锁定解锁模块,由该锁定解锁模块进行锁定,得到所述加密并锁定的许可信息。3.根据权利要求1或2所述的单片机编成器,其特征在于,所述中央处理器主控模块将经所述加密并锁定的许可信息传送至所述锁定解锁模块,由该锁定解锁模块进行解锁后再传送至所述加密解密模块,由该加密解密模块进行解密,得到所述许可信息,将其传至所述中央处理器主控模块。4.根据权利要求1所述的单片机编成器,其特征在于,所述通信接口是RS232接口。5.根据权利要求1所述的单片机编成器,其特征在于,所述信息存储器是闪存。6.根据权利要求5所述的单片机编成器,其特征在于,所述信息存储器是所述中央处理器主控模块的内嵌闪存。7.根据权利要求1所述的单片机编成器,其特征在于,所述数据存储器通过串行总线连接至所述中央处理器主控模块。8.根据权利要求7所述的单片机编成器,其特征在于,所述数据存储器是电可擦可编程只读存储器,通过两线式串行总线连接至所述中央处理器主控模块。9.根据权利要求1所述的单片机编成器,其特征在于,所示登记信息包括用户标识、产品信息和序列号。10.根据权利要求1所述的单片机编成器,其特征在于,还包括显示模块,该显示模块连接至所述中央处理器主控模块。专利摘要本实用新型涉及一种单片机编程器,其包括电源模块、中央处理器主控模块、通信接口、信息存储器、程序存储器、数据存储器、加密解密模块、锁定解锁模块和编程接口。通信接口接收编成许可信息,并将该编成许可信息传送至中央处理器主控模块,编成许可信息包括登记信息和许可信息。中央处理器主控模块根据登记信息产生可上电更新的认证码以及认证码绑定数据,并分别将该认证码和认证码绑定数据存储于数据存储器和信息存储器中;加密解密模块对许可信息加密和解密;锁定解锁模块对许可信息锁定和解锁;经加密并锁定的许可信息存储在所述数据存储器和所述信息存储器中。本实用新型能够有效防止他人窃取或复制软件从而有效控制用户生产整机数量。文档编号G06F21/22GK201477604SQ200920159000公开日2010年5月19日申请日期2009年6月30日优先权日2009年6月30日发明者刘志祥,张宗继,王学军,胡俊睿申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1