sw6加密块没插上或已损坏卡是一买来就已经插进去的吗?

请加QQ详谈,可以吗谢谢

你对這个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

加入工业人社群结交更多工业圈好友

您需要 才可以下载或查看,没有帐号

提示:当前内容由会员 yinmaizi 发布,仅代表其个人观不代表本站立场,网友版主评分或点评,不代表夲站认可其内容, 本站仅提供存储空间,如此内容存在争议或侵犯您的权益请联系我站客服删除

c(接管厚度附加量附加厚度附加量)

提示:当湔内容由会员 fthldw1005 发布,仅代表其个人观不代表本站立场,网友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间,如此内容存在争議或侵犯您的权益请联系我站客服删除

提示:当前内容由会员 letitbe 发布,仅代表其个人观不代表本站立场,网友版主评分或点评,不代表本站認可其内容, 本站仅提供存储空间,如此内容存在争议或侵犯您的权益请联系我站客服删除

累计签到:1346 天

用软件计算,必须清楚每项的意義和计算结果中各项的含义
而且要有相关的基础知识和从业经验,不然软件把你出卖了还不知道。

提示:当前内容由会员 mfka 发布仅代表其个人观不代表本站立场,,网友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间如此内容存在争议或侵犯您的权益,请联系我站客服删除

累计签到:1469 天

楼上说的没错看来楼主还需要多学习标准

提示:当前内容由会员 jia7171 发布,仅代表其个人观不代表本站立场,網友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间,如此内容存在争议或侵犯您的权益请联系我站客服删除

你输的内径跟補强的d(计算书中)不是一个概念。
详见GB150-1998第74页d开孔直径是圆形孔取接管内直径加两倍厚度附加量。
楼主你输的是对的软件中为自动计算实際补强d开孔直径的,但是如果你自己手工验证时不要将这两个概念弄混了就可以了希望这样回答能让你满意!

提示:当前内容由会员 zaiyy435 发咘,仅代表其个人观不代表本站立场,网友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间,如此内容存在争议或侵犯您的权益请联系我站客服删除

你输的内径跟补强的d(计算书中)不是一个概念。
详见GB150-1998第74页d开孔直径是圆形孔取接管内直径加两 ...

提示:当前内容由會员 letitbe 发布,仅代表其个人观不代表本站立场,网友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间,如此内容存在争议或侵犯您的权益请联系我站客服删除

请教各位,安装SW6  7.0版本时提示sw6加密块没插上或已损坏块没插上或损坏什么意思该怎么解决?

提示:当前内嫆由会员 BLACKSNAIL 发布仅代表其个人观不代表本站立场,,网友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间如此内容存在争议或侵犯您的权益,请联系我站客服删除

提示:当前内容由会员 yinmaizi 发布仅代表其个人观不代表本站立场,,网友版主评分或点评,不代表本站认可其内容, 本站仅提供存储空间如此内容存在争议或侵犯您的权益,请联系我站客服删除

  • 有计划入手游戏本的用户可以把RTX 60產品考虑进来了在CES 2019上,NVIDIA正式发布了移动平台的图灵光追显卡根据官方给出的性能数字,RTX 2080移动平台的游戏本表现超过GTX 1080桌面平台,更相當于PS4 Pro的两倍即便是此次最入门的RTX 2060,也比桌面GTX 1070强保证1080P《战地5》60FPS(DLSS开启后)。特别的RTX MaxQ分别比前作提升20%性能并减少40%功耗,RTX 2060 MaxQ更是提升了50%性能从1月29日之后,搭载RTX 20系移动显卡的笔记本将陆续登场涵盖40款型号、100多种配置。另外惠普、宏碁、华硕、外星人、雷蛇还将率先拿出RTX MaxQ设計的轻薄性能本(20mm以内)解决方案,也有17款之多官方规格具体规格方面,所有RTX移动显卡的流处理器均未缩减不过频率、RT核心有大范围減配,其中RTX 2080 MaxQ的主频仅735MHz/1590(加速)功耗范围80~150W。对于海外用户来说购买RTX 2080笔记本将免费获赠EA《Anthem(圣歌)》和《战地5》两款游戏,RTX

  • 为满足客户对非易失数据存储的要求设计师通常会使用一个串行EEPROM。这些EEPROM器件体积很小、价格便宜、而且在市场上已经被长期使用设计工程师使用这些器件非常便利。但是在当今对成本非常敏感的市场领域增加一个并不昂贵的EEPROM可能会使设计超出预算。 很多处理器使用闪存存储程序代碼使用静态RAM存储数据信息。尽管充分利用闪存未使用的部分作为非易失数据存储很有吸引力但是传统的哈佛架构制约了这种应用。MAXQ架構属于哈佛架构具有独立的代码和数据总线。但MAXQ器件包含的硬件部分可以实现伪冯诺依曼架构如同访问数据空间一样访问代码空间。這种额外的多功能性结合MAXQ的效用函数,可实现存储器的擦写服务为完整的可读写非易失存储子系统提供了解决方案。 关于闪存的基本栲虑 闪存是一种电子可擦除存储通常也被认为是“主读”。简言之尽管闪存是可写的,但数据更新并不会很频繁多数的操作都是读操作。多数闪存器件从字面意思来讲都是可写的但每次只能整块擦除。这使得那些存储器件通常都不适合用于易变存储只适合用作从鈈改变内容的固定数据存储。 有两种类型的闪存:NAND闪存和NOR闪存NAND闪存用在存储卡和U盘中。通常由于数据按时钟串行传输,从NAND器件中读数據需要数个周期这种有序的操作使NAND闪存不适合用作程序代码存储,因为读取时间会太长相反,NOR闪存类似传统字节宽度或字宽度存储讀取NOR闪存就像读取 ROM器件:先发器件选择和地址命令,在等待足够的存取时间之后从总线上读取数据。NOR闪存用于MAXQ处理器中 MAXQ处理器的闪存 MAXQ處理器中使用的闪存单元被擦除时会变成“1”状态。因此在擦除后,存储单元中的每个位置都将包含0xFFFF对某一存储位置进行编程会把某些位从“1”变成“0”状态。为了使被编程过的位重新变回“1”状态整个单元必须被擦除。 任何电擦除的存储器件必须面临的问题是持久性根据特定的技术,一个闪存单元在完全失效之前可以忍耐的擦除次数少达1,000次,多达 1,000,000次因此,使用闪存做数据存储的任何应用都必須保证写操作循环在整个阵列中均匀分布不允许某一个位置的擦除编程次数比其他位置多很多。 多数闪存器件都允许把之前已经编程过嘚位置中的没有编程过的位从“1”变成“0”状态例如,对于多数器件允许对某个位置编程,把数据从 0xFFFE变为0x7FFE在这个编程过程中,没有任一个位从“0”变成“1”然而,MAXQ系列器件中使用的闪存不允许对已经编程过的位置再编程,即使没有发生从“0”到“1”的变化这样嘚写操作会失败,保持数据在0xFFFE状态 MAXQ器件编程受限制的理由如下。正在被编程的存储单元起初是作为代码空间的所以必须很谨慎,禁止對已写过的位置的任何写操作0xFFFF指令指一条无效的源代码,它不太可能出现在有效的代码单元内因此,阻止对已编程过的位置的写操作能够帮助保持代码单元的完整性 使用MAXQ2000的设计方案 在这篇文章中,我们主要讨论一个MAXQ器件:MAXQ2000这个微处理器具有64kB的程序存储空间,具体划汾为128个单元每个单元具有 256个16位的字。下面介绍两种设计方案第一种方案适用于信息写一次后在产品的生命周期内不会再频繁改动,例洳校准数据、版本信息和特征参数等等第二种方案针对更普通的装置,这种设计要允许数据频繁改动例如使用信息或者详细记录等。 方案1 问题:校准数据需要存储在产品中产品会一直需要重新校准,所以校准数据必须保存在一个可改写的存储空间中 解决方案:这实際上是可以想象的到的最简单的情况。MAXQ2000程序存储空间中预留了两个单元用于存储校准数据一个是字地址0x7E00,另一个是0x7F00当MAXQ2000第一次收到保存校准数据的命令,它就会检查这两个单元并确保它们是空的校准数据被保存到第一个单元。 当MAXQ2000第二次收到保存校准数据的命令它会再佽检查这两个单元。当发现0单元已被使用它会把校准数据复制到1单元,接着擦除0单元 当MAXQ2000收到读校准数据的请求(例如在上电时),它会读這两个单元看哪个正在被使用。没有被擦除的单元用来配置器件到校准状态 这种方案的最主要优点是简易性。当某些应用需要在上电時作配置时(或者其它恢复配置的情况)这种方法很适用。读程序会接收到一个字指针并返回这个地址的内容;写程序会接收一个字指针,並尝试对这个地址写操作擦除程序会擦除这两个单元。 这种方案的缺点是:子程序极其不智能无法判断写操作是否成功。假如写操作夨败了不会有任何动作来解决问题。为什么这种方案只适用于对已知的空单元写操作以上这种限制就是其原因。 方案2 问题:非易失存儲用来跟踪用电量和其它会经常改变的数据更新的频率从一周数次到一天数次。电表是一个很好的应用举例 解决方案:在这种情况下即时传统的EEPROM也需要另求帮助。问题在于:频繁的更新、和可擦除存储技术固有的有限电擦除寿命排除了使用单个 EEPROM频繁写擦除操作的可能性。假如这种应用需要每小时更新一次具有10,000次写擦除次数限制的EEPROM只能工作一年,远远低于电表应用所需的10年寿命设计目标 这个问题的解决方案是实现“损耗平衡”。也就是指不对单一位置重复写操作相反,在整个存储阵列中执行均匀分布的写操作 正是基于此目的,損耗平衡技术被接受并在闪存存储设备中使用。它的算法非常复杂难以理解但对于我们,介绍简单的机理就足够了 在这种设计中,存储阵列中的数据条目并不是以地址作参考而是以数据元编号为参考。数据元编号是一个和数据元素一一对应的任意8位数值所以在这個方案中最大可以有255个数据元(数据元0预留)。每个数据元包含:包括数据元编号和数据元长度的双字节报头(图1);指示1、2、3或者4个16位字的两位码以保留足够的剩余空间进行错误管理。   写数据单元时写子程序必须知道要写的数据、数据单元的长度和数据要写的位置。很容易可以知道数据写在哪个地址;无论是新数据单元还是更新已有的数据单元都会写在存储阵列的末尾。写命令会搜索阵列的末尾紧接着在最后┅个记录后写入新的数据单元。假如在当前的存储页面没有足够的空间保存特定长度的数据元就会出现页面结束标志并打开一个新页面。图2是这种典型的数据页面的结构 在这个数据页面中,先写数据单元1并更新。接着写数据单元4但从不更新。随后是数据单元3共更噺7次。最后写入数据单元2从不更新。 页面结束标志的出现表明曾执行写操作但数据单元太长不能填入当前页面。会打开一个新页面以填写数据单元在整个数据结构的末尾会分配一个空单元,这里本该是一个数据单元的报头   图2. 典型的数据页面 要注意这种方案并没有涉忣重复记录的问题。因为重复记录不会有问题事实上,读和写程序都会完全忽略重复记录写操作时,不管同样编号的记录是否存在噺记录都会写在阵列的末尾。当读操作时只有符合请求记录编号的最后一个(所以是最近的)记录可以读到。 从阵列中读取数据元会比写操莋更复杂读功能会收到数据元编号和数据元应该写入的地址。当执行此命令时读操作会从阵列的最开始进行搜索。当它找到一个记录苻合被请求的数据元它会保存这个地址并继续搜索。当它找到另外一个匹配的记录时读命令会用新地址替代已保存的地址。当搜索到陣列的末尾时保存的地址就会是符合请求记录的最近写入的记录。当执行读操作时就会把这个数据复制到缓存中。 尽管所介绍的用来從存储阵列中保存和读取记录的主读机制是可行的还会存在一个问题:没有机制可以重新使用被过时的记录占用的空间(也没有机制可以刪除记录。但由于这种方案是针对嵌入式应用开发的所以可能不会是个很严重的问题。)如果不重新恢复一些空间,这些之前被分配的涳间会很快用尽由于闪存只能每次擦除一整个页面,恢复空间意味着擦除整个页面另外一个更严重的问题是闪存页面不能被随便擦除,会存在删除有用信息的风险唯一的可选方案是在删除整个旧页面之前,把有用信息复制到一个新页面 从废旧的记录中恢复空间有三個步骤。第一打开新页面,把每个数据元的最近版本复制到新页面中第二,擦除旧页面第三,对新页面做页面标示是读命令可以找到新页面。 第一个步骤比较复杂需要更详细的检查。完成这个步骤最简单的方法可以分成两个子步骤:第一使用一个RAM保存记录编号囷阵列中最近记录的地址;第二,从RAM阵列逐一复制最近记录到新闪存页面这个过程最快,并且相对简单 使用这两个子步骤存在的问题是MAXQ2000呮有1k字的RAM空间。上述方案限制了可以保存到RAM中作缓存的数据量这明显是不能接受的。 这种难题的解决方案非常耗时但不管存储阵列变嘚多大(合理范围内)都是可行的。为源阵列中的每一项条目单独操作而不是在RAM中建立指针。因此算法可以简化为: 从源阵列读取一个数據元。 在目标阵列中搜索这个数据单元假如找到了,就说明这个数据单元已经写入源指针增加并返回步骤1。 在源阵列中搜索这个数据單元最近记录 把这个数据单元的最近记录写入目标阵列中。 源指针增加并返回步骤1 最后,在目标阵列中每个数据元都有精确的条目對应。填写后的页面如图3示意这样,就可以安全擦除源页面并把页面报头写入目标阵列。   图3. 空间恢复后图2中的数据页面会如此表现。 这个过程对于数据存储会非常安全然而,当使用闪存器件时还要面对另一个风险:在写或者擦除操作中掉电假如发生掉电,有可能會破坏一个或者多个页面 (例如写操作)或者不能完全擦除页面(例如擦除操作)而我们这种紧凑的操作从本质上讲是安全的。可以考虑以下的凊况: 假如在填写操作时掉电源页面仍然保持完整。当重新上电后很容易辨别新写的页面(他们没有页面报头)并把它擦除,再重新启动填写操作 假如在正擦除旧页面时掉电,可能会包含无效的报头可以擦除这些页面并把报头添加到新页面。 假如在正把页面报头写入到噺页面时掉电数据仍然是完整的。页面报头更新操作可以再次重新启动 简言之,这些预料之外的突发事件不会导致阵列数据被破坏并鈈可恢复 方案2的改进 这里介绍的存储子系统没有错误检测的机制。在数据元标识符中有一些位(这里的是6位)没有被使用可以使用CRC6算法(x6 + x + 1)根據数据元计算出CRC以确保没有发生读写错误。这虽然不是特别强大的算法(它会错过多位错误中的1/64)它可以检测到多数可能发生的错误。 这个方法对系统的另一个限制是读取时间很长每次读操作都需要读取阵列中的所有记录,以找到最近的记录有3个方法可以用来缩短读取时間: 在数据单元中为正向指针留一个空字节。当数据更新时为正向指针分配一个新的入口地址。按照这种方式数据表格可以按链表的方式移动。 向后移动表格这样就可以在被请求信号第一次出现时停止搜索。 假如单元数量很少可以在启动时建立一个RAM阵列,包含单元ID囷指针后面的读取会很快。只需读RAM阵列以决定从哪儿获取数据单元 结论 非易失数据存储是每位设计工程师迟早都必须面对的问题。使鼡MAXQ处理器灵活的闪存就不用再借助于串行存储保存配置数据了。[!--empirenews.page--]

  • 通常在嵌入式应用中微控制器的每个端口引脚对于实际应用来说都是必需的,没有多余的引脚然而,开发人员可采用其他方法来解决这个问题大部分MAXQ微控制器可重写内部程序存储器(如闪存或EEPROM),支持标准JTAG/TAP接口(也称为调试端口)外部主机可利用该接口执行在线调试或在线编程(引导装载)功能。该接口中的所有引脚通常可复用为标准GPIO端口引脚功能从而使这些引脚在开发阶段结束之后仍然可以被使用。本应用笔记阐述了在常规应用中如何复用这些引脚同时,本应用笔记还指出叻在复用这些引脚时需要考虑的事项 应用系统开发阶段 在开发阶段,JTAG兼容调试端口可提供许多有用功能首先,调试端口允许应用系统茬外部主机控制下对其加载(使用开发环境如MAX-IDE、 Rowley CrossWorks或IAR Embedded Workbeach?)可以根据以后的测试需求对应用系统进行测试、修改和快速加载。其次调试端口允许執行MAXQ架构的在线调试功能,这些调试功能包括寄存器的读写操作、指令的单步调试并可查看程序、数据、堆栈存储器。引导装载和在线調试功能会对应用系统所能使用的存储器资源产生一些微小的影响因为在线调试功能完全由MAXQ硬件和公用程序ROM实现。 在完成了应用系统的開发测试后不再需要使用在线调试功能。此外在大批量生产中,可重新编程的MAXQ器件将被掩模ROM器件替代不再需要在线编程功能。这就意味着应用系统不再使用调试端口此时调试端口可废弃不用也可有效地对其再利用。当MAXQ器件的GPIO端口引脚数不够使用时若把专门用于JTAG调試的端口引脚重新利用起来,并且让常规应用系统使用这些引脚将会起到意想不到的作用。 调试端口引脚的重复使用 实现JTAG兼容调试端口嘚连接用到下面4个引脚: TCK:测试时钟—MAXQ输入 TMS:测试模式选择—MAXQ输入 TDO:测试数据输出—MAXQ输出 TDI:测试数据输入—MAXQ输入 这4个引脚可以典型地复用為4个GPIO端口;具体复用引脚随MAXQ器件的不同而不同在复位或上电复位(POR)状态后,调试端口默认为使能状态常规应用系统不能使用这些端口引脚。为了屏蔽调试端口功能使端口引脚能够用于常规目的必须把系统控制寄存器的TAP位(SC.7)清零。然后按正常方式通过PD、PO和PI寄存器控制这些端口引脚 硬件设计注意事项 若在系统开发阶段和批量生产阶段使用同一套硬件,不论调试接口的端口作为GPIO还是JTAG/TAP使用都必须使硬件能够正常運行。例如:当这些引脚用于JTAG/TAP时任何与这些引脚相连的外部器件都必须释放这些引脚,使其处于三态模式以保证主机与MAXQ这些引脚之间嘚正确驱动。此外在线调试或引导加载过程中,连接到这些引脚的器件不能受主机和MAXQ在这些引脚上的任何驱动信号的影响这一点特别需要注意,因为对这些信号的响应有可能造成器件损坏 举一个例子,假设端口中的一个引脚既被用于接收TCK信号(当被用于JTAG/TAP模式时)又被用于控制继电器(在GPIO模式时)当用 JTAG接口调试器件时,由于TCK信号的快速翻转将导致继电器的接通和断开可能导致连接到继电器的外部设备损坏。為了防止这种情况发生在器件将要引导加载或进行在线调试时,所有通过JTAG/TAP接口与这些引脚相连的外部器件都必须被禁用 软件设计注意倳项 禁用JTAG接口的操作非常简单,任何时候只要把TAP (SC.7)位清零系统将立即使用这些端口引脚。为了把应用系统设置在适当模式系统开发人员傾向于在应用程序代码的开始就把TAP位清零。然而这么早就把TAP位清零会引起应用系统开发中出现一些问题。 如果应用系统中采用掩模ROM MAXQ器件(這种器件不能被重新编程)那么在应用程序的起始位置对TAP清零就不合理。这种情况下由于程序代码已经烧入器件且不能更改,将无法使鼡引导加载和在线调试功能 然而,对采用可重新编程的MAXQ器件的应用系统来说其应用软件应该总是在TAP位清零和禁用JTAG接口之前提供几秒钟嘚延时。如果紧随复位操作之后马上对TAP位清零在试图重新加载或调试应用程序的时候可能会顺序发生以下事件: 主机驱动一个低电平/RESET信號,从而使MAXQ处于复位状态 主机释放/RESET复位信号。 MAXQ脱离复位状态并开始运行程序代码因此JTAG接口立即被禁用。 主机试图通过JTAG接口与器件通信但通信已经无法进行。 这个过程与应用系统在复位之后马上进入关机状态或低功耗关断模式类似对于可以禁用/RESET引脚的器件,如MAXQ3210 /MAXQ3212微控制器这个问题更加严重。这种情况下实际的复位操作取决于主机触发的顺序,还取决于器件是仅通过/RESET引脚还是通过上电、断电过程复位嘚 为了避免上述软件问题,任何禁用/TAP调试端口或/RESET引脚的应用系统在启动时都应该在关闭调试引擎之前提供几秒钟的延时这个时间延迟鈳以使外部主机在JTAG接口被禁用之前通过它对MAXQ进行控制。另一种方法是:应用系统可通过检查别的端口引脚(由跳线器或按钮控制)上的输入电岼来确定JTAG端口使能还是禁用 结论 MAXQ微控制器的TAP (SC.7)位提供了JTAG接口的复用功能。只要遵循某些硬件和软件设计的注意事项JTAG接口的4个引脚就可用於调试/引导加载,或当作通用I/O 使用对于引脚数目受限的系统来说,这些引脚的复用可提供额外的资源而当采用MAXQ器件开发应用系统时,這些引脚的复用也会提高系统的灵活性

  • 概述 微处理器用于大规模系统设计时,通常需要各种外部器件的支持这些外部器件为微处理器提供多项任务支持:为微处理器提供满足电压、电流需求的稳压电源、监控其它电源电压、提供外部时钟、控制上电和断电顺序或执行其咜任务。这些外部器件通常称为微处理器监控器是专为特殊监控任务而设计的IC。 使用一个低功耗微控制器可以取代专用的微处理器监控電路支持上述各种任务。根据其性能一个微控制器可以提供多个器件所支持的服务,且由于监控功能可通过软件编程具有很大的灵活性。 本应用笔记介绍了使用带有压电扬声器驱动、稳压器和比较器的低功耗微控制器MAXQ3210实现典型微处理器监控功能的方法MAXQ3210可在单机配置丅实现各种功能,采用9V电池供电使用其内部低速振荡器可以省去外部时钟电路。MAXQ3210的小封装尺寸(24引脚TSSOP)使其成为传统设计或其它空间受限产品的理想选择 电池供电便携系统 MAXQ3210内置9V至5V转换的线性稳压器,可理想用于便携式、电池供电的微控制器或微处理器系统由于MAXQ3210具有低电池電压检测,使系统能够在低电池电压状态下提供智能化管理 配合5V微处理器工作时,只要微处理器所需的供电电流在MAXQ3210线性稳压器的供电范圍内(最大值约为50mA详细信息请参见MAXQ3210数据资料),MAXQ3210可直接使用其稳压器的输出引脚REGOUT (图1)为微处理器供电当微处理器电流非常低时,还可以将MAXQ3210的端口引脚设置为标准高电平输出(PD = 1PO = 1),直接为微处理器供电每个端口都能提供至少4mA的电流,压降小于0.4V只要所有端口引脚的电流总和不超過最大额定值(约为25mA,详细信息请参见数据资料)可将多个端口引脚连接在一起增强供电电流。使用端口直接为微处理器供电时MAXQ321能够根据需要接通、关断微处理器的电源,从而延长电池寿命注意:当使用REGOUT为微处理器供电时,电源仍可在MAXQ3210控制下接通、关断但需要一个外部FET戓其它开关器件。 当所支持的微处理器需要的端电压不是5V(例如3V、2.5V或其它)时MAXQ3210的REGOUT输出可通过线性稳压器产生微处理器所需要的电压。通过使鼡带有使能/禁止输入的线性稳压器MAXQ321仍然能够完全关断微处理器的电源,以延长电池寿命 设计过程中对电池寿命和系统总吸入电流要求苛刻时,MAXQ3210可在非常低的电流状态下工作以节省能量。MAXQ3210不仅具有功能完善的MAXQ?电源管理模式(分频、PMM1模式和STOP模式)有效节省能量,还包含了一個8kHz的振荡器可作为一个极低功耗的时钟源使用。上电时如果没有外部晶体或高频时钟源,MAXQ3210将运行在8kHz振荡器使其工作电流降至微安级。由于对响应时间要求并不严格即使在8kHz下工作时,MAXQ3210仍可实现本应用笔记中的监控功能 复位和电源监控 MAXQ3210提供上电复位(POR)和欠压检测功能,使其能够在供电电源稳定时退出复位状态欠压检测可以使微控制器从电源跌落状态下恢复工作。MAXQ3210还可以为没有电源监控功能的微处理器提供类似的POR和欠压检测 将MAXQ3210的一个端口接至微处理器的外部RESET引脚,使MAXQ3210在电源低于门限设置时复位微处理器并在供电电源恢复正常时使微處理器退出复位状态。如果微处理器在5V电源下工作只要MAXQ3210处于POR或欠压状态,MAXQ3210都将使微处理器复位如果微处理器工作在更低的电源电压(例洳3.3V),MAXQ3210的模拟比较器能够将微处理器的供电电源与VREF引脚的任意电压(可达3.5V)进行比较(关于模拟比较器的详细信息请参考MAXQ3210数据资料)。当微处理器嘚供电电源跌落至基准电压以下时比较器将产生中断给MAXQ3210,使微处理器复位并在电源恢复正常以前保持复位状态 因为所有功能都是通过軟件实现的,所以微处理器从电源恢复到退出复位状态的时间间隔可以设置为任意时间周期如果系统有多个供电电源或需要按照特定顺序上电,MAXQ3210可作为上电定时器按照每个动作的指定延迟时间顺序控制器件的上电过程。 给系统增加一个外部复位按键可初始化复位顺序將复位按钮接至MAXQ3210的一个端口,使MAXQ3210完成基于软件的去抖功能并产生宽度可编程的复位脉冲,以响应一次按键复位 添加唤醒定时器 便携式電池供电系统中,节省电源及电池寿命是设计的关键为保持低电流耗损,此类系统一般尽可能工作在低功耗状态系统周期性地(或在用戶按键请求下)唤醒,进行测量或运行其它任务然后返回休眠状态。不工作的器件最好关闭其供电电源。MAXQ3210提供一个长周期唤醒定时器囿助于节省功耗。可设定在8kHz环形振荡器下工作的唤醒定时器使MAXQ3210进入低功耗状态 - 停止模式,并在长达2分钟的预设时间间隔后自动唤醒退出停止模式后,MAXQ3210按需求唤醒或使系统中的其它器件上电以下MAXQ3210程序代码演示了如何进入停止模式,然后在60秒后自动唤醒 将MAXQ3210的一个端口連接至微处理器,可通知其作好断电准备MAXQ3210通知断电后,微处理器根据执行任务的不同立即进入低功耗停止模式或等待断电 MAXQ3210从停止模式喚醒时,既可使微处理器上电(如果微处理器完全关断)也可使用外部中断或类似机制通知微处理器,使其从低功耗状态下唤醒 添加看门狗复位 与MAXQ3210的唤醒定时一样,微控制器的内置看门狗复位电路可以扩展为微处理器的一个外部硬件看门狗复位电路MAXQ3210中,看门狗作为一个安铨装置防止瞬态脉冲干扰时程序运行失控。一旦启动看门狗定时器必须通过周期性地置位一个寄存器位使其复位。如果MAXQ3210停止置位寄存器位且定时器溢出,看门狗将使MAXQ3210自动复位该自动复位使MAXQ3210恢复到一个已知的起始状态并重新启动运行。 将MAXQ3210的看门狗复位扩展给微处理器呮需要两个连接:将微控制器的一个端口接至微处理器的外部RESET;将微处理器的一个端口返回到MAXQ3210端口MAXQ3210自动使能看门狗,只要收到来自微处悝器的信号就复位看门狗微处理器负责周期性地触发此引脚,防止MAXQ3210的看门狗超时超时周期可编程(详细信息,请参考MAXQ3210 User's Guide Supplement) 作为微处理器的外部看门狗,MAXQ3210设定看门狗超时情况下触发一个中断如果看门狗超时,意味着微处理器未能及时触发微控制器的端口微控制器需要复位。MAXQ3210响应看门狗中断重启看门狗,通过外部的RESET引脚复位微处理器重新开始一次循环。 电平和接口 监控状态下MAXQ3210与微处理器之间通信时,必须考虑两个器件的I/O电平如果两个器件都在5V电压下工作,端口引脚通常可以直接连接请务必参考器件的数据资料。 MAXQ3210输出信号给低电压微处理器(例如3.6V的器件)时也可以直接连接如果微处理器引脚含有保护二极管,MAXQ3210的5V输出可以通过限流电阻直接连接至低电压引脚也可以选擇使用漏极开路连接方法:两引脚间引出一个上拉电阻连接至低电压微处理器的电源,并使MAXQ3210的端口强制下拉(PD = 1PO = 0)或为三态(PD = 0,PO = 0)模式 由低电压微处理器引脚驱动的MAXQ3210的输入时同样需要谨慎操作,这是因为低电压微处理器不能驱动其端口引脚至足够高的电平以使MAXQ3210的寄存器置位。如果仅需要一个输入(如图1)低电压信号可以连接到MAXQ3210的模拟比较器。其它可能的方法有使用带有漏极开路配置的外部下拉FET,或使用电平转换器如MAX3370。 关于此问题的更多讨论请参考应用笔记3007,逻辑电平转换 结论 MAXQ3210的小尺寸、电池供电及单机工作特性使其成为可编程微处理器监控的理想选择。几种有用的节电模式和电源监控特性可方便地为微处理器提供监控,使MAXQ3210成为通过软件配置延长电池工作时间的核心非瑺适合便携式电池供电产品。

  • 许多医学应用都需要不用外接电源线和数据线的便携式自供电设备最明显的例子是病人随身携带用来测量惢率、体温和其它健康指标的便携式数据记录仪。 当然还有很多复杂应用即使通过外部电源供电,也会需要一个小型的电池设备实现安铨冗余和设备监控如医院病房、病人居室、环境受控的实验室或贮藏设备环境参数(包括温度和湿度)都需要持续监控;另外便携设备嘚安装使用比需要外接电源和网线的设备更方便更灵活。在有些情况下如需要病人随身携带的医疗设备,冷库的温度检测设备等根本無法外接电源线和网线。   便携医疗设备要求何种功能首先,必须自带电源通常可通过可充电的或不可充电的电池供电,尽管还有其它方式(如太阳能供电)但这取决于对电压和电流的要求。不管采用何种电源电源的效率必须足够高,而且电池供电的便携设备在鈈需要满负荷工作时应可以进入“休眠”模式来尽可能降低功耗休眠的设备可以被外部触发信号或定期的被“唤醒”,然后提高运算速喥(当然功耗也会增加)进入正常工作模式设备还应具备介于满负荷工作和“休眠”模式之间的一些工作模式来执行一些简单的任务(洳访问存储器或刷新液晶及LED显示器数据),因为设备通常仅在某些条件下才会需要满负荷运算能力(如对传感器数据进行滤波和解码)這样就可以在功耗和运算速度之间进行某种程度的平衡。   便携设备即使支持无线通信但并不总是保证能够接入无线网络。取决于网絡条件某一时刻设备在有无线网络的环境中工作,下一时刻就有可能被移动到没有无线网络的环境中或可能因断电造成无线网络临时關闭。在这些情况下如果设备本身不支持无线通信,设备需要将随时采集的数据存储起来以备将来上传到上一级系统进行数据处理。囿一些关键数据(如环境安全失效数据配置数据或设备驱动)必须保证存储安全,即使电池故障或被移除也不能丢失     便携设备的其它特性取决于具体应用需求,数据可以直接通过模拟传感器采集也可以通过局域网络访问子系统读取,便携设备可以仅被动地采集数據也可以在特定条件下主动地通过声音报警或向某人发信号告警。一些简单的数据采集设备在上传数据前根本无需用户干预而另一些設备(如手持血糖仪或腕带式心脏监护仪)也许需要通过另外的输入输出设备而不是主机系统来更改配置或浏览数据。   使用MAXQ2010设计便携式数据记录仪   尽管业内有很多可供选择的微控制器但Maxim公司的 MAXQ系列低功耗混合信号RISC微控制器MAXQ2010具有的特性非常适合设计电池供电的数据采集设备。MAXQ2010具有极低功耗极高MIPS/mA比值,仅需很小的电池电流支持便携应用集成的12位8通道ADC可以采集很多类型的传感器数据,另外还支持许哆类型的本地串行接口(如I2C, SPI, 同步/异步UART) 可用来接入主机系统和串口非易失存储设备,或与本设备中的其它子系统通信   MAXQ2010可根据当前任务对运算能力的要求通过动态调整时钟频率来改变功耗,并当其处理完所有的数据和事件便携设备即可进入最低功耗的休眠(停止)模式,直到再次被应用唤醒MAXQ2010的核电压仅1.8V,可以极大的降低功耗3V独立供电的I/O可以同外部高压逻辑通信。如果希望使用像3V纽扣锂电池这样嘚单电源供电而不希望使用双电源则可以通过内置集成稳压器给核电压供电。在停止模式下该稳压器可以被关闭,以便降低功耗   MAXQ2010能通过多种途径从传感器读取数据,如果采集模拟传感器数据并可使用内置的12位多通道ADC,支持8通道单端输入MAXQ2010从外部传感器采集的数據可以根据需要被存储在由备份电池供电的RAM中或内部闪存中。片上基于32kHz的实时时钟(RTC)在停止模式下也能工作根据需要为数据提供时标。如果需要用户输入数据或向用户显示信息MAXQ2010都能实现,它有一组通用输入/输出引脚(在最大的封装中有56个)可以驱动LED,读取机械开关設置或通过行列扫描的方式连接开关矩阵。MAXQ2010还有一个LCD控制器可以直接驱动3V的段式LCD,最多支持1/4周期的复用(COM1~ COM4)其最大的封装提供40个专门的驅动引脚,在4倍复用模式下可以驱动160段LCD显示 基于MAXQ2010的数据记录仪设计实例     像许多用来采集或存储数据的电子设备一样,基于MAXQ2010的数据记錄仪采用USB接口与主机(如个人电脑)通信但是,由于MAXQ2010自己没有USB接口我们利用FTDI公司的芯片FT232R实现USB与UART的转接。 采用FT232R可以给数据记录仪设计带來许多好处首先,当USB总线活动时数据记录仪可以利用FT232R的3.3V稳压器输出供电,仅需一对二极管即可实现与电池供电的自动切换因为稳压器输出(减去0.2V二极管前向压降)电压总比电池电压减去二极管压降后的电压高,这样就可保证连接到USB总线时记录仪不用电池而通过 USB Vbus供电。 采用两个二极管(图1)是为了防止给电池充电输出电容用来降低负载瞬变对电池的影响。其次MAXQ2010可以利用两个串口(UART)中的一个直接與运行在个人电脑上的应用程序通信,不需要任何额外的驱动程序两个串口之间通过一个建立在USB接口上的虚拟COM口连接。本设计采用MAXQ2010基于32kHz 晶体的FLL作为其自身的时钟源(如果需要还可为RTC提供时基)其成本比其它晶体或谐振电路的成本要低得多。FLL 电路相当于一个倍频系数为256的倍频器将32kHz的晶体振荡频率变到8.388MHz作为MAXQ2010的时钟。   为计算基于MAXQ2010的数据记录仪究竟会消耗多少电流可以考虑执行以下操作:首先一个外部信号(如按键或传感器电压突然升高)将微控制器从停止模式唤醒;系统随即通过一个单端的ADC通道读取模拟传感器电压,将采集的传感器電压值存储在数据RAM中;此时为了节省功耗微控制器重回到停止模式,而在约60秒后微控制器再次被唤醒( 回到第 1步)。因此计算平均電流消耗并估算电池寿命需要将微控制器的以下参数代入公式(1):tActive(完成上述全部操作所需的时间,包括进入停止模式的时间)、iActive(上述操作期间的典型电流值)、tStop(保持停止模式的时间)、iStop(停止模式的典型电流)、tExit(从停止模式被唤醒所需的时间)、iExit(被唤醒时的典型电流)   (tActive ×   根据以上参数的值可以计算出平均电流大约为202nA;即如果电源是一个普通的CR2032纽扣锂电池,可以估算出电池寿命为1138小时不同电池生产厂家生产的电池的特性会有所不同,CR2032电池在90%的放电区间内压降不超过0.3V这意味着在电池电压降到2.7V之前(经过一个二极管压降后为2.5V,满足单电源工作时的最低电压)微控制器可以工作1024个小时。   增加电池容量或数量、用可充电电池或当连接到USB时自动充电等许多措施均以用来延长电池寿命。一般平均电流仅略高于停止模式的待机电流这是因为停止模式的时间远长于程序运行时间,停止模式的电流起主导作用程序循环体代码可以被扩展,如测量多个传感器值或增加其它功能并不会显著改变电池寿命当然,使用其它外设功能如LCD显示,LED指示或串口等都会增加功耗设计者在计算实际电池寿命时需要综合考虑这些功能可能增加的功耗。

  • 引言 MAXQ2000USBThumb评估套件是评估MAXQ2000RISC微控制器方便可靠的平台评估(EV)套件电路板采用了具有USB接口的“拇指”外形封装(图1)。通过计算机上安装的MAX-IDE汇编语言集成开发环境可以在該评估套件电路板上开发并调试应用程序。套件中包含的USB闪存驱动盘提供MAX-IDE程序也可以从Maxim网站下载该程序。 图1.MAXQ2000USB评估电路板 MAXQ2000USB电路板包括一个DS18B20溫度传感器;一个4位7段液晶显示屏(LCD);一个用于MAXQ2000内部实时时钟(RTC)的32kHz晶振以及一个原型插头通过它访问处理器的一些通用I/O引脚。 评估套件在发售时提供电路板和USB闪存驱动盘它包括软件、原理图、数据资料以及其他有用文档。 软件设置 在使用MAXQ2000USB评估套件之前您的PC必须先安装几个軟件包。下面几节解释了每个软件包的安装和设置 安装USB至串口驱动 PC要和MAXQ2000USB电路板正确连接,必须为板上USB至串口转换器安装合适的驱动下媔的说明具体先容了怎样安装Windows?XP驱动。假如还需要深进了解在Windows2000或者Windows98上安装FTDI驱动请参考安装指南。 安装这些驱动时请按照以下步骤进行:把提供的USB闪存驱动盘插进到计算机的主动USB连接器中。根据您的操纵系统及其设置闪存中的自动运行功能使程序自动运行。假如程序没囿自动启动打开浏览器,双击根目录下的Setup.exe文件这将产生MAXQ2000评估套件主菜单,如图2所示单击屏幕右侧的USBSerialDrivers按钮。这会打开另一个窗口您將看到安装进程。安装完成后将出现确认消息。 现在连接MAXQ2000USB电路板和您PC的主动USB端口。固然不是必须的建议最好不要使用USB闪存驱动盘目湔连接的端口,而使用其他端口这样可以访问所有USB设备,而不必往返切换将出现“FoundNewHardware”消息。稍后您将看到消息“Yourhardwareisinstalledandreadytouse”。 确定虚拟COM端口 圖3.设备治理器中的USB串口COM位置 在这个例子中USB串口被分配给COM4。当第一次启动MAX-IDE(或者其他程序与MAXQ2000评估套件开始通讯)时必须配置IDE使用该COM口。下面具体先容这一配置过程现在,记住COM端口分配即可以便后面进行配置。 安装MAX-IDE MAX-IDE程序是MAXQ?微控制器全功能应用开发和调试环境。它适用于所有MAXQ評估套件具有以下特性:为MAXQ汇编应用程序提供的基于工程的开发环境。集成MAXQ宏汇编器包括适用于所有MAXQ微控制器的标准头文件。使用JTAG/TAP接ロ和ROM装进程序(面向带有闪存或者EEPROM程序存储器的MAXQ微控制器)在电路装进应用程序在电路调试功能,包括设置断点程序单步执行,查看和修妀存储器/寄存器内容等与USB驱动相似,使用MAXQ2000评估套件USB闪存驱动盘安装MAX-IDE程序。和前面一样确定USB闪存驱动盘插进到主动USB端口,双击根目录Φ的Setup.exe文件从主菜单中,单击ProgrammingTools按钮从该菜单中,单击MAX-IDE按钮这将启动MAX-IDESetupWizard,开始安装程序在安装中,向导的默认安装路径是C:ProgramFilesMAX-IDE但是,您可鉯通过单击Browse按钮选择其他安装目录。在这一选项以及其他选项中建议选择默认。安装完成后可以从Start菜单:StartAllProgramsMAX-IDEMAX-IDE,启动MAX-IDE使用上面分配的串口配置MAX-IDE时,启动程序选择DeviceOptions。从下拉选项中选择您的COM口如图4所示。假如没有列出该COM口只要输进数值即可,例如COM4。在此也恰好检查DeviceConfigurationFile和DesiredJTAGClockFrequency(kHz);假如还没有配置,按图中所示对其进行设置 USB闪存驱动盘的文件夹“examples”中提供了几个MAXQ2000应用程序。程序之一以MAXQ汇编语言编写位于子目录MAXQ2000USBKITMAX-IDETemperature中。该应用程序使用DS18B20数字温度计丈量环境温度测得的温度在电路板LCD上以华氏温度和摄氏温度交替显示。这一温度应用程序用于展示套件的功能 装进并执行这一实例时,应将文件复制到PC的工作目录中从MAXQ2000评估套件硬盘主菜单中,单击ProgrammingTools按钮然后单击ExampleCode按钮,完成这一操縱这将启动安装向导(可能会需要一段时间),您将被询问把这些文件复制到PC的哪一目录在这个例子中,文件被复制到目录C:MAXQ2000USBKITExampleCode中但也可以昰您选择的任意位置。 硬件设置 MAXQ2000USB评估套件硬件非常简捷;它没有跳接器或者其他硬件配置设置所包含的USB闪存驱动盘中提供了评估套件电蕗板原理图(Documentation按钮)。查看该原理图您会了解到电路板上只有很少的元件。 电路板包括三个指示LED:D1、D2和D3LEDD1发绿色光,是电源指示器从USB端口為电路板供电时,该指示器点亮LEDD3发红色光,USB端口上有通讯时它被点亮。LEDD2发绿色光通过一个限流电阻,连接端口引脚P3.7和电路板的3.3V电源软件设置该端口引脚为逻辑零,点亮LEDD2 通过USB连接器为电路板提供所有的电源。USB至串口芯片(FT232R)将5V输进电源稳压至3.3V以便电路板上的其他电路使用。单独的低泄漏稳压器U3为MAXQ2000微控制器U1和U5提供专用2.5V电源微控制器U1是专用控制器,完成串口至JTAG转换微控制器U5是通用器件;用户应用程序玳码装进该器件,并执行所有微控制器都采用FT232R器件提供的12MHz时钟来工作。要使用该时钟套件上的USB连接器必须连接至已上电(未被挂起)的USB主機。 有几种方法可以完成MAXQ2000评估套件电路板可执行程序文件装进和运行例如,可以使用USB闪存驱动盘提供的微控制器工具套件(MTK)装进.HEX格式文件也可以从Maxim网站下载。对于本应用笔记我们将使用MAX-IDE把程序装进到套件电路板上。装进温度实例时请按照以下步骤进行:假如还没有连接,将评估套件插进到PC打开的USB插槽中电源LEDD1将被点亮。LEDD3会闪烁几次然后,停止指示USB总线上出现突发。假如MAX-IDE程序还没有运行选择StartAllProgramsMAX-IDEMAX-IDE启动咜。也可以找到MAX-IDE图标单击它。假如还没有完成这些工作按照上面安装MAX-IDE的先容来设置DeviceOptions。现在选择ProjectOpenProject,找到汇编语言温度实例所在的目录(唎如C:MAXQ2000USBKITMAX-IDETemperature)。选择2000test.prj文件单击OPEN。MAX-IDE将打开工程把汇编语言源文件(2000test.asm)装进到显示窗口中(图5)。打开工程MAX-IDE会与评估套件建立通讯,屏幕底部的消息对此进行了确认然而,在程序执行前MAX-IDE并没有被实际装进到套件中。确定在打开工程之前电路板已经插进到主动USB端口中。否则在程序確定无法与套件进行通讯之前,您不得不等待相对较长的超时时间 图5.装进工程,预备运行 在装进并运行应用程序时单击屏幕上面的run按鈕(图6中高亮显示),或者按下F5程序将被装进,正如屏幕下面的消息所示从地址零开始执行。观察评估套件电路板可以确定程序在运行。LCD显示温度LCD每次变化时,LEDD2都闪烁一下 图6.Run按钮 假如您还不熟悉MAX-IDE的功能,那么这是熟悉它的一次好机会您可以单击run按钮右侧的pause按钮,暂停程序(图6)激活pause按钮会发生几件事情。MAX_IDE将暂停程序在要被执行的下一行代码上放置一个高亮显示条(图7)。屏幕右侧表中显示的寄存器内容被更新以反映其当前值。单击寄存器值输进新值,改变寄存器数值对于代码调试,这是功能非常强大的工具单击run按钮,使程序继續执行 图7.程序暂停执行 单击代码窗口左侧的行号,设置断点也可以使用StepInto按钮,单步进进代码行如图8最左侧所示。StepInto按钮右侧的两个按鈕分别是StepOver和StepOut按钮正如其名称所示,用户可以利用它们来进进或者退出子例程最右侧的按钮是RunToCursor按钮。把图标放在程序的任一行单击该按钮,程序开始运行直到要执行该行为止。 USB闪存驱动盘中提供了另外两个实例程序:闪存驱动盘的ExamplesIAR子目录中含有Countdown和Temperature两个程序Countdown程序使用內部定时器来产生1s间隔,从初始值开始递减计数计数显示在LCD上,当达到00:00时程序停止执行。Temperature程序是汇编程序的C语言版本其名称和上面嘚一样。所有这些实例都采用了IAR编译器进行编写该编译器也包含在USB闪存驱动盘中。 装进IAR编译器执行这两个实例MAXQ2000应用程序的具体说明已經超出了本文档范围。固然如此还是需要留意以下题目。单击MAXQ2000评估套件主菜单的ProgrammingTools按钮安装评估版的IAR工具包(KickStart版)。在随后显示的窗口中單击IAREmbeddedWorkbench?按钮,启动IAR安装工具。按照说明来安装工具包您可以完成在线注册,从IAR获得许可安装IARKickStart版之后,从MAXQ2000评估套件主菜单中选择ProgrammingTools按钮嘫后选择IARPatch按钮,安装工具包的几个更新这将启动补丁的安装程序。安装IAR工具包和补丁之后您可以单击FileOpenWorkspace...,选择Countdown_Workspace.eww打开Countdown实例应用程序。在ProjectOptions囷Debug-JTAG下面您可以将通讯端口设置为COM4。选择ProjectRebuildAll编译并链接应用程序。单击Debug按钮或者选择ProjectDebug启动调试器。StepInto、RunToCursor或者Go按钮都可以启动程序在这里鈳以进一步了解IAR工具包的功能。 结论 MAXQ2000USB“拇指”评估套件是评估MAXQ2000RISC微控制器方便可靠的平台电路板采用了具有USB接口的“拇指”外形封装。评估套件的USB闪存驱动盘含有MAX-IDE采用MAX-IDE和套件电路板,用户可以开发并调试MAXQ2000RISC微控制器应用程序USB闪存驱动盘提供了几个实例程序和评估版的编译器以及工具包。 更多资讯请关注:21ic模拟频道

  • 引言 MAXQ1103是Maxim集成产品公司的新一代安全微控制器设计用于金融终端。它运行16位指令提供一个32位數据通道。微控制器在一个机器周期中执行完成指令是性能非常高的RISC机。MAXQ1103还具有很多重要的安全特性包括: 支持DES、3DES、SHA-1、SHA-224、SHA-256、RSA、DSA和ECDSA的密碼加速器 真正的硬件随机数发生器 1KB低泄漏电池备电NVSRAM 与外部电路连接的7个防篡改探测输入 环境传感器,例如温度和电压超范围探测器 评估(EV)套件是安全应用原型开发的理想平台套件提供两个串口,两个智能卡插槽(一个全尺寸一个SIM卡),一个USB连接器一个LCD屏,一个16按键键盘以及原型区 设置MAXQ1103评估套件 评估套件如图1所示。需要采用下面列出的硬件元件来完成本应用笔记所讨论的工作: MAXQ1103评估套件电路板 JTAG电路板 JTAG电缆(连接MAXQ1103评估套件电路板和JTAG电路板) 9针串行电缆 稳压电源(5V、±5%、300mA、中心正极) 详细电路图(PDF,14.4MB) 图1.MAXQ1103评估套件 评估套件电路板和JTAG电路板都有很多跳线需要进行配置如果需要了解跳线及其功能的详细信息,请参考各自的数据手册对于本应用笔记,请按照以下要求来配置跳线: 在MAXQ1103评估套件电路板上短接跳线JU1,连接JU5上面的两个引脚(最靠近JU5标签的两个引脚)现在,所有其他跳线应打开如果,JU6到JU18的所有跳线都短接那就OK。这是智能卡通信需要的配置本应用笔记不涉及。 在JTAG电路板短接JH1和JH2,打开JH3 在JTAG电路板和MAXQ1103套件电路板之间连接JTAG电缆。在JTAG电路板上红色电缆应连接至标有引脚1和引脚2的一侧,以及MAXQ1103套件电路板的TCK-GND一侧 注意,在早期的MAXQ1103评估套件中MAXQ1103IC可能采用了插槽。如果是这样把MAXQ1103插入到IC标记向下的插槽中(无铅指示符“+”应在右上侧)。 在您的PC和JTAG电路板之间连接9针串行电缆不要将其连接至MAXQ1103评估套件电路板。将电源连接至这两块电路板 采用CrossWorks编译器进行设计:Blinky 我们不以“HelloWorld”开始,而是构建一个简单的应用程序该应用程序使MAXQ103套件电路板上的一个LED闪烁。 我们使用的工具包昰RowleyAssociates公司提供的CrossStudio现在,工具包当前版本是面向MAXQ30的CrossWorks(2.0.0..2293版)可用于产生本文档的截屏显示。为确定是否是最新版本请在线访问RowleyAssociates网站,或者通过Maxim支持中心与我们取得联系。 单击Next继续您将看到ProjectProperties弹出框。选择默认值即可单击Finish,建立工程(您可以单击Next选择其他的选项;本工程在这些选项中使用所有默认值)。 当我们运行这一应用程序时会看到LEDDS1、DS2和DS3(位于套件电路板MAXQ1103的左下侧)闪烁,接通0.5s关断0.5s。注意“delayms”函数并不恰恏是一毫秒,而是非常接近达到了blinky应用程序的目的。 在运行演示实例前必须首先构建它。选择BuildBuildBlinkyDemo或者按下F7来构建。如果一切都正确构建您将在Output窗口看到消息“Buildcomplete”,它旁边有一个对勾(图4)如果有错,请确定您输入的代码是否正确 图4.工程构建后的输出 运行应用程序时,單击DebugStepOver也可以按下F10,或者单击带有向下箭头工具条中的图标(图5) CrossStudio通过JTAG电路板把应用程序下载到MAXQ1103中,Output窗口显示状态消息应用程序将开始运荇,然后在代码第一行停止(左侧空白区显示黄色箭头)。运行应用程序时单击“Play”按钮(或者选择DebugGo)。现在请确定MAXQ1103电路板上的LED正在闪烁。您可能希望能够在一定程度上修改应用程序使LED按顺序闪烁,或者改变点亮时间更快或者更慢的闪烁。 现在让我们了解一下MAXQ1103和CrossStudio工具的調试功能。MAXQ1103有内置JTAG引擎支持在实际芯片上进行调试,从而不需要昂贵的仿真器或者有可能出错的模拟器注意,MAXQ1103还提供锁定机制在元件锁定时,防止JTAG工作这样,当MAXQ1103微控制器用在敏感应用中时保证了JTAG调试引擎不会带来安全威胁。 现在我们返回到最初的Blinky应用程序,在主函数中把延时从500改到5: delayms(5); 现在,构建并运行应用程序注意,LED持续点亮而不是不断闪烁。这就是简单演示代码第一次编写并运行时的凊况 这样会带来一个基本问题:“灯的确是连续点亮,还是闪烁非常快而无法察觉呢”?如果灯是连续点亮,那就有必要检查原理图和引脚分配确定一切OK。如果LED只是很快地闪烁(太快以至于看不清间隔),那就只需要调整时间这是可能需要做的工作。为回答这一问题峩们现在使用CrossStudio的调试工具。 按下Pause按钮(或者选择DebugBreak)在代码停止的地方,出现一个黄色箭头代码很有可能停止在delayms()函数的‘for’循环中(参见图6)。 圖6.在delayms()函数中代码停止运行 观察右侧的Locals窗口(如果看不到该窗口,单击DebugDebugWindowsLocals)该窗口将显示变量“x”和“count”的当前值。现在按下StepOver按钮几次。在Locals窗口中您应该看到x值增加了(可以连续按下StepOver,直到循环结束但这可能需要很长的时间)。 现在已经很容易回答“灯是在闪烁吗”这一问題了?对此,需要在main函数的delayms(5)一行设置断点单击该代码行左侧的小三角。它将变为红圈(图7)现在,再次运行应用程序(DebugGo或者Play按钮)。应用程序會运行到这一点然后暂停。现在点击Go若干次后,您会看到随着您的点击,灯接通和关断这验证了灯是在闪烁,只是太快我们的眼睛无法察觉。 图7.加入断点 现在我们借这个机会了解一下更多的调试功能。按下StepOver按钮几次按顺序执行三行代码:while(1),PO0=PO0^0x83和delayms(5)您将看到,当通过PO0行时灯闪烁。现在当暂停在delayms(5)行时,按下StepInto按钮(图8)进入delayms()函数(而不是StepOver,这会执行整个函数) 在运行时,还可以改变变量(和寄存器)清除所有断点(DebugBreakpointsClearAllBreakpoints),单击Go单击Pause,程序应再次停止在delayms()函数的中间部分注意“x”和“count”值。现在把x设置为2499(单击x显示的数值,高亮后输入2499)执行幾次StepOver或者StepInto,您会看到循环结束“count”值也递减了。 以及您感兴趣的其他调试功能:DebugDisassembly将同时显示C代码和生成的汇编代码这样,用户可以进叺汇编代码而不是C代码,同时知道对应于C代码的什么位置 DebugDebugWindowsCallStack将显示应用程序到达当前位置时所调用的函数。如果在delayms()函数中暂停执行其顯示如图9所示。 使用DebugStop停止调试观察右侧的Targets窗口。确定MaximSerialJTAGAdapter以粗体字显示观察下面的配置选项。如果您使用串口而不是默认的COM1,那么可鉯在这里改变这一选项。 图9.在delayms()函数中运行时调用堆栈 更多资讯请关注:21ic模拟频道

  • MAXQ3210的特性及其监视功能包含2kB EEPROM程序存储器、128字节EEPROM数据存储器、64芓节RAM存储器其内置的9V稳压器简化了电池供电电路。它也为其他电路元件输出5V电源在调试方面,它用内置的JTAG调试引擎取代了昂贵的外部汸真器 MAXQ3210集成了用于的外围部件。当环境条件不安全和发生变化时它能够通过压电喇叭驱动器和大电流LED驱动器等外围部件进行告警。这些外围部件在简单的保安系统、烟雾警报器、温度监视器和等应用中很实用 此外,MAXQ3210为环境监视电路提供了多种接口选项其内部的电压仳较器可以监视外部电路输出的随外部环境变化的电压值。其外部电路可以很简单比如测量温度的热敏电阻;也可以较复杂,比如测量電容充电时间的斜率式模数转换器() 除了电压比较器外,MAXQ3210也可以通过数字I/O口监视外部电路例如,当环境条件超出范围时外部监视电路鈳以通过中断引脚向MAXQ3210发送中断请求信号。MAXQ3210也可以使用串行通信协议通过数字I/O口与测量距离和照明情况的外部IC电路进行数据传输。 监视系統的软件架构通常为MAXQ3210编写的应用程序都很简短,足以用MAXQ汇编语言编写下面列举的应用程序用MAX-IDE工具包编写。MAX-IDE是一个由Dallas Semiconductor免费提供的开发环境为MAXQ系列微控制器提供了一个汇编和调试环境。图1示出了一个环境监视应用的基本架构 图1. MAXQ3210的环境监视主程序循环在大部分时间内处于休眠状态,定期唤醒后去读取并分析传感器输出 启动后,微控制器首先要经过一个初始化过程将相关寄存器和配置位按照应用要求进荇设置。如果微控制器初次加电可能还需要一些额外的操作,例如制造商设定的一些测试和配置经过初始化和加电检测后,应用程序進入主循环体开始测量和响应外部环境的变化。首先应用程序通过电压比较器或数字I/O口读取环境信息,并分析环境条件是否超出范围接下来,进行系统诊断如检测外部电路、测量电池电压、核实存储在数据EEPROM中的永久性故障信息等等。随后应用程序检查状态信息,其中包括告警(如低电池)和提示信息(如温度过高)如果环境情况要求执行一些动作,有以下一些选项我们将在下面讨论:驱动喇叭发声使LED閃烁,通过I/O引脚和其他设备通信或者简单地把告警信息存入数据EEPROM以便后续分析。 简单的监视应用软件可以下载为开发环境监视系统而编寫的简单应用程序该程序是在MAXQ3210评估工具上编写和测试的。一个按钮被用来切换告警和正常状态喇叭发声表示告警。 该环境监视应用的主循环体在下面几段中给出用于环境监视的状态机非常简单:获取传感器输出并分析它是否超出了某种门限(温度太高,空气中烟雾浓度呔大等)如果超出边界,则发出告警 其中的SelfTest为系统诊断子程序。系统诊断子程序用于监视电池电压和外部电路的异常情况在SelfTest中也很适匼实现一个计时器,用它来跟踪MAXQ3210投入运行的时间从而计算外部传感器系统的工作寿命。 该应用程序说明了MAXQ微控制器外围部件的易操作性以及如何节省代码的存储空间和执行周期。例如仅需用一个单比特来开关喇叭。 电源管理功耗是环境监视应用中最为重要的一个因素因为它通常是由电池供电的。MAXQ3210提供低功耗停止模式和电池欠压监视器 定期检测外部环境条件时,应用程序可以用两种方式唤醒处于低功耗停止模式的MAXQ3210使其执行代码。这两种方式分别是外部中断或定时器唤醒在等待外部电路触发条件的应用中,外部中断方式比较合适比如,在等待开门或热敏电阻上的压降超出门限时就应该采用外部中断。 唤醒定时器是另外一种使MAXQ3210脱离停止模式的方式唤醒功能在湔面的应用案例中已有讨论:外部监视电路唤醒MAXQ3210,使其检测外部环境条件必要时进行响应,然后再返回到停止模式图2示出了这种工作方式的电流消耗模式。从中可以看出在大部分时间内,MAXQ3210微控制器处于低功耗休眠模式当MAXQ3210从休眠模式醒来后电流消耗增大。此时正是高性能MAXQ核的用武之处MAXQ3210能够更快地完成任务,在高功耗状态下停留的时间更短而更多的时间处于低功耗休眠模式。 图2. 监视应用程序在大部汾时间内休眠以节省功耗它定期醒来并快速运行。 由于电池是大多数监视应用中的关键部件检测电池是否快用完很重要。通过检测一個寄存器状态位来判断电池电压是否低于门限这个门限被固定于7.7V,这正是9V电池濒临耗尽时的电压在这个电平下,电池还有一定的电量可保障MAXQ3210继续运行一段时间。低功耗应用系统比如烟雾警报系统,可以在电池电压低于门限后工作几天或几周并不断发出低电压告警信号。 数据EEPROMMAXQ3210的128字节数据EEPROM极大地方便了应用程序可使应用程序存储永久性的配置和状态数据,即使在电源失效或去掉电池后也可保持这些數据永久性数据存储可用于以下这些目的。 改进性能稍微不能满足性能指标要求的系统(比如,测距仪测量的距离稍微偏短)可以存储永玖性配置信息以使软件能够补偿外部电路的偏差。这种措施可以使已被弃用的设备被重新利用或出售 动作配置及用户化。MAXQ3210应用系统可鉯按照特定环境或用户的要求定制比如,系统可以被配置为大型网络的一部分当测量值超过门限时,该系统不但自己鸣喇叭告警而苴还可向其他设备发出警报。通过配置生产厂家可以使能或禁止这种网络功能。 工作期限用于环境监视的传感器和测量电路可能会随著使用期限而劣化。通过修改EEPROM中的数据应用程序可以确定电路必须被替换的时间。比如在使用5年后,监视系统可以自动禁止自己工作并通过鸣喇叭或点亮LED提示自己不能再工作。 环境监视应用火灾和煤气警报器等住宅安全系统是典型的环境监视应用MAXQ3210完全可以实现这些功能,但是它比烟雾警报专用微控制器更通用利用本文前面介绍的环境监视程序架构,可以开发出各种应用系统在下面列举的安全应鼡中,有些应用是为了防止或减少公司或家庭的损失其余的应用是为了方便用户。 为了防止家庭或办公室遭受水灾可以为地下室安装沝位监视系统。该系统可以利用湿度传感器或类似于卫生间冲洗水箱的装置来检测水位当水溢出或超过一定水位时,传感器或浮漂触发外部中断MAXQ3210鸣喇叭,发出警报此外,MAXQ3210可以和公司或家庭网络通信把警报发给公司或家庭成员。 温度监视是另一种可能的应用超市冰櫃或运输车冷冻车厢内的温度不能过高。为此可以用简单的热敏电阻和MAXQ3210构成监视系统。当冷却器内的食物温度超过安全界线时系统发絀警报。这种监视系统有许许多多的用途比如,用于监视网络设备、实验室设备、保藏艺术品、饮料以及其他易腐烂物品的温度 监视應用的目的也可能是为了方便用户。当宠物、小孩或入侵者进入家庭的禁区时由MAXQ3210构成的可以向主人发出警报。当然该检测器应该可以通过按钮来开关。 MAXQ3210也很适合实现一个辅助泊车装置它可以根据距离探测电路测量的距离使喇叭发出不同的警报声音。这种系统需要一些配置和智能处理在车库内停车时,系统能够帮助车主防止碰撞墙壁但用户并不希望他们从探测电路前面走过时系统鸣喇叭警告。为此可用软件实现延迟,当系统初次探测到移动时软件可以让系统等待两秒钟看是否有进一步的移动。若无这可能是有人在传感器前面赱动。也可以通过按钮来开关系统;这样可以避免用户在车库内工作时系统不断地发出警告 评估工具MAXQ3210评估工具(EV kit)是开发原型应用系统的理想平台(参见图3)。它使用9V电源或电池用两个按钮分别来复位和产生中断信号,用一个10针JTAG接头访问硬件调试程序可以显示和调整MAXQ3210的寄存器、存储器和堆栈。I/O引脚由一个便利的2 x 20针接头引出靠近原型区以便于测试外部电路。 板上压电喇叭和LED可被用作应用中的测试信号和发生设備默认状态下,压电喇叭输出经过阻尼的声音―响亮但不刺耳。也可通过跳线来短路阻尼电路使喇叭发出最强的85dB音量。 MAXQ3210评估工具可鉯配合MAX-IDE使用它支持MAXQ3210的硬件调试引擎,可进行源代码级的调试和监视内存 图3. MAXQ3210评估工具配备有压电喇叭、LED和9V电池座,支持完整的应用开发 MAXQ3210的优点总结如上所述,MAXQ3210在环境监视应用中有诸多优点其中的主要优点之一是高集成度。监视应用所需的元件基本上都被集成到了芯片仩(包括电压比较器、喇叭和LED驱动器等)因此省去了不少外部元件。高集成度降低了系统的费用提高了系统的可靠性,减少了需要测试的え件数量而且,单片化的方案所需的连线更少缩短了电路板的测试时间。单片方案也意味着印刷板更小、成本更低 MAXQ3210的另一个优点是高性能,低功耗单周期MAXQ核和大量的寄存器空间允许应用程序更高效地保存数据并更迅速地执行任务。MAXQ3210在更多的时间内处于低功耗休眠模式而执行代码的时间更少。 最后MAXQ3210的电池监视功能和数据EEPROM便于实现灵巧、自我监视的应用。电池快耗尽时器件可警告用户此外,系统還可跟踪其元件的寿命实现有计划的设备更新。 结论MAXQ3210是一款MAXQ微控制器的低引脚数实现用于不需要高档微控制器提供的外设的应用。虽嘫MAXQ3210是环境监视系统的理想方案但它也是一个通用的、高性能、节能型微控制器,能够为许多应用提供智能和互动能力 值得注意的是,雖然本文只讨论了MAXQ3210在环境监视中的应用实际上它的应用范围要广阔得多。利用其数据EEPROM、支持捕获、比较和PWM操作的16位定时器、以及高性能MAXQ微控制器核MAXQ3210可以应用在许多领域。

  • 在嵌入式微控制器应用中通常都要用到非易失性存储器。无论是掉电时维持需要保存的设置还是存储公司的重要记录,可靠的非易失性存储器都是现代微控制器领域的一个基本单元 非易失性存储常常采用外部串行存储器实现。多年鉯来该领域用到了数十亿颗类似存储器件,它们的可靠性得到了的广泛认可目前,存储器可以做到几百字节到1兆字节甚至更大的容量在每一个需要保持设置的设备中,都能找到这样一个紧凑、廉价的器件   包括EEPROM、闪存和旋转式存储器在内,所有类型的非易失性存储器嘟面临一个共同的问题:写周期被中断时数据会丢失。一旦在写周期执行过程中掉电那么即使再恢复电源,也很难修复损坏的数据 夲文提出了一种基于事务的提交-回退机制,用于保护一个外部串行EEPROM存储器件的内容这些措施同样适用于大多数MAXQ微控制器的内置EEPROM。可以下載本应用的代码文件(ZIP20.5kb)。 I2C EEPROM的特点 串行存储器件有多种接口但最常用的接口是I2C接口。这种总线接口有很多优点:高度标准化的接口;控制器和存储器之间只需两条线;而且具有灵活的时序要求可以由软件驱动。一个I2C主机可以驱动很多I2C从机从而最大程度减少了主机的引脚數。 在所有EEPROM器件中写周期都要比读周期长的多。因为在写周期过程中电荷需要借助隧道效应并通过绝缘层进行转移,而这个过程很费時间虽然增加电压可以加快这个过程,但是过高的电压会导致绝缘层的介质击穿从而损坏器件。典型的EEPROM器件写周期持续10毫秒左右;而讀周期通常需要几百个纳秒 为了显著缩短写周期的时间,许多I2C EEPROM器件采用页面模式该模式允许将多个字节传送到缓存中,然后将数据一佽性写入存储区I2C存储器件的典型页面尺寸为32字节。因此可以在一个写周期内向EEPROM填入32个字节。 这一点非常重要因为串行EEPROM器件都具有特萣的耐久度:即每个页面所能承受的写周期次数上限。典型的写周期次数从10,000到1,000,000次然而,即使存储器件能够承受1百万次写周期软件也会佷快将其损耗殆尽。软件每秒仅执行100次写周期那么不到3个小时就会耗尽器件的写周期次数。 考虑到这些基本的EEPROM特性设计者为一个嵌入式处理器设计可靠的非易失存储系统时,需切记以下几点: 不要在同一页面上反复执行写操作尤其是不要将某个页面设置成写入任何其咜页面时都要更新的“目录”。 如果在写周期过程中电源被中断必须提供以下机制:(1) 检测被中断的写操作;(2) 完成被中断的操作;(3) 或者将倳件回退至写操作之前的状态。 必须通过某些数据校验机制(校验和、CRC或消息摘要)来保证数据的完整性 设计目标 虽然上面提到的EEPROM问题可通過多种非易失文件系统加以解决,但这样的文件机制对于小型嵌入式微控制器来说负担过重很多文件系统需要更多的RAM,远远超出了小型微控制器所能提供的容量而且对于多数应用,也不需要一个完整的文件系统 考虑到这一点,下面列出了EEPROM数据保护机制的设计目标: 精簡:保护机制用于存储校验数据的空间不应超过EEPROM的10%它应该只需要少量的计算开销。 块大小:被保护的块大小应该和EEPROM的写操作页面大尛一样。由于EEPROM器件的页面大小通常是2的偶数次幂因此与每个块保留1或2个字节的做法相比,相同的尺寸大小更便于软件编码 耐久性:每個保护周期不要对同一页面进行写操作。 可靠性:每次掉电情况下数据都应是可恢复的。 这里提到的保护机制有6个接口函数:读、写、提交、回退、检查和清理 读函数接收一个块编号和一个指向32字节缓存的指针。如果缓存地址和块编号处于有效范围内程序就会将指定嘚块数据读入缓存,并校验数据的有效性它会返回如下状态:有效读(valid read)、无效读(invalid read)、无效缓存地址(invalid buffer address)、无效页面编号(invalid page number)或保护失败(protection failure)。 写函数接收┅个块编号和一个指向填好数据的32字节缓存的指针如果缓存地址和块编号处于有效范围内,程序就会将数据写入非易失性缓存并标记緩存状态以准备提交。 提交和回退函数是可以在写操作之后执行的互补型操作。提交函数将最近被写入的缓存数据复制到对应的存储区朂终位置并为下一个待写入的数据块准备好缓存结构。回退函数实际上就是一个“取消”操作它消除最近一次写操作产生的效果,并為下一个写操作准备好缓存子系统 检查函数读取存储器件的每个数据块,并检查存储数据的有效性该函数还检查缓存子系统,以确保沒有未执行的写操作任何无效块或未执行的写操作都会使检查函数返回一个错误状态。 清理函数修复一个数据损坏的EEPROM实际上,它将试圖找出发生的错误并采取相应的解决措施。 关于这些函数的更多细节参见下面的操作详解。 图1. EEPROM存储器的结构存储器被划分为3个区域:主存储区,包含实际用户数据;校验存储区包含主存储区每1页的CRC;缓存,包含存储临时写入数据的四个缓存 EEPROM结构 参考上面图1给出的EEPROM結构。EEPROM包含三个主要区域: 主存储区:EEPROM的最大区域用于存储用户数据在一个16kB器件内,包括512页、每页32字节的存储空间在这样的器件中,開始的473个页面专门用来存储数据 校验存储区:EEPROM的第二个部分,用于校验主存储区每个页面的数据校验存储区的每1页都包含15个16位的CRC值。烸1页的最后1个CRC用于校验本页数据校验存储区占用31页(从473到503页)。 缓存:EEPROM的最后部分包含由8个页面构成的4个写缓存。每个缓存包含4个域:数據域它包含32字节数据,执行下一个提交命令时数据将被写入主存储区;地址域,它表示缓存数据要写入的页面地址;状态域它表示緩存的状态(包括可用(available)、占用(occupied)和终止(expired)状态);16位CRC域,用来校验整个写缓存缓存结构见图1所示。[!--empirenews.page--] 这种EEPROM结构可以实现主要的设计目标首先,由於主存储区每1页数据的校验结果都存储在另一个位置所以页面的所有位都用于存储用户数据。其次由于主存储区的每1页都通过校验存儲区的特定字来校验,因此校验存储区不会有单点错误并且也不会在每个写周期中都去更新整个校验存储区的同一页面。最后使用4个寫缓存分散了写周期带来的损耗。 操作详解 对于一个不带保护功能的EEPROM具体操作非常简单。一个读周期简单地将字节从所选择的地址传送給主机;一个写周期将字节从主机写入EEPROM并等待操作完成(大多数器件需要几个毫秒的时间)。然而在一个提供保护的EEPROM环境下,读和写操作僦比较复杂了在以下各节中,对每个操作进行了分解以便了解函数被调用时到底是如何操作的。 读操作 图2. 读操作的流程图 读操作这个朂简单的接口函数也是相当复杂的。图2给出了操作流程: 检查页面地址和缓存地址以检验它们的有效性。如果地址无效则就此结束操作,函数返回一个无效缓存地址或无效页面编号错误代码 将所选页面读入缓存。 计算校验页面的地址并将相应的校验页面读入暂存區。 计算校验页面的CRC如果校验页面的数据无效,则返回一个保护失败错误代码 计算数据缓存的CRC,并将其与暂存区中对应读取页面的CRC进荇比较如果CRC匹配,则程序返回有效读代码;如果CRC不匹配则程序返回无效读代码。无论结果怎样实际读取的数据都保存在返回缓存中,以供调用读操作的程序使用 写操作     图3. 写操作的流程图   如上所述,写操作并不是真正将数据写入主存储区实际上,写操作是将数据写叺4个缓存之一在这种方式下,主存储区内原先的数据将一直保持到整个有效写操作流程完成后为止图3的流程说明了以下几点: 检查页媔地址和缓存地址,以检验其有效性如果地址无效,操作在这里结束函数返回一个无效缓存地址或无效页面编号错误代码。 读取每个寫缓存的状态域如果任何缓存处于占用状态,则操作失败并返回写过程(write sequence)错误代码 4个写缓存之一应处于终止状态。如果是这样激活下┅个缓存。 数据被复制到写缓存的数据域 页面地址被写入地址域。计算CRC校验结果并将其写入CRC域将状态改为占用。将前一个缓存置为可鼡状态(即更新原来的终止状态) 需要注意,此时对新写的页面进行读操作将返回页面原来的数值。只有等提交操作完成后才会返回新徝。 提交操作 图4. 提交操作的流程 提交函数不需要参数它的工作就是如实地将数据从写缓存传送到主存储区,然后将写缓存标记为终止状態提交函数的操作流程如图4所示: 读取每个写缓存的状态域。应该只有1个缓存标记为占用状态否则,函数在此结束并返回一个写过程错误代码。 对被占用的缓存进行CRC校验如果不匹配,则返回一个数据损坏错误代码 提取页面地址,并将数据写入主存储区的指定页面 计算缓存的数据部分的CRC。该值被保存在一个临时寄存器中 找到对应所选主存储区页面的校验页面,并读取该校验页面的内容 用前面計算的CRC更新校验页面,为校验页面计算新的CRC 将校验页面数据重新写回校验存储区。 将写缓存更新为终止状态 回退操作 图5. 回退操作的流程图 如图5所示,回退函数是最简单的操作之一由于主存储区只有在完成一个提交操作后才更新数据,而不是在一个写操作之后更新的所以回退操作只需将写缓存置为无效状态即可。 读取每个写缓存的状态域应该只有一个缓存被标记为占用。否则函数在此结束,并返囙一个写过程错误代码 将所选的写缓存状态域置为终止。 检查操作 图6. 检查操作的流程图   在任何上电情况下都需要调用检查函数以确保EEPROM鈳以接受数据。检查函数检验存储系统的可用性并报告任何发现的错误。该函数的检查操作如图6所示: 读取每个写缓存确认只有一个緩存不是可用状态。如果只有一个缓存含有未定义的状态代码则返回一个写操作中断(interrupted write)错误代码。如果所有缓存均包含未定义的状态代码则返回EEPROM未初始化(uninitialized EEPROM)错误代码。[!--empirenews.page--] 如果仅有一个缓存包含占用状态代码计算此缓存的CRC。如果CRC不匹配则返回一个写操作中断错误代码。 检查校验存储区的每一个页面如果任何页面没有通过CRC校验,则返回保护失败错误代码 最后,检查主存储区的每一页并与存储的各页CRC进行對比。如果有1页未通过CRC校验则返回一个提交中断(interrupted commit)错误代码。 清理操作 图7. 清理操作的流程 清理函数解决EEPROM系统存在的任何问题在清理操作退出时,无论EEPROM子系统先前是何种状态都应该可以继续使用了。所有未提交的写操作将被回退并且完成失败的提交操作。 图7演示了清理操作是如何工作的: 如果检查操作返回一个EEPROM未初始化的错误代码则初始化EEPROM。清除所有数据页面并且初始化所有校验页面。除最后一个寫缓存被初始化为终止状态外清除其它所有写缓存并置为可用状态。 如果检查操作返回一个写操作中断错误代码则找到那个不是可用狀态的写缓存。将它的状态改为终止状态 如果检查操作返回一个提交中断错误代码,则找到CRC不匹配的主页面计算出它的CRC并更新相关校驗页面。 如果检查操作返回保护失败错误代码则表示紧随提交操作的更新校验页面操作被中断。读出所有与错误校验页面相关的主存储區页面并刷新校验页面。 安全性证明 要证明系统的安全性需要确定写操作过程中数据容易损坏的时刻。(读操作从本质上来说是安全的读操作期间不会对EEPROM页面进行写操作,因此数据不会被损坏) 确定了这些易损时刻后,只需要再确定一个恢复过程如果恢复机制涵盖了所有可能的数据损失情况,而且如果我们假定在任何一个可能破坏EEPROM写周期的事件之后都将首先执行校验/清理周期(例如上电),那么系统就昰安全的 在大多数串行EEPROM器件中,一个写操作首先将页面的每位数据都置为已知值然后将所有需要改变的位设置为需要的值。因此在掉電时中断的写操作极有可能破坏该页的所有字节。通常可以通过向损坏页面写入新数据进而从这一失效事件中恢复出来。但这会失去原来的数据 写操作过程中数据容易损坏的时刻如下所述(按发生的时间顺序排列): 对数据域进行写操作:如果此时发生电源失效事件,检查操作不会检测到错误正在被写入的写缓存仍显示可用状态,但可用的缓存不包含有效的CRC值 向当前写缓存写入状态信息:这个操作将狀态域改为占用状态,设定CRC并为写操作填入页面地址如果这个过程被中断,可能发生如下情况:(1) 状态无效从而导致一个写操作中断错誤;(2) 状态有效,但CRC错误仍会导致一个写操作中断错误;(3) 状态和CRC域有效。在最后这种情形下系统有未提交处理的写操作。可以检测到这┅状态因为此时一个缓存将处于占用状态而另一个缓存为终止状态。如果子系统的其它部分检查通过则用户代码可通过发出提交或回退操作继续执行。无论发生何种情况主存储区和校验存储区都是安全的。 前一个缓存状态清除为可用状态:缓存可能有损坏的状态或CRC洏下一个缓存为占用状态。这意味着清除该缓存的状态时操作被中断这种情况下可以执行提交或回退操作。 在写操作和提交操作之间:呮有一个写缓存将处于占用状态并且通过了CRC校验。用户代码可以请求提交或回退操作写缓存、校验存储区和主存储区都是安全的。 提茭操作过程中数据容易损坏的时刻如下所述: 将数据域复制到主存储区:如果写操作被中断主存储区的1个页面数据可能被破坏。检查函數会检测到两种状态:(1) 一个有效的占用写缓存;(2) 中断的提交操作导致主存储区页面数据损坏写缓存和校验存储区是安全的。在这种情况丅清理操作会完成提交操作并返回一个干净的系统。注意:即使写操作已经完成检查操作仍会因为校验存储区的CRC与计算出的CRC不匹配而報错。 更新校验存储区的CRC:如果对校验页面的写操作被中断则整个页面的数据都可能被破坏。这意味着主存储区的15个页面都对应着无效嘚CRC但是由于校验存储区的每一页都有自己的校验和,而且在写操作中断后会产生校验和错误因此检查程序会发现这一点。在这种情况丅检查程序会返回保护失败。修复方法如下:首先重新计算所有受影响的15个页面的CRC值然后将这些值和该页自身的有效CRC值一起写入校验頁面。 更新写缓存的状态信息:如果当状态变量从占用状态变为终止状态时写周期被中断,那么整个写缓存页面的数据都可能被损坏泹是,校验存储区和主存储区都是安全的检查操作会找到数据损坏的页面,并返回写操作中断错误代码当运行清理程序时,它将复位寫缓存子系统并完成提交操作。 最后在回退操作中数据容易损坏的时刻为: 更新写缓存的状态:与提交周期的最终状态类似,该操作呮是简单地将写缓存的占用状态复位至终止状态如果它被中断,则检查程序会返回写操作中断并且清理程序会重新初始化所有的写缓存区域。校验存储区和主存储区仍是安全的 可以看出,无论电源何时掉电或处理器何时被复位存储子系统都可保持数据的完整性。发苼电源失效事件后存储子系统会返回到可进行读或写的状态。如果一个提交操作被中断子系统会返回到可执行提交或回退操作的状态。[!--empirenews.page--] 设计起步 MAXQ微控制器的EEPROM存储系统功能完备系统设计者可以根据需要来增强该系统的功能。但需要注意以下几点: C封装程序:在多数C语言標准中与汇编语言子程序双向传送数据时都有一套标准的方法。例如在IAR开发环境下参数在低编号的累加器中传入和传出。由于参数已經传入A[0]和A[1]为这些程序建立一个C封装器,就像写函数原型一样容易在其它C环境下,参数传递是通过数据栈进行的需要一个简单的封装孓程序。 并发处理:首先要保证写周期的完整性并且提供一套能够保证完整性的机制,对于整个平台的成败至关重要但很多应用都需偠这样一种机制,即可以让一系列写周期排队并一次执行完毕从而保证全都执行或全都不执行。但本文讨论的机制不能工作在这种方式丅如果一个系统存有跨越多个页面的信息记录,则可以中断一个写操作这使得恢复之后的记录涵盖了包含部分新数据的页面和包含部汾旧数据的页面。有一种方法可避免该问题即在执行提交操作之前允许多重写操作。这种方法并不像听上去那么简单因为一个部分提茭的事务,可能同时包括新纪录片断、旧记录片断和损坏的页面 平均读写机制:平均读写作为闪存文件系统的一个特点,是指虚拟化页媔地址使得被频繁写入的页面会出现在存储器的任何物理位置。但是很难找到实现这一目标的最佳方法这是因为,最直接的解决方法(活动存储块的目录处于固定的位置并且每次写操作后都要对它进行更新)会导致存储目录的页面迅速损耗。所以就像处理数据页面那样,还必须虚拟化和离散化目录本身 其它页面尺寸:这里给出的系统假定采用一个16kB、每页32字节的存储器件。如果所选择的器件具有更大的頁面尺寸(64字节或128字节)这些函数仍可工作,只是会伴随一些额外的写入损耗(更新128字节页面中的32字节区段时,会对整个128字节页面执行写操莋)但这些函数无法对具有更小页面尺寸的器件进行操作。可以构建一个能够在线确定EEPROM器件特性的系统并可根据实际特性配置系统的参數。 增强的安全性:本系统对以下类型的错误提供保护:由于电源失效或不可预期的系统复位而造成的EEPROM操作中断但EEPROM器件偶尔也会因为其咜原因出错。例如由于电路噪声或致电离辐射导致的软件错误。或者由于一个或多个存储单元损耗而导致硬件错误 一种解决方法是计算并维护校正子(syndrome),而不是采用简单的CRC校验字校正子和校验字类似,但是包含了足够的信息以修复简单的位错误最简单的校正子系统可鉯用log2n + 1个校验位来检验n个数据位。因此对于一个32字节(256位)的页面来说,一个仅包含9位的校正子就可以修正任何1位错误对数据完整性的要求哽加严格时,可以采用更加复杂的系统来解决类似问题 结语 外部串行EEPROM为微控制器环境下存储非易失数据提供了一种可靠的方法。利用本攵提到的技术即使面临写操作中断的情况,串行EEPROM依然能够可靠地工作在任何对数据完整性要求较高的应用中,设计者都可以考虑这些技术

  • 引言 I?C (内置集成电路)是一种2线接口,实现集成电路之间的双向通信本应用笔记介绍maxqi2c库,它是MAXQ2000微控制器(?C)的软件I?C驱动 maxqi2c库采用扩展C语言编写,由MAXQ的IAR嵌入式平台编译它由两个文件组成:maxqi2c.h和maxqi2c.c。当这些文件包含在MAXQ2000固件工程时使用?C的任意GPIO引脚,便可实现100kHz或者400kHz灵活的I?C通信 MAXQ系列的微控制器具有高速、灵活的GPIO模块以及独立的I/O供电,适用于位拆裂等应用 上面清单1中的源代码在I/O端口0分配引脚0,作为SDA在I/O端ロ0分配引脚1,作为SCL 选择通信速率 通过注释I2C_400_KHZ和I2C_100_KHZ两个定义语句之一来选择通信速率。 清单1的源代码通过400kHz I?C总线初始化maxqi2c库进行通信。由于I?C接口是逐位控制通信速率实际略低于400kHz (或者,另一种选择100kHz)为达到全速400kHz通信,固件设计人员必须学习maxi2c库去掉某些源代码,发挥库的灵活性 注释:maxqi2c库包括时延以满足I?C规范。这些时延在maxqi2c.c文件的开始假设MAXQ2000具有20MHz系统时钟;如果采用了速率较低的时钟,可以减小时延 使用时鍾扩展 要使能时钟扩展,则不应注释掉I2C_CLOCK_STRETCHING定义声明如果不需要时钟扩展,通过注释掉I2C_CLOCK_STRETCHING定义语句禁用它禁用时钟扩展会稍微提高maxqi2c库i2cRecv()函数的速率。 上面清单1的源代码使能时钟扩展 使用maxqi2c 必须在调用任何其他maxqi2c函数之前调用该函数。它初始化maxqi2c.h文件中用户定义代码所选择的端口引脚该函数不需要参数(局部或者全局),不返回数值 i2cIsAddrPresent() 该函数使MAXQ2000能够查询I?C总线,以确定是否有特定地址的器件该函数有一个参数――全局變量i2cDataAddr,它必须由器件地址装入查询I?C总线是否有器件。该函数还返回一个数值(无符号字符类型)如果找到了给定地址的器件,该数值等於I2C_XMIT_OK如果没有找到给定地址的器件,则等于I2C_XMIT_FAILED i2cDataLen (无符号整数):向I?C总线传送的字节数(不包括器件地址)。 i2cDataAddr (无符号字符):数据将被传送到的器件嘚地址注意,如果该变量设置为0将不发送地址,传送I?C数据 i2cDataTerm (无符号字符):I?C传送如何结束。调用i2cSend(): I2C_TERM_NONE或者I2C_TERM_STOP时该变量可以取两个值。 [DATA1] [A] [P] 注釋:表1中的最后3个格式显示了i2cSend()怎样向I?C总线上的同一个器件连续发送数据 如果寻址器件每一字节作出应答,i2cSend()函数返回一个等于I2C_XMIT_OK的数值(无苻号字符类型)如果寻址器件每字节没有应答,返回值则等于I2C_XMIT_FAILED当一个字节没有得到应答时,函数将立即返回 i2cRecv() 该函数使MAXQ2000能够使用软件I?C驅动从器件接收数据。i2cRecv()函数需要以下4个参数(均为全局变量)来初始化: i2cData (无符号字符 *):存储接收数据阵列的第一个字节指针 i2cDataLen (无符号整数):从I?>C总线上接收到的字节数(不包括器件地址)。 i2cDataAddr MAXQ2000网页下载采用MAXQ IAR嵌入式平台编译。该实例中maxqi2c库的用户定义代码(在maxqi2c.h文件的开始)与清单1的源代码唍全相同。 固件分成5步在max1169.c文件中标出(参见附录A)。 第1步初始化UART0以19200bps进行异步通信。注意如果MAXQ2000系统时钟不是20MHz,必须修改寄存器PR0的分配以获嘚所需的波特率

  • MAXQ8913及其它MAXQ?微控制器采用的Harvard存储器映射架构为用户提供了极大的灵活性,可根据需要将不同的物理内存(例如数据SRAM)映射为程序或数据内存空间在特定环境下,从数据SRAM执行一个程序的部分代码能够提升性能并降低功耗这些优势都是以应用程序的更加复杂为代價。 概述 MAXQ8913和其它许多MAXQ微控制器一样也包含了一个基于SRAM的内置数据存储区域,该存储区域可被映射为数据内存空间或者选择映射为程序內存空间。内置SRAM通常用作数据存储器而在程序闪存或掩膜ROM中执行大部分程序代码。然而在特定环境下,从内部SRAM执行有限的部分代码非瑺有用 本应用笔记介绍如何配置、装载汇编程序,以便从内部SRAM正确运行本文还讨论了这种方法的优势和缺点。本应用笔记给出的例程針对MAXQ8913编写使用基于汇编的MAX-IDE环境。用户可下载本文所涉及的应用程序代码和项目文件 本文讨论的代码都特别针对MAXQ8913微控制器编写,所介绍嘚原理和方法也同样适合其它含有可映射为程序空间的内部SRAM的MAXQ微控制器能够以这种方式执行代码的其它MAXQ微控制器包括:MAXQ2000、MAXQ2010和MAXQ3210/MAXQ3212。 该代码能佷好地运行在任何基于MAXQ8913并为MAXQ8913的串口0提供一路串行接口(RS-232或USB至串口转换)的硬件将一个终端模拟器连接到该串口,并设置为9600波特率、8个数据位、1个停止位、无奇偶校验即可查看例程的代码输出。 用户可免费下载MAX-IDE环境的最新安装程序包和文档资料 MAX-IDE安装程序 MAX

我要回帖

更多关于 sw6加密块没插上或已损坏 的文章

 

随机推荐