Uploaded by wang Bruch

lecture2 architecure

advertisement
Lecture 2
SOC Architecture and Design
王琴
qinqinwang@sjtu.edu.cn
Outline
SoC整体架构
CPU
总线
接口控制模块
2
Basic system-on-chip
3
SoC architecture
4
Outline
SoC整体架构
CPU
总线
接口控制模块
5
SoC中常用的处理器和DSP
ARM(Advanced RISC Machines)
• RISC architecture
• ARM7, ARM9, ARM10,ARM11,
CortexA5..A72,CortexR,CoretexM
6
● Cortex-A—面向性能密集型系统的应用处理器内
核,Cortex-A处理器为利用操作系统(例如Linux或
者Android)的设备提供了一系列解决方案,这些设
备被用于各类应用,从低成本手持设备到智能手机
、平板电脑、机顶盒以及企业网络设备等。
● Cortex-R—面向实时应用的高性能内核
● Cortex-M—面向各类嵌入式应用的微控制器内核
7
Cortex-A
8
Cortex-R
9
Cortex-M SecurCore
10
SoC中常用的处理器和DSP
MIPS
• RISC architecture
• MIPS 32, MIPS 64
SPARC
• RISC architecture
11
RISC-V
UC Berkeley David Patterson和Krste Asanovic两位教授
领导的研究团队提出
• 1. 完全开放的指令集,学术与工业界免费使用。
• 2. 不仅能仿真与编译,并且能够真正硬件实现。
• 3. 不针对于特定的微架构(例如微代码,顺序执行,乱序执行
)或指定的实现方式(例如全定制,ASIC,FPGA),能够用以
上任一种方法高效实现。
• 4. 整数指令分立,可用于定制加速和教育目的,也可以进行标
准拓展,支持通用软件的发展。
• 5. 支持IEEE 754-2008标准的浮点运算。
• 6. 支持用户级指令集拓展和修改。
• 7. 同时支持32位,64位,128位地址空间的应用,操作系统和硬
件实现。
• 8. 能够支持多核与众核的高度并行实现。
• 9. 可根据编码空间和性能需求改变指令长度和密度。
• 10. 易于抽取子集并用于教学或者降低引入新设计的复杂度。
12
SoC中常用的处理器和DSP
13
PowerPC (Developed by IBM、Motorola、
Apple)
TI’s DSP
• TMS320C54, TMS320C55,
TMS320C62,TMS320C64,67
ADI’s DSP
• ADSP-21, SHARC, TigerSHARC,
Blackfin
Freescale’s DSP
• DSP56300, StarCore
选择处理器内核
处理器内核的种类和数量
选择处理器内核的关键因素是要实现的目标应用
选择方法:
目标应用对运算能力要求的估计
应用开发、软件环境
处理器的类型:通用处理器的运算能力和DSP区别
• 通用处理器:特定资源大,内存大
• DSP:运算能力大,0开销的循环,桶等
14
CPU性能优化技术
高速缓存(Cache)技术
• 高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静
态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接
近于CPU的速度。
超标量指令执行
• 超标量是指在一个时钟周期内CPU可以执行一条以上的指令。
超标量(superscalar)CPU架构是指在处理器内核中实行了指
令级并行的并行运算。
可重构计算
流水线技术
多核处理
15
16
Pipelined processor
17
• 流水技术无助于减少单个任务的处理延迟(latency)但有
助于提高整体工作负载的吞吐率
• 潜在加速比=流水线级数
• 流水线的速率受限于最慢的流水段
• 流水段的执行时间如果不均衡,那么加速比就会降低
• 开始填充流水线的时间和最后排放流水线的时间降低加速比
• 数据相关将导致流水线暂停
ARM A72多核并行处理单元
18
多核多线程
IBM POWER7RISC处理器
• 同时多线程,8核,每核4线程
• 核间共享L3 Cache进行核间通信
19
Outline
SoC整体架构
CPU
总线
接口控制模块
20
总线 – SoC的桥梁
负责CPU、高速设备、低速设备、外部存储器控制接口、系统
控制模块等SoC中各个模块之间的数据传输。
SoC中的各个IP模块以统一的接口和总线通信,避免了挂接在
不同SoC架构中接口部分代码的重新编写。
常用的总线:AMBA
21
21
总线设计要求
简单
• 首先结构要简单,这样可以占用较少的逻辑单元;
• 其次时序要简单,以利于提高总线的速度;
• 第三接口要简单,如此可减少与IP核连接的复杂度。
灵活性,由于片上系统应用广泛,不同的应用对总
线的要求各异,因此片上总线具有较大的灵活性。
• 多数片上总线的数据和地址宽度都可变
• 部分片上总线的互连结构可变,如Wishbone总线支持
点到点、数据流、共享总线和交叉开关四种互连方式;
• 部分片上总线的仲裁机制灵活可变,如Wishbone总线
的仲裁机制可以完全由用户定制。
片上总线要尽可能降低功耗
22
片上总线有两种实现方案
片上总线有两种实现方案
• 选用国际上公开通用的总线结构;
• 根据特定领域自主开发片上总线。
目前SoC上使用较多的三种片上总线标准
• ARM总线
• Silicore的Wishbone
• Altera的Avalon(Altera已被Intel收购)
23
AMBA
AMBA总线规范是ARM公司设计的一种用于高性能嵌入
式系统的总线标准;
独立于处理器和制造工艺技术,增强了各种应用中的外
设和系统宏单元的可重用性;
AMBA总线规范是一个开放标准,可免费从ARM获得;
AMBA 拥有众多第三方支持,被ARM公司90%以上的合
作伙伴采用,在基于ARM处理器内核的SoC设计中,已
经成为广泛支持的现有互联标准之一;
AMBA总线 规范2.0,引入的先进高性能总线(AHB)。
不再仅仅是一种总线,而是一种带有接口模块的互连体
系。
24
AMBA主要种类
AMBA(Advanced Microcontroller Bus Architecture)
• AHB (Advanced High-performance Bus)
• ASB (Advanced System Bus)
• APB (Advanced Peripheral Bus)
25
25
www.cnasic.com
AMBA发展历史
AMBA 1.0
• ASB 和 APB
AMBA 2.0
• AHB, ASB 和 APB
AMBA 3.0
• AMBA Advanced eXtensible Interface (AXI)
26
AHB
高速总线,高性能
流水线操作
可支持多个总线主设备(最多16个)
支持burst传输
总线带宽:8、16、32、64、128bits
上升沿触发操作
27
AHB组成部分
AHB 主设备(master)
• 初始化读/写操作
• 某一时刻只允许一个主设备使用总线
• DMA、DSP、LCDC …
AHB从设备(slave)
• 响应读/写操作
• 通过地址映射来选择使用哪一个从设备
• 外部存储器控制器EMI、APB bridge、UART、 …
AHB仲裁器(arbiter)
• 允许某一个主设备控制总线
• 在AMBA协议中没有定义仲裁算法
AHB译码器(decoder)
• 通过地址译码来决定选择哪一个从设备
28
AHB
29
AHB: Simple Transfer
30
Multiple Transfer
31
AHB Arbiter and Decoder Interfaces
32
APB
低速总线、低功耗
接口简单
在Bridge中锁存地址信号和控制信号
适用于多种外设
上升沿触发
33
APB组成部分
AHB2APB Bridge
• 可以锁存所有的地址、数据和控制信号
• 进行二级译码来产生APB从设备选择信号
APB总线上的所有其他模块主要是从设备
34
Bridge
35
其他总线
IBM’s CoreConnect
Silicore’s Wishbone(点到点,交叉开关)
OCP (Open Core Protocol) Bus
Avalon Bus
36
IBM’s CoreConnect
PLB: Processor Local Bus
OPB: On-Chip Peripheral Bus
DCR: Device Control Register
37
Wishbone
灵活性是Wishbone总线的另一个优点。由于IP核种类多
样,其间并没有一种统一的间接方式。为满足不同系统
的需要,Wishbone总线提供了四种不同的IP核互连方式
:
• 点到点(point-to-point),用于两IP核直接互连;
• 数据流(data flow),用于多个串行IP核之间的数据
并发传输;
• 共享总线(shared bus),多个IP核共享一条总线;
• 交叉开关(crossbar switch),同时连接多个主从部
件,提高系统吞吐量。
38
39
OCP (Open Core Protocol) Bus
OCP-IP组织定义的IP互连协议
40
Avalon Bus
Developed by Altera for Nios core on FPGA
41
NoC
42
Buses to Networks
43
Topologies
44
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
45
中断控制器
RTC
Watchdog
DMAC
PMC
Timer
UART
SPI
USB
LCDC
I2S
中断控制器
对SoC芯片中各个外设的中断进行管理,进行优先权排队,并
送出Irq信号给CPU
连接在APB总线上
IRQ1
ARM
nIRQ
IRQ2
INTC
IRQN
外
部
中
断
46
内
部
中
断
ARM7TDMI
程
序
执
行
中断
产生
中
断
服
务
INTC
中
断
返
回
INTC在SoC芯片中的位置
INTC
47
信号列表
名称
位宽
方向
说明
APB 总线接口
pclk
1 bit
in
APB clock
preset
1 bit
in
APB reset
psel
1 bit
in
APB peripheral
penable
1 bit
in
APB enable
pwrite
1 bit
in
APB write control
paddr
8 bits
in
APB address
pwdata
32 bits
in
APB write data
prdata
32 bits
out
APB read back data
来自其他外设的中断源信号
int_src
num
in
num is the whole number of interrupt
maximum number is 64
输出到cpu的irq和fiq
48
irq
1 bit
out
irq request connect to processor
fiq
1 bit
out
fiq request connect to processor
INTC整体框架
APB or AHB
Vector Interrupt Controller
Apb_interface:
是INTC与总线的接口模
块;而又同时是INTC的控
制模块,里面有INTC所有
的寄存器信息;
apb_interface
Int_gen:
用于接收中断源,选择
中断源为irq或者fiq;中断
屏蔽;软件中断。
49
int_gen
irq_status
priority_
logic(irq)
irq
fiq_status
int_src
fiq
priority_
logic(fiq)
Priority_logic:
用于软件中断优先级屏
蔽,并且在所有的未被屏
蔽的中断信号里面选出优
先级最高的中断源,并产
生中断信号,分为irq模块
和fiq模块;
中断源-内部中断
RTC
• 秒中断、分中断、定时中断、Watchdog中断
UART
• 数据发送结束中断,数据接收有效中断
TIMER
• 定时/计时中断
DMAC
• DMA错误和DMA传输完成
LCDC
• 错误响应、帧结束、帧起始
SPI
• FIFO空满、发送FIFO下溢、接收FIFO上溢
50
中断源-外部中断
比内部中断复杂,不可控
通常和GPIO口复用
中断源触发方式
•
•
•
•
上升沿触发
下降沿触发
高电平触发
低电平触发
外部中断信号特殊处理
• 去除毛刺、寄存、同步到总线时钟
外部中断需要清除
51
使用外部中断
1、清除外部中断
•
在使用外部中断以前,必须先清除在此之前的中断信号
2、配置GPIO控制寄存器
•
•
•
先配置管脚方向为输入
再配置中断触发类型
最后配置管脚模式为中断模式
3、配置中断寄存器
•
•
52
设置INTC的中断屏蔽寄存器的相应位屏蔽中断
设置INTC的相应位以允许该中断源产生的中断
UART中断服务程序
VOID uart_handler(INT Vector)
{
case
接收数据状态中断
接收数据有效中断
Timeout中断
发送FIFO中断
Modem状态变化中断
}
53
//中断服务子程序
中断控制器小结(1)
中断控制器
• 挂在APB总线上
• 对外部中断、内部中断、软件强制中断进行管理,送出IRQ
信号给ARM
• 设计时考虑接口信号和寄存器的设计
• APB接口信号
• 中断源信号
• 送给ARM的IRQ、FIQ信号
54
中断控制器小结(2)
管理不同类型中断
• 外设产生的内部中断
• 外设的中断允许寄存器
• 外设中断屏蔽寄存器
• 与GPIO口复用的外部中断
• GPIO的管脚方向、管脚模式、中断触发类型
• 软件强制中断
• INTC
• 原始中断状态寄存器
• 中断允许寄存器
• 中断屏蔽寄存器
• 中断优先级寄存器
• 最终中断状态寄存器
• 送出IRQ信号给ARM
55
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
56
中断控制器
RTC和Watchdog
Timer
DMAC
PMC
UART
SPI
USB
LCDC
I2S
实时时钟RTC
对SoC中锁相环或者外部晶振的时钟进行计数;
产生时、分、秒三种中断;
送给中断控制器;
中断控制器进行优先权排队后送给CPU;
CPU执行中断服务程序;
在中断服务程序中判断中断源,并更新系统的实
时时钟。
57
Watchdog
组成:一个独立的定时器,可以设定时间(开狗),到
达时间后要置位(喂狗),如果没有的话,就认为是程
序跑飞,就会发出RESET指令。
一般看门狗电路用来监视MCU内部程序运行状态,在程
序跑飞或死锁情况下,可以自动复位。
工作原理:当系统工作正常时,CPU将每隔一定时间输
出一个脉冲给看门狗,即“喂狗”,若程序运行出现问
题或硬件出现故障时而无法按时“喂狗”时,看门狗电
路将迫使系统自动复位而重新运行程序。
58
Watchdog
开始
软件访问
看门狗
软件访问
看门狗
软件未能及时
访问看门狗
时间流
watchdog周期
(可配置)
59
产生中断
或者
复位系统
寄存器列表
寄存器
描述
年、月、日计数寄存器
设定年、月、日
小时、分钟、秒寄存器
设定小时、分钟、秒
定时月、日、时、分寄存器
设定定时月、日、小时、分钟、秒
控制寄存器
Watchdog时钟选择;Watchdog是否使能
中断使能寄存器
WatchDog timeout、定时中断、分钟中断、
秒中断等是否使能
中断状态寄存器
上述中断是否产生
Watch-Dog计数值寄存器
Watchdog计数值,计数到0时,timeout信号
产生
60
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
61
中断控制器
RTC
Watchdog
Timer
DMAC
PMC
UART
SPI
USB
LCDC
I2S
通用定时器(TIMER)
作用:TIMER是片内集成的通用定时器,能够向系统提供定时
中断,也可以通过外部时钟进行定时计数。
工作模式
• 基本功能:定时、计数,当计数到零时,产生一个标志用于
设置相应的中断标志位,若中断未被屏蔽则产生中断;同时,
计数器加载数据开始一个新的计数周期
• 外部捕获功能:利用外部事件捕获计数器的当前值,也就是
当检测到输入端口上发生指定的边沿变化时,立即锁存计数
器的当前值并发出中断。利用捕获功能可以确定外部输入信
号的频率、脉冲宽度等。
62
结构框图
63
寄存器列表
寄存器
描述
通道1加载计数寄存器
在重启计数模式时,此值作为当计数器递减
计数到零或发生capture事件时的重新加载值
通道1当前计数值寄存器
通过这个寄存器可以读取当前计数器的值
通道1控制寄存器
通道中断屏蔽控制;通道工作模式设置;计
数开始;通道使能
通道1中断状态清除寄存器
该寄存器可以清除对应通道的中断状态位
通道1中断屏蔽状态寄存器
反映了通道受屏蔽位控制的中断状态
Timer中断屏蔽状态寄存器
各个通道的中断屏蔽状态位
Timer中断状态清除寄存器
此寄存器可以清除各个通道的中断状态位
Timer中断状态寄存器
各个通道的中断状态位
64
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
65
中断控制器
RTC
Watchdog
DMAC
PMC
Timer
UART
SPI
USB
LCDC
I2S
PMC模块介绍
功耗管理模块(PMC)控制处理器不同工作模
式之间的切换
• 根据芯片不同的应用,通过动态地管理芯片内部各
子模块的时钟源供给和系统的工作频率,从而降低
芯片的整体功耗。
• 包含了各个子模块的时钟控制电路,它可以集中控
制、关闭不必要打开的模块达到低功耗的目的。
66
PMC模块介绍
举例说明某款芯片
• 提供四种低功耗模式:SLOW、NORMAL、IDLE和
SLEEP。系统中模块工作时钟的集中控制策略,系统
中的模块可以通过PMC来关闭和打开。
• SLOW模式,芯片工作频率为2~5MHZ/n,其中n=1/2/4/6/8
,缺省为2~5MHZ/1;
• NORMAL工作在正常频率;
• IDLE模式关闭CORE时钟,减小内核和存储器功耗。
• SLEEP关闭所有时钟,SLEEP时的功耗<150uW,支持
SDRAM的数据自刷新,支持RTC日历保持。
67
结构框图
68
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
69
中断控制器
RTC
Watchdog
Timer
PMC
DMAC
UART
SPI
USB
LCDC
I2S
数据传送方式
程序控制下的数据传送——通过CPU执行程序中
的I/O指令来完成传送,又分为:查询传送、中断
传送
直接存储器存取(DMA)——传送请求由外设向
DMA控制器(DMAC)提出,后者向CPU申请总
线,最后DMAC利用系统总线来完成外设和存储
器间的数据传送
70
查询传送
⑴ 查询环节
输入状态
寻址状态口
读取状态寄存器的标志位
N
就绪?
若不就绪就继续查询,直至就绪
Y
⑵ 传送环节
数据交换
寻址数据口
是输入,通过输入指令从数据端口读入数据
是输出,通过输出指令向数据端口输出数据
71
中断传送
1) CPU在执行程序中,被内部或外部的事件所打断,转去执
行一段预先安排好的中断服务程序;
2) 服务结束后,又返回原来的断点,继续执行原来的程序
主程序
中断服务程序
中断请求
断点
继续执行
72
对外设
进行处理
返回断点
DMAC
数据传送的方式:
• 查询传送: 简单实用,效率较低;
• 中断传送:每次传送需要大量额外时间开销 ;
• DMA传送:DMA数据传送是一种完全由硬件执行数据交换
的工作方式;数据交换不经过CPU而直接在存储器之间以及
存储器和外设之间进行。实现了一个memcpy的功能和赋值
的功能;DMA方式一般用于高速传送成组的数据
外 设
AC97
UART
USB
MMC
73
外设
存 储 器
SDRAM
eSRAM
NOR
FLASH
NAND
FLASH
DMAC
存储器
DMAC的作用
DMA控制器在获得总线仲裁器或CPU授权占用总
线后
• 向内存和外设发出地址和控制信号,修改地址
,对传送的字的个数计数
• 以中断方式向CPU报告传送操作的结束。
74
例:DMA
DMA(Direct Memory Access)直接内存存取
75
例:DMA
Step1:CPU设置(source
address)、(destination
address)(size)
Write (0x30008,0x10000)
Write(0x3000C,0x20000)
Write(0x30010,0x100)
Step 2: 启动DMA
Write(0x30000,0x1)
76
例:DMA
Step3:
DMA把数据从
memory 1
传送到memory 2
77
例:DMA
Step 4:DMA 向CPU
发出中断请求
Step 5:CPU检查
DMA的状态
• Read(0x30004,
&status)
78
DMAC在SoC芯片中的位置
DMAC
79
SoC芯片中各模块的DMA需求
需要使用DMA的高带宽高速度的模块
• LCD控制器、MMA和USB
需要使用DMA的低带宽低速度的模块
• AC97控制器、PWM、SPI和UART
使用DMA的存储控制模块
• 存储控制器和CF卡控制器
不需要使用DMA的模块
• RTC、Timer、GPIO等
80
DMA传送的源设备和目标设备
外设和存储器
存储器
• DMA传送的地址是存储器的地址
• 地址产生方式为增量
外设
• DMA传送的地址是某一个数据端口的地址
• 地址产生方式为非增量
81
DMA控制器的接口信号
AHB mater接口信号
AHB slave接口信号
DMA通道请求和响应信号
中断请求信号
82
DMA控制器的功能模块
DMAC AHB Slave模块
• DMAC的编程配置接口,用于CPU进行编程配置,
内部设有控制寄存器堆和通道寄存器堆;
DMAC AHB Master模块,包括3个子模块
• AHB Master接口
• DMA引擎模块
• DMAC FIFO;
通道管理模块
• DMA通道的管理与调度,包含有通道优先级判别器
和通道管理寄存器;
中断请求模块
• 在每个DMA流传输完成,或是当传输中发生错误的
情况下,DMA控制器根据配置决定是否发出中断信
号给中断控制器,交由CPU处理。
83
DMA通道
多通道:较多的请求源,需要一定数量的DMA通
道数。通道数过少,会导致通道使用繁忙而引发
竞争,可能使得外设的DMA请求得不到及时地处
理。通道数过多也会导致面积的不优化,使得芯
片成本提高。
优先级:对于各种DMA传输的数据量,实时性要
求等不同,各个DMA传输的紧迫性是不一样的,
因此需要引入通道的优先级,既要保证高带宽的
外设优先享受DMA服务,同时也要确保低带宽的
外设也能适时地享受DMA服务。
84
AHB slave模块
DMAC AHB Slave
Control Register Bank
Channel Register Bank
AHB Master
Interface
Channel 15
DmacConfig
ChannelEn
Prioritizing
Arbiter
Channel 1
Channel 0
IntTCStatus
ScrAddr0
IntErrStatus
DestAddr0
IntTCClear
Control 0
IntErrClear
Config0
AHB Slave Interface
AMBA AHB
85
Interrupt
Requester
DMAC寄存器
DmacConfig:DMAC配置寄存器,用于配置DMAC模块
的通用信号,如模块使能等
ChannelEn:DMA通道状态寄存器
IntTCStatus:传输完成中断状态寄存器
IntErrStatus:错误中断状态寄存器
IntTCClear:传输完成中断清除寄存器
IntErrClear:错误中断清除寄存器
SrcAddrx:通道源地址寄存器
DestAddrX:通道目的地址寄存器
ControlX:通道控制寄存器,用于配置对应通道DMA传
输的控制信号
ConfigX:通道配置寄存器,表明对应通道的配置信息
86
AHB Master模块
DMAC AHB Master
DMAC AHB
Slave
DMA引擎
DMAC FIFO
4片
DMA引擎状态机
Idle
深度16
Pre
par
e
Sou
rce
Tra
ns
FIFO
8X16X4
Sou
rcre
Tra
ns
Half
time
Halt
Des
t
Tra
ns
每片宽度8
Halt
AHB Master Interface
AMBA AHB
87
Prioritizing
Arbiter
Pre
par
e
Des
t
Tra
ns
Erro
r
Interrupt
Requester
DMA引擎状态机
RESET
DMA引擎状态机
Idle
有DMA任务
Prepare
Source
Trans
继续源传输
无DMA任务
得到总线
使用权
未得到总线
使用权
源传输周期
Sourcre
Trans
总线操作错误
源传输
完成
总线权未释放
Halftime
Halt
Error
总线权已释放
继续目的传输
得到总线
使用权
Prepare
Dest
Trans
Dest
Trans
目的传输周期
未得到总线
使用权
目的完成
Halt
总线权已释放
88
总线操作错误
总线权未释放
88
DMA引擎状态机
空闲状态(Idle)
• 系统复位以后的默认状态
源传输准备状态(PrepareSourceTrans)
• DMA通道请求服务,申请总线
源传输状态(SourceTrans)
• 将源地址的数据传输到DMAC FIFO中
半程挂起状态(HalftimeHalt)
• 本次Burst传输进行了一半,顺利的将一个Burst的数据从源
地址传送到DMAC FIFO
目的传输准备状态(PrepareDestTrans)
• 申请总线
目的传输状态(DestTrans)
• 将暂存在DMAC FIFO中的数据传输到目标地址
挂起状态(Halt)
• 本次Burst传输完成,顺利的将一个Burst的数据从DMAC
FIFO传送到目标地址
89
DMAC小结
系统需求决定
• 通道数量
• 最大传输的大小
• Burst类型
设计要求
• 遵守总线规范
• 尽可能少占用总线
• 握手方式简单
90
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
91
中断控制器
RTC
Watchdog
Timer
PMC
DMAC
UART
SPI
USB
LCDC
I2S
UART控制器
• UART(Universal Asynchronous Receiver/Transmitter)
通用异步收发器,是处理器总线与串行线(一般使用RS232信
号协议)接口的外围设备
APB
Interf
ace
FIFO
FIFO
Tx
Rx
BaudRate Generator
Interrupt Generator
IRDA
Interfac
e
TXD
RXD
RTS
CTS
out_baud
DTR
DSR
RI
DCD
OUT1
OUT2
92
RS232接口
TXD --- 发送数据信号
RXD --- 接收数据信号
CTS --- The Clear To Send signal. 低电平有效。当此信号有效时,表示外部设备可以接收UART发送的
数据。
RTS --- The Request To Send signal. 请求发送信号。低电平有效。UART向外部设备发出的数据请求信
号。
DTR ---The Data Terminal Ready signal. 数据终端(DTE)准备好信号。
DSR --- The Data Set Ready signal. 数据设备准备好信号。是DTR信号的应答信号。
DCD --- The Data Carrier Detect signal. 接收线路载波检测信号。通知UART探测到载波,准备接受数
据。
RI --- The Ring Indicator. 震铃指示信号。低电平有效。数据设备(DCE)通知UART接收到一个电话
震铃。
93
RS232帧格式
CTS
TXD
Start
T3
Stop
Tcyc
T4
第一位为起始位
中间8位或者7位数据位
最后1或者2位停止位
11位的数据帧
奇偶校验
94
UART控制器模块中所设计的寄存器
中断使能寄存器
中断识别寄存器
FIFO控制寄存器
线路控制寄存器
Modem控制寄存器
线路状态寄存器
Modem状态寄存器
Divisor Latches寄存器:用于设置传输的波特率
接收FIFO
发送FIFO
95
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
96
中断控制器
RTC
Watchdog
Timer
PMC
DMAC
UART
SPI
USB
LCDC
I2S
串行外设接口 SPI总线接口
Serial peripheral interface SPI: 是由Motorola公司开发的,
在微控制器和外设之间的一个简易接口标准
与UART不同,SPI是同步协议接口,所有的传输参照一个
共同的时钟
主从方式接口,可以一带多
简单实用:A/D, D/A,时钟芯片,串行存储器等外设
MOSI
MISO
SCLK
I/O
GND
97
SI
SO
CLK
CS
GND
SPI 控制器
作用:
• 在微控制器与外设之间进行并串转换的数据传输;其外
设传递方式:
• 全双工
• 同步
• 串行
ARM7TDMI
总
98
线
接受
串转并
发送
并转串
外部
串行
设备
SPI控制器和SPI外设的连接
SPI主机和多个从机的连接
SPI接口的数据传输速度较快,单线数据线的传输速率可达100Mbps
,4线数据线的传输速度可达50MB/s。
99
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
10
中断控制器
RTC
Watchdog
Timer
PMC
DMAC
UART
SPI
USB
LCDC
I2S
USB简介
USB是Universal Serial Bus的缩写,中文意思就是“通用串行总线”, 连接
有USB接口的计算机外围设备到计算机
USB的开发背景
• 提供高带宽串行通信
• Plug-and-Play (即插即用)
• 端口扩展。USB提供双向低成本,低速到中速(USB 2.0 可达480Mb/s)
10
USB版
本
USB1.0
理论最大传输速率
速率称号
最大输出电流
推出时间
1.5Mbps(192KB/s)
低速(Low-Speed)
5V/500mA
1996年1月
USB1.1
12Mbps(1.5MB/s)
全速(Full-Speed)
5V/500mA
1998年9月
USB2.0
480Mbps(60MB/s)
高速(High-Speed)
5V/500mA
2000年4月
USB3.0
5Gbps(500MB/s)
超高速(Super-Speed) 5V/900mA
USB
3.1Gen
2
10Gbps(1280MB/s)[2] 超高速+(Superspeed+)
20V/5A
2008年11月 /
2013年12月
2013年12月
USB工作原理
USB:分组传送,首先把数据分成若干块,然后
在每块数据前面添上同步信号、包标识,后面添
上CRC校验,就形成了USB封包。一个文件可能
有多个封包。
根据信息包所实现的功能可分为3种类型:令牌包、
数据包和握手包。令牌包定义了数据传送的类型。
10
USBD模块的连接
10
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
10
中断控制器
RTC
Watchdog
Timer
PMC
DMAC
UART
SPI
USB
LCDC
I2S
黑白/灰度/彩色液晶控制器(LCDC)
LCDC是将系统需要显示的数据经过处理后输出到LCD显示驱动器的液晶显
示控制模块,支持黑白、灰度、彩色液晶屏。
在用户初始化配置后,LCDC自动进行读取数据、缓存数据、处理数据以及
输出符合时序要求的控制和数据信号等操作。
特征:
• STN(Super Twisted Nematic)4/8位接口的单色显示
• TFT(Thin Film Transistor)彩色显示,16bpp不经调色的TFT真彩色显示
• 分辨率软件可配置
DATA
BUFFER
FRAME
BUFFER
10
DATA
OPERATION
数据
控制信号
模拟信号
LCD
接
口
LDC
Drive芯片
LCD
LCDC结构框图
10
目录
1、SoC整体架构
2、CPU
3、总线
4、接口控制模块
•
•
•
•
•
•
•
•
•
•
•
10
中断控制器
RTC
Watchdog
Timer
PMC
DMAC
UART
SPI
USB
LCDC
I2S
音频接口-I2S 规范
I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的
音频数据传输而制定的一种总线标准,该总线专负责音频设
备之间的数据传输,广泛应用于各种多媒体系统。
10
PCM格式
将音频数字化,其实就是将声音数字化。最常见的方式是脉冲编码调制
PCM(Pulse Code Modulation) 。
声音经过麦克风,转换成一连串电压变化的信号,是使用三个参数来表示声
音,它们是:声道数、采样位数和采样频率
• 采样频率:即取样频率。采样频率越高,声音的质量也就越好,声音的还
原也就越真实,但同时它占的资源比较多。目前的常用采样频率都不超
过48KHz。
• 44KHz,16BIT的声音称作:CD音质
• 22KHz、16Bit的声音效果近似于立体声(FM Stereo)广播,称作:
广播音质
• 11kHz、8Bit的声音,称作:电话音质。
• 采样位数:即采样值或取样值(就是将采样样本幅度量化)。它是用来
衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越
大,分辨率也就越高,
• 声道数很好理解,有单声道和立体声之分
10
I2S控制器的功能
支持MASTER和SLAVE模式
支持TRANSMITTER和RECEIVER功能
支持32、16、8位音频数据字长
支持立体声和单声道
支持静音和停止播放
数据高位(MSB)先出/先入
接收发送共享4*32数据FIFO
支持DMA传输模式
11
I2S控制器结构框图
11
Thanks
11
Download