不同类型单片机之间该如何对话?

cathy的头像

电子技术的飞速发展,单片机也步入一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。对于一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,但单片机之间的通信一直是困扰这种方法拓展的主要问题。本文将分析比较几种单片机之间的方式、难点,并提出一种解决方案。

“”

1 几种常用单片机之间的通信方式

①采用硬件UART进行异步串行通信。这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件 UART,有些也只有1个UART,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有硬件UART且不需与外界进行串行通信或采用双UART单片机的场合。

如何学习单片机:不要让你的优势变为劣势!

cathy的头像

如何学习单片机的问题,我设计的这四个步骤,并不是拍拍脑袋想出来的,而是根据很多的学习经验以及教学经验总结出来的一套非常科学的学习方法,下面我就简单谈谈为什么要按照四步走学习。

“”

单片机难不难学?编程难不难?

2017年参加单片机编程大赛的编程组最小年龄14岁,初级组装组最小年龄8岁。诸位单片机学习者,自问一下自己几岁了,不管从学习能力还是理解能力,我想同学们都是超过这些参赛的孩子了吧。可是为什么他们能学会,我们反而学起来困难呢?

问题就是在于你的优势,就是你的劣势。

一、鹦鹉学舌

一个10岁的孩子,刚开始学习语文,数学的时候,通常就是学习背诵,学习乘法口诀,反反复复不断的练习。我上小学的时候,三年级这一年开始学习复杂的汉字,学习数学四则混合运算,一个学习不知道要反复背诵多少遍诗词,不知道练习多少道数学题。尤其是学数学的时候,考试都会有一张演算纸,允许数学进行验算,最终在考卷上写答案。

单片机应用系统硬件设计应该考虑哪些问题?

cathy的头像

(1) 存储器扩展:

容量需求,在选择时就考虑到单片机的内部存储器资源,如能满足要求就不需要进行扩展,在必须扩展时注意存储器的类型、容量和接口,一般尽量留有余地,并且尽可能减少芯片的数量。

选择合适的方法、ROM和RAM的形式,RAM是否要进行掉电保护等。

(2) I/O接口的扩展:

单片机应用系统在扩展I/O接口时应从体积、价格、负载能力、功能等几个方面考虑。应根据外部需要扩展电路的数量和所选单片机的内部资源(空闲地址线的数量)选择合适的地址译码方法。

(3) 输入通道的设计:

输入通道设计包括开关量和模拟输入通道的设计。开关量要考虑接口形式、电压等级、隔离方式、扩展接口等。

模拟量通道的设计要与信号检测环节(传感器、信号处理电路等)结合起来,应根据系统对速度、精度和价格等要求来选择,同时还需要和传感器等设备的性能相匹配,要考虑传感器类型、传输信号的形式(电流还是电压)、线性化、补偿、光电隔离、信号处理方式等.

从本质上说,PLC其实就是一套已经做好的单片机(单片机范围很广的)系统。

PLC与单片机的差别是:

1、PLC是应用单片机构成的比较成熟的控制系统,是已经调试成熟稳定的单片机应用系统的产品。有较强的通用性。

2、而单片机可以构成各种各样的应用系统,使用范围更广。单就“单片机”而言,它只是一种集成电路,还必须与其它元器件及软件构成系统才能应用。

3、从工程的使用来看,对单项工程或重复数极少的项目,采用PLC快捷方便,成功率高,可靠性好,但成本较高。

4、对于量大的配套项目,采用单片机系统具有成本低、效益高的优点,但这要有相当的研发力量和行业经验才能使系统稳定。

从本质上说,PLC其实就是一套已经做好的单片机(单片机范围很广的)系统。

但PLC也有其特点:PLC广泛使用梯形图代替计算机语言,对编程有一定的优势。你可以把梯形图理解成是与汇编等计算器语言一样,是一种编程语言,只是使用范围不同!而且通常做法是由PLC软件把你的梯形图转换成C或汇编语言(由PLC所使用的CPU决定),然后利用汇编或C编译系统编译成机器码!PLC运行的只是机器码而已。梯形图只是让使用者更加容易使用而已。

“”

如所说,那么MCS-51单片机当然也可以用于PLC制作,只是8位CPU在一些高级应用如:大量运算(包括浮点运算),嵌入式系统(现在UCOS也能移植到MCS-51)等,有些力不从心而已,不过加上DSP就已经能满足一般要求了,而且同样使用梯形图编程,我们可把梯形图转化为C51再利用KEIL的C51进行编译。我们也能发现不用型号的PLC会选用不同的CPU,其实也说明PLC就是一套已经做好的单片机系统。

既然如此,当然也可以用单片机直接开发控制系统,但是对开发者要求相当高(不是一般水平可以胜任的),开发周期长,成本高(对于一些大型一点的体统你需要做实验,印刷电路板就需要一笔相当的费用,你可以说你用仿真器,用实验板来开发,但是我要告诉你,那样做你只是验证了硬件与软件的可行性,并不代表可以用在工业控制系统,因为工业控制系对抗干扰的要求非常高,稳定第一,而不是性能第一,所以你的电路板设计必须不断实验,改进)。

当你解决了上述问题,你就发现你已经做了一台PLC了,当然如果需要别人能容易使用你还需要一套使用软件,这样你可以不需要把你的电路告诉别人。你也不可能告诉别人。

“”

这样一看PLC其实并不神秘,不少PLC是很简单的,其内部的CPU除了速度快之外,其他功能还不如普通的单片机。通常PLC采用16位或32位的CPU,带1或2个的串行通道与外界通讯,内部有一个定时器即可,若要提高可靠性再加一个看家狗定时器问题就解决了。

另外,PLC的关键技术在于其内部固化了一个能解释梯形图语言的程序及辅助通讯程序,梯形图语言的解释程序的效率决定了PLC的性能,通讯程序决定了PLC与外界交换信息的难易。对于简单的应用,通常以独立控制器的方式运作,不需与外界交换信息,只需内部固化有能解释梯形图语言的程序即可。

实际上,设计PLC的主要工作就是开发解释梯形图语言的程序。现在的单片机完全可以取代PLC。以前的单片机由于稳定性和抗电磁干扰能力比较的弱和PLC是没有办法相比的,现在的单片机可能已经做到了高稳定性和很强的抗干扰能力在某些领域已经实现了替换。

本文转载自:芯方式
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱:cathy@eetrend.com 进行处理。

点击这里,获取更多关于应用和技术的有关信息
点击这里,获取更多工程师博客的有关信息

围观 11

单片机很简单,有点电子底子的都可以玩会。

玩单片机可以有以下几个等级

1,纯硬件DIY:这一级玩法很简单,只要有一个ISP下载线(和手机数据线的性质差不多),自己制作硬件电路,然后把单片机的程序烧到单片机里就行了。不需要懂编程。

在我的网站里有许多小制作,每一个制作都有提供HEX文件,是下载给单片机的程序。很简单,和玩数字电路一样简单。

2,半编程DIY:硬件制作也会了,纯硬件DIY已经熟悉的时候,就可以试着玩玩编程了。半编程DIY并不是自己从头开始写程序,一开始也没有这个水平。

这一部是照着别人已经写好的程序,然后在现在程序上改一改数值、换一换语句。比如我的SHOOK16摇摇棒,就可以自己在源程序里只改字幕部分的程序代码,而不去管应用程序和硬件驱动程序是如何实现的。

3,全编程DIY:玩够了别人的制作,用腻了别人的程序,是不是也应该自己写点程序玩玩的,写点前无古人的程序,做些从没有过的制作。

这一阶段就是全编程DIY。但是并不是说自己要一字一句的写程序,那会很没有意思的。现在的单片机程序基本已经模块化了,要用到延时就复制延时程序模块到自己的程序里,要用到定时器就复制定时器的程序。

比如在我的网站里的“编程”栏目中就有许多现成的程序模块,可以直接使用

几个误区

因为传统的教学方法都是一板一眼的,这和中国的教学体制有关。但这不是有效的教学。就我自己的经验和多年来回答初学者的问题中总结了一些更有效的学习方法。

误区1

一定要学习汇编才可以入门。学习汇编语言已经是很古老的事情了,实际上不需要会汇编也可以玩好单片机。

而且汇编的用处不大,只有精准延时和其他一些很少用的程序才会用汇编语言。入门来讲用C语言是最好的。

误区2

一定要了解单片机的指令集、寄存器才可以入门。依我的观点,那些是没有必要学的,如果学了反而会对单片机失去兴趣。

有一些初学者来信和我讲,他在学习单片机的中断原理,认为学好这个才可以入门。但是结果是越学越没有意思,越学越困以理解。

是呀,都还没有用过中断,就去学原理,是本末倒置的。所以建议大家从硬件DIY开始,让单片机DIY越玩越好玩,越学越有乐趣,这样才可以用爱好作为源动力,推进单片机的学习、研究。

误区3

要买一个单片机开发板才可以入门。依我看,单片机开发板对于单片机入门是没有多大用处的。

我建议采用面包板上做实验学习单片机,成本低、又可以动手DIY硬件,激发思考,积累的经验更多。

误区4

以AT89S52单片机入门。AT89S52的内部资源很少,一般的东西都需要外部,而且最小系统必须接晶振和复位电路,很麻烦。

可是为什么大多数的爱好者还在用AT的单片机呢?这是因为现有的教材都以AT单片机为主,初学者以此入门,习惯了也就不想换其他的产品了。

另外,主动创新、学习新技术、新产品的能力不足,使得大家一直等在AT的圈里来开发。

比如我的mini1608电子钟的精简设计是基于STC的单片机开发的,而AT的单片机却无法实现。建议用STC的新系列单片机入门,会直接进入更高的起点。

本文转载自:嵌入式资讯精选的博客
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱:cathy@eetrend.com 进行处理。

点击这里,获取更多关于应用和技术的有关信息
点击这里,获取更多工程师博客的有关信息

围观 9

在数字电路,我们经常会遇到逻辑电路,而在 C 语言中,我们则经常用到逻辑运算。二者在原理上是相互关联的,我们在这里就先简单介绍一下,随着学习的深入,再慢慢加深理解。

首先,在“逻辑”这个概念范畴内,存在真和假这两个逻辑值,而将其对应到数字电路或 C 语言中,就变成了“非 0 值”和“0 值”这两个值,即逻辑上的“假”就是数字电路或C 语言中的“0”这个值,而逻辑“真”就是其它一切“非 0 值”。

然后,我们来具体分析一下几个主要的逻辑运算符。我们假定有 2 个字节变量:A 和 B,二者进行某种逻辑运算后的结果为 F。

以下逻辑运算符都是按照变量整体值进行运算的,通常就叫做逻辑运算符:

“”

以下逻辑运算符都是按照变量内的每一个位来进行运算的,通常就叫做位运算符:

“”

我们今后要看资料或芯片手册的时候,会经常遇到一些电路符号,图 5-1 所示就是数字电路中的常用符号,知道这些符号有利于我们理解器件的逻辑结构,尤其重点认识图 5-1 中的国外流行图形符号。在这里我们先简单看一下,如果日后遇到了可以到这里来查阅。

“图
图 5-1 逻辑电路符号

本文转载自:21IC中国电子网
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱:cathy@eetrend.com 进行处理。

点击这里,获取更多关于应用和技术的有关信息
点击这里,获取更多工程师博客的有关信息

围观 18

有效使用单片机外设功能:(5)程序设计(下)

cathy的头像

上期我们已经学习了将程序放在地址空间中,并在向量表中显示保存位置的内容。本期将介绍在执行程序及产生中断时CPU内会发生什么变化。

引导程序的运行―程序计数器

一般来说,程序就是计算机将所要进行的处理按顺序排列的指令集。在单片机中,将程序保存在地址空间(存储器 空间)中(上期曾介绍过),并由CPU来执行(处理)指令。假设地址空间中的一个地址保存一条指令,先执行某个地址中的指令(如“将值置位到CPU中”处理),接着执行下一个地址中的指令,接下来再执行下一个地址中的指令……,像这样通过连续执行指令,便可执行程序。

那么,CPU是如何判断执行指令的顺序呢?在单片机中,程序被执行的时候“程序计数器(PC)”的值也同时被更新。存放在CPU内的指令地址中,程序计数器存储有下一条CPU将要执行的指令所在的地址。执行了某个地址的指令后,下一个该执行哪个地址中的指令呢?这个答案由程序计数器来告诉你。

一般来说,程序被保存在连续的地址中, 再由CPU按顺序执行存放在各个地址中的指令。图1为程序计数器的示意图。图中,假定(1)执行地址1000h中的指令,(2)执行地址1000h中的指令后,程序计数器的値自动增加一个量并显示出下一个地址1001h,接下来,(3)CPU执行地址1001h中的指令。

玩单片机的都应该听说过这几个词。一直搞不太清楚他们之间的区别。今天查了资料后总结整理如下。

ISP:In System Programing,在系统编程

IAP:In applicating Programing,在应用编程

ICP:In Circuit Programing,在电路编程

ISP是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过ISP接口线来写。

IAP虽然同样也是在板级上进行编程,但是是自已对自已进行编程,在应用中进行编程,也即可以只是更改某一部分而不影响系统的其它部分,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。

打个比喻吧:

1、ISP是把房子拆了再重造一间,那么在造好之前当然是不能住人的啦!

2、IAP是在造好的房子里边进行一些装修,当然人可以继续住啦!

ICP是在电路编程,是LPC芯片的编程方式,相当于ATMEL的ISP,而LPC的ISP就相当于ATMEL的IAP了。

ISP于IAP的区别

ISP:in system programming, 在系统编程

IAP: in applicatin programming 在应用编程

但两者的操作方式,结果和应用场合有什么区别

什么是ISP:

用写入器将code烧入,不过,芯片可以在目标板上,不用取出来,在设计目标板的时候就将接口设计在上面,所以叫"在系统编程",即不用脱离系统;

什么是IAP:

在应用编程,有芯片本身(或通过外围的芯片)可以通过一系列操作将code写入,比如一款支持Iap的单片机,内分3个程序区,1作引导程序区,2作运行程序区,3作下载区,芯片通过串口接收到下载命令,进入引导区运行引导程序,在引导程序下将new code内容下载到下载区,下载完毕并校验通过后再将下载区内容复制到2区,运行复位程序,则Iap完成;

应用场合:

1,ISP 程序升级需要到现场解决,不过好一点的是不必拆机器了;

2,IAP 如果有网管系统的话,用网管下载一切搞定,人不用跑来跑去,

这可能是他们的优点或应用吧

在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。 ISP和IAP很相似,都是不需要把芯片从板子上拔出来,就达到了用PC-MCU的编程接口(JTAG、串口、双绞线、SPI等)搞定新版本的升级的目的。MCU内部都是首先执行一段独立的Boot代码(这段Boot代码一般是出厂预置,或使用编程器烧录的,通常只有1k或4k,SST通常是占用一块独立的Block,Philips通常是让BootROM地址与其他Flash重叠,以达到隐藏的效果),Boot负责控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与PC计算机的通信方式(如,ether网口),将用户指定的某个在PC上编译完成的MCU可运行的二进制代码文件编程入MCU内的程序存储器。

ISP和IAP最大的不同是:由谁来触发。

ISP有4种触发方式:

1、由外部硬件电路:如VDD保持高电平,给RST连续3个脉冲;

2、检测状态位:如ISPEN,为0时PC指针从0000H开始执行;为1时,通过“引导向量”计算出“ISP代码”的位置。每次复位后都会检测该状态位;

3、中止控制符信号触发芯片复位:中止控制符信号就是指在异步串行口的接收脚上出现长 达一帧长度的低电平,这里一帧的长度与异步串行口的工作模式有关。

4、直接调用ISP:用户程序也可以调用,但是很危险。

4种方式的目的是相同的——进入ISP子程序,比如Philips出厂的ISP子程序在1E00H-1FFFH,只要能引导PC指针指向1E00H就可以了。

而进入ISP代码的目的是:进入BootROM。

IAP的触发比较简单一些,没有外部触发。通过一些指示位(SST为SC0/SC1、SFCF;Philips为一段IAP子程序,保存在FF00H~FFFFH地址空间中),达到引导到BootROM的目的。

殊途同归,ISP、IAP所进入的BootROM里面驻留的Boot代码,才是最终目标。

最后一种:并行编程模式。不需要BootROM,直接设置芯片的多个引脚来让芯片识别命令(如:擦除、写入、验证等),从P口传地址、数据,就可以写入Flash

用LPC2000的IAP,你自己分配好FLASH空间,指定一个BLOCK用来存放你的数据,然后通过IAP进行写操作。每次开机后,从这个BLOCK读你的数据。

IAP的实现

通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:

1)检查是否需要对第二部分代码进行更新

2)如果不需要更新则转到4)

3)执行更新操作

4)跳转到第二部分代码执行

第一部分代码必须通过其它手段,如JTAG或ISP烧入;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一道烧入,以后需要程序更新是再通过第一部分IAP代码更新。

对于STM32来说,因为它的中断向量表位于程序存储器的最低地址区,为了使第一部分代码能够正确地响应中断,通常会安排第一部分代码处于Flash的开始区域,而第二部分代码紧随其后。

在第二部分代码开始执行时,首先需要把CPU的中断向量表映像到自己的向量表,然后再执行其他的操作。

如果IAP程序被破坏,产品必须返厂才能重新烧写程序,这是很麻烦并且非常耗费时间和金钱的。针对这样的需求,STM32在对Flash区域实行读保护的同时,自动地对用户Flash区的开始4页设置为写保护,这样可以有效地保证IAP程序(第一部分代码)区域不会被意外地破坏。

ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。ISP和IAP技术是未来仪器仪表的发展方向。

1、ISP和IAP的工作原理

ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。

IAP的实现相对要复杂一些,在实现IAP功能时,单片机内部一定要有两块存储区,一般一块被称为BOOT区,另外一块被称为存储区。单片机上电运行在BOOT区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了IAP功能。

2、ISP和IAP在单片机中的应用

2.1 传统编程方法的不足

在一般的单片机的实验或开发时,编程器是必不可少的装置。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。普通的编程器价格从几百元到几千元不等,对于一般的单片机用户来说还是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,这样不但麻烦也很容易对芯片和电路板造成损伤,另外在程序需要升级做改动时,必须将设备返厂或是技术人员到现场操作,既不方便也造成成本浪费。

2.2 ISP和IAP的优点

ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。

IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器,可以通过现有的INTERNET或其它通讯方式很方便地实现远程升级和维护。

2.3 产品分析

目前市场上不少的单片机具有ISP和IAP功能。

ST公司的μPSD32××系列单片机片内带128KB/256KB的FLASH存储器及32KB Boot ROM,通过JTAG串行口能很容易地实现ISP功能。IAP功能则可由用户在应用中实现。

ATMEL公司的单片机AT89S8252,提供了一个SPI串行接口对内部程序存储器编程(ISP)。SST公司的单片机SST89C54,其最大的特点内部有两块独立的FLASH存储器,具有IAP(应用中在线编程)功能,对于8052系列的其它公司的单片机(ATMEL、 WINBOND、ISSI)可以直接代换,软硬件无须做任何改动。

PHILIPS公司的P89C51RX2xx系列是带ISP/IAP的8位Flash单片机。PHILIPS公司为了使ISP技术和IAP技术得以推广,在芯片上免费提供了Boot ROM固件,并且巧妙地解决了固件和FLASH的地址覆盖问题及一些具体实现细节问题,使它们的实现变得简单。

此外在外围器件中ST公司的PSD系列产品片内带大容量存储器,支持ISP及IAP功能。

ISP,In System Programing

主要是指代芯片的烧写方式,以往写片子需要把片子拿下来,离开电路,用编程器烧,换句话说,芯片不能不脱离应用系统进行写入。ISP 主要针对这个问题,使用JTAG或者串行口(MCU 内部有Boot Loader ,通过指定的方式激活之,它可以和PC或其它上位机通过串口联系,不用使单片机离开应用系统而更新内部的程序/设置)进行程序的烧写操作。

因此,具有ISP 功能的MCU 可以不使用编程器进行编程。当然,实现ISP 可能需要一些硬件电路支持,具体的在数据手册中有说明。IAP,In Application Programing单片机内部具有一些可擦写的非易失存储器,如Flash。在单片机独立运行时,不具备IAP 功能的单片机并不能对Flash的数据进行修改,比如,对自身的某一个模块的代码,数据进行修改。具备了IAP 功能的MCU ,能够通过使用各自公司开发的技术,对于自身进行修改。

简言之:ISP=>修改MCU 内部数据需要有外部介入;IAP=>修改MCU 内部数据可以不用外部介入。二者可以说是数据更新的一种实现机制。一般具备ISP 功能后,就不要编程器了,而是使用下载线进行编程工作。但是不是说他们就一定不支持编程器了,具体型号具体分析。是否需要仿真器进行仿真和是否具备ISP和IAP没有必然的联系。只不过具备了IAP功能,可以在MCU内写入监控程序,模拟一个仿真器,当然,这个监控程序是要消耗资源的,和使用硬件的仿真器还有一定的差异。IAP的应用,在51上可能比较多,就是SST出的那个SoftICE功能。他的MCU 其实不具备ISP功能,需要使用编程器烧一个Boot Loader进去,然后,利用IAP功能,就可以通过串行口下载数据了。SST的那个,使用的是自己开发的一个SoftICE软件,和Keil C的Mon51接口。看DataSheet上说,先要用编程器烧Boot Loader进去,然后,用串口烧SoftICE进去,然后就可以用了。

本文转载自:懒懒的小四的CSDN博客
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱:cathy@eetrend.com 进行处理。

点击这里,获取更多关于应用和技术的有关信息
点击这里,获取更多工程师博客的有关信息

围观 15

有效使用单片机外设功能:(5)程序设计(上)

cathy的头像

我们在之前的四期中对利用单片机的功能进行程序设计进行了说明。单片机内置了非常便于使用的外设功能,大家一定也能感受到单片机可应对各种要求的能力。但是,如果要有效地运行单片机,程序是不可或缺的,那么程序到底是如何运行的呢?从本期开始,我们将分两期连续向大家介绍单片机与程序的关系。

关注单片机的存储器

在此之前,GR-SAKURA电路板(搭载瑞萨电子单片机“RX63N”)的程序设计是使用Web编译器来进行的。将通过编译器搭建的程序(Object Code,结果代码)如同写入U盘一样将之传送到GR-SAKURA电路板后再执行。那么,问题来了。写入(传送到)单片机的程序应该保存在哪儿呢?另外,程序又是如何被执行的呢?在解答这些问题的同时,让我们一起来了解一下单片机与程序的关系吧。

首先来了解存储器﹑主存储器和外置存储器的两种作用

记忆(保存)程序和数据的地方即存储器。存储器有以下两种类型。

主存储器

CPU能够直接进行存取的存储器,用于保存正在执行中的程序和数据

外置存储器(辅助存储器、二级缓存器)

有效使用单片机外设功能:(4)中断功能

cathy的头像

我们已经介绍了应用单片机的外设功能的结构和使用方法。本期我们介绍更有效地应用单片机而必须的外设功能——“中断功能”。

提高作业效率的“中断功能”指的是什么?

我们回顾一下本系列第二期的“定时器”篇中简单介绍过的“中断功能”概念。任何人都有过这样的经验,就是“将鸡蛋放进沸腾的热水中,直到鸡蛋煮熟的10分钟内要确认好几次时钟”的经历。在单片机的世界中也同样,在等待某种状态达成时,具有对对象进行定期检查的方法。例如,在等待向GPIO(通用I/O端口)的输入从0变为1时,程序可以一定的间隔来检查GPIO的状态。这种处理被称为“轮询”。

轮询虽然是一种了解状态变化的简单方法,但是如果检查的频度低(间隔长)就会错过变化,如果频度过高(间隔短),即使查也查不到变化“空耗”。由于轮询通过简单的程序便能完成处理,所以在掌握对象的变化频度时是有效的。但是,进行多次检查也会给单片机带来负荷,对功耗不利。

因此就要用到本期介绍的“中断功能”。产生中断时,CPU会暂时停止正在执行的任务,转而进行别的任务。也就是有别的任务“穿插”进来的意思(图1) 。当中途穿插进来的任务结束后,CPU再返回处理原来的任务。

页面