背景
嵌入式系統中,硬件方面,有很多常見的外圍設備。
在此,專門整理一下。
什么是嵌入式系統中的外設
外設==外部設備==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/pagehan ... t/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加密等等。
DMA
常見的接口之一。
GPIO
常見的接口之一。
I2C
常見的接口之一。
I2C
比如:
http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=MCF5227X
中,就有個I2C
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算法。
電源管理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
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/串口
WatchDog看門口
簡稱WDT
JTAG
用于支持JTAG口去調試芯片
屬于調試方面的東西
Ethernet
網卡,以太網卡比如:
http://www.microchip.com/pagehandler/en-us/family/32bit/architecture.html
就有:“10/100 Ethernet MAC with MII/RMII Interfaces”
總結
嵌入式系統,的開發過程中,往往,更多的時候,可能就是去學習和了解這些外設的工作原理,然后接著去實現對應的驅動。這往往是常見的,典型的,嵌入式開發,所要做的事情之一。
以下課程可免費試聽C語言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想學習的你和我聯系預約就可以免費聽課了。
宋工企鵝號:35--24-65--90-88 Tel/WX:173--17--95--19--08
|