1、MCU的ISP和IAP功能
现在MCU已经普遍采用Flash型的EEPROM作为程序存储器,Flash结构的存储器写入时可以按字节操作把1写成0,擦除时都是按扇区操作,把0写成1。它的流行与普及为ISP/IAP功能的实现提供了技术基础。
ISP,In System Programming,它的意思是“在系统编程”,即MCU不需要从电路板上取下就可以编程写人最终用户代码,已经编程的器件也可以用ISP方式擦除或再编程,从而改变了单片机系统的固化程序升级需拔插单片机芯片、使用专用编程器进行烧录的麻烦方式,轻松实现在单片机系统电路板上对单片机芯片内固化的程序进行升级。
IAP,In Application Programming,它的意思是“在应用编程”,即MCU在运行时程序存储器可由程序自身进行擦写。也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是程序运行中的数据存储。ISP/IAP的区别是:ISP通常是在手工操作下整片擦除、编程,需要简单的硬件资源;而IAP却是在某段程序的控制下对另外一段程序Flash进行读写,可以控制对特定地址的读写操作。实际上单片机的ISP功能就是通过IAP技术来实现的,即芯片在出厂前就已经有一段芯片制造商的boot程序在芯片里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。其实在系统编程是通过厂商的boot程序对片内Flash存储器进行擦除/编程的方法,而在应用编程是用户的应用代码对片内Flash存储器进行擦除/编程的方法。正是因为有了IAP,从而使得MCU可以将数据写入到程序存储器中,数据如同烧入的程序一样,掉电不丢失。IAP技术的普及对于高档仪器仪表的智能化意义重大,使得仪器的程序可以根据实际情况进行改变和调整。
2、数据加密
加密就是把明文变成别人看不懂的密文,然后发送给自己想要的人,接收方用配套的解密算法又把密文解开成明文,这样就不怕在传送的路上被别人截获而泄密,以此来防止非授权用户使用该数据。
数据加密中的明文是指原始的或未加密的数据,需要通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;密文,即明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文,不应为无密钥的用户理解,用于数据的存储以及传输。传统的加密方法有两种,替换和置换。替换是使用密钥将明文中的每一个字符转换为密文中的一个字符。而置换仅将明文的字符按不同的顺序重新排列。单独使用这两种方法的任意一种都是不够安全的,但是将这两种方法结合起来就能提供比较高的安全程度。
加密方式分为对称加密和不对称加密。对称,就是采用这种加密方法的双方使用同样的密钥进行加密和解密。在对称加密算法中,数据发送方将明文和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用与加密相同的密钥及相同算法的逆运算对密文进行解密,才能使其恢复成可读明文。这就要求加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信安全至关重要。由于其计算量小、加密速度快、加密效率高,对称性加密通常在消息发送方需要加密大量数据时使用。如果用户每次使用对称加密算法时,都使用其他人不知道的惟一密钥,安全性是可以得到保证的。
不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发送方必须首先知道接收方的公钥,然后利用接收方的公钥来加密原文;接收方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发双方在通信之前,接收方必须将自己早已随机生成的公钥送给发送方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
|