专用IC解密技术--AVR的应用技巧

发布者:BlissfulJourney最新更新时间:2012-10-15 来源: 21ic 关键字:IC解密技术  AVR  ICC 手机看文章 扫描二维码
随时随地手机看文章

AVR与传统类型的单片机相比,在IC芯片解密技术中除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。

但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和长处。

功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。IC芯片解密就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的发挥出车的性能。

AVR具有上手入门快,开发方便简单的特点,但要充分体会和发挥AVR的优点,还需要应用工程师本身的硬软件设计开发能力IC芯片解密的不断学习、实践提高。

“外行看热闹,内行看门道”,对于有一定基础的嵌入式和单片机系统设计开发的工程师,不妨先简单尝试一下AVR。

开发环境与工具:PC+下载线+实际的系统板

PC上的开发软件:

AVR Studio(Free)汇编+汇编调试+高级语言调试+软件仿真

ICC、CVAVR、BASCOM-AVR 高级语言程序开发+程序下载。其中一个购买正版全功能,作为主要的开发环境,其它使用DEMO版,作为辅助及参考。

AVR ISP下载线:

STK200 and STK200+ and STK300 ISP programmer。通过PC的打印机口,采用ISP技术将系统运行代码(HEX、BIN)和数据写入AVR芯片的Flash和EEProm中,编程AVR的配置熔丝位和加密位。支持决大多数的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都内含对该下载线的支持程序。免费专用的下载程序:SLISP、PonyProg2000等。

尽量不使用仿真器的建议:

在开发和调试系统程序、IC芯片解密时,有许多人完全依赖于IC芯片解密,一旦离开了仿真器时就感觉无从下手。其实,由于AVR的Flash存贮器可方便的使用ISP技术在线的多次擦写,因此建议尽量不使用(依赖)仿真器来开发和调试程序。

在实际开发过程中,程序的调试可以从下几方面入手:

现在的高级语言编译器(如C编译器)可以产生效率很高的机器代码,因此建议大家尽量使用高级语言编写系统程序。

使用Atmel公司提供AVR Studio软件模拟仿真环境,以及其他的软件模拟仿真环境(BASCOM-AVR)。

尽可能使用高级语言编写系统程序。

利用目标板上的LED、LCD或异步串口。见附件“没有仿真器的情况下如何开发AVR”的介绍。

提高硬件设计的合理性:

尽量合理和充分使用AVR片内的资源,如EEPROM、A/D、内部的RC振荡源。

尽量采用串口通信连接的外围器件,大容量的存储器、LCD控制器、打印机、不用8279(LED数码管+键盘)而使用7279等。除了必须外扩RAM(如语音和图象),一般不提倡使用并行扩展(573+译码电路),减小硬件和连线以及PCB板上错误的出现概率,同时也提高了系统的可靠性。并行扩展向串行扩展是发展趋势。现在有大量的新的外围器件采用高速的串行接口,如A/D、D/A、RTC、存储器等。

尽量使用以及在目标板上预留ISP程序下载接口,或使用IAP技术。

优点:ISP接口与I/O的兼容性比JETAG好。

缺点:不能在线调试

注意和掌握AVR配置熔丝位的使用:

尽量合理采用高级语言设计编写系统程序。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗?

现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和时序要求特严的场合可以采用混合编程的方法来解决。

更深入和全面的掌握各种串行通信协议的规程:

嵌入式系统目前以大量的使用串行接口外围芯片和各种通信接口,如RS232、两线(I2C)、三线(SPI)、单总线、USB、CAN、TCP/IP等。开发人员和程序员应了解低层协议,熟悉硬件怎样和如何实现低层协议,如何定义可靠的上层应用协议,以及低层协议驱动同上层应用协议之间的接口设计(中间层软件的实现)等。

硬件工程师的软件编写能力要提高,采用标准程序编写方式、完善的软件整体框架的设计、良好的数据结构和程序结构系统。(计算机软件专业的程序设计员对硬件不熟悉、大部分是在操作系统支持下编写软件,对低层接口和协议的驱动层以及接口也不了解,往往也编写不出好的单片机系统程序。)

通信接口的编写应尽量

.采用中断+缓冲区,

.分层+结构化设计,

.尽量不使用轮循方式(降低AVR的效率)。参见URAT(RS232)驱动+中间层软件示例。

采用好的系统设计模式:

尽量不使用传统的前后台(中断)系统设计模式,任务之间相互影响和干扰,无法定时操作。如设计一个采用动态扫描方式驱动的8位LED数码管显示+动态扫描的4*4矩阵键盘。

采用TimeTip+状态机设计+CASE结构,实现多任务并行运行系统设计方法。或时间触发式的系统设计。(见:《时间触发嵌入式系统设计模式》中国电力出版社 2004.6)

移植小型嵌入式操作系统,如UCOS-II。在网上有些免费的基于AVR的简洁的操作系统。

提高C语言的编程能力和软件应用水平:

熟悉和用好C中的数据结构体、指针应用、内存管理等较高级的应用。

熟悉和了解你所使用的高级语言开发平台的特点。这些平台是针对某一类处理器的,包含许多特殊的不兼容的语句和扩展的结构、语句、函数等。尽管使用方便,但由于其不透明性和时间的不确定性,因此要合理使用。如C中的getchar()、putchar()等。

AVR有多个开发平台,每个都有其特点和不足。能够综合使用这些平台,相互互补,能够提高开发效率。如通过ICC、CVAVR的程序生成器CodeWizard学习和了解AVR的硬件设置,简化计算,快速的生成程序基本模块,如“一个URAT(RS232)低层驱动+中间层软件示例”。

关键字:IC解密技术  AVR  ICC 引用地址:专用IC解密技术--AVR的应用技巧

上一篇:基于AVR单片机CAN总线的电梯召唤显示板设计
下一篇:基于ATmega16单片机的数字电子秤的设计

推荐阅读最新更新时间:2024-03-16 13:10

AVR开发 Arduino方法(附一) 工具链与调试技术
前文中所有代码都可以使用Arduino IDE编译通过,电路图都是使用Fritzing绘制的。Arduino IDE和Fritzing都可以运行在多种操作系统上,可以通过以下方式获取它们: 1. Arduino IDE 在浏览器中访问https://www.arduino.cc/en/Main/Software: 找到“Download the Arduino IDE”,根据自己的操作系统下载相应版本的Arduino IDE即可。如果你使用的是Windows操作系统,建议选择“Windows Installer”版本,可以省去安装驱动程序的麻烦。 Arduino IDE安装完成后,还需要对它的配置文件进行一些修改,以便进行
[单片机]
<font color='red'>AVR</font>开发 Arduino方法(附一) 工具链与调试<font color='red'>技术</font>
使用AVRStudio设置AVR熔丝位及烧写程序
AVR Studio是ATMEL指定用于开发AVR MCU的官方软件,其编程功能最为强大。下面介绍使用AVRStudio烧写程序及熔丝快速入门。   ● 使用AVRISP方式烧写程序及配置熔丝位   对软硬件进行初始配置,并正确设备连接,就可使用AVRISP进行联机了。   打开AVRStudio,点击主窗口中的图标 前面标有Con的那个图标。出现如下图画面: (点击图片放大)   在左边,选择“STK500 or AVRISP”,在右边,选择“Auto”(或具体的COM口),点击“Connect”进行联机。   正常联机后,将弹出如下窗口:   (1)程序编程面板: (点击图片放大) ● Device里面选择好对应
[单片机]
使用AVRStudio设置<font color='red'>AVR</font>熔丝位及烧写程序
如何自制一个AVR单片机ISP下载线
自制AVR单片机ISP下载线单片机编程器的作用是将调试好的程序烧写到单片机的存储器中。本文介绍的AVR单片机ISP下载线的成本只有10元左右,非常适合初学者自制。 AVR单片机的程序可以使用串行在线编程(ISP)方式下载写入,即可直接在电路板上进行程序的烧写和修改,所需的装置就是一根ISP下载线。 本文介绍的ISP下载线使用计算机的并口对单片机编程.不仅支持AVR单片机,也支持对51单片机中AT89S系列单片机的编程。 一、下载线电路 下载线的电路见图1。该下载线是STK200/300型的下载线。74HC244是8缓冲器电路,用来作计算机并口和单片机的缓冲隔离。图1中的LPT连接到计算机的并口,作计算机上的下载软件和单片机进行
[单片机]
如何自制一个<font color='red'>AVR</font>单片机ISP下载线
基于AVR32设计的智能防盗与火灾预警系统
一、项目概述 1.引言 本项目以Atmel公司的AVR32 AT32UC3A处理器为核心,以uClinux操作系统为平台,通过广角摄像头进行视频(或图像)采集,并运用算法实现人脸识别(室内防盗)或火焰识别(室外防火)等功能。在此基础上,扩充出其他的功能: (1)通过以太网端口及相关协议,实现系统平台与远程计算机的通信,从而实现多媒体数据的传送与远程监控功能。 (2)通过SD模块及扩充出的GPRS(GSM)模块,实现系统平台与个人终端设备PDA之间的通信,从而实现短信或电话提醒,报警与预警等功能。 本项目采用的硬件平台为EVK1100。考虑到芯片处理能力与实时性要求,可能换用性能更强,信号处理能力更为出色的AT32AP7系
[电源管理]
基于<font color='red'>AVR</font>32设计的智能防盗与火灾预警系统
AVR单片机的RTOS-AVRX应用
摘 要 :详细介绍AVR系列单片机的专用实时嵌入式操作系统AVRX的特点,并以ATmega16单片机为平台,结合AVR单片机应用实例分析AVRX的内核代码及移植方法,并对系统的相关性能进行测试。采用AVRX可以大大简化程序设计,满足实时要求,降低编程难度,提高系统可靠性。本文为在AVR单片机上进行嵌入式系统开发提供了参考。 关键词 : RTOS AVRX AVR单片机移植 系统测试 引 言 随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式。在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因
[单片机]
为何AVR使用写1作为清0中断标志位的手段
关于“为何AVR使用写1作为清0中断标志位的手段”这个问题我看过很多的相关资料。在AVR的手册中并没有给出为什么的解释,只是强调了“写1清0中断标志位”。同时我也看到很多新的芯片,如DSP等,也是采用写1清零标志位的。但没有找到更专业的,或从根源上的说明,如果那位有这方面的知识或资料,欢迎深入的讨论学习。 下面是我个人的分析和解释,供参考。 1。首先从硬件上的考虑,通常的读写处理单元是以8BIT字节为单位的,因为数据总线一般是8位的倍数。这样对位的操作就不方便,不能直接写1位(会改变其它的位),需要先读到寄存器,然后改动1位,最后回写,需要更多的时间。 2。对于RAM操作一般采用直接写的方式,所以对RAM基本上没有直接的位操作指令
[单片机]
基于AVR的串口与PC机通信代码(uart8位数据)
/************************************ AVR时钟:8.00MHz *波特率9600(51)8位数据,1位停止,当波特率设置为19200时,UBRR=25,4800=103 *注:波特率设置9600最佳,别的数据不稳定,不同波特率对应的UBRR值参考手册 *PC机向开发板发送一个字符,开发板将其大写字母回写给PC机 ***********************************/ #include iom16v.h #include macros.h void USART_Init( unsigned int baud ) { /* 设置波特率,baud的值查数据手
[单片机]
基于AVR单片机的高精度频率调节器
1?引言? 在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。 Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。? 本文
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved