本文转载自:DigiKey电子技术台
文章概述
本文介绍了嵌入式系统外设器件的选择,包括存储器、时钟源、定时器、通信接口和输入/输出接口等。文章介绍了多种存储器类型及其选择考虑因素,多种时钟源的类型及其选择考虑因素。强调了定时器精度和计时范围的重要性。文章还介绍了通信接口类型、常见通信协议及其选择因素,以及主要的输入/输出接口等,并总结了选择这些外设器件时的关键考量。
嵌入式系统除了最重要的为处理器选择之外,配合的相关外设器件也是嵌入式系统的重要组成部分,包括内存、时钟(振荡器)、定时器、通信接口、输入/输出、模拟数字转换等器件,都可视系统的实际需求来进行选择。本文将为您介绍上述外设器件的类型与选择的考虑要素。
存储器的种类众多且特性不同
存储器
在嵌入式系统中,存储器是一个关键的器件,它用于存储程序代码、数据,以及系统执行所需的其他信息。除了微控制器在IC封装中内置的内存和存储空间之外,也可以增加外部存储器,且存储器的类型相当多样,每种类型的存储器都有其独特的用途。
首先,嵌入式系统中常见的闪存是一种非易失性存储器,这意味着如果系统重置或断电也不会被擦除,通常用于存储程序代码、固件和其他常驻应用数据。它具有快速读取速度,且相对较低的功耗。闪存有不同类型,包括NOR和NAND,具有不同的读写特性和应用场景。
另一种常见的存储器则是随机存取存储器(RAM),RAM是一种易失性存储器,用于临时存储程序执行所需的数据。它具有快速的读写速度,但系统重置或断电后会失去存储的数据。在嵌入式系统中,常见的RAM类型包括SRAM(静态随机存取存储器)和DRAM(动态随机存取存储器)。
EEPROM(电可擦除可编程只读存储器)则是一种可擦除并且不易失去数据的存储器,这意味着如果系统重置或断电也不会被擦除,通常用于存储配置信息、校正数据和其他需要保留的非易失性数据。
另外,有些系统还可外接存储卡和嵌入式多媒体卡,包括SD卡、MicroSD卡等外部存储设备,它们通常用于扩展嵌入式系统的存储容量。
由于不同类型的存储器有不同的价格,因此成本是一个重要的考虑因素。此外存储器的读取和写入速度影响系统的性能,特别是对于需要高效率的应用,便必须选择速度较快的存储器。
系统所需的存储器容量也应符合应用的需求,进而确保足够的空间来存放程序代码、数据和其他必要的信息。此外,不同类型的存储器有不同的功耗特性,特别是对于移动和电池供电的嵌入式系统,通常需要采用功耗较低的存储器。
嵌入式系统通常要求耐久性,有些应用需要存储器具有较长的生命周期,并能够承受多次写入和擦除。另一方面,部分嵌入式系统可能需要在单一芯片上集成多种类型的存储器,这将有助于节省空间和简化设计,一些应用也可能需要支持外部存储设备,例如存储卡,以满足扩展性需求。
时钟源可确保同步系统中的各种操作
时钟源可确保同步系统中的各种操作
在嵌入式系统中使用的微控制器可能包含内部电阻、电容、电路振荡器(RC振荡器),或依赖某种类型的外部频率源来保持时间和周期一致。在嵌入式系统中,时钟源是一个关键的器件,用于同步系统中的各种操作,包括处理器的计算、外部设备的通信等,以下为您介绍各种不同特性的时钟源。
RC振荡器(RC oscillator)是一种只用电阻和电容构成的振荡器,其与温度相关,频率信号可能有1-5%的变化,它们确实可以满足一些较慢频率定时需求(例如低频模拟数字转换)。
晶体振荡器(Crystal Oscillator)常见于外部振荡器电路,具有精确度高、稳定性好的特性,晶体振荡器通常以百万分之一(PPM)为单位测量其变化,而不是百分比(如RC振荡器),通常用于需要高精度定时的应用,常搭配微控制器、微处理器和其他需要稳定定时的器件。
陶瓷振荡器(Ceramic Resonator)的成本较低,但精确度和稳定性可能较晶体振荡器差,陶瓷谐振器的公差在十分之一范围内,因此适用于对定时要求不苛刻的应用,以及对成本较为敏感的场合。
MEMS振荡器(Micro-Electro-Mechanical Systems Oscillator)则具备体积小、耐震动、低功耗的特性,但精度一般较晶体振荡器差,适用于尺寸有限、低功耗、耐震动的应用,如移动设备和嵌入式传感器。
振荡器模块(Oscillator Module)则整合了振荡器和相关的电路器件,提供方便的外部时钟源,可简化系统设计,常见于一些集成度高的嵌入式系统。
另一种GPS模块则是通过接收全球定位系统(GPS)信号,来提供高精度的时钟同步,常用于需要高度精确同步的应用,例如通信系统、科学仪器等。
实时时钟RTC(Real-Time Clock)则是具有低功耗的特性,能在掉电状态下保持时间计数,主要用于需要在断电时保持时间计数的应用。
在选择嵌入式系统中的时钟源时,应先考虑时钟源的精确度和稳定性,此外,成本、功耗、集成度与应用的外部环境条件(如温度、震动),都会影响时钟源的选择。
在嵌入式系统中,定时器则是一种常见的硬件模块,用于产生准确的时间基线,以执行定时和计数操作。常见的定时器(Timer)用于执行定时操作,例如产生精确的时间延迟、计算时间间隔等,常见于需要时间控制的应用,如通信协议、传感器读取等。
计数器(Counter)则用于计数外部事件的发生次数,例如脉冲计数、频率计数等,常用于需要计算事件发生频率或计数的场景中使用,如计步器、计量仪表。
在选择嵌入式系统中的定时器时,应先考虑定时器的精度,不同的计时器具有不同的精度,选择时应根据应用需求确定精度水平。另外,定时器的计时范围(定时器和计数器)也应该满足应用的时间要求。
实现不同硬件之间数据交换的通信接口
在嵌入式系统中,通信接口是实现不同硬件模块之间数据交换的重要元器件,通常可以分成并行通信和串行通信两种类型。并行通信同时发送多位的数据,因此需要数据总线硬件,通常由多条线路组成,在允许更快的数据传输的同时,并行通信还使用所连接装置的更多I/O端口,并且需要复杂的布线配置。串行通信则通过一条电线在配对设备上一次只发送一位数据,设备通信仅使用一个I/O端口,可降低设备总体复杂度和成本。
串行通信可以进一步分为两个子组,这取决于它们是否使用频率信号来控制和同步链接设备之间的数据通信(称为同步和异步)。异步串行意味着数据可以在不需要频率信号的情况下传输。同步串行则需要所有设备之间共享频率信号来控制数据通信。虽然同步串行确实需要跨所有设备的另一个定时信号,但它确实使通信速度更快。
在传输模式上,又可分成单工、半双工和全双工,单工是从来源到目的的单向数据流,半双工则允许从配对设备双向传输数据,但在给定时间内只能传输一个方向,全双工则可允许两个设备可以同时在两个方向上传输和接收数据。
I²C总线协议
常见的通信协议包括I²C总线协议,这是一种两线串行连接,旨在允许多个端点与一个或多个控制器进行通信。I²C是一种半双工协议,允许控制器单元和许多端点发送和接收数据。该协议的速度范围为0.1至5 Mbit/s(取决于总线配置),常见于连接低速外设,例如温度传感器、EEPROM等。
串行外设接口(SPI)协议
串行外设接口(SPI)则是一种全双工、同步串行连接,需要3线或4线连接。SPI连接需要在总线上所有参与者共享的同步频率信号,这样可以实现更高的数据率。当两个点彼此靠近时,可以达到高达60 Mbps的速度。SPI的缺点是需要更多I/O引脚和连接,常用于连接具有SPI接口的器件,如内存、传感器、显示器等。
通用异步收发器(UART)协议
通用异步收发器(UART)则是双向异步串行连接,可设定为单工、半双工或全双工。数据速度较慢且仅充当一对一通信,有些设备可能有多个UART电路,允许多个设备进行通信,常见于连接嵌入式系统和外部设备,例如传感器、GPS模块等。
其他常见的通信协议还包括CAN(Controller Area Network)、Ethernet(以太网)、USB(Universal Serial Bus)、无线通信接口等,在设计时选择通信接口时,可依据应用所需的数据速率、传输距离、功耗、成本、集成度、实时性等,根据具体应用需求来选择适合的通信接口,例如嵌入式控制系统、传感器网络、通信设备等。
嵌入式系统中的输入/输出(I/O)接口是用来连接和控制外部设备、传感器、显示器等的关键器件。常见的I/O接口如GPIO(通用输入/输出)具有通用性,可设置为输入或输出模式,用于连接各种外部设备,是通用用途的I/O连接接口,如按钮、LED、开关等。
此外,还需要使用ADC(模拟数字转换器)来将模拟信号转换为数字信号,用于传感器数据的读取,如温度、光照等。反之,还有DAC(数字模拟转换器),用于将数字信号转换为模拟信号,用于产生模拟输出,如音频输出。
结语
嵌入式系统所需的外设器件相当广泛,选择也相当多样化,可依照具体应用需求来挑选合适的器件。