背景
嵌入式系统中,硬件方面,有很多常见的外围设备。
在此,专门整理一下。什么是嵌入式系统中的外设
外设==外部设备==Peripheral
· 外部:主要指的是除了嵌入式系统中主要的CPU,即SoC,MCU等之外的
· 设备:某种硬件功能模块外设==接口
此处,所指的外设,也常被称为各种接口,硬件接口。
因为是:存在对应的物理上的看得见的,以及那些属于硬件内部的肉眼不容易看见的,各种接口,通过对应接口连接外部设备。下面总结一下,常见的,有哪些外设。
嵌入式系统的各种常见的外设
AFE(Analog Front End)
一个模块,包含了一堆的模拟电路,实现对应的模拟方面的功能。
比如功放amplifiers, filters过滤器等等。
常常和数据采集,音频等方面有关。ADC/DAC
Analog Digital Converter/ Digital Analog Converter
模拟数字转换器 / 数字模拟转换器
在模拟和数字之间进行转换。比如:
常常ADC,用于外挂某种传感器,然后通过ADC或DAC,转换成对应的数字信号,然后可以通过嵌入式SoC去读取对应的数据。CRC硬件模块
当然,CRC算法,是可以通过软件实现的。
但是为了提高计算的效率,有时候可以利用已有的CRC模块去实现CRC计算。
比如:Using the CRC Module on the Flexis AC Family
CRC本身,又有一些细节划分和叫法比如:
CRC16-CCITT
CRC32
等等。
CAN
CAN总线接口。
比如:
http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=MCF5227X
中就有:“FlexCAN”
比如:http://www.microchip.com/pagehandler/en-us/family/32bit/architecture.html
就有:“2x CAN 2.0B Ports”
USB
USB Host:固定的作为USB的Host
USB Slave:固定的作为USB的Slave
USB OTG:即可以做Host,也可以做Slave,可以通过软件配置
现在很多手机,如果号称支持USB Host,那么往往都是对应的内部硬件上有个USB OTG模块的。 关于相关知识的整理,可参考:【整理】关于安卓(Android)手机是否支持USB主机(USB Host)功能
比如:(1)
http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=MCF5227X
中,就有:“USB OTG”(2)
http://www.microchip.com/pagehandler/en-us/family/32bit/architecture.html
就有:“Full-speed USB Host/Device/OTG”
Video Codec视频解码硬件实现视频解码
包括:
JPEG
VC1
WMV
视频解码方面,常常还会涉及到一个pp:post processing,后处理
的功能。
比如图像的混合,图形的旋转,等等。
也是通过硬件模块去实现的,比软件处理,效率更高,更快。
一些资料供参考:Chapter 9. Pre- and Post-Processing
SAM9M10 Hardware Video Decoder Post Processing Engine Features
Audio Codec音频解码硬件实现音频解码:
· AAC
· MP3
· WMA
· WMA8 + Microsoft PDDRM
· WMA9 + DRM10
· OGG
· WAV
音频解码,往往还涉及相关的内容
比如:
Equalization均衡
等等。时钟Clock相关模块:晶振Crystal,CCU
晶振,crystal,产生对应的时钟
然后用CCU,Clock Unit Control,去控制对应的时钟频率,变高或变低,达到对应的频率
然后输送给外设各个模块。LCDC(LCD Controler)
LCD的controller,LCD的控制器 ,LCD显示屏的控制器
可以支持外接很多种不同类型的显示屏。比如:
http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=MCF5227X
中,就有个LCDC
硬件加密模块crypto比如AES加密等等。