330 likes | 498 Views
CAN-bus 应用教程. LPC2000 系列 ARM CAN 应用. LPC ARM 简介. ARM 处理器简介 嵌入式系统简介 嵌入式开发流程简介 相关开发工具简介. ARM 是 A dvanced R ISC M achines 的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的 RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和 OEM 厂商,并提供服务。. ARM 处理器简介. ARM 公司简介.
E N D
CAN-bus 应用教程 LPC2000系列 ARM CAN应用
LPC ARM 简介 • ARM处理器简介 • 嵌入式系统简介 • 嵌入式开发流程简介 • 相关开发工具简介
ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。 ARM 处理器简介 • ARM公司简介
. . . ARM 处理器简介 • ARM公司简介 将技术授权给其它芯片厂商 形成各具特色的ARM芯片
ARM 处理器简介 • ARM处理器的版本V1~V5 • 目前流行的ARM处理器ARM7~ARM10 SecurCore, Xscale
ARM7 T D M I - S ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致; 支持EmbededICE观察硬件; 支持64位乘法; 支持片上调试; 支持高密度16位的Thumb指令集; ARM7TDMI ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。
ARM7TDMI • 基本特性 • 三级流水线,实现高指令吞吐 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为: 取指译码执行
ARM7TDMI • 结构简单,响应迅速 精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。小的,高性价比的处理器宏单元使其同时具备低功耗,中断响应实时的特点 • 灵活的存储器访问方式 对存储器的访问可以是字节(8Bit),半字(16Bit)和字(32Bit)
适用于计算中心等较大的计算机系统 监 控 程 序 操 作 系 统 多道批处理操作系统 适用于多个用户共享系统资源 分时操作系统 适用于嵌入式设备和有实时性要求的系统中 实时操作系统 嵌入式系统简介 • 嵌入式系统的发展 时 间 先 后
嵌入式系统简介 • 实时系统的特点 操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。 实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作
后台 前台 中断服务程序 ISR 时 间 ISR ISR ISR 嵌入式系统简介 循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。这种系统在处理的及时性上比实际可以做到的要差。 中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。
ISR 任务A 任务A ISR 任务B 任务B 任务 ISR 任务C 任务C 非占先操作系统 前后台系统 占先操作系统 嵌入式系统简介
LPC2000系列微控制器 • 概述 LPC2000系列微控制器基于ARM7TDMI-S CPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设,而且具有非常低的功率消耗。使该系列微控制器特别适用于工业控制、医疗系统、访问控制和POS机等场合。
ARM7TDMI-S CPU 系统功能 ARM7 局部总线 AHB总线 SRAM VIC Flash AHB To VPB 桥 EMC 外部中断 I2C串行接口 TIMER0/1 SPI串行接口 ADC UART0 & 1 通用I/O CAN PWM0 看门狗定时器 实时时钟 系统控制 LPC2000系列微控制器包含四大部分: • LPC2000系列芯片内部框图 • ARM7TDMI-S CPU • ARM7局部总线及相关部件 • AHB高性能总线及相关部件 • VLSI外设总线及相关部件
LPC2000系列微控制器 • 系统控制模块 系统控制模块包括一些系统构件和控制寄存器,它们具有众多与芯片内其它外设无关的功能。系统控制模块包括:系统时钟单元、复位、外部中断输入、存储器映射控制、功率控制和唤醒定时器。
LPC2000系列微控制器 • 系统时钟 CPU正常工作需要有合适的时钟信号,包括ARM7内核使用的CCLK时钟,和芯片外设使用的PCLK时钟 通过LPC2000系列微控制器的时钟产生单元产生ARM7内核和芯片外设正常工作所需要的时钟节拍
ARM7核 桥 外设 FCCLK FPCLK 时钟产生 LPC2000系列微控制器 • 系统时钟概述 CPU时钟结构 FOSC
晶体 振荡器 PLL FOSC FCCLK FPCLK VPB分频器 LPC2000系列微控制器 • 时钟产生单元 时钟产生单元包括晶体振荡器、锁相环振荡器(PLL)和VPB分频器。 10~60MHz 10~25MHz
LPC2000系列微控制器 • 功率控制 支持两种节电模式:空闲模式和掉电模式。另外还具有外设的功率控制特性,允许独立关闭应用中不需要的外设,这样可以进一步降低功耗。 空闲模式-内核停止运行直到发生中断或者复位,CCLK不停 掉电模式-处理器完全停止,振荡器关闭,功耗几乎为零 外设的功率控制-控制外设的电源使能
中断源0 19个 中断输入 VIC 将32个 中断输入 进行分配 FIQ中断 中断源1 …… 向量IRQ中断 中断源18 13个未使用 非向量IRQ中断 LPC2000系列微控制器 • 中断控制器 ARM7TDMI内核具有两个中断输入,分别为IRQ中断和FIQ中断。但是芯片内部有许多中断源,最多可以有32个中断输入请求。向量中断控制器的作用就是允许哪些中断源可以产生中断、可以产生哪类中断、产生中断后执行哪段服务程序。
LPC2000系列微控制器 • 中断控制器 VICIntEnClr-中断禁能 VICIntEnable-中断使能 VICVectCntl0~15-向量中断源优先级 VICVectAddr0~15-各级中断向量地址 VICDefVectAddr-非向量中断地址 VICVectAddr-中断向量地址
LPC2000CAN控制器 • 特点 • 操作和SJA1000相似,易于上手 • 三个独立发送缓冲区,提高数据发送效率 • 更人性化的验收过滤机制,增强对离散ID的验收支持 • 更方便的高级应用软件(协议)设计,ASM、C/C++支持。
LPC2000系列CAN控制器 • 32位的SJA1000
LPC2000系列CAN控制器 • 发送缓冲寄存器 每组发送缓冲都有4个寄存器组成,一旦启动发送命令,CAN控制器就会按照CAN协议的格式把这组内容发送到总线上
LPC2000系列CAN控制器 • 发送命令 CAN命令的发送全部由命令寄存器的不同组合完成,命令寄存器为只写寄存器,每次操作只能一次写入 LPC2000CAN控制器支持的发送方式:正常发送,单次发送,自发自收,单次自发自收
LPC2000系列CAN控制器 • 接收缓冲 每个CAN控制器只有一组接收缓冲,但是CPU本身的RAM资源可以作为缓冲使用,所以,效率不会降低。
LPC2000系列CAN控制器 • 验收过滤 • 内置2K验收过滤RAM • 以硬件查表的方式完成验收过滤 • 直观的独立或者范围验收ID设置
LPC2000系列CAN控制器 • 总线定时器
基于ARM的CAN函数库 • 特点 • 可配置 • 功能全 • 移植性好,使用灵活
LPC2000开发工具 • EasyJTAG与AXD调试环境 • ADS编译环境 • 菲利普ISP下载软件