随着消费市场的不断发展,终端应用产品的体积不断缩小,Power(功率)越小越好。便携性和低功耗成为最优先考虑的事情,并促成处理器内核电压降至1.8v的行业动向,也就不足为奇了。尽管与3.3v和5v型号相比,这些低功耗器件消耗的能量确实要低得多,但是低功耗处理器并非都一样。设计出色的低功耗应用需要同时考虑终端应用的需求和各种可用的µC特性。
设计人员可能会提出以下问题:是否能够重新充电?尺寸能够做到多小?典型的工作时间是多少?速度必须多快?要连接哪种类型的外围器件?这些答案将最终为确立设计标准和功率要求积累原始资料。
图1:典型µC环境中的器件处理功率
首先应该考虑CPU的处理功率,一般来说,CPU是功耗最高的外围器件。处理器全速运行时,耗电量非常大,因此CPU处于待机或关闭状态的时间越多,电池寿命越长。例如,4位处理器比32位处理器的功率消耗低;而处于休眠或停机状态的任何位数的处理器均比工作中的处理器的功耗要低。因此,如果32位处理器执行功能所耗的时间仅为4位处理器的1/10,那么,它在整个系统生命周期内要少消耗9/10的功率。因此,大多数制造商建议以较高的频率运行CPU,迅速完成任务,并立即返回到功耗最低的休眠状态。总之,在选择处理器速度时,要考虑能够迅速处理预期工作量并尽可能长时间地处于休眠状态。
其次应考虑大多数便携式应用的中断服务例程(ISR)。ISR会定期唤醒处理器执行预排程序的或用户启动的任务,然后让处理器返回到休眠状态。进入和退出ISR所用的CPU时钟周期越少越好。事实上,许多ISR(例如端口I/O)有多个标志,这些标志可能会触发同一中断。采用程序计数器相对寻址方式的处理器会大大缩短识别和处理适当中断源所需的必要周期-尤其是在键盘扫描应用中。如果ISR编写得好,通过限制唤醒CPU、执行任务和返回休眠状态所需的程序分支,可以确保处理时间最短。采用中断向量表的处理器中,程序计数器加载ISR地址,这种处理器有助于减少额外的程序分支,并降低功耗。自动上下文保存以及算术逻辑单元(ALU)标志和功率模式的恢复功能也可以促进节能。
此外,由于在低速或时钟停止的环境中,动态内核处理器不能保持数据的完整性,因而应尽可能使用静态内核处理器。
工作模式
休眠和“低功耗”模式也是必须考虑的重要问题。通过减慢唤醒时间实现低功耗状态(或关闭对唤醒器件非常重要的功能)会增加功耗,而不是降低功耗。
大多数低功耗器件的休眠或空闲模式会关闭处理器和时钟,通常流耗低于一微安。然后,需要I/O中断把处理器从休眠模式唤醒。使用32kHz时钟驱动定时器或实时时钟能以更灵活的方式唤醒处理器。基于32kHz振荡器的功耗不像“深度睡眠”模式那样低,但它能以几微安的电流提供时钟功能。由于许多便携式应用需要实时时钟功能,这种改进可以让系统选用多种不同的外围器件。
需要注意的一点是,如果处理器必须使用RESET信号从停机状态唤醒,它必须运行所有硬件初始化程序。事实上,即使处理器SRAM中的内容没有改变且仍然能够寻址中断,它也将不得不重新初始化处理器外围器件,这将消耗能量。
振荡器
在通过复位唤醒时,由于稳定振荡器晶体所花费的时间不同,内部振荡器能比外部振荡器多执行将近1,000条指令。例如,使用外部振荡器的100MIP机器启动、稳定和处理指令需要的时间为1毫秒。与此相比,同一台机器仅需要1微秒时间就可以使内部振荡器全速工作。让外部振荡器稳定的时间里,内部振荡器可以完成加电,执行1000条指令,然后恢复断电状态。这一时间通常已足够找到中断地址,并恢复断电状态。那么,为什么要考虑使用外部振荡器呢?外部振荡器通常在整个工作温度范围内更准确。事实上,在低功耗应用中,嵌入式程序装置经常习惯对照外部振荡器校准内部振荡器。这是因为驱动外部振荡器并使其达到速度所需的电路比内部振荡器消耗的功率更大。
选择内部振荡器时应慎重。虽然某些内部振荡器可以在数微秒内唤醒处理器,但是,必须在经过数毫秒,当外部晶体达到稳定之后,才能以更高的速度运行,然后CPU时钟才能切换到更高的频率。例如,如果一个100MIP的处理器有一个20kHz的内部时钟,该时钟与外部振荡器的1MHz时钟同时启动,内部振荡器将仍然能够执行999条指令,而更高速度的处理器用同样的时间只能执行20条指令。
定时器
利用好定时器有助于在处理器保持待机状态的情况下实现系统处理功能。由于定时器功耗非常小,因此这有助于大大降低功耗。应该使用实时时钟模块接受32kHz计时器定时器输入和设置不同时间间隔的“警报”或中断,在无需处理器干预的情况下,使计时器计数增加。同样,应该使用影子寄存器更新和比较来自ISR的值。一旦寄存器读到有效的预编程值,即触发ISR,使处理器脱离休眠或待机状态,而不需要CPU寻找ISR地址、更新周期或比较值。
管理开销
管理开销系统监视程序、监管工作有助于防范不安全的状况,有关器件包括电压监控器和看门狗定时器。由于数字电路依赖触发器或从负到正(或相反亦然)状态的转换,因此,即使工作电压有稍小的下降,也可能会意外触发RESET条件,从而造成系统无法工作。电力减弱保护作为电压监控的一部分,一般用于确保电压瞬变不会强制处理器进入和退出RESET状态。
只要有可能,在电压监控解决方案中应采用不可屏蔽的中断(NMI)来识别电压瞬变。这种方法让用户能随心所欲地设定电压触发的门限电平,无需系统复位条件,其功耗一般比模拟-数字转换器(ADC)通道更低。
看门狗定时器监视故障情况。虽然在典型的嵌入式应用中,内嵌的系统程序器往往禁用看门狗定时器,但是在低功耗系统中,在电源电压不稳定的情况下,看门狗定时器是一种有用的工具。看门狗定时器会执行预先设定功能,例如在符合某些条件时,比如电压过低或有内存问题时,向处理器发出RESET指令。所选择的处理器应该能够生成已知的ISR,使处理器无需执行RESET而恢复联机状态;因为执行RESET,必须启动外围设备,因而会消耗更多的处理器功率。
UART通信
将一个数字时钟与另一个数字时钟精确到秒地同步是不可能的,因为每个时钟均与其内部晶体同步。在MCU驱动的系统中,低功耗模式下使用的32kHz实时时钟晶体与用于生成UART波特率的普通38.4kHz频率之间会出现类似的同步问题。因为实时时钟的32,768频率使15位寄存器每秒溢出一次,所以非常适合时间保持(time-keeping)应用。比较而言,在UART中使用相同的频率,则在典型的10位(起始位、8位数据和1个奇偶校验位)传输中保证至少有一位读取不正确。这是由于32,768Hz时钟必须除以3.4,才能得到9,600波特率。由于没有3.4这一选择,因此必须选择除以3或除以4(参见图2)。
将一个数字时钟与另一个数字时钟精确到秒地同步是不可能的,因为每个时钟均与其内部晶体同步。在MCU驱动的系统中,低功耗模式下使用的32kHz实时时钟晶体与用于生成UART波特率的普通38.4kHz频率之间会出现类似的同步问题。因为实时时钟的32,768频率使15位寄存器每秒溢出一次,所以非常适合时间保持(time-keeping)应用。比较而言,在UART中使用相同的频率,则在典型的10位(起始位、8位数据和1个奇偶校验位)传输中保证至少有一位读取不正确。这是由于32,768Hz时钟必须除以3.4,才能得到9,600波特率。由于没有3.4这一选择,因此必须选择除以3或除以4(参见图2)。
图2:9600波特传输时32Khz驱动UARTRx错误
UART数据用10,922波特或8,192波特的UART接收。由于UART在传输中间点对数据进行采样以补偿抖动,因此该点已经被选择为接收UART的采样点。在没有行抖动的理想情况下,10,922波特UART对第三数据位的开始两次读数都会是错误的而8,192波特的UART由于会完全遗漏第三位,很快就将出错。由于低功耗应用的理想时钟是低功耗实时时钟模式,这使得在低功耗环境中处理很困难。解决这一问题的最好办法就是将µC与调制技术结合使用,用32kHz振荡器提供非常精确的2,400波特,并完全能支持9,600波特(参见图3)。
图3:在9600波特传输时采用时钟调制的32Khz驱动UART
通过混合两个时钟除数解决错误,总体积累的错误消失,数据接收正确。这种方法对于9,600波特或以下的UART通信很有效。对于高速通信,几个µC监视UARTRx行的边缘跃迁并触发ISR启动内部高速振荡器,驱动CPU并处理中断。这使µCUART能够接收高速数据,而不必在UART空闲期间保持一个启动的高速时钟。如果使用外部振荡器或内部振荡器频率太低,则由于启动高速振荡器需要一定的时间,第一次传输将失效。为克服这一限制和效率损失,设计人员应该考虑使用能够唤醒并及时从32kHz或停机模式激活的处理器,从正在传输的UART恢复首次传输的数据。例如,系统时钟需要在25µs内启动,才能拾取起始位的中间点,从而正确接收19,200位的传输。
许多低功耗应用通过UART将µC连接到RS-485传感器网络。支持寻址和多处理器(9位)模式的UART非常适合于这种网络。当第9位为1(代表是一个地址)时,这些UART会生成一个ISR,让处理器能够在其它传感器通过系统发送数据时保持休眠状态。某些µC会更进一步,在UART中加入地址匹配,仅在第9位是1且地址与在剩余8位中收到的数据匹配时才唤醒系统。
模拟器件
模拟器件模拟器件是最早的操作器件。模拟器件已经发展数十年,它是稳定电源、为高速晶体电路提供过滤和稳定性的必要器件,对监控来自自然界的输入信号也必不可少。
模拟器件模拟器件是最早的操作器件。模拟器件已经发展数十年,它是稳定电源、为高速晶体电路提供过滤和稳定性的必要器件,对监控来自自然界的输入信号也必不可少。
在待机模式下,模拟器件实际上不消耗功率。模拟-数字转换器(ADC)断电快,在待机模式下,甚至可以被视为一种低功耗应用。
一旦加电,缺点即暴露无遗。一般来说,模拟器件在工作时需要的电流很大。例如,ADC工作时需要的电流达数百微安。另外,模拟器件(例如内部基准时钟)会使启动时间增加几毫秒,因为稳定模拟器件需要相对较大的外部电容。另一种经常被集成的器件-集成温度传感器-通常是随温度改变的二极管电路,也需要相当大的电流。
在低功耗应用中有几个需要考虑的标准。如果ADC有内部振荡器,就没有必要对其它系统振荡器加电来进行转换。在这种情况下,处理器保持断电状态,只有转换完成时起,才需要开始工作。像CPU一样,我们可以通过缩短执行时间来降低功耗。ADC转换的速度越快,器件进入待机模式的速度越快。对于内部基准时钟也是这样。基准时钟启动和稳定得越快,转换完成和模拟系统断电的速度也越快。如果只是偶尔使用ADC,某些处理器允许采样时钟断电,让跟踪电路保持加电。这样ADC就能够进入较浅的休眠模式。这种功能的负面影响是,在进行转换前,需要花较长时间来让采样和保持电路达到稳定。
转换完成之后,有几个µC集成了直接内存访问(DMA)或先入先出(FIFO)缓冲存储器,能够将多个转换存储在RAM中,而无需唤醒处理器。在一定数量的转换到达之前,处理器会保持待机状态,而不是在每个转换后唤醒处理器来将数据移入RAM,这样就可以降低功耗。
许多低功耗µC内置内部模拟比较器,可以执行简单的模拟任务。有些制造商的比较器允许编程,可以通过延长响应时间降低功耗。
起始点
总之,µC外围设备的选择是由终端应用最终决定的,因此我们应从全面评估系统功能及其功率要求着手。许多处理器制造商宣称其器件具备低功耗工作能力,但是不同的应用对“低功耗”一词有不同的定义。是需要大量集成的速度更高的处理器,还是需要具有极深度睡眠模式的速度更低的处理器,更多地取决于内嵌系统的要求,而不是内嵌处理器所谓的“低功耗”工作能力。
关键字:低功耗 μC 外围器件
编辑:神话 引用地址:如何为低功耗应用选择正确的μC外围器件
设计人员可能会提出以下问题:是否能够重新充电?尺寸能够做到多小?典型的工作时间是多少?速度必须多快?要连接哪种类型的外围器件?这些答案将最终为确立设计标准和功率要求积累原始资料。
图1:典型µC环境中的器件处理功率
首先应该考虑CPU的处理功率,一般来说,CPU是功耗最高的外围器件。处理器全速运行时,耗电量非常大,因此CPU处于待机或关闭状态的时间越多,电池寿命越长。例如,4位处理器比32位处理器的功率消耗低;而处于休眠或停机状态的任何位数的处理器均比工作中的处理器的功耗要低。因此,如果32位处理器执行功能所耗的时间仅为4位处理器的1/10,那么,它在整个系统生命周期内要少消耗9/10的功率。因此,大多数制造商建议以较高的频率运行CPU,迅速完成任务,并立即返回到功耗最低的休眠状态。总之,在选择处理器速度时,要考虑能够迅速处理预期工作量并尽可能长时间地处于休眠状态。
其次应考虑大多数便携式应用的中断服务例程(ISR)。ISR会定期唤醒处理器执行预排程序的或用户启动的任务,然后让处理器返回到休眠状态。进入和退出ISR所用的CPU时钟周期越少越好。事实上,许多ISR(例如端口I/O)有多个标志,这些标志可能会触发同一中断。采用程序计数器相对寻址方式的处理器会大大缩短识别和处理适当中断源所需的必要周期-尤其是在键盘扫描应用中。如果ISR编写得好,通过限制唤醒CPU、执行任务和返回休眠状态所需的程序分支,可以确保处理时间最短。采用中断向量表的处理器中,程序计数器加载ISR地址,这种处理器有助于减少额外的程序分支,并降低功耗。自动上下文保存以及算术逻辑单元(ALU)标志和功率模式的恢复功能也可以促进节能。
此外,由于在低速或时钟停止的环境中,动态内核处理器不能保持数据的完整性,因而应尽可能使用静态内核处理器。
工作模式
休眠和“低功耗”模式也是必须考虑的重要问题。通过减慢唤醒时间实现低功耗状态(或关闭对唤醒器件非常重要的功能)会增加功耗,而不是降低功耗。
大多数低功耗器件的休眠或空闲模式会关闭处理器和时钟,通常流耗低于一微安。然后,需要I/O中断把处理器从休眠模式唤醒。使用32kHz时钟驱动定时器或实时时钟能以更灵活的方式唤醒处理器。基于32kHz振荡器的功耗不像“深度睡眠”模式那样低,但它能以几微安的电流提供时钟功能。由于许多便携式应用需要实时时钟功能,这种改进可以让系统选用多种不同的外围器件。
需要注意的一点是,如果处理器必须使用RESET信号从停机状态唤醒,它必须运行所有硬件初始化程序。事实上,即使处理器SRAM中的内容没有改变且仍然能够寻址中断,它也将不得不重新初始化处理器外围器件,这将消耗能量。
振荡器
在通过复位唤醒时,由于稳定振荡器晶体所花费的时间不同,内部振荡器能比外部振荡器多执行将近1,000条指令。例如,使用外部振荡器的100MIP机器启动、稳定和处理指令需要的时间为1毫秒。与此相比,同一台机器仅需要1微秒时间就可以使内部振荡器全速工作。让外部振荡器稳定的时间里,内部振荡器可以完成加电,执行1000条指令,然后恢复断电状态。这一时间通常已足够找到中断地址,并恢复断电状态。那么,为什么要考虑使用外部振荡器呢?外部振荡器通常在整个工作温度范围内更准确。事实上,在低功耗应用中,嵌入式程序装置经常习惯对照外部振荡器校准内部振荡器。这是因为驱动外部振荡器并使其达到速度所需的电路比内部振荡器消耗的功率更大。
选择内部振荡器时应慎重。虽然某些内部振荡器可以在数微秒内唤醒处理器,但是,必须在经过数毫秒,当外部晶体达到稳定之后,才能以更高的速度运行,然后CPU时钟才能切换到更高的频率。例如,如果一个100MIP的处理器有一个20kHz的内部时钟,该时钟与外部振荡器的1MHz时钟同时启动,内部振荡器将仍然能够执行999条指令,而更高速度的处理器用同样的时间只能执行20条指令。
定时器
利用好定时器有助于在处理器保持待机状态的情况下实现系统处理功能。由于定时器功耗非常小,因此这有助于大大降低功耗。应该使用实时时钟模块接受32kHz计时器定时器输入和设置不同时间间隔的“警报”或中断,在无需处理器干预的情况下,使计时器计数增加。同样,应该使用影子寄存器更新和比较来自ISR的值。一旦寄存器读到有效的预编程值,即触发ISR,使处理器脱离休眠或待机状态,而不需要CPU寻找ISR地址、更新周期或比较值。
管理开销
管理开销系统监视程序、监管工作有助于防范不安全的状况,有关器件包括电压监控器和看门狗定时器。由于数字电路依赖触发器或从负到正(或相反亦然)状态的转换,因此,即使工作电压有稍小的下降,也可能会意外触发RESET条件,从而造成系统无法工作。电力减弱保护作为电压监控的一部分,一般用于确保电压瞬变不会强制处理器进入和退出RESET状态。
只要有可能,在电压监控解决方案中应采用不可屏蔽的中断(NMI)来识别电压瞬变。这种方法让用户能随心所欲地设定电压触发的门限电平,无需系统复位条件,其功耗一般比模拟-数字转换器(ADC)通道更低。
看门狗定时器监视故障情况。虽然在典型的嵌入式应用中,内嵌的系统程序器往往禁用看门狗定时器,但是在低功耗系统中,在电源电压不稳定的情况下,看门狗定时器是一种有用的工具。看门狗定时器会执行预先设定功能,例如在符合某些条件时,比如电压过低或有内存问题时,向处理器发出RESET指令。所选择的处理器应该能够生成已知的ISR,使处理器无需执行RESET而恢复联机状态;因为执行RESET,必须启动外围设备,因而会消耗更多的处理器功率。
UART通信
将一个数字时钟与另一个数字时钟精确到秒地同步是不可能的,因为每个时钟均与其内部晶体同步。在MCU驱动的系统中,低功耗模式下使用的32kHz实时时钟晶体与用于生成UART波特率的普通38.4kHz频率之间会出现类似的同步问题。因为实时时钟的32,768频率使15位寄存器每秒溢出一次,所以非常适合时间保持(time-keeping)应用。比较而言,在UART中使用相同的频率,则在典型的10位(起始位、8位数据和1个奇偶校验位)传输中保证至少有一位读取不正确。这是由于32,768Hz时钟必须除以3.4,才能得到9,600波特率。由于没有3.4这一选择,因此必须选择除以3或除以4(参见图2)。
将一个数字时钟与另一个数字时钟精确到秒地同步是不可能的,因为每个时钟均与其内部晶体同步。在MCU驱动的系统中,低功耗模式下使用的32kHz实时时钟晶体与用于生成UART波特率的普通38.4kHz频率之间会出现类似的同步问题。因为实时时钟的32,768频率使15位寄存器每秒溢出一次,所以非常适合时间保持(time-keeping)应用。比较而言,在UART中使用相同的频率,则在典型的10位(起始位、8位数据和1个奇偶校验位)传输中保证至少有一位读取不正确。这是由于32,768Hz时钟必须除以3.4,才能得到9,600波特率。由于没有3.4这一选择,因此必须选择除以3或除以4(参见图2)。
图2:9600波特传输时32Khz驱动UARTRx错误
UART数据用10,922波特或8,192波特的UART接收。由于UART在传输中间点对数据进行采样以补偿抖动,因此该点已经被选择为接收UART的采样点。在没有行抖动的理想情况下,10,922波特UART对第三数据位的开始两次读数都会是错误的而8,192波特的UART由于会完全遗漏第三位,很快就将出错。由于低功耗应用的理想时钟是低功耗实时时钟模式,这使得在低功耗环境中处理很困难。解决这一问题的最好办法就是将µC与调制技术结合使用,用32kHz振荡器提供非常精确的2,400波特,并完全能支持9,600波特(参见图3)。
图3:在9600波特传输时采用时钟调制的32Khz驱动UART
通过混合两个时钟除数解决错误,总体积累的错误消失,数据接收正确。这种方法对于9,600波特或以下的UART通信很有效。对于高速通信,几个µC监视UARTRx行的边缘跃迁并触发ISR启动内部高速振荡器,驱动CPU并处理中断。这使µCUART能够接收高速数据,而不必在UART空闲期间保持一个启动的高速时钟。如果使用外部振荡器或内部振荡器频率太低,则由于启动高速振荡器需要一定的时间,第一次传输将失效。为克服这一限制和效率损失,设计人员应该考虑使用能够唤醒并及时从32kHz或停机模式激活的处理器,从正在传输的UART恢复首次传输的数据。例如,系统时钟需要在25µs内启动,才能拾取起始位的中间点,从而正确接收19,200位的传输。
许多低功耗应用通过UART将µC连接到RS-485传感器网络。支持寻址和多处理器(9位)模式的UART非常适合于这种网络。当第9位为1(代表是一个地址)时,这些UART会生成一个ISR,让处理器能够在其它传感器通过系统发送数据时保持休眠状态。某些µC会更进一步,在UART中加入地址匹配,仅在第9位是1且地址与在剩余8位中收到的数据匹配时才唤醒系统。
模拟器件
模拟器件模拟器件是最早的操作器件。模拟器件已经发展数十年,它是稳定电源、为高速晶体电路提供过滤和稳定性的必要器件,对监控来自自然界的输入信号也必不可少。
模拟器件模拟器件是最早的操作器件。模拟器件已经发展数十年,它是稳定电源、为高速晶体电路提供过滤和稳定性的必要器件,对监控来自自然界的输入信号也必不可少。
在待机模式下,模拟器件实际上不消耗功率。模拟-数字转换器(ADC)断电快,在待机模式下,甚至可以被视为一种低功耗应用。
一旦加电,缺点即暴露无遗。一般来说,模拟器件在工作时需要的电流很大。例如,ADC工作时需要的电流达数百微安。另外,模拟器件(例如内部基准时钟)会使启动时间增加几毫秒,因为稳定模拟器件需要相对较大的外部电容。另一种经常被集成的器件-集成温度传感器-通常是随温度改变的二极管电路,也需要相当大的电流。
在低功耗应用中有几个需要考虑的标准。如果ADC有内部振荡器,就没有必要对其它系统振荡器加电来进行转换。在这种情况下,处理器保持断电状态,只有转换完成时起,才需要开始工作。像CPU一样,我们可以通过缩短执行时间来降低功耗。ADC转换的速度越快,器件进入待机模式的速度越快。对于内部基准时钟也是这样。基准时钟启动和稳定得越快,转换完成和模拟系统断电的速度也越快。如果只是偶尔使用ADC,某些处理器允许采样时钟断电,让跟踪电路保持加电。这样ADC就能够进入较浅的休眠模式。这种功能的负面影响是,在进行转换前,需要花较长时间来让采样和保持电路达到稳定。
转换完成之后,有几个µC集成了直接内存访问(DMA)或先入先出(FIFO)缓冲存储器,能够将多个转换存储在RAM中,而无需唤醒处理器。在一定数量的转换到达之前,处理器会保持待机状态,而不是在每个转换后唤醒处理器来将数据移入RAM,这样就可以降低功耗。
许多低功耗µC内置内部模拟比较器,可以执行简单的模拟任务。有些制造商的比较器允许编程,可以通过延长响应时间降低功耗。
起始点
总之,µC外围设备的选择是由终端应用最终决定的,因此我们应从全面评估系统功能及其功率要求着手。许多处理器制造商宣称其器件具备低功耗工作能力,但是不同的应用对“低功耗”一词有不同的定义。是需要大量集成的速度更高的处理器,还是需要具有极深度睡眠模式的速度更低的处理器,更多地取决于内嵌系统的要求,而不是内嵌处理器所谓的“低功耗”工作能力。
上一篇:基于TI TPS6206x 的3MHz 高效2A DC电源转
下一篇:基于激光加工技术在标准太阳能电池的设计及应
推荐阅读最新更新时间:2023-10-13 10:55
快速学Arm(11)--在C语言中内嵌汇编语言
开发Arm程序的时候,大多数时候我们使用C/C++语言就可以了,但汇编语言在某些情况下能够实现一些C语言无法实现的功能,这时候就要调用一些汇编语言的程序.我们需要大概了解一下在C语言中如何嵌入汇编语言. 1.内嵌汇编语言的语法: __asm { 指令 ...... } 2.举例:使能/禁止IRQ中断 __inline void enable_IRQ(void) { int tmp; __asm //嵌入汇编代码 { MRS tmp,CPSR //读取CPSR的值
[单片机]
Nordic Semiconductor发布低功耗蜂窝物联网产品发展蓝图
挪威奥斯陆 2016年7月15日 全球领先的超低功耗无线连接产品供应商Nordic Semiconductor宣布针对蜂窝物联网(cellular IoT)市场开发低功耗LTE技术,这项目充分利用Nordic Semiconductor在超低功耗(ULP)无线领域的领导地位,以及在芬兰聘用的资深蜂窝技术研发工程师(曾受雇于诺基亚、爱立信、摩托罗拉和博通的芬兰团队)而得以实现。
低功耗蜂窝IoT自身定位为广泛采用于众多市场和应用的技术,包括智能公用服务计量、资产和人员(比如孩子)跟踪、车队管理、建筑保安和安全、远程维护、智能售卖机、零售、健康保健和医疗监控、实时交通监控、可穿戴产品、室内和室外GPS导航、
[物联网]
单片机系统的低功耗设计的策略
在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。
随着越来越多的嵌入式应用使用了实时操作系统,如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。限于篇幅,本文仅从硬件设计和应用软件设计两个方面讨论。
1 硬件设计
选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。
1.1 选用尽量简单的CPU内核
在选择CPU
[单片机]
BQ24721C - 具有 SMBus 与系统电源选择器、出色软启动的智能电池充电器
bq24721 是一款适用于便携式应用的高效率、高集成度同步电池组充电器。该器件实现了高性能模拟前端,能够通过类似 SBS 的简便 SMBus 接口连接至系统电源管理微控制器。 其动态电源管理 (DPM) 功能可根据系统负载状况改变充电电流,从而避免交流适配器出现过载。 高精度电流感应放大器能够准确测量充电电流或交流适配器电流,从而可以端接非智能电池组并监控整个系统电源。 通过使用 bq24721 提供的控制信号,可以旁路适配器隔离二极管或完全由外部 MOSFET 替代,从而降低总体功耗。 除了电池组与系统保护功能外,诸如充电器软启动、充电过流保护以及 IC 温度监控等集成功能还可提供更多保护。 特性 §具有用户可选的 300
[新品]
《初学者C51自学笔记》之89C51初步认识
左边是一个总线型的,为什么是总线型呢?它的引脚P1、P2、P3、P0都是有8位,而右边P3是没有P3.6的,所以它是非总线型的。 51单片机内部集成8位CPU,4K字节的ROM,128字节RAM,4个8位并行I/O口,一个全双工串行口,2个16位定时器/计数器,5个中断源。 CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器 RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据(断电数据会消失) ROM:用以存放程序、一些原始数据和表格;(断电数据不会丢失) I/O口:四个8位并行I/O口,既可用作输入,也可用作输出; T/C:两个定时/记数器,既可以工作在
[单片机]
数控电源AVR单片机C程序
编译环境为CodeWizardAVR
#include mega8.h
#include delay.h
#include stdio.h
#include stdlib.h
#define Voltage_UP PINB.0
#define Voltage_Down PINB.2
#define UD PORTB.3
#define CS PORTB.5
#define INC PORTB.4
#define Voltage_LED PORTB.6
#define Current_LED PORTB.7
#define Current_Detect 0
#define
[单片机]
加快低功耗蓝牙技术的开发
电子消费品市场正在争先恐后地推出下一代物联网产品,以期赢得客户的芳心。从体质监测器、 智能门锁、灯泡到智能水杯,产品公司在这些新兴市场竞相建立自己的统治地位。如今,这些产品中的大部分都功能相似,差异甚微。除了产品设计与外形上的区别之外,胜出的产品一般是首先上市的产品。经过此前许多失败的的众筹项目的教训,提前宣传的“雾件”已经不再能够赢得聪明的消费者了。 当务之急是概念化具有不同功能的新物联网产品,而更重要的是尽快让这些产品上市。但如果您曾开发过商业级无线产品,就会知道推出开发周期短的产品有多困难,尤其是当开发者并没有处理无线标准认证与监管审批的专业经验的时候,而这些认证与审批是在成熟的消费市场销售这些产品的准入条件。此外,由于
[物联网]
用EZ-USB实现TMS320C6X与主机数据传输
DSP主要应用于实时和大数据量的信号处理系统,当它与主机进行通信时,数据交换速度和接口的复杂度是系统的一个关键性能指标,因此迫切需要一种能满足高速、简洁要求的通信方式,通用串行总线USB以其高速和内置电源两个特性,对提高设备的性能、降低成本和系统小型化具有很大的实际意义,本系统采用高速DSP(TMS320C6713),配合嵌入USB2.0协议的芯片CY7C68013,实现小规模主从式系统中主机与DSP间的高速通信。经实际验证,系统运行可靠,是一种比较好的高速数据传输与处理的解决方案。
1 USB控制芯片
Cypress公司的EZ-USB FX2系列芯片是最早符合USB2.0协议的微控制器之一。它集成了收发器(trans
[嵌入式]