【整理】嵌入式系统的各种常见外设

2023-05-16

原文地址: http://www.crifan.com/summary_embedded_system_various_peripherals/

最后更新:2013-11-14

TODO:

1.添加更多的常见的外设。等某个外设的内容够多了,再单独整理到独立的帖子中。


背景

嵌入式系统中,硬件方面,有很多常见的外围设备。

在此,专门整理一下。

 

什么是嵌入式系统中的外设

外设==外部设备==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”

 

一些已有的教程:

USB基础知识概论

如何实现Linux下的U盘(USB Mass Storage)驱动

USB HID Learning Record

 

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加密等等。

 

DMA

详见:

【整理】嵌入式外设之DMA

 

GPIO

详见:

【整理】嵌入式外围设备之GPIO

 

I2C

常见的接口之一。

 

I2C

比如:

http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=MCF5227X

中,就有个I2C

 

一些折腾过的内容:

如何在Linux中让I2C驱动支持Sub Address的两种方法

 

I2S

主要用于音频。

往往和声卡,音频,有关。

 

之前转载的帖子供参考:

I2S标准

 

IDE

IDE硬盘。

更多的用于PC端。

但是,偶尔也会遇到,嵌入式系统中挂IDE硬盘的。

 

Keyboard [Matrix]

嵌入式中的键盘,

主要指的是,

有限的几个按键

所以往往是键盘矩阵Keyboard Matrix

 

之前折腾过,PC端的键盘,其本质的原理是类似的,也可以参考参考:

键盘Keyboard中的扫描码Scan Code 通码Make code 断码Break Code

 

Memory Controller:MPMC

内存控制器MPMC

可以外挂各种存储介质

主要指的是SDRAM

 

Nor Flash

Flash本身,虽然分Nand Flash和Nor Flash

但是,Flash这个词,本身常常代表Nor Flash本身。

 

又分:

Nor Flash

有时候也是指的是EEPROM(?)

比如:http://www.microchip.com/pagehandler/en-us/family/32bit/architecture.html

就有:“Up to 512 KB Flash”

 

Nand Flash

Nand Flash中可能会涉及到bch算法。

 

之前写过的教程:

【详解】如何编写Linux下Nand Flash驱动

 

电源管理PMU

Power Management Unit

用于管理电源的。

可以控制各种硬件模块的电源,的电压,以达到:

  • 可以使得硬件工作稳定和正常
  • 可以实现功耗管理
    • 正常电压时,性能好,但是功耗大
    • 低电压时,功耗相应降低,但是性能相对弱

 

wiki的解释供参考:

http://en.wikipedia.org/wiki/Power_Management_Unit

 

实时时钟RTC(Real Time Clock)

RTC,常见的,嵌入式中的基本功能之一。

断电也可以正常运行。

 

比如:

http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=MCF5227X

中,就有个RTC

 

折腾过的有:

【整理】linux下测试RTC驱动相关的命令date和hwclock常见用法简介

 

SD/MMC

详见:

【整理】嵌入式外设之SD/MMC

 

SSP

也是常见接口之一。

 

Synchronous Serial Port

http://en.wikipedia.org/wiki/Synchronous_Serial_Port

SSP与SPI接口的区别是什么?

http://zhidao.baidu.com/question/247087991.html

 

Touch Panel触摸屏

也是属于显示屏相关的,但是支持触摸。

 

TVOUT

显示内容输出格式之一。

显示到电视上。

包括对应的PAL或NTSC等格式。

 

UART/RS232/串口

详见:

【整理】嵌入式外设之RS232

 

WatchDog看门口

简称WDT

 

之前的部分整理,供参考:

什么是watchdog + 为何在要系统初始化的时候关闭watchdog

抽空再整理出单独教程。

 

JTAG

用于支持JTAG口去调试芯片

属于调试方面的东西

 

Ethernet

网卡,以太网卡

比如:http://www.microchip.com/pagehandler/en-us/family/32bit/architecture.html

就有:“10/100 Ethernet MAC with MII/RMII Interfaces”

 

总结

嵌入式系统,的开发过程中,

往往,更多的时候,可能就是去学习和了解这些外设的工作原理,

然后接着去实现对应的驱动。

这往往是常见的,典型的,嵌入式开发,所要做的事情之一。

 

其他相关的:

【整理】嵌入式各种外设的引脚的相通之处和不同点

【整理】嵌入式SoC中各种片内资源

【整理】嵌入式系统中各种软件功能模块

 

参考资料

What is the CRC Module?

Using the CRC Module on the Flexis AC Family

http://en.wikipedia.org/wiki/Analog_front-end

http://www.digikey.com/product-search/en/integrated-circuits-ics/data-acquisition-analog-front-end-afe/2556395


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【整理】嵌入式系统的各种常见外设 的相关文章

  • ubuntu系统备份与恢复-remastersys方法

    对于刚入门ubuntu的人来说 xff0c 配置各种各样环境的过程中往往会把系统装崩溃 每次都重新安装ubuntu看起来非常麻烦 xff0c 一个好的办法就是把我们某个阶段配置好环境的ubuntu做个备份 xff0c 然后万一系统崩溃了 x
  • 论文阅读-《Semantic Segmentation with Reverse Attention》

    BMVC 2017 oral code https drive google com drive folders 0By2w A aM8Rzbllnc3JCQjhHYnM 1 Motivation 作者这篇文章的主要目的是为了提高seman
  • python numpy中axis的含义

    不同的编程语言对于多维数组的索引方式往往不太一样 xff0c 下面主要讲一下python numpy里面axis的含义 numpy当中axis的值表示的是这个多维数组维度的下标 xff0c 比如有一个二维数组a xff0c a的shape是
  • Deep Watershed Transform for Instance Segmentation

    Min Bai amp Raquel Urtasun UfT 1 传统的分水岭算法简介 图像处理中的分水岭算法常用来做图像区域分割 segmentation xff0c 基本的思路是计算一张energy map来表示图像 xff0c 其中物
  • 【华为2019年校园招聘】2019-4-17 软件题-最大时间问题

    输入描述 输入为一个整数数组 xff0c 数组内有六个整数 输入整数数组长度为6 xff0c 不需要考虑其他长度 xff0c 元素值为0或者正整数 xff0c 6个数字每个数字只能使用一次 输出描述 输出为一个24进制格式的时间 xff0c
  • 【华为2019年校园招聘】2019-4-17 软件题-水果摊小买卖

    题目描述 小王手里有点闲钱 xff0c 想着做点卖水果的小买卖 xff0c 给出两个数组m xff0c n xff0c 用m i 表示第i个水果的成本价 xff0c n i 表示第i个水果能卖出的价钱 xff0c 假如现在有本钱k元 xff
  • ubuntu20.04安装微信和QQ,腾讯会议,以及一些其他实用软件

    由于电脑性能不行 xff0c 所以有windows 转为ubunut20 04 xff0c 这样电脑流畅多了 美化了下它的UI xff0c 美化的差不多了 xff0c 之后 xff0c 就差安装微信和qq了 xff0c 微信对于我来说是必要
  • 组合导航(GNSS+惯性导航)

    一 GNSS 至少需要四颗星 怎么判断GNSS数据是否准确 xff1f 数据中是否携带星数 xff1f 二 惯性导航 关于磁力计的使用 xff1a 1 xff09 类似重力 xff0c 磁力也是一个矢量 地球任意位置的磁力在东北天地理系下的
  • ROS之消息发布和接收

    ros Subscriber subscriber 61 nh subscribe topic name buff size amp CloudSubscriber msg callback this 参数1 xff1a 话题名字 参数2
  • IEDA 安装actiBPM插件

    一 引言 因为有个项目要用到activiti 来做工作流引擎 xff0c 但是发现自己的IDEA的插件市场里面已经找不到 actiBPM 这个插件了 xff0c 无奈只能去IEDA 插件网站先下载下来再进行安装了 二 actiBPM插件下载
  • STM32f103调试笔记(2)——使用ST-LINK下载程序的时候,不按住复位键无法下载?

    这也是很常遇见的一个问题了 使用ST Link下载程序的时候 xff0c 总是显示无法识别设备 xff0c 查阅了网上的解决方法 xff0c 只要按住复位键 xff0c 然后点击LOAD以后迅速松开复位键就可以了 这也是一种方法啦 xff0
  • VR/AR技术杂选

    相机频率 xff1a 一般来说 xff0c 相机频率60Hz是指相机的帧率为60fps xff0c 即frame per second 每秒钟60帧 红外探测器 xff1a 分为两种 xff0c 一种是基于光电特性 xff0c 一种是基于热
  • 【图像】光谱波长分布图

    可见光范围内的颜色倒序为 赤橙黄绿青蓝紫 猜你喜欢 xff1a x1f447 x1f3fb 图像 一个像素占几个字节 xff1f 多少比特 xff1f 图像 尺度不变特征变换算法 xff08 SIFT xff09 基于小波变换的图像边缘检测
  • 百度2014校园招聘-研发工程师笔试题(济南站)

    一 xff0c 简答题 30分 1 xff0c 当前计算机系统一般会采用层次结构存储数据 xff0c 请介绍下典型计算机存储系统一般分为哪几个层次 xff0c 为什么采用分层存储数据能有效提高程序的执行效率 xff1f xff08 10分
  • js中,export和module.export的区别

    说明 导出模块就是导出对象 xff0c export和module exports两者区别 xff1a export是设置导出模块对象的指定属性module export既可以设置导出模块的所有属性 xff0c 又可以设置导出模块的指定属性
  • ERROR:Session/line number was not unique in database. History logging moved to new session.

    摘要 xff1a 遇到此类错误 xff0c 可以通过分段调试的方法找到引发错误的位置 引发错误的原因不详 xff0c 可能很基础 Distribution of the peak number file 61 pd read excel 3
  • ubuntu xfce4和vncserver

    安装xfce4 sudo apt get install xfce4 如果你想创建一个新的用户 xff0c 而不是将桌面使用root权限登录 xff0c 可以执行下面的代码 xff1a 安装vncserver sudo apt instal
  • harmonyOS hdc配置以及自动签名

    hdc是sdk tools中自带的命令 xff0c 你没有配置系统环境变量指定它所在的目录 xff0c 肯定不能直接到处任意调用啊 xff0c 你需要进入到hdc exe所在路径的当前路径下才能去调用它 xff0c 或者你把它的路径加入到系
  • Vue脚手架(Vue-cli)安装

    脚手架是Vue官方提供的标准化开发工具 开发平台 官方文档开始 vue cli cli c command l line 行 interface 命令行接口工具 第一步 仅第一次执行 全局安装 64 vue cli npm install
  • 使用vscode开发配置uni-app(小程序)

    这个文件是用VsCode写uniapp小程序的步骤笔记 安装Vue脚手架 vue cli npm install g 64 vue cli 通过脚手架创建uni app项目 vue create p dcloudio uni preset

随机推荐

  • uniapp image组件的基本使用

    image组件的基本使用 就是用来显示图片的 src 来设置我们图像的路径 属性名类型默认值说明平台差异说明srcString图片资源地址 lt template gt lt div gt lt view gt lt image src 6
  • 将本机做成虚拟镜像文件(使用VMware vCenter Converter收取镜像)

    下载地址 xff08 需要账号 xff09 xff1a https customerconnect vmware com downloads info slug infrastructure operations management vm
  • uniapp 网络请求 get请求

    网络请求 在uni中可以调用uni request方法进行请求网络请求 需要注意的是 xff1a 在小程序中网络相关的API在使用需要配置域名白名单 官方文档 如果发起请求就调用我们这个uni request OBJECT 发送get请求
  • electron之旅(二)react使用

    首先使用react模板 我们这里使用的是vite和yarn span class token function yarn span create vite span class token comment 创建vite的react js模板
  • flutter学习之旅(二)

    如果不知道怎么安装编写可以查看这篇 创建项目 另一个创建方法 flutter create 项目名 热部署 vscode 热部署 vscode很简单 xff1a 可以通过Debug进行调试 使用flutter查看设备 flutter dev
  • Flutter学习之旅 - Scaffold属性Drawer侧边栏

    span class token class name Scaffold span span class token punctuation span appBar span class token punctuation span spa
  • Flutter学习之旅 - AppBar、TabBar、TabBarView实现头部顶部滑动导航

    文章目录 AppBar自定义顶部按钮图标 颜色取消debug图标TabBar TabBarView来实现顶部导航PreferredSize组件改变TabBar导航样式自定义KeepAliveWrapper缓存页面如何获取tab下的索引值销毁
  • Flutter学习之旅 - 路由

    文章目录 Flutter路由介绍普通路由普通路由传值 命名路由将 96 routes 96 的配置提到外面 使用的是Map 命名路由传值 路由跳转返回上一级路由替换路由返回到根路由返回Tabs后到指定页面 Flutter路由介绍 flutt
  • Ubuntu 和 Debian 的关系

    转自 xff1a http people ubuntu com happyaron udc cn lucid html ch11s09 html Debian 于 1993年8月16日 由一名美国普渡大学学生 Ian Murdock 首次发
  • Makefile学习笔记

    主要参考文档 xff1a 跟我一起写makefile xff0c 这里 有一篇 谈谈职业规划 CSDN对陈皓的采访 xff0c 被采访的大牛就是这个文档的作者 xff0c 他的CSDN专栏 本文的示例工程及Makefile 在这里 一 关于
  • 运行的docker增加端口映射

    1 运行了一个centos7的容器 xff0c 22端口映射给宿主机5002端口 xff1a docker span class token function ps span span class token operator span s
  • 23.易混淆命令(apt-get、wget、git clone、pip与pip3区别、apt-get和pip区别)

    摘要 xff1a 本文详细介绍了Ubuntu系统下apt get wget git clone pip与pip3 apt get和pip几组概念的区别 1 apt get 参考文献 xff1a apt get 是AdvancedPackag
  • ssh实现免密登录(文中附上脚本)

    1 为什么要互信 很多时候 xff0c 我们经常需要登录同一个服务器或者客户端 xff0c 但是输入密码很繁琐 xff0c 此时我们就需要能免密登录某些服务器或客户端 下面我们就来看怎么简单实现免密登录 有时候我们在shell脚本中会不断去
  • MapReduce概述及工作流程

    内容 mapreduce原语 xff08 独创 xff09 mapreduce工作流程 xff08 重点 xff09 MR作业提交流程 xff08 重点 xff09 YARN RM HA搭建 xff08 熟练 xff09 运行自带的word
  • IIC总线

    1 概念 IIC总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线 xff0c 主要用于连接整体电路 同一块板子两个芯片之间的通信是通过IIC总线进行的 xff08 stm32mp157a lt IIC gt SI7006 I
  • 函数拟合3

    所谓函数拟合 xff0c 就是给定一些输入点 xff0c 输出一个函数曲线 选择的基函数会直接影响线性组合函数的表达能力 当采样点较多 xff0c 而系数较少时 xff0c 会出现欠拟合 xff0c 表达能力不够 当采样点较少 xff0c
  • LDM命令

    http blog 163 com oy mcu blog static 16864297220120193458892 LDM STM指令主要用于现场保护 xff0c 数据复制 xff0c 参数传送等 STMFD指令 STMFD Rn r
  • LE Audio进入商用阶段

    LE Audio进入商用阶段 xff0c TWS耳机要变天了 36氪 蓝牙协议十年来的最大更新 xff0c LE Audio进入商用测试阶段 全球最畅销的IoT设备是什么 xff1f 我很轻松就能告诉你答案 xff1a AirPods 作为
  • CAN XL :CAN协议家族新成员

    十年之前 xff0c 你不认识我 xff0c 我也不认识CAN FD 如今 xff0c CAN FD已经陆续进入乘用车领域 xff0c 几乎所有汽车制造商都将在未来几年内逐步推出搭载CAN FD的乘用车 那十年之后 xff0c 车载网络又会
  • 【整理】嵌入式系统的各种常见外设

    原文地址 xff1a http www crifan com summary embedded system various peripherals 最后更新 xff1a 2013 11 14 TODO xff1a 1 添加更多的常见的外设