第三章 系统时钟与中断
同济大学 软件学院 嵌入式系统导论复习提纲

n 北桥芯片:主导作用,也称为主桥,负责与 CPU 的联系并控制内存、AGP、PCI 数据在北内部传输。确定 CPU 的类型、主板的系统总线频率,内存类型、容量 和性能,显卡插槽规格。
n 南桥芯片:负责外部设备的数据处理与传输,确定扩展槽的种类与数量、扩展接 口的类型和数量等。
4. ARM 处理器体系架构 ,简单了解之。(课件) 5. 了解 ARM7TDMI 处理器特点,工作模式等。
三个阶段:取指、译码、执行 三级流水 两种工作状态:ARM(32bit),Thumb(16bit)
工作模式:
除了用户模式外其他全都是特权模式。特权模式可以访问硬件、寄存器等,并可以在模式 间切换,用户模式不可以。 后五种模式是异常模式,可由程序切入,也可由特定异常切入。每个模式有独立存储器。 用户模式和系统模式公用寄存器
p UEFI 优点
n 提供了一个连接操作系统载入程序与固件之间稳定的接口; n 为独立软件开发商和制造商提供了一个清晰的预启动编程环境; n 延长了传统硬件的使用寿命; n 启动速度快 p 不足之处
UEFI 在安全问题并没有作出改善
第四章:嵌入式系统硬件设计 1. 图示嵌入式系统体系结构。简单介绍每部分。
2. 优势 p 降低耗电量 p 减少体积 p 丰富系统功能 p 提高速度 p 节省成本
3. 构成 IP 是构成的基本单元
4. IP 核以及分类 IP 核具备比较复杂的功能,且经过验证。设计资料内不仅仅包含一些物理功能和
技术特性,更重要的是包含了设计者的创造性思维,具有很强的知识内涵。这些资料被 称为具有知识产权的内核(Intellectual Property Core),简称 IP 核。
第三章 stm32 cubemx 外部中断实验以及proteus仿真

第三章stm32 cubemx 外部中断实验以及proteus仿真文章目录前言一、中断二、配置步骤1.基础配置2.配置引脚,生成工程3.开启中断,设置中断优先级三.找到主函数,加入代码,编译。
四.寻找中断回调函数五.利用中断回调函数六.Proteus仿真或者烧录可直接看到效果。
总结前言这一章,将向大家介绍如何使用STM32F103 的外部中断。
前面的两章掌握了STM32F103 的IO 口最基本的操作。
本章将介绍如何将STM32F103 的外部中断,STM32的每个IO都可以作为外部中断输入,每个外部中断可以配置单独的触发方式(上升沿,下降沿或者双边沿触发)。
本章以中断的方式,实现在上一章中所实现的效果。
一、中断所谓中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。
stm32的中断简言之就是,出现某次事件产生中断,暂停正在执行的主程序,去执行目标程序,执行完毕后返回主程序,继续执行。
中断又分为外部中断,串口中断,定时器中断等等二、配置步骤1.基础配置步骤详情参考:第一章stm32 cubemx基础配置实验以及proteus 8的使用1)sys中,选好调试方式,DEBUG中选中Serial Wire,实际上板子测试时会占用PA13和PA14两个I/O口,用作下载或者调试。
2)RCC时钟,晶振选择,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator,外部低速时钟(LSE)可有可无。
3)时钟配置,记录系统时钟频率,这里是72M用作仿真时选择芯片的晶振频率。
4)其他配置此工程不用,暂不配置。
2.配置引脚,生成工程点击想要用到的引脚,鼠标左击选择GPIO_EXTI,GPIO_OUTPUT,我用到了PA1、PA4、PA5(自选)三个引脚,PA1作为外部中断的引脚,PA4、PA5两个引脚作为两个LED灯引脚,其他配置为cubemx默认状态即可。
Mspf时钟系统与定时器以及中断

时钟信号
ACLK 辅助时钟,其时钟源可由软件控制XT1、REFOC、VLO、DCO、 DCOCLKDIV、XT2里面选取。其中DCOCLKDIV是由DCO经1、2、4、 8、16或者32分频得到。注意,ACLK同样可以再次被1、2、4、8、 16或者32分频,主要用于低速外设。
MCLK 主时钟,MCLK和ACLK 来源相同,MCLK专为CPU提供主频。 SMCLK 子系统时钟,与ACLK来源相同。主要用于高速外设。
主讲人:蒋良茂
中断响应过程
1. 当前指令执行完毕,且满足响应条件; 2. 入栈保护断点:相当于执行 PUSH PC; 3. 入栈保护SR:相当于执行 PUSH SR; 4. 优先级裁决:若有多个中断同时请求,则CPU选
择优先级最高的中断请求进行响应; 5. 中断请求标志的处理:对于单一中断标志的中断
主讲人:蒋良茂
DCORSEL
主讲人:蒋良茂
DCO Type Value
主讲人:蒋良茂
时钟系统示例程序
主讲人:蒋良茂
第二部分:定时器
实际应用中,经常需要对外部事件进行计 数、定时控制、PWM等定制波形输出、脉冲宽度测 量、速度测量、周期/频率测量、事件发生时刻的 捕捉……,这些测量与控制功能均可借助定时器/ 计数器来实现。因此MCU中通常均设计有多个定时 器/计数器。
主讲人:蒋良茂
210 NZC
关中断指令
对 SR 的影响: Status Bits: are not affected Mode Bits: GIE=0
OSCOFF and CPUOFF are not affected 因此等同于__bic_SR_register(GIE);
15
第四章 F2833x系统时钟及中断控制-TMS320F28335 DSP原理、开发及应用-符晓

看门狗计数器独立于CPU而运行 看门狗计数器溢出时,产生复位或者中断
CPU正常运行时看门狗计数器被定时复位,即“喂狗” 150MHz的时钟频率相当于6.67ns,看门狗计数器是16
位的,从0开始计数到计满溢出是65536个数,即 6.67ns*65536=4.396ms
第四章 系统时钟及中断控制
4.1 F2833x OSC与PLL (对应: SysCtrl.c)
3.3V时钟脉冲输入
外部晶振
片上振 荡器
PLL工作模式 XRS
表4-1 PLL工作模式
工作模式介绍
PLLSTS[DIVSEL]
PLL关闭
通过将PLLSTS寄存器中的PLLOFF位置1可将PLL模块关闭,从而减少
2-0
HSPCLK
ADC
2-0
LSPCLK
SCI / SPI / I2C / McBSP
4.2 外设时钟信号的寄存器
SysCtrlRegs.PCLKCR0
15
14
13
ECANB ECANA MA ENCLK ENCLK ENCLK
7
6
5
reserved reserved
SCIC ENCLK
12
MB ENCLK
0,1
系统噪声并减少功率损耗。在进入此模式前应首先将PLLCR寄存器设为
0x0000。
2
3
PLL旁路
上电复位或 复位后,PLL进入该模式。在该模式下时钟信号直接绕过
0,1
PLL模块,但PLL模块却未关闭。
2
3
PLL使能
向PLLCR寄存器中写入非零的数可使能PLL模块,一旦写入数据后,PLL
东软UCOS-II教程-03-中断与时钟

3 Sept. 2008 Confidential
3.1.4 中断级任务切换
与任务级切换函数OSCtxSW() 的原因一样,中断级任务切换函数OSIntCtxSw ()通常 是用汇编语言来编写的:
OSIntCtxSw() { OSTCBCur = OSTCBHighRdy; OSPrioCur = OSPrioHighRdy; SP = OSPrioHighRdy ->OSTCBStkPtr; 用出栈指令把 R1、 R2…… 弹入 CPU 的通用寄存器; RETI ; } // 中断返回,使 PC指向待运行任务 // 使 SP指向待运行任务堆栈 // 任务控制块的切换
学时:3.0学时 教学方法:讲授ppt+上机练 习+点评+案例分析
3 Sept. 2008 Confidential
3.1 uC/OS-II 的中断
� 中断:任务在运行过程中,应内部或外部异步事件的请求中止当前 任务,而去处理异步事件所要求的任务的过程叫做中断。 � 中断服务程序:应中断请求而运行的程序叫中断服务子程序 (ISR)。 � 中断向量:中断服务子程序的入口地址叫中断向量。 � CPU响应中断的条件: •至少有一个中断源向 CPU发出中断信号 •系统允许中断,且对此中断信号未予屏蔽
•
• OS_CRITICAL_METHOD==2 实现OS_ENTER_CRITICAL() 时,先在堆栈中保存中断的开/关状态,然后再 关中断;实现OS_EXIT_CRITICAL() 时,从堆栈中弹出原来中断的开/关状态; 方法2的示意性代码 #define OS_ENTER_CRITICAL() asm(“PUSH asm(“DI”) #define OS_EXIT_CRITICAL() asm(“POP PSW”) PSW”)
嵌入式开发实验手册

嵌入式系统原理与应用实验栗华编着山东大学信息科学与工程学院二零一四年三月目录第一章实验硬件平台1.1北京博创UP-TECH三合一实验箱简介本实验指导书所依赖的硬件平台为北京博创兴盛科技有限公司生产的一种ARM9/Xscale经典三核心教学科研平台(型号:UP-TECHS2410/S2440/P270),本平台兼容PXA270核心CPU及S3C2410、S2440核心CPU的全部功能,是北京博创多年来嵌入式教学产品开发经验的结晶。
这里选配的是S3C2440核心板。
图1-1UP-CUP三合一实验箱外观应用案例:※支持Linux、WinCE、Vxworks、μC/OS-Ⅱ4套操作系统;※核心板可更换,同时拥有ARM9(S3C2410和S3C2440)和XScale(PXA270);※中国电子学会嵌入式工程师认证考试和师资培训指定平台;硬件资源:软件资源结构说明图1-2UP-TECH三合一实验箱实物结构图1-2UP-TECH三合一实验箱框图结构图1-3UP-TECH三合一实验箱框图结构版图1.2跳线设置参考说明:◆PCB上所有“EXPORT”丝印字符表示168Pin扩展槽◆JP1401RESET-SEL:设置复位电路,位置JTAG20插座下方。
1-2:ICE的ICE-TRST复位信号可以控制系统复位信号RESET。
2-3:ICE的ICE-TRST复位信号不可以控制系统复位信号RESET。
◆JP1402JTAGSEL:选择JTAG电路,位置JTAG20插座下方。
1-2:使能板载的UP-LINKJTAG电路。
2-3:使用外部的JTAG电缆或者ARMICE仿真器。
◆JP1103TXD1-SEL◆JP1104RXD1-SEL:UART1选择扩展槽或者RS232的DB9插座。
1-2:UART1连接RS232-1,从DB9串口插座输出。
2-3:UART1连接到扩展槽。
◆JP1101TXD2-SEL◆JP1102RXD2-SEL:UART2选择跳线,分别为RS485、IrDA、扩展槽1-2:UART2连接到RS485总线上。
嵌入式系统(第二版)第一至第五章课后答案
第一章思考与练习1、举出3个书本中未提到的嵌入式系统的例子。
答:红绿灯控制,数字空调,机顶盒2、什么叫嵌入式系统嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。
嵌入式微处理器(Embedded Microprocessor Unit, EMPU)嵌入式微控制器(Microcontroller Unit, MCU)嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP)嵌入式片上系统(System On Chip)4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。
其次,提高了开发效率,缩短了开发周期。
再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。
第二章1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。
识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。
提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。
执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。
结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。
2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。
需求风险;时间风险;资金风险;项目管理风险3、何谓系统规范?制定系统规范的目的是什么?规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。
《汇编语言程序设计》第十三章中断及中断处理程序
《汇编语言程序设计》第十三章中断及中断处理程序汇编语言程序设计第十三章中断及中断处理程序中断是计算机系统中的重要概念,它可以打断正在执行的程序,并在一段时间后恢复执行。
在汇编语言程序设计中,了解中断及中断处理程序的概念和实现方法十分重要。
本文将介绍《汇编语言程序设计》第十三章中断及中断处理程序的内容。
一、中断的概念及分类中断是计算机系统的一种基本机制,它可以让计算机在执行程序的过程中,暂时停下来去处理一些紧急事件。
根据中断的来源和性质,中断可以分为硬件中断和软件中断两种类型。
硬件中断是由硬件设备发出的信号,用于向处理器发出请求,以引起处理器对该事件进行处理。
典型的硬件中断包括时钟中断、外部设备中断等。
软件中断是由程序中的中断指令引起的中断。
软件中断可以通过INT指令来触发,程序员可以根据需要自行设置中断号。
二、中断向量表中断向量表是用于存储中断处理程序入口地址的一张表。
当某个中断发生时,处理器会根据中断号在中断向量表中查找对应的中断处理程序入口地址,并跳转到该地址去执行中断处理程序。
中断向量表一般位于内存的固定地址,不同中断号对应不同的中断处理程序入口地址。
由于中断向量表的地址是固定的,因此在编程时需要特别注意保护中断向量表。
三、中断的处理流程中断处理程序是用于响应中断事件并进行处理的程序。
中断的处理流程一般包括以下几个步骤:1. 保存中断现场:在处理中断之前,需要先保存当前程序的上下文,包括程序计数器、寄存器等内容。
这样在中断处理程序执行完毕后,可以恢复现场继续执行被中断的程序。
2. 中断服务例程:中断处理程序中的核心部分是中断服务例程,它实现了对中断事件的具体处理。
根据中断的类型和需求,中断服务例程可能包括对硬件设备的操作、数据处理等内容。
3. 恢复中断现场:在中断处理程序执行完毕后,需要恢复之前保存的中断现场。
这包括恢复程序计数器、寄存器等内容,以确保被中断的程序可以继续正常执行。
四、常见的中断类型及应用在汇编语言程序设计中,有一些常见的中断类型和应用。
第三章时钟电路与复位电路ppt课件
2.5 I/O端口电路与电气特性
❖ P0、P1、P2、P3
既有字节地址,也有位地址,对相应的地址单元 进行写操作,就完成了相应端口的输入/输出操作
❖ 1个全双工的串行I/O口,用于扩展I/O口或用作串
行异步通信(第五章专门介绍)
2.5.1 I/O接口内部电路结构 P0端口
➢双向I/O端口 ➢数据/地址复用总线
89C51
振荡电路
89C51(CHMOS工艺)的 外部输入为X1,X2悬空
HMOS工艺的芯片
2.基本时序单位
❖ 振荡周期:1/fOSC 最小的时序单位
❖ 状态(S)周期:2/fOSC 包含两个节拍(P1、P2),一个节拍为1个振荡周期。
❖ 机器周期MC: 12/fOSC 6个状态,S1-S6,12个节拍(S1P1、S1P2、S2P1、 S2P2…),12个振荡周期
CMOS与TTL电平关系表
P3.0 RXD 串行接收 P3.1 TXD 串行发送
P3.4 T0 计数0输入 P3.5 T1 计数1输入
P3.2 /INT0 外中断0输入 P3.6 /WR 写信号引脚
P3.3 /INT1 外中断1输入 P3.7 /RD 读信号引脚
2.5.2 I/O端口负载能力
P0口每一位输出可驱动8个LSTTL负载,当作地 址/数据输出时是标准的三态双向口。当作为通用I/O 接口使用时是开漏输出,只有灌负载能力没有拉负载 能力。要想得到拉负载能力需外接一个上拉电阻才行。
低功耗工作方式
低功耗工作方式
➢进入待机:使IDL=1即可。
➢进入掉电:使PD=1即可,进入后,可将VCC降至 2V(保持RAM、SFR),但在退出掉电时,先使电 压升至正常电压。
1系统中断与时钟节拍
1 系统中断与时钟节拍1.1 系统中断中断是种硬件机制用于通知CPU有个异步事件发生了中断旦被系统识别CPU则保存部分(或全部)现场(context)即部分(或全部)寄存器值跳转到专门子称为中断服务子(ISR)中断服务子做事件处理处理完成后执行任务调度回到就绪态优先级最高任务开始运行(对于可剥夺型内核)中断使得CPU可以在事件发生时才予以处理而不必让微处理器连续不断地查询(polling)是否有事件发生通过两条特殊指令:关中断(disable errupt)和开中断(enable errupt)可以让微处理器不响应或响应中断在实时环境中关中断时间应尽量短关中断影响中断响应时间关中断时间太长可能会引起中断丢失中断服务处理时间应该尽可能短中断服务所做事情应该尽可能少应把大部分工作留给任务去做1.2 系统时钟节拍时钟节拍是特定周期性中断(时钟中断)这个中断可以看作是系统心脏脉动操作系统通过时钟中断来确定时间间隔实现时间延时及确定任务超时中断之间时间间隔取决于不同应用般在10~200 ms之间时钟节拍式中断使得内核可以将任务延时若干个整数时钟节拍以及当任务等待事件发生时提供等待超时依据时钟节拍频率越快系统额外开销就越大系统定义了32位无符号整数OSTime来记录系统启动后时钟滴答数目用户必须在多任务系统启动以后再开启时钟节拍器也就是在OSStart之后μC/OSII中时钟节拍服务是通过在中断服务子中OSTimeTick实现时钟节拍中断服务子示意代码如下:void OSTickISR(void) {保存处理器寄存器值;OSIntEnter 或是将OSIntNesting加1;OSTimeTick ;OSIntExit ;恢复处理器寄存器值;执行中断返回指令;}2 时钟管理系统2.1 μC/OSII时钟管理系统μC/OSII原有时钟管理系统类似于Linux但是比Linux简单得多它仅向用户提供个周期性信号OSTime时钟频率可以设置在10~100 Hz时钟硬件周期性地向CPU发出时钟中断系统周期性响应时钟中断每次时钟中断到来时中断处理更新个全局变量OSTimeμC/OSII时钟中断服务核心是OSTimeTick OSTimeTick 用来判断延时任务是否延时结束从而将其置于就绪态其伪代码如下:void OSTimeTick(void) {OSTimeTickHook;// 用户定义时钟节拍外连while { (除空闲任务外所有任务)OS_ENTER_CRITICAL;//关中断对所有任务延时时间递减;扫描时间到期任务并且唤醒该任务;OS_EXIT_CRITICAL;//开中断指针指向下个任务;}OSTime;//累计从开机以来时间}在μC/OSII时钟节拍中需要执行用户定义时钟节拍外连OSTimeTickHook 以及对任务链表进行扫描并且递减任务延时这样就造成了时钟节拍OSTimeTick 有两点不足:①在时钟中断中处理额外任务OSTimeIickHook 这样增加了中断处理负担影响了定时服务准确性;②在关中断情况下扫描任务链表任务越多所需要时间越长而长时间关中断对中断响应有不利影响是中断处理应当避免2.2 改进时钟管理系统针对上述OSTimeTick 不足之处需加以改进来优化时钟节拍在Linux中般对中断响应分为两部分:立即中断服务和底半中断处理(bottom half)立即中断服务仅仅做重要并且能快速完成工作而把不太重要需要较长时间完成工作放在底半处理部分来完成这样就可以提高中断响应速度μC/OSII不支持底半处理为了减轻时钟中断处理工作量来提高μC/OSII时钟精确度可以将部分在每次时钟中断需处理工作内容放在任务级来完成这样就可以减少每次时钟中断处理CPU消耗从而提高中断响应速度和μC/OSII时钟精确度为此定义任务OSTimeTask 由它来处理原来在OSTimeTick中需要处理操作μC/OSII采用基于优先级抢占式调度策略而每次时钟中断处理结束后需要首先调度该任务执行因此让任务OSTimeTask具有系统内最高优先级由它执行用户定义时钟节拍外连OSTimeTickHook 以及对所有任务延时时间进行递减并把到期任务链入到链表OSTCBRList中OSTCBRList管理所有到期任务OSTimeTask伪代码如下:void OSTimeTask {OSTimeTickHook//用户定义时间处理while { (除空闲任务外所有任务)对所有任务延时时间进行递减;把所有要到期任务链入到OSTCBRList链表中;} 任务状态改为睡眠OSSched 进行任务调度;}在任务OSTimeTask中执行原来在时钟中断处理用户OSTimeIickHook 并实现将延时到期任务链入到OSTCBRList链表中这样在时钟中断中就只需要扫描任务到期链表而不需要扫描整个链表减少了关中断时间,OSTCBRList为新建链表它管理所有到期任务,同时需要减少OSTimeTick 执行工作量只对OSTCBRList链表扫描这样也减少了关中断时间OSTimeTick 伪代码如下:void OSTimeTick(void) {OSTime;OS_TCB* ptcb=OSTCBList;// OSTCBRList指向所有到期任务链表while(ptchb!=null){关中断;唤醒任务;开中断;指针指向下个任务;}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高速和低速外设时钟控制。 CPU主频
看门狗单元
看门狗单元,又称为看门狗定时器 WatchDog Timer(WDT),其本质是一 个定时器电路;
若使能看门狗单元,则在系统运行时,看 门狗定时器自动计数;如果不能定时清除 看门狗计数器(俗称“喂狗”,或“踢 狗”Kick Dog),那么看门狗定时器就会 溢出从而引起看门狗中断,强行系统复位。
当TRB位被软件置1时,也会重装。可以通过寄存 器检查PSCH:PSC的值,但不能直接设置。
CPU定时器的寄存器
CPU定时器预分频计数器(TIMERxTPR)
PSCH:PSC的值只能通过TDDRH:TDDR获得。 复位时,计数器清零。
TDDRH:TDDR是定时器分频器,每过 ( TDDRH:TDDR +1)个时钟周期,定时 器计数器寄存器减1。复位时被清除。
高速外设EVA/B 12位ADC
功耗模式 控制
16路ADC输入
‘28x
DSP 芯片 内部 的时 钟和 复位 电路
外设复位
C28X 中央处理器
看门狗模块:
用于监控程序的
运行状态,是提 系统控制
时钟使能
寄存器
高系统可外设靠性的
重要环节寄存器
外设 寄存器
低速外设 SCIA/B, SPI, McBSP
外设总线
用于看门狗计数器寄存器清零,以便在系统正常状态下 防止看门狗计数器溢出产生系统复位中断 。 对8位WDKEY写入0x55之后紧跟着再写入0xAA,将清 除WDCNTR位。写入任何其他值则会立即产生看门狗 复位。
看门狗控制寄存器(WDCR)
WDCR用于控制看门狗模块的状态和使能情况,并可以 设置看门狗计数器的时钟频率。 WDFLAG:看门狗复位状态标志位。1表示看门狗复位 引起了系统复位;0表示是上电或者外部器件引起系统 复位; WDDIS:看门狗禁止位 ,1禁止看门狗模块 ; WDCHK:看门狗逻辑校验位 ,必须向WDCHK位写 入101 ,否则会引起系统复位; WDPS :看门狗预分频设置位 ,配置看门狗计数器时 钟WDCLK频率与OSCCLK/512的倍率。
定时器结构框图
CPU定时器的寄存器
CPU定时器计数器寄存器(TIMERxTIM) CPU定时器的计数器寄存器是一个32位的
寄存器,其中高16位是TIMH,低16位是 TIM。 每 个 ( TDDRH : TDDR+1 ) 时 钟 周 期 减 1 , 当减到0时,产生中断信号,由周期寄存 器重新装载。 TDDRH:TDDR是定时器预分频的值。
外设时钟控制寄存器
低功16耗位模;式控制寄存器0 低功EA耗ll模O式W控保制护寄;存器1
PLLCR 0x0000 7021 PLL控制寄存器
SCSR
0x0000 7022 系统控制和状态寄存器
WDCNTR 0x0000 7023 看门狗计数寄存器
WDKEY 0x0000 7025 看门狗复位密钥寄存器
TMS320F2812的看门狗模块结构
看门狗计数器寄存器(WDCNTR)
利用低8位的计数器进行计数,在看门狗时钟WDCLK 驱动下连续增加。计数器溢出时看门狗初始化复位。 用一个有效的组合写WDKEY寄存器,那么计数清零。 看门狗时钟WDCLK由WDCR寄存器设置。
看门狗复位密钥寄存器(WDKEY)
PIE中断扩展
‘28x系列DSP处理器具有众多外设,每个外 设能够生成一个或多个中断; CPU 级别无法处理所有外设中断请求; 需要一个集中式外设中断扩展(PIE) 控制器来 扩展和仲裁各种中断源(如外设和其它外部 引脚)的中断请求; PIE向量表存放各个中断服务子程序的地址, 每个中断都有自己的中断向量; 外设中断和外部中断被分成12组连接至PIE模 块,每组有8个中断复用1个CPU中断。
片上晶振电路模块允许采用两种方式:内部振荡器或 外部时钟源为CPU内核提供时钟;
பைடு நூலகம்
使用片上晶振模块的内部振荡器时,应当在X1/XCLKIN 和X2两个引脚之间连上一个石英晶振,片上晶振模块输 出与石英晶振频率相同的时钟信号,典型的晶振频率是 30MHz。
采用外部时钟。外部时钟应该是一定频率的方波信号,利 用外部时钟应把时钟信号直接接到X1/XCLKIN引脚,X2 引脚则必须悬空,这时内部振荡器不工作,片上晶振模块 输出该外部时钟信号。
第三章 系统时钟与中断
3.1 ‘28x的时钟和系统控制
3.2
CPU定时器
3.3 ‘28x系列DSP中断
3.1
‘28x的时钟和系统控制
‘28x
C28X 中央处理器
DSP
芯片
内部
的时
外设总线
钟和
复位
电路
外设复位
看门狗
系统控制 寄存器 外设 寄存器
外设 寄存器
外设 寄存器
ADC 寄存器
时钟使能
低速外设 SCIA/B, SPI, McBSP
高速外设EVA/B
ADC 寄存器
12位ADC
16路ADC输入
寄存器设置,实现对芯片或者外设的时钟频率按需设定
时钟、锁相环、看门狗
以及低功耗模式寄存器
名称
地址
描述
HISPCP 0x0000 701A 高速外设时钟预分频寄存器
LOSPCP 0x0000 701B 低速外设时钟预分频寄存器
PCLKCR 0x0000 701C LPMCR0 0x0000 701E LPMCR1 0x0000 701F
PSCH:PSC减到0时,在1个时钟周期后, 装载PSCH:PSC中,并且计数器寄存器减 1。
定时器控制寄存器TIMERxTCR
TIF :定时器中断标志。当定时器计数器减到0时,该标志置1 TIE :定时器中断使能,为1时,定时器减到0发出中断请求。 FREE SOFT CPU定时器仿真模式(高级语言,断点状态)
低速外设时钟设置寄存器LOSPCP
控制低速外设的时钟 ; LSPCLK配置低速外设时钟相对于系统时钟 SYSCLKOUT的分频系数; 如果LSPCLK等于零,则低速外设时钟等同 于SYSCLKOUT; 如果LSPCLK不等于零,则低速外设时钟为 SYSCLKOUT/( LSPCLK×2);默认为010。
喂狗周期? TMS320F2812的看门狗模块结构
3.2
CPU定时器
TMS320F2812内部有3个CPU定时器; 均为32位的递减计数器; 定时器以系统时钟SYSCLKOUT作为定时 时钟; 定时器寄存器与存储器总线相连; CPU-Timer 0可以在用户程序中使用; CPU-Timer1和CPU-Timer2留给实时操作 系统使用 。
外设 寄存器
高速外设EVA/B
ADC 寄存器
12位ADC
看门狗 功耗模式
控制
16路ADC输入
‘28x
DSP 芯片 内部 的时 钟和 复位 电路
外设复位
C28X 中央处理器
PLL锁相环和
OSC振荡器提 时钟使能
供可编程的时 系统控制 寄存器
钟
外设 寄存器
外设总线
外设 寄存器
低速外设 SCIA/B, SPI, McBSP
看门狗单元可以防止系统程序发生死循环 (俗称“程序跑飞”),监测软件和硬件 的运行状态,从而提高系统的可靠性。
看门狗单元
’28X DSP芯片有独立的看门狗模块,看门 狗计数器WDCNTR为8位,计数器超过最 大值28-1=255 时,看门狗模块输出一个 DSP系统复位脉冲 。 喂狗操作:在看门狗计数器达到最大值之 前向看门狗复位密钥寄存器WDKEY先后 写入0x55和0xAA,则看门狗计数器清零, 并自动开始下一轮的递增计数; 写入其他任何数据都会引起DSP系统复位。
0 0 在TIMH:TIM下一个计数后(硬停止); 0 1 在TIMH:TIM减到0后停止(软停止); 1 x 自由运行。 TRB :CPU定时器重装位。当向TRB写1时,PRDH:PRD的 值装入TIMH:TIM,分频寄存器(TDDRH:TDDR)中 的值装入预分频计数器(PSCH:PSC) TSS :停止状态位 ,为1时,停止定时器;为0则启动定时器。
中断机制的存在使得单片机 或DSP等嵌入式处理器能够 及时、迅速地对紧急情况进 行处理。
3.3 ‘28x系列DSP中断
4个步骤:
一、接收中断请求。由软件中 断或者硬件中断提出请求去暂 停当前主程序。
二、响应中断。如果是可屏蔽 中断(可以通过软件禁止或使 能),cpu满足一定条件响应。 对于不可屏蔽硬件中断和软件 中断,cpu立即响应。
CPU定时器的寄存器
CPU定时器周期寄存器(TIMERxPRD) 存放计数周期值CPU定时器的周期寄存器
(PRDH:PRD)的高16位是PRDH,低16 位是PRD。当计数器寄存器减到0时,下一 个定时器输入时钟周期开始,DSP将周期 寄存器内所包含的值写入计数器寄存器中。
当用户在定时器控制寄存器(TCR)中对重 装位(TRB)置位时,周期寄存器内容重 装入计数器寄存器。
CPU定时器的寄存器
CPU定时器预分频计数器(TIMERxTPR)
该寄存器为32位,低16位为PSC:TDDR,高16位 为PSCH:TDDRH。
PSCH:PSC是定时器预分频计数器。只要值大于 0,则在每个定时器输入时钟周期sysclkout, PSCH:PSC减1,当减到0时,产生1位借位信号。 此时计数器减1,并控制分频计数器重装。
定时器工作示意图
CPU定时器的中断周期值
Ttimer = SYSCLKOUT * ( TDDRH:TDDR+1 ) * ( PRDH:PRD+1 )
3.3 ‘28x系列DSP中断
中断(Interrupt)是硬件和 软件驱动的事件。
中断信号使得CPU暂停目前 执行的主程序,转而去执行 一个中断服务子程序。