嵌入式系统设计与应用,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北京交通大学 国家电工电子教学基地,*,嵌入式系统设计与应用,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北京交通大学 国家电工电子教学基地,*,北京交通大学 国家电工电子教学基地,AM335x,处理器,2023.3,北京交通大学 国家电工电子教学基地,AM335x,介绍,主处理器,片上模块,硬件构成要点,开发资源,AM335x Processor,基于,AM335x,处理器的硬件系统,北京交通大学 国家电工电子教学基地,Introduction to AM335x,AM335X,是基于,ARM Cortex-A8,的处理器,最高 1GHz工作时钟,POWERVR SGX 图形用于3D图形加速,可编程实时单元和工业通信子系统(PRU-ICSS)可独立运行,可实现实时协议,例如EtherCAT, PROFINET, EtherNet/IP, PROFIBUS, Ethernet Powerlink等。,支持Linux 和Android操作系统, 可从TI免费得到,可应用于家庭自动化,工业自动化,工业平板,便携导航设备和网络互联。,北京交通大学 国家电工电子教学基地,Introduction to AM335x,AM335X,功能模块,3,个子系统,A8 MPU,子系统,POWERVR SGX,图形加速子系统,PRU-ICSS,实时单元和工业通信子系统,Up to 1GHz,北京交通大学 国家电工电子教学基地,Introduction to AM335x,AM335X,系列处理器,不同配置,引脚兼容,北京交通大学 国家电工电子教学基地,AM335x,介绍,主处理器,片上模块,硬件构成要点,开发资源,AM335x Processor,基于,AM335x,处理器的硬件系统,北京交通大学 国家电工电子教学基地,Main processor,存储器映射,(L3),GPMC (外接存储器),0x0000_0000- 0x1FFF_FFFF, 512MB 8-/16-bit External Memory (ex/r/w),Boot ROM,0x4002_0000 0x4002_BFFF 48KB, (32b, ex/r),内部SRAM,0x402F_0400 0x402F_FFFF 32-bit, Ex/R/W,L3 OCMC (Shared L3 RAM),0x4030_0000 0x4030_FFFF 64KB 32-bit Ex/R/W OCMC SRAM,把握存放器 / 外设存放器,0x4400_0000 - 0x5700_0000 , with reserved areas,EMIF0 SDRAM,0x8000_0000 0xBFFF_FFFF, 1GB 8-/16-bit External Memory, (ex/e/w),北京交通大学 国家电工电子教学基地,Main processor,ARM Cortex-A8 MPU,子系统,MPU 子系统处理ARM A8核心 , L3互联和中断把握器 (INTC)之间的数据交换.,MPU把A8处理器和其他附加规律集成在一起,实现协议转换、仿真、中断处理和调试增加功能。,OCP :,片上外设,,OCM,:片上存储器,北京交通大学 国家电工电子教学基地,Main processor,MPU,子系统功能特点,(1),ARM处理器,CortexA8, ARM架构版本7A , 双放射挨次执行流水线。,L1 指令和数据Cache各 32 KB , 4通道,16 字线,128位接口。,集成了L2 cache 256 KB, 8通道,16 字线,128位接口到L1。,包含Neon SIMD 媒体协处理器。,包含VFP协处理器, 实现VFPv3架构,与IEEE 754标准完全兼容。,外部接口承受AXI协议,配置成128位数据宽度。,包含潜入跟踪宏单元(ETM),支持非侵入调试。,实现了ARMv7调试,带有观看点和断点存放器。,北京交通大学 国家电工电子教学基地,Main processor,MPU,子系统功能特点,(2),AXI2OCP桥,支持OCP 2.2.,在两个端口实现单次恳求多个数据协议。,多个目标,包括三个 OCP ports (128-bit, 64-bit and 32-bit).,中断把握器,最多支持128个中断恳求,仿真/调试,与CoreSight构造兼容,时钟产生,通过PRCM(电源、复位、时钟微把握器),北京交通大学 国家电工电子教学基地,Main processor,MPU,子系统信号接口*,MPU,子系统,Microcontroller,for power and reset control,北京交通大学 国家电工电子教学基地,Main processor,L3 互联构造*,L3 Fast clock domain,L3 Slow clock domain,发起模块: 有力气发起读写恳求。,目标模块 : 只能响应 r/w恳求,To L4 interconnect,北京交通大学 国家电工电子教学基地,Main processor,L4 互联构造*,北京交通大学 国家电工电子教学基地,Main processor,片上模块,(,驱动开发相关,),cache : 高速缓存,mDDR: 移动双倍速率同步动态随机存储器,PRU-ICSS: 可编程实时单元和工业用通信子系统,GPMC:通用存储器把握器,EMIF:外部存储器接口,PRCM:电源复位和时钟治理,GPIO : 通用输入/输出端口,McASP:多通道音频串行接口,McSPI:多通道串行外设接口,eQEP:增加型正交编码脉冲模块,eHRPWM:增加型高区分率PWM模块,eCAP:增加型捕获模块,CAN, I2C, SPI, UART, MMS, SD, JTAG, RTC, DMA,USB, EMAC, ,北京交通大学 国家电工电子教学基地,Main processor,存储器子系统,EMIF : 外部存储器接口, 同步总线, 支持DDR2/DDR3/mDDR,GPMC: 通用存储器把握器, 同步/异步总线,OCMC-RAM : 片上存储器把握器,ELM : 错误定位模块, 从FLASH错误中提取错误地址。,OCMC-RAM,ELM,EMIF,GPMC,DDR,Nand,Flash,北京交通大学 国家电工电子教学基地,Main processor,存储器子系统,: EMIF,16-bit data width,support DDR2/DDR3/mDDR,On-chip 128-bit interface,DDR,Cmd/addr,data,128-bit,OCP,DDR2/3/,mDDR,Memory,Controller,北京交通大学 国家电工电子教学基地,Main processor,存储器子系统,: GPMC,GPMC 为器件供给访问NAND Flash, NOR Flash和其他异步/同步接口外设 的手段.,注:对外部512M存储器访问供给中断和DMA支持。,北京交通大学 国家电工电子教学基地,Main processor,AM335x的中断治理,AM335X 包含一个中断把握器 (INTC) 用于治理 SOC中断。,INTC最多支持128个 irq/fiq中断源,INTC支持可编程的中断优先级和中断抢占。优先级编号从0到7F, 0号为最高优先级。,INTC 不是向量中断把握器, ISR代码需要读取存放器(ACTIVEIRQ)来确定irq编号,然后索引向量表实现跳转。,128个中断源中的每一个都可以被单独屏蔽并设定优先级。,北京交通大学 国家电工电子教学基地,Main processor,中断把握器功能框图*,INTC 硬件搜寻最高优先级的等待中断。,可以设定一个门限,优先级低于或等于此门限的中断不会得到响应。,北京交通大学 国家电工电子教学基地,Main processor,中断两级治理,允许中断:,Cortex-A8内核允许中断(CPSR.I=0).,片上模块配置允许某种中断,进入中断:,硬件保存返回地址和CPSR,修改模式和PC,软件保存存放器,软件读取AM335x处理器的INTC_SIR_IRQ存放器确定中断编号,中断处理,软件读取片上模块中断状态存放器确定具体中断来源,处理中断,去除片上模块的中断等待状态,退出中断,软件恢复存放器包含CPSR和PC,北京交通大学 国家电工电子教学基地,Main processor,AM335x 中断源(局部),中断编号 缩写 设备,北京交通大学 国家电工电子教学基地,AM335x,介绍,主处理器,片上模块,硬件构成要点,开发资源,AM335x Processor,基于,AM335x,处理器的硬件系统,北京交通大学 国家电工电子教学基地,On-chip Peripherals,AM335x,片上外设模块分组,通信和串行总线接口,UART x6,SPI x2,I2C x3,CAN x2,USBx2,EMACx2,McASPx2,并行接口,MMC/SD/SDIO x3,GPIOs,把握模块,EDMA,Timers x8,WDT,RTC,PWMx3,QEPx3,eCAPx3,ADC 12b, 8ch,HMI人机接口,LCD,Touch screen,北京交通大学 国家电工电子教学基地,On-chip Peripherals,AM335x,片上外设模块的使用,绝大多数片上外设引脚都是与GPIO或其他外设模块共享复用的,在规划外设的应用时要加以考虑。,对这些外设的编程,可以参考StarterWare 中给出的代码。在Linux系统下编程时, TI给出了常用模块的驱动程序。,利用DMA和中断机制可以提高接口模块工作的效率和速度。,外设的配置和相关存放器地址等反映在Linux内核驱动需要的设备树(DTS)文件中。,北京交通大学 国家电工电子教学基地,On-chip Peripherals,AM335X内部把握模块*,把握模块包含一组特地的状态和把握规律,这些规律并不包含在具体的片上外设模块或其他的器件构造中。这个模块供给了对整个芯片的以下功能进展把握的接口:,引脚功能选择,仿真把握,器件把握和状态,DDR PHY把握和 IO 把握存放器,EDMA 大事多路把握存放器,这个把握模块中的存放器只能在Cortex A8 MPU的特权模式下写入。,北京交通大学 国家电工电子教学基地,On-chip Peripherals,引脚(Pad)把握存放器*,Pad Control Registers是一组32位存放器,用来把握每个I/O引脚的信号复用和其他特性。,命名: Control_conf_,地址位于0x44e1_0800-0x44e1_0a34: 共142个存放器 ( )(把握模块存放器区域内偏移量0x800开头)。,b0,b1,b2,b3,b4,b5,b6,快速,/,慢速摆率,输入使能 / 制止,引脚上拉/下拉把握,引脚功能信号多路选择,每个存放器内容:低7位有效,北京交通大学 国家电工电子教学基地,On-chip Peripherals,引脚把握和信号复用,引脚控制,Other,OCP,Module,GPIO,Mux select,.,.,.,.,.,.,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO,4个通用的输入输出 (GPIO)模块.,每个GPIO模块供给32个通用目的引脚,可用于输入和输出。,带有去抖动单元的键盘接口。,在active模式下检测到外部大事能产生中断,GPIO0在Idle模式下,可以产生唤醒恳求,中断恳求也可以作为DMA恳求。,GPIO031:0,GPIO131:0,GPIO231:0,GPIO331:0,在,Linux,驱动程序中,GPIO,引脚编号:,GPIO53=GPIO1_21,GPIOm=GPIOp_n, m=p*32+n,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO*,Support standard mode (100K bits/s) and fast mode ( 400K bits/s).,Support multimaster /slave tranfer mode,7-bit and 10-bit device addressing modes,Built-in 32-byte FIFO, two DMA channels, one interrupt line,GPIO端口0支持唤醒大事,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO*,Support standard mode (100K bits/s) and fast mode ( 400K bits/s).,Support multimaster /slave tranfer mode,7-bit and 10-bit device addressing modes,Built-in 32-byte FIFO, two DMA channels, one interrupt line,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO用于根本I/O的存放器,GPIO,寄存器,地址偏移,功能,CTRL,130h,b2:1:,时钟分频比,; b0=0:,模块使能,b0=1:,时钟被截断模块关闭,.,OE,134h,b31:0, bn=1:,输入, bn=0:,输出,DATAIN,138h,b31:0,采样后的输入数据,DATAOUT,13ch,b31:0,保存设定输出引脚的数据,CLEARDATAOUT,190h,b31:0,清零数据输出寄存器,.,写操作,bn=1:,清除在,GPIO_DATAOUT,寄存器中对应的位,;,写操作,bn=0:,对应的位不受影响,.,SETDATAOUT,194h,b31:0,置位数据输出寄存器,.,写操作,bn=1:,置位,GPIO_DATAOUT,寄存器中对应的位,;,写,bn=0:,对应的位不受影响,.,GPIO 把握存放器组所在区域 :,GPIO-0: 0x44E0_7000, GPIO-1: 0x4804_C000,GPIO-2: 0x481A_C000, GPIO-3: 0x481A_E000,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO引脚与读写存放器是按位映射的*,b0,b1,b2,b3,b4,b5,b6,b31,DATAOUT,DATAIN,CLEARDATAOUT,SETDATAOUT,b0,b1,b2,b3,b4,b5,b6,b31,b0,b1,b2,b3,b4,b5,b6,b31,b0,b1,b2,b3,b4,b5,b6,b31,void GPIOPinWrite(unsigned int baseAdd,unsigned int pinNumber,unsigned int pinValue),if(GPIO_PIN_HIGH = pinValue),HWREG(baseAdd + GPIO_SETDATAOUT) = (1 pinNumber);,else,HWREG(baseAdd + GPIO_CLEARDATAOUT) = (1 pinNumber);,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO 编程例如,用,GPIO1_23,作为输出驱动一个,LED,#define SOC_CONTROL_REGS (0x44E10000) /*control module base */,#define SOC_GPIO_1_REGS (0x4804C000) /*GPIO-1 reg base */,#define HWREG(x) (*(volatile unsigned int *)(x),int main,/* Enabling functional clocks for GPIO1 instance. */,GPIO1ModuleClkConfig;,/* Selecting GPIO123 pin for use. (Pin Mux Utility)*/,HWREG(SOC_CONTROL_REGS + (0x85c) = 7; /* pin_mux.h */,/* Enabling the GPIO 1 module. */,HWREG(SOC_GPIO_1_REGS + 0x130) ,/* Setting the GPIO pin as an output pin. */,HWREG(SOC_GPIO_1_REGS + 0x134) ,北京交通大学 国家电工电子教学基地,On-chip Peripherals,GPIO 编程例如,用,GPIO1_23,作为输出驱动一个,LED,#define SOC_CONTROL_REGS (0x44E10000) /*把握模块基地址 */,#define SOC_GPIO_1_REGS (0x4804C000) /*GPIO-1存放器基地址 */,#define HWREG(x) (*(volatile unsigned int *)(x),int main,/* Enabling functional clocks for GPIO1 instance. */,GPIO1ModuleClkConfig;,/* Selecting GPIO123 pin for use. (Pin Mux Utility)*/,HWREG(SOC_CONTROL_REGS + (0x85c) = 7; /* pin_mux.h */,/* Enabling the GPIO 1 module. */,HWREG(SOC_GPIO_1_REGS + 0x130) ,/* Setting the GPIO pin as an output pin. */,HWREG(SOC_GPIO_1_REGS + 0x134) ,while(1),/* blinking LED */,/* Driving a logic HIGH on the GPIO pin. */,HWREG(SOC_GPIO_1_REGS + 0x194) = (1 23);,Delay(0x3FFFF);,/* Driving a logic LOW on the GPIO pin. */,HWREG(SOC_GPIO_1_REGS + 0x190) = (1 MMC0 - UART0 - USB0,北京交通大学 国家电工电子教学基地,Hardware design,启动模式选择,硬件框图设计应当指出用哪种接口来启动芯片。,AM335x,芯片具有片上,ROM,启动加载器,在上电复位时采样启动设置引脚电平。,对系统的初始化取决于选定的启动设置。,用选定的启动模式复制程序映像到芯片内部然后执行它。,启动程序映像最大为,128KB,。,北京交通大学 国家电工电子教学基地,Hardware design,启动模式选择,器件ROM代码支持以下启动模式:,NOR Flash boot,NAND Flash boot *,SPI boot,SD/MMC boot *,EMAC boot,UART boot,USB boot (作为以太网卡而不是海量存储设备),假设设置中的第一个启动源启动失败,ROM将连续选择设置启动序列中的下一个模式进展尝试。,北京交通大学 国家电工电子教学基地,Hardware design,启动模式选择,考虑:,为了开发便利,应包含常用的启动模式选项。,启动配置引脚在复位之后还有其他的功能,设计电路时要考虑到不能阻碍这些功能,上拉或下拉电阻阻值要适中选择。,例:,BeagleBone Black,的启动选择按钮。,北京交通大学 国家电工电子教学基地,Hardware design,确定引脚复用兼容性,AM335x芯片包含大量外设接口,为降低封装本钱同时维持尽可能多的功能,约半数AM335X引脚都是信号复用的,每个引脚最多可被8个信号功能共用。,尽管有很多引脚复用配置的组合可能,但由于时序参数限制,只有一局部设置称为IO设置是可用的。这些可行的IO设置经过了细心选择以便尽可能向用户供给更多的应用方案。,北京交通大学 国家电工电子教学基地,Hardware design,确定引脚复用兼容性,TI供给了一个Windows程序 Pin Mux Utility,可以帮助系统设计者选择AM335X特定外设接口的可用配置组合。,北京交通大学 国家电工电子教学基地,Hardware design,设计电源子系统*,关键的步骤,现代处理器需要多种电压供电(AM335x: 1.1V,1.8V,3.3V)以及严格的上电挨次,供电是硬件问题的主要来源,承受现成的解决方案: 电源治理芯片,估量处理器本身的功耗,考虑DDR支持,考虑其他集成功能:软件把握I2C接口,休眠把握,复位信号等,Hardware design,设计电源子系统*,AM335X处理器上电挨次,北京交通大学 国家电工电子教学基地,Hardware design,设计电源子系统*,TI的可用于 AM335x处理器电源治理的芯片,北京交通大学 国家电工电子教学基地,AM335x,介绍,主处理器,片上模块,硬件构成要点,开发资源,AM335x Processor,基于,AM335x,处理器的硬件系统,北京交通大学 国家电工电子教学基地,开发资源,可用资源,技术文档,datasheet, reference manuals, user guides,Application notes, white papers,软件和工具,Design kits and evaluation modules,software,Development tools,Reference designs,支持和社区,TI E2E,Community,:,Wikis,:,北京交通大学 国家电工电子教学基地,Development resources,设计套件和评估模块,AM3359 Industrial Communications Engine (ICE),AM3359 Industrial Development Kit (IDK),AM335x Evaluation Module,AM335x Starter Kit,BeagleBone Black,Development Board,BeagleBone Black,AM335X Starter Kit,北京交通大学 国家电工电子教学基地,Development resources,BeagleBone Black,开发板,低本钱、开源、社区支持的开发平台,供给应AM335x 处理器开发人员和爱好者。,在板上eMMC预装了 ngstrm Linux 发行版,便利评估和开发起步。,支持很多其他Linux发行版和操作系统,包括 Ubuntu, Android.,BeagleBone Black功能可以用插板 “cape”来扩展,插板连接在两个扩展插座上。已经有很多现成的插板可用,包括 VGA, LCD, 电机把握,通信扩展等多种功能扩展板。,北京交通大学 国家电工电子教学基地,Development resources,BeagleBone Black,开发板*,北京交通大学 国家电工电子教学基地,Development resources,BeagleBone Black,扩展连接器*,北京交通大学 国家电工电子教学基地,Development resources,软件支持,Android Development Kit for Sitara Microprocessors,Processor SDK Linux,TI多种ARM内核处理器的Linux平台BSP,文件系统和编译工具,Processor SDK RTOS,用于实时 / 多处理器应用 ,支持TI多种ARM内核处理器,StarterWare for ARM based TI Sitara Processors,C语言无OS平台应用,供给设备抽象层函数库,外设编程和板级例如应用程序,Windows Embedded Compact and CE Software Development Kit (SDK) for Cortex-A8-based Processors,北京交通大学 国家电工电子教学基地,Development resources,Processor SDK Linux,用于对TI ARM处理器的快速评估和参考设计平台,包含Bootloader、增加了设备驱动的内核、内容丰富的文件系统,优化的 Linaro穿插编译工具.,安装工具、设置脚本、编译脚本、例如应用,TI持续供给对Linux社区的支持和驱动更新,对于开发人员的技术支持( wiki和E2E社区)。,北京交通大学 国家电工电子教学基地,Development resources,Processor SDK Linux,SDK,软件构成,北京交通大学 国家电工电子教学基地,AM335x Processor,AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual, rev2023, TI,Sitara AM335x ARM Cortex-A8 Microprocessors (MPUs) datasheet, TI,:/beagleboard.org/,BeagleBone Black System Reference Manual,阅读参考,