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