确实,初学者应该从8051 或AVR开始,以便清楚地了解微控制器的工作原理。这些设备的文档非常易读且易于理解。但是,如果您已经使用这些架构一段时间了,您可能会觉得您的创造力受到这些设备对您施加的资源限制的限制。512字节的RAM?!512字节可以做什么?
有些人可能会争辩说你可以做很多事,这是正确的。但随着电子行业的快速增长和创新,有一些流行的应用程序无法用这么多的内存(或16 MHz时钟速度缓慢!)。想想一个简单的录音机。要录制音频,您需要从ADC读取16位,每秒至少8000次。而且你必须将所有这些写入外部存储器芯片(因为你有512字节的RAM!)。即使您能够执行此操作,也无法将此记录的数据传输到计算机。如果您一直在考虑使用UART(串行端口),请再想一想。没有笔记本电脑有外部串口。
那么解决方案是什么?切换到ARM SoC(片上系统)。
大约是流行的AVR微控制器成本的两倍,你有超过10个ADC通道,每秒可以读取超过400万个样本,你可以使用FAT32格式的存储卡进行录制,这样你就可以将文件直接传输到计算机上了。你有USB 2.0的硬件支持,你甚至可以连接一个液晶显示器 - 所有这些都是在单个IC上运行的免费开源软件!
ARM体系结构
图:恩智浦LPC214x框图(来源:LPC214x数据表)
这个详细的框图可以帮助您了解ARM微控制器集成的内容。如果您不清楚框图,请不要担心,本系列文章将以最简单的语言引导您详细介绍每个块。
那么你怎么知道是时候切换到ARM MCU呢?什么时候ARM优于AVR / PIC / 805x?
处理能力:这里没有具体谈论时钟速度。更重要的是32位内核,它可以在一个时钟周期内乘以两个10位数字。在相同的时钟速度下,32位架构的速度可以比普通的8位架构快8倍。而且你做对了,这也意味着更好的电源效率(功耗随时钟速度线性增加)。
由ARM内核驱动的芯片可以进行一些严格的数字运算,并且可以运行算法,使您的应用程序更智能,更好,更快。
响应速度:这里是高速内核和外设的用武之地。最高时钟速度超过50MHz,范围可达数百MHz,内核和外设的响应速度极快。对于Web服务器/客户端实现和物联网应用程序等实时应用程序,这一切都有所不同。
此外,与8位架构相比,ARM中的中断处理机制要好得多。这将在ARM VIC(向量中断控制器)的未来文章中重新讨论。
低功耗与高速和快速响应相结合,使ARM成为低功耗,高性能器件的最佳选择。
外围设备:虽然ARM芯片组乍一看似乎很昂贵,但它们专为低成本设计而设计。这些芯片通常包含常见应用所需的几乎所有内容,例如定时器,ADC和DAC。诸如UART,I 2 C,SPI,SDIO,JTAG,USB,CAN,I 2 S等接口都是内置的外设。通常在一个ARM芯片组上有超过6-8个不同的接口。您永远不必再考虑再次“咬掉”外部芯片/硬件。这种高集成度还意味着更小的PCB和更简单的设计 - 作为业余爱好者或者如果您选择开发自己的产品,这可以为您节省很多钱。
增加内存:不要指望看到16MB的闪存!更多内存通常意味着大约512kB或1MB的片上闪存。但同样,混合指令集使代码密度非常高。您可以在400kB的闪存中编写功能齐全的MP3播放器。此外,高速缓存和流水线机制有助于加速闪存访问,以便为每个时钟周期执行一条指令。如果正确编程,ARM处理器中几乎没有等待状态。此外,RAM直接连接到内部系统总线(通常称为AHB)并且速度极高。您通常在典型的ARM7芯片上获得超过16-23kB的RAM。当您切换到具有外部闪存/ RAM的ARM设备时,RAM和闪存选项可以高达64或128MB。
完全可配置:这是您在ARMIC组上可以找到的最引人注目的功能之一。每个外围设备都是完全可配置的 - 低至每一分钟细节。例如,在串行接口硬件上,您甚至可以确定时钟信号的高时间和低时间。对于UART,您可以使用零误差波特率和硬件支持进行奇偶校验,还有更多此类功能可以精美而专业地实现您的应用。
对于更高级的用户,时钟控制功能可以完全控制数字开关噪声和功耗。当您的闲置笔记本电脑放慢处理器速度以节省电量时,您不喜欢它吗?所有ARM芯片都能够进行时钟缩放。您甚至可以缩小某些外设的时钟,以降低功耗。