s3c2440看门狗定时器的应用
linux在TQ2440上移植8--启动看门狗+
TQ2440开发大全下载.txt QQ:917603226,danpianjikaifa@ 个人提供单片机嵌入式系统学习指导,PLC 学习视频,电子元件选型指导,PLC 学习指导 以及PLC 和DCS 周边产品开发 TQ2440开发大全下载 linux-2.6.35.3在TQ2440上移植1--建立自己的板子.pdf /source/3227941
uboot讲义.pdf /source/3227054
uboot阶段1(汇编部分)详细分析.pdf /source/3227057
uboot使用说明.pdf /source/3227058
Watchdog Time Support --->
3、应用程序如下 app_wdt.c #include <unistd.h> #include <sys/types.h> #include <sys/stat.h>
#include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <linux/watchdog.h>
linux在TQ2440上移植2--Nandflash驱动,MTD分区.pdf /source/3227943
linux在TQ2440上移植3--yaffs2+文件系统移植.pdf /source/3227944 linux在TQ2440上移植4--yaffs2文件系统制作.pdf /source/3227947 linux在TQ2440上移植5--移植串口传输协议.pdf /source/3227948 linux在TQ2440上移植6--完善串口驱动.pdf /source/3227950 linux在TQ2440上移植7--完善实时时钟RTC.pdf /source/3227951 linux在TQ2440上移植8--启动看门狗+.pdf /source/3227965 linux在TQ2440上移植9--添加触摸屏.pdf /source/3227952 linux在TQ2440上移植10--完善网卡驱动.pdf /source/3227955 linux在TQ2440上移植11--完善声卡驱动.pdf /source/3227956 linux在TQ2440上移植12--完善SDMMC卡驱动.pdf /source/3227958
s3c2440芯片中文手册2
第二章处理器工作模式2.1概述S3C2440采用了非常先进的ARM920T内核,它是由ARM(Advanced RISC Machines) 公司研制的。
2.2 处理工作状态从程序员的角度上看,ARM920T可以工作在下面两种工作状态下的一种:● ARM 状态:执行32位字对齐的ARM指令● THUMB 状态:执行16位半字对齐的THUMB指令。
在这种状态下,PC 寄存器的第一位来选择一个字中的哪个半字注意;这两种状态的转换不影响处理模式和寄存器的内容。
2.3 切换状态进入THUMB 状态进入THUMB 状态,可以通过执行BX指令,同时将操作数寄存器的状态位(0位)置1来实现。
当从异常(IRQ,FIQ,UNDEF,ABORT,SWI等)返回时,只要进入异常处理前处理器处于THUMB状态,也会自动进入THUMB状态。
进入ARM状态进入ARM状态,可以通过执行BX指令,并且操作数寄存器的状态位(0位)清零来实现。
当处理进入异常(IRQ,FIQ,RESET,UNDEF,ABORT,SWI等)。
这时,PC值保持在异常模式下的link寄存器中,并从异常向量地址处开始执行处理程序。
存储空间的格式ARM920T将存储器空间视为从0开始由字节组成的线性集合,字节0到3中保存了第一个字节,字节4到7中保存第二个字,以此类推,ARM920T对存储的字,可以按照小端或大端的方式对待。
大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放2.4 指令长度指令可以是32位长度(在ARM状态下) 或16位长度(在THUMB状态) 。
数据类型ARM920T支持字节(8位),半字(16位) 和字(32位) 数据类型。
字必须按照4字节对齐,半字必须是2字节对齐。
2.5 操作模式ARM920T支持7种操作模式:● 用户模式(user模式),运行应用的普通模式● 快速中断模式(fiq模式),用于支持数据传输或通道处理● 中断模式(irq模式),用于普通中断处理● 超级用户模式(svc模式),操作系统的保护模式● 异常中断模式(abt模式),输入数据后登入或预取异常中断指令● 系统模式(sys模式),使操作系统使用的一个有特权的用户模式● 未定义模式(und模式),执行了未定义指令时进入该模式]外部中断,异常操作或软件控制都可以改变中断模式。
S3C2440处理器资料
1
S3C2440处理器介绍
1.1三星ARM处理器介绍 1.2 S3C2440功能特点 1.3 S3C2440系统管理/体系结构 1.4 S3C2440存储器 1.5 S3C2440时钟和电源管理
2
1.1三星ARM处理器介绍
S3C44B0:ARM7TDMI、66MHz、集成LCD控制器 (支持STN,但不支持TFT)、无网络接口;适用产品: POS、PDA、E-BOOK、GPS、智能电话、电子书包、 机顶盒,手持游戏机等等。160LQFP,160FBGA。支 持LINUX、PSOS、uC/OSII等。 S3C2410:ARM920T、200MHz、支持TFT、USB HOST、USB DEVICE、 SD Card 以及MMC接口、 触摸屏接口, NAND FLASH直接引导。无网络接口。 适用产品: POS、PDA、E-BOOK、GPS、智能电话、 电子书包、机顶盒,手持游戏机、电子相册、多媒体产 品、视频监控、智能控制仪表等等。272BGA。支持 WINCE、LINUX、VxWorks等。
用于控制各模块是否有频率输入,一般保持默认即可
32
3、时钟控制寄存器(CLKCON续1)
33
3、时钟控制寄存器(CLKCON续2)
Bit3: 1:进入睡眠模式 Bit2:1 进入特别模式(保留模式,没有使用)
34
4、慢时钟控制寄存器(CLKSLOW)
慢时钟模式,用于设置与慢时钟模式相关的配置信息
大纲
s3c2440 时钟频率管理 S3c2440 电源管理模块 相关寄存器使用说明
15
时钟 频率 管理
16
晶振电路和外部时钟
17
时钟源选择
keil下的s3c2440启动代码分析
由于片面问题,所以可能会看起来不太美观,可以看附件中的内容。
ARM启动代码相当于我们电脑的BIOS,也就是ARM启动时对处理器的一些初始化及嵌入式系统硬件的一些初始化。
由于它直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。
一般包括:中断向量表,初始化存储器系统,初始化堆栈,初始化有特殊要求的断口,设备初始化,变量初始化等。
这几天对着RealView MDK-ARM中自带的启动代码研究了一下,遇到问题又对着数据手册和指令表看了一下,总算对S3C2440A的硬件有了一个大致的了解。
学习嵌入式系统重在系统,学习ARM只是为学习嵌入式系统铺路,懒猫比较笨可能在上系统之前要裸奔几天以强化以下对S3C2440A内部结构的了解。
把MDK自带的S3C2440A.S文件的注释发一下,这些是懒猫结合数据手册与ARM指令表理解了,可能会有错误,放在这里只是引导一下像我一样还没有入门的兄弟们,希望你们不要害怕ARM害怕嵌入式,老毛他老人家说的对,世上无难事,只怕有心人,ARM指令就那么多,看一遍不会就多看几遍,还有一定要学习看软件自带的帮助文件.;/*****************************************************************************/;/* S3C2440.S: Startup file for Samsung S3C440 */;/*****************************************************************************/;/* <<< Use Configuration Wizard in Context Menu >>> */ ;/*****************************************************************************/;/* This file is part of the uVision/ARM development tools. */ ;/* Copyright (c) 2005-2008 Keil Software. All rights reserved. */ ;/* This software may only be used under the terms of a valid, current, */;/* end user licence from KEIL for a compatible version of KEIL softwar e */;/* development tools. Nothing else gives you the right to use this softwa re. */;/*****************************************************************************/;下面这些参数是与CPSR状态寄存器有关;参数的由来:这里各个模式的参数是由寄存器CPSR的模式位设置M[4:0]得来的,;比如这里的用户模式,CPSR的M[4:0]设置为10000就是0x10。
嵌入式习题
1.以下哪项不属于精简指令集(RISC)架构:A.ARMB.X86C.MIPSD.PPC2.以下关于SOC的描述,正确的是?A.S3C2410是基于ARM7的SOCB.微处理器内核与外设整合在一个芯片C.ARM系列全部是SOCD.Intel PCA架构不属于SOC3.以下关于嵌入式操作系统的描述,不正确的是A.VxWorks属于不可剥夺型内核的操作系统B.IOS与Android均属于UNIX-Like系统C.操作系统是屏蔽硬件的中间件D.uC/OS-II任务调度为抢占式4.以下关于编译的描述,不正确的是?A.预处理是指处理C文件的Include以及define指令等B..elf经反汇编后转换为.c文件C.ld指令的操作对象是.o文件,操作结果为.elf文件D..c文件经汇编后形成.o文件5.以下关于RAM,ROM,Flash的描述,正确的是?A.全部为非易失性存储器B.RAM存取速度最快C.全部为并行随机存储器D.Flash不可以片内执行程序6.以下关于Nor Flash与Nand Flash的描述,错误的是?A.容量相同的情况下,Nand Flash体积更大,价格更高B.Nor Flash地址总线与数据总线分开,Nand Flash地址与数据串行传输。
C.Nor Flash不但可以存储数据,还可以执行程序D.一般情况下,Boot Loader存放在Nor Flash,而OS存放于Nand Flash.7.以下S3C2410与ROM的接线方案([A]为ROM地址线,[ADDR]为CPU地址线),正确的是?A.一片8BIT ROM,[A0]-[ADDR0],依次类推B.两片8BIT ROM,[A0]-[ADDR0],依次类推C.两片16BIT ROM,[A0]-[ADDR0],依次类推D.一片32BIT ROM,[A0]-[ADDR1],依次类推8.以下存储器K9F1208U0M的存储结构,描述错误的是:A.四个Plane,每个Plane 1024个块B.Plane中的块连续存放C.每页分3次读取D.每个块32页,每页526字节9.以下哪项是运行于WINDOWS系统下的ARM开源编译工具链?A.Arm-linux-gccB.IARC.Arm-none-eabi-gccD.ARM ADS10.以下关于驻留仿真调试的描述,错误的是?A.Boot Loader作为Server, 运行与目标机器B.Boot Loader可通过串口线接受调试指令C.Boot Loader可通过TCP/IP协议接受目标程序,并将其放到目标内存执行D.程序每次更新都要重新进行烧录11.以下哪种仿真调试方案不宜用于实时性要求高的应用?A.IAR + JLINKB.ECLIPSE+GUN GCC+GDB CLIENT+OPENOCD+OPENGTAGC.Eclipse+GNU GCC+GDB+JlinkD.ECLIPSE+GNU GCC+BOOTLOADER+LINUX KENEL(NFS)12.以下哪项指令实现连接GDB SERVER的作用A.Monitor goB.Target remote localhost:2331C.Monitor haltD.Continue13.以下S3C2440的定时器描述错误的是?A.所有定时器均具备PWM功能B.两级预分频可取的更宽的定时范围C.基本时钟输入单位是PCLKD.核心是比较器和计数器14.以下关于I2C的描述,错误的是?A.只有两条线,SDA为数据线,SCL为时钟线B.SDA在SCL高电平状态下,下降沿开始传输,上升沿结束传输C.接收方SDA第九个周期拉低表示ACKD.SCL高电平期间读取数据,低电平期间发送数据15.以下关于字节顺序的描述,不正确的是A.小端模式是指LSB在前,大端模式反之B.大端模式是指LSB在前,小端模式反之C.X86为小端模式,PPC为大端模式D.ARM可设置为大端或小端模式16.关于RISC的描述,以下哪个是正确的?A.Intel X86属于RISCB.ARM不属于RISCC.RISC代表复杂指令集D.20%的指令承担80%的工作17.以下关于BSP的描述正确的是?A.BSP依赖于具体的硬件B.U-BOOT不属于BSPC.相同的ARM硬件电路设计,搭载linux和uCosII的BSP相同D.同样搭载Linux系统,基于ARM9与ARM11硬件电路的BSP相同18.以下关于ARM920T的描述,不正确的是?A.支持JA V A加速B.支持Thumb指令集C.支持MMC,CacheD.体系架构为ARM4T19.以下关于GPIO的描述,错误的是?A.共有117个多功能I/O端口B.包含GPxCON,GPxDAT,GPxUP共3个寄存器C.GPxCON配置端口复用功能D.GPA没有上拉电阻配置功能20.SDRAM,Nor Flash以及Nand Flash的存取速度由慢到快的速度排序是A.SDRAM,Nor Flash, Nand FlashB.SDRAM,Nand Flash,Nor FlashC.Nand Flash, Nor Flash, SDRAMD.Nor Flash, Nand Flash,SDRAM21.以下关于S3C2410的存储控制器,以下描述错误的是?A.设计中,可将SDRAM连接到BANK0B.共27位地址总线,容量为1G,分8个BANKC.通过steptone 技术,可实现Nand Flash启动D.可通过OM1,OM0选择16位或32位数据宽度22.以下关于存储器K9F1208U0M的地址结构的描述,错误的是A.A9 ~ A13为块内页地址B.A14 ~ A25为Plane内块地址C.A14 ~ A15为Plane地址D.A0 ~ A8为Plane列地址23.以下关于ARM920T在ARM状态下的寄存器的描述,正确的是A.R14 = R15 + 4B.R1~ R15在所有模式下定义均相同C.CPSR 为当前状态寄存器,头五位用于决定处理器工作模式D.R13为程序计数器,R14为堆栈指针寄存器24.以下关于JTAG仿真的说法,正确的是?A.JTAG仿真需要网线或串口线的支持才能进行B.JLink 是实现串口(通常为USB)转换JTAG协议的工具。
第十二章ARM看门狗Watchdog电路
如看门狗初始化程序:
//------------------------------------------------------------------------ // 看门狗初始化
表12-3 看门狗定时器数据寄存器
寄存器名称 WTDAT
地址 0x53000004
读/写状态 R/W
描述 看门狗定时器数据寄存器
复位值 0x8000
表12-4 看门狗定时器数据寄存器WTDAT各位的定义
WTDAT 当前重载值
位
描述
初始状态
[15:0]
看门狗定时器的重载计数器
0x800
表12-5 看门狗定时器/计数器寄存器
factor)
其中, PCLK为系统时钟频率;Prescaler value为预分频值 (值0~255 );Division_ factor为四分频值,可以是16、 32、64或128。
看门狗的定时周期:
T = WTCNT×t_Watchdog
其中WTCNT是看门狗定时器的计数器,它的值表示
该定时器的当前计数值。
寄存器名称 地址 WTCNT 0x53000008
读/写状态
描述
复位值
R/W 看门狗定时器/计数器寄存器 0x8000
表12-6 看门狗定时器/计数器寄存器WTCNT各位的定义
WTCNT 计数器
位
描述
初始状态
[15:0]
看门狗定时器的当前计数器
0x800
12.2 看门狗电路的编程
看门狗电路编程较简单,首先看门狗电路初始化,即
S3C2440_LCD控制器中文手册
的GREENVAL[31:0]和BLUELUT寄存器中的BLUEVAL[31:0]作为可编程的查找表入口。与灰度等级 显示类似,在寄存器REDLUR中的8组或者4位域,换言之,REDVAL[31:28],REDLUT[27:24], REDLUT[23:20],,REDLUT[19:16], REDLUT[15:12], REDLUT[11:8],REDLUT[7:4]和REDLUT[3:0] 被分配给每个红色等级。4位(每个域)的可能组合有16种,并且每个红色等级应该被分配16种等级种 的1种。换句话说,用户可以通过该类型的查找表选择合适的红色等级。对于绿色,寄存器GREENLUT 中的GREENVAL[31:0]在查找表中的分配形式与红色是一样的。类似地,寄存器BLUELUT中的 BLUEVAL[31:0]在查找表中也是这样分配的。对于蓝色,2位组成4种颜色等级,与8种红色,绿色等 级是不一样的。 4096 色模式操作
S3C2440启动代码经验总结
1、引言2、汇编基础2.1、伪操作GET 伪操作类似于C 语言里面的include,是将一个源文件包含到当前源文件中,并将被包含的文件在其当前位置进行汇编处理。
IMPORT伪操作相当于C 语言中的extern 声明,它告诉编译器当前的符号不再本源文件中定义,而是在其他源文件中定义,在本源文件中可能引用该符号。
AERA 伪操作用于定义一个代码或者数据段。
ASSERT在汇编编译器对汇编程序的扫描中,如果ASSERT 中条件不成立,ASSERT 伪操作将报告错误信息。
2.2、汇编指令LDR伪指令将一个32 位的常数或者一个地址值读取到寄存器中。
BL跳转指令,L 决定是否保存返回地址。
MRS用于将状态寄存器的内容传送到通用寄存器中。
MSR用于将通用寄存器的内容或一个立即数传送到状态寄存器中。
LDM和STM分别为批量Load/Store内存访问指令。
FD为满递减数据栈。
3、启动代码功能模块分解启动代码主要是在主程序运行之前初始化系统硬件及软件的运行环境,它的主要功能包括以下的几个方面:* 建立中断向量表* 初始化系统堆栈* 应用程序执行环境初始化* 跳转至主函数3.1、系统堆栈初始化ARM有7种模式:* 用户模式* 快速中断模式* 中断模式* 管理模式* 中止模式* 未定义模式* 系统模式系统堆栈的初始化主要是给各个处理器模式分配堆栈空间。
堆栈是为中断或程序跳转服务的,当发生中断或程序跳转时,需要将当前处理器的状态及一些参数保持在堆栈中,当中断处理完毕以后或程序执行完后返回时,再将堆栈保存的现场数据进行恢复,以保证原来的程序正确运行。
USERMODE EQU 0x10 ;用户模式FIQMODE EQU 0x11 ;快速中断模式IRQMODE EQU 0x12 ;中断模式SVCMODE EQU 0x13 ;监管模式ABORTMODE EQU 0x17 ;异常中断模式UNDEFMODE EQU 0x1b ;未定义模式MODEMASK EQU 0x1f ;模式掩码NOINT EQU 0xc0 ;取消中断;设置工作模式的堆栈的起始地址;在option.inc 中定义了_STACK_BASEADDRESS EQU 0x33ff8000 UserStack EQU (_STACK_BASEADDRESS-0x3800) ;堆栈空间0x33ff4800 SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;堆栈空间0x33ff5800 UndefStack EQU (_STACK_BASEADDRESS-0x2400) ;堆栈空间0x33ff5c00AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;堆栈空间0x33ff6000IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;堆栈空间0x33ff7000 FIQStack EQU (_STACK_BASEADDRESS-0x0) ;堆栈空间0x33ff8000堆栈初始化的顺序决定系统最后运行在哪种处理器模式,最后初始化哪种模式的堆栈,系统就运行在哪种模式。
电子技术考试题库
电子技术考试题库(附参考答案)1、 请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌) 。
电阻:RALEC旺诠、ROYALOHM、SUPEROHM、UniOhm、TAI大毅、TDK、TOKEN、VISHAY、YAGEO、广东风华 电容:A VX、KEMET、Kyocera、muRata、NEC、nichicon、Panasonic、SAMSUNG、SANYO、TAIYO YUDEN、TDK、 VISHAY、YAGEO、广东风华、电感: AEM、 EPCOS、 ETC、 Gausstek丰晶、 muRata、 sumida村田、 Sunlord顺络、 TAITECH台庆、 TDK、 TOKEN、 TOREX、 VISHAY、WE、YAGEO国巨、柯爱亚、科达嘉、奇力新、千如电子、捷比信、紫泰荆、肇庆英达、广东风华2、 请解释电阻、电容、电感封装的含义:0402、0603、0805。
表示的是尺寸参数。
0402:40*20mil;0603:60*30mil;0805:80*50mil。
3、 请问电阻、电容、电感的封装大小分别与什么参数有关?电阻封装大小与电阻值、额定功率有关;电容封装大小与电容值、额定电压有关;电感封装大小与电感量、额定电流有关。
4、 某CPU要求某些IO端口接上下拉电阻, 电阻范围可选择1~10K欧姆。
以下规格的电阻, 您会选择哪一种: 1K/1%、 4.99K/1%、10K/1%、1K/5%、2.2K/5%、4.7K/5%、8.2K/5%、10K/5%、3.9K/10%、5.6K/10%、4.7K/20%?从理论上来说,1~10K的电阻都可以采用,但如果从价格上考虑,当然是4.7K/20%的最合算。
5、 请简述压敏电阻工作原理。
当压敏电阻上的电压超过一定幅度时,电阻的阻值降低,从而将浪涌能量泄放掉,并将浪涌电压限制在一定的幅度。
6、 请简述PTC热敏电阻作为电源电路保险丝的工作原理。
watchdog原理
watchdog原理Watchdog原理是一种常用的硬件或软件机制,用于监控系统或设备的状态,并在发生故障或异常情况时采取相应的措施。
本文将详细介绍Watchdog原理的工作原理、应用场景以及其在实际应用中的一些注意事项。
一、Watchdog原理的工作原理Watchdog原理的核心思想是通过定时器或计数器来监控系统的运行状态。
在系统正常运行时,Watchdog定时器会被定期重置,如果系统出现故障或异常情况,导致无法按时重置定时器,那么Watchdog定时器就会超时触发。
一旦Watchdog定时器超时触发,系统将会执行预先定义好的操作,例如重启系统或发送警报信息,以便及时处理故障。
二、Watchdog原理的应用场景1. 嵌入式系统:在嵌入式系统中,Watchdog原理常用于监控主控芯片或操作系统的运行状态。
一旦主控芯片或操作系统发生故障,Watchdog定时器会超时触发,从而重启系统或采取其他必要措施,以确保系统的稳定运行。
2. 服务器和网络设备:在服务器和网络设备中,Watchdog原理可以用于监控系统的各个模块或关键任务的运行状态。
当检测到关键任务或模块出现故障时,Watchdog定时器会触发相应的操作,例如重启故障模块或通知系统管理员。
3. 汽车电子系统:在汽车电子系统中,Watchdog原理可以用于监控各个电子控制单元(ECU)的运行状态。
当某个ECU出现故障时,Watchdog定时器会触发相应的操作,例如重启故障ECU或采取其他必要措施,以确保汽车的安全性和可靠性。
三、Watchdog原理的注意事项1. Watchdog定时器的定时周期需要根据系统的实际情况来设定,既不能过长导致无法及时响应故障,也不能过短导致误报。
2. Watchdog定时器的重置操作需要在系统正常运行的关键任务中进行,确保定时器能够按时重置,避免误报或延误。
3. 在设计和应用Watchdog原理时,需要充分考虑系统的可靠性和稳定性,避免Watchdog本身成为系统的单点故障。
S3C2440开发板硬件资源简介
集成度高
集成了许多常用的外设 接口,减少了外部硬件
的依赖。
易于开发
提供了丰富的开发资源 和文档,方便开发者快
速上手。
处理器的应用领域
嵌入式系统
移动设备
由于其高性能和低功耗特性,S3C2440广 泛应用于嵌入式系统领域。
由于其低成本和集成度高的特点, S3C2440也广泛应用于智能手机、平板电 脑等移动设备领域。
一款基于ARM920T内核的微 处理器,由Samsung公司生产。
处理器核
பைடு நூலகம்ARM920T,主频可达 400MHz。
接口
丰富的外设接口,如UART、 SPI、I2C、USB等。
处理器的特点
高性能
低功耗
采用ARM920T内核,主 频高达400MHz,具有 强大的数据处理能力。
采用低功耗设计,延长 了设备的使用时间。
VGA接口广泛用于计算机 显示输出,与其他显示设 备具有良好的兼容性。
05
电源与功耗管理
电源管理
电源管理单元(PMU)
负责电源的分配和管理,确保各模块正常工作。
电源模式
支持多种电源模式,如正常模式、休眠模式和关机模式,以满足不 同需求。
电源接口
提供多种电源接口,如USB、锂电池等,方便开发板供电。
设。
GPIO接口具有灵活的配置和 操作方式,可以根据需要进行
输入或输出操作。
串口接口
01
串口接口是一种常见的通信接口,常用于与其他设备进行数据 通信。
02
S3C2440开发板提供了多个串口接口,可以用于与外部设备进
行数据传输。
串口接口支持多种通信协议,如RS-232、RS-485等,可以根据
基于S3C2440和ZigBee的智能家居控制系统设计概要
基于S3C2440和ZigBee 的智能家居控制系统设计肖令禄(渭南师范学院物理与电气工程学院,陕西渭南714000摘要:针对传统家居控制系统在网络组建方面的不足,提出了一种基于S3C2440和ZigBee 技术的智能家居控制系统设计方案.该系统以S3C2440作为主控核心,采用CC2430实现家庭内部网络的组建,利用GPRS 模块实现信息家电的远程控制.该系统功耗小,成本低,易于扩展,便于维护,具有一定的实用价值和推广价值.关键词:智能家居;S3C2440;ZigBee ;GPRS中图分类号:TP273文献标志码:A 文章编号:1009-5128(201312-0033-04收稿日期:2013-06-25基金项目:渭南师范学院科研计划项目(13YKP013作者简介:肖令禄(1981—,男,甘肃临洮人,渭南师范学院物理与电气工程学院讲师,主要从事嵌入式系统设计研究.随着电子技术和物联网技术的发展,人们对居住环境及信息获取的要求越来越高,现代家庭正从以往单纯地追求开阔的居住空间及奢华的家居装修转向家居智能化,享受智能化带来的舒适、安全、便利的生活环境.智能家居利用智能化电子技术、网络技术和综合布线技术,将家居生活有关的各种家用电器、通信设备及安防设备等综合为一体,通过提供全方位的信息交换功能,优化了人们的生活方式,增强了家居生活的安全性与舒适性.智能家居控制系统的组网方式可分为有线组网和无线组网两种.有线组网方式的发展较为成熟,但总线、电话线、以太网及电力线等技术普遍存在布线麻烦、扩展不易、安装和维护成本高、移动性能差等缺陷,尤其不适合现有普通住房的智能化改造.无线组网方式最大的优势在于省去了大量的电缆,安装方便且具有良好的可扩展性.可应用于智能家居的无线组网技术主要包括IrDA 、Bluetooth 、WiFi 及ZigBee 等.Zig-Bee 是IEEE 802.15.4通信协议的代名词,是一种适用于自动化系统与远程控制的无线通信技术,具有复杂度低、成本低、功耗小、双向传输的特性,是一个比较完善的近距离低速率无线通信协议[1].在家居控制的应用领域主要包括家庭安防系统、自动空调系统的自动温控、照明和窗帘等的远程控制等.1总体设计方案本系统基于ARM-Linux 开发平台,采用三星公司的S3C2440A 作为主控制器,用ZigBee 无线组网技术完成家庭内网的组建,其终端节点连接各种信息家电、环境监测传感器及安防设备,通过GPRS 和嵌入式网关,用户可以通过手持终端或互联网登录家居管理系统,随时查询家居环境及家电的工作状态,若有非法入侵或险情发生,系统将第一时间向用户手机发送报警信息,同时通过Internet 向小区管理中心报告,以便及时排除险情.系统组成框图如图1所示.2系统硬件设计2.1智能家居控制器的设计嵌入式控制中心是整个家居系统的核心处理模块,而嵌入式处理器则是家庭控制中心的核心部件,其性能的好坏直接决定了整个系统的运行效果.目前主流的嵌入式微处理器有A RM 、MIPS 、PowerPC 、X86、MC68K /Coldfire 等[2].ARM 架构是面向低预算市场设计的第一款RISC 微处理器,是一种可扩展、可移植、可集成的处理器.其中,ARM9系列微处理器采用ARMV4T (Harvard 结构,五级流水线,指令与数据分离的Cache ,平均功耗为0.7mW /MHz ,时钟频率为120 200MHz ,在高性能低功耗特性方面提供最佳的性能.2013年12月第28卷第12期渭南师范学院学报Journal of Weinan Normal University Dec.2013Vol.28No.12图1智能家居控制系统的组成本设计中,采用mini 2440开发板完成智能家居控制器的设计.该开发板采用基于ARM 920T 内核的S3C2440微处理器,并配有64Mbyte SDRAM 、128Mbyte Nand Flash 、3个串口、1个100M 以太网RJ -45口、1个34pin 2.0mmGPIO 接口和1个40pin 2.0mm 系统总线接口,资源丰富,便于各种嵌入式系统的开发.2.2ZigBee 无线组网的实现IEEE802.15.4定义了两种ZigBee 设备类型:全功能设备FFD 和精简功能设备RFD.ZigBee 规范定义了三种逻辑设备类型:ZigBee 协调器、ZigBee 路由器和ZigBee 终端设备[3].ZigBee 网路协调器(FFD 作为网络的中心节点,负责建立和维护网络、发送网络信标、管理网络节点、存储网络节点信息、寻找节点间路由信息、允许其他设备入网等.ZigBee 路由器(FFD 负责数据的路由中继转发,提供信息双向传输功能.ZigBee 终端设备(RFD 只用来和其他FFD 或RFD 之间收发数据.这三者的硬件结构完全一致,通过软件配置可实现不同的设备功能.本系统由一个网络协调器和若干个网络控制节点组成,按星型网络拓扑结构,主节点采用FFD ,通过SPI 总线与主控制器连接,用于接收来自主控制器的各种控制信号;从节点采用RFD ,连接分布于室内的各种传感器,将采集到的数据经AD 转换后,通过无线收发装置发送给网络协调器,其硬件连接如图2所示.图2ZigBee 硬件连接示意图目前市场上符合ZigBee 协议标准的无线收发模块种类较多,本设计中采用TI 公司生产的CC2430芯片.该芯片集成了高性能2.4GHz DSSS 射频收发器核心,采用增强型8051MCU 、32/64/128KB 闪存、8KB SRAM 等高性能模块,并内置了ZigBee 协议栈.多种运行模式的设计保证了它极低的功耗;可任意加入网络节点的动态自组网特性极大地方便了智能家居控制系统的功能扩展.2.3GPRS 无线数据传输的实现GPRS (General Packet Radio Service 即通用分组无线服务技术,是GSM 移动电话用户可用的一种数据传输业务.它使用分组交换技术,以封包(Packet 的方式传输数据,具有使用费用低廉、接入时间短以及传输速率高(可达115kbps 等特点.设计中的GPRS 模块选用SIMCOM 公司的SIM300C ,该模块尺寸小、功耗低、易于开发,典型工作电压4.2V ,峰值电流2A ,可工作在900/1800/1900MHz 工作频段,在使用时无需申请频段,只需一张SIM 卡即可.它提供通用的AT 控制命令,使用户不需移植TCP /IP 协议就能利用GPRS 服务与终端建立连接、实·43·肖令禄:基于S3C2440和ZigBee 的智能家居控制系统设计第28卷现数据传输,缩短用户的开发周期[4].通过串口将GPRS 模块与主控制器相连接,可将传感器采集到的环境数据经ZigBee 网络传输给主控制器,再由主控制器向GPRS 模块发送AT 指令将环境数据传送到用户手机.也可通过手机向GPRS 模块发送短信的方式,控制信息家电的工作状态.3系统软件设计3.1系统软件平台的搭建智能家居控制器软件平台包括交叉编译环境的建立、BootLoader 的移植、Linux 内核的移植及根文件系统的制作等[5-6].在嵌入式系统中,软件的编辑、编译、链接等操作都是在PC 机上完成的,所得到的二进制目标文件无法直接在ARM 平台上运行,需要安装交叉编译工具链arm-linux-gcc ,它主要包括ARM 的交叉编译器arm-elf-gcc 和交叉链接器arm-elf-ld.BootLoader 是在操作系统内核运行之前运行的一段程序,用以初始化硬件设备,建立内存空间的映射图,准备软件运行环境,设置启动参数,最终正确引导操作系统.ARM 架构下的BootLoader 主要有vivi 和u-boot ,本设计使用u-boot 作为引导程序.可从ftp ://ftp.denx.de /pub /u-boot /下载U-Boot 源码,通过修改顶层Makefile 、start.S 等文件关闭中断、设置时钟频率、初始化RAM 、添加对S3C2440的支持.将编译后生成的u-boot.bin 文件下载到RAM 的0x3000000地址处,为引导Linux 内核做好准备.Linux 内核的移植包括内核源代码的获取、源代码体系结构的修改、驱动程序的添加等,使用make uImage 命令对内核进行编译,将生成的映像文件烧写到RAM 的0x33000000地址处,通过bootm 0x33000000命令即可引导操作系统.图3ZigBee 节点工作流程3.2ZigBee 无线网络节点软件设计FFD 网络节点主要负责建立网络,侦听并等待子节点的加入,对已加入的子节点分配ID ,接收子节点传来的数据并通过SPI 总线传送给主控制器等[7].RFD 节点功能较为简单,主要是搜索并自动加入网络,采集传感器数据并上传给FFD ,其软件控制流程如图3所示.3.3GPRS 模块软件设计通过GPRS 模块发送短消息时,首先要对GPRS 模块初始化,包括初始化串口设备、设置串口参数、判断连接是否成功等.其次要设置短消息中心地址、目的地址,信息按照PDU 数据格式编码,通过向串口写入AT +CMGS 指令实现消息的发送[8].接收到的短消息包括发送端地址、时间及内容,通过AT +CMGR指令读取短消息,对接收到的PDU 格式串还需进行解码,通过和软件中设定的远端设备发生异常时参数·53·2013年第12期渭南师范学院学报的设定值进行比较,可判断设备工作是否正常,其处理流程如图4所示.图4GPRS 模块短消息发送与接收流程4结语本设计采用ZigBee 技术实现智能家居控制系统的无线组网,克服了传统家居控制系统存在的布线麻烦、扩展困难及维护成本高等缺点,尤其适合现有普通住房的智能化改造.其研究成果也可用于学校、医院等公共场所的智能化改造工程.参考文献:[1]冉彦中,曹婧华,姜威,等.Zigbee 协议星形组网实验的设计与实现[J ].实验技术与管理,2013,30(2:101-102.[2]徐英慧,马忠梅,王磊,等.ARM9嵌入式系统设计[M ].北京:北京航空航天大学出版社,2007.[3]彭燕.ZIGBEE 无线网络组网研究[J ].渭南师范学院学报,2011,26(2:42-45.[4]陈家敏,吴强,陈家丽.GPRS 无线通讯模块SIM300C 及其外围电路设计[J ].电子制作,2013,21(5:147-148.[5]杨铸,唐攀.深入浅出嵌入式底层软件开发[M ].北京:北京航空航天大学出版社,2011.[6]曾福振,闵联营.基于ARM 和Linux 的嵌入式平台的构建[J ].微型机与应用,2011,30(12:51-53.[7]刘礼建,张广明.基于ZigBee 无线技术的智能家居管理系统设计[J ].计算机技术与发展,2011,21(12:250-253.[8]陈滟涛,杨俊起,康润生,等.基于SIM300的短信传输系统的设计与实现[J ].计算机工程与科学,2008,30(3:156-158.【责任编辑牛怀岗】The Design of Intelligent Home Control System Based on S 3C 2440and ZigBeeXIAO Ling-lu(School of Physics and Electrical Engineering ,Weinan Normal University ,Weinan 714000,ChinaAbstract :Aiming at the deficiency of the traditional home control system in networking ,a design plan of intelligent home con-trol system which is based onS3C2440and ZigBee was proposed.It adopts S3C2440as control core to establish home internal net-work by CC2430,to achieve remote control of information appliances using GPRS module.This system has small power consump-tion ,low cost ,easy expansionand easy maintenance.The technology and methods adopted in the system are practical and worthy of using abroad.Key words :Intelligent home ;S3C2440;ZigBee ;GPRS ·63·肖令禄:基于S3C2440和ZigBee 的智能家居控制系统设计第28卷。
基于S3C2440的Uboot分析与移植
…
一
一
:
㈧
。
g
{
{
☆
d
赫
UB o ∞81 f g ‘21 -0 t2 0(u I 9 1一明:1“) 2:
¨ I o n Rl ∞ B J w I ’ S f d 日 I 8f l :D  ̄ (
_ _
.
=0嗍 哪明 =0帅 x 嗍 :0帅
帅帅: I C NI e etd b o r r e .I i s n trc M- e 1 I OE C O s lc e yb ad d b s i o e MI d R N E l d! d
2 6M B s i I : sr a n eil 0t u : sr a eil Er r : sr a eil F 2 ‘ *一 L ‘B
源 代码 。U o t 目录下共有 3 b o根 0个子 目录 ,可 以分为
4类 :
2 2 产 品应用 Pou t pi 2 rdcApl d e
2 1 年 第 2 卷 第 5期 02 1
ht:ww . Sa r. t l we -. gc pl ・ o n
计 算 机 系 统 应 用
墙, 重启 xn t. i d e d服务 ,开放 T 服务 。在/ cep r 邱 e / ot t x s
结 构表 示一 个 Na dFah芯 片 。这个 结 构体 中包 含 n ls
了 关于 Na dFah的地 址信 息 、读 写方 法 、E C模 n ls C
式 、硬 件控 制 等 一 系列 低 层机 制 【,因 此新 驱动 的 5 】 编 写将 变得 更 加 方便 ,只 需修 改 该 结构 体 的相应 成
基于S3C2440A的vivi分析与移植
初 始 化 时 钟
初 试 化 堆 空 间 、M T D
始 化 内存控 制 寄存器 、初 始化 U R 0 A T;
( 1 将 v i 有 代 码 从 N N ls 2 i所 v A D Fah复 制 到
SR D AM。拷 贝 时要 确 定 两 点 : 是 阶段 2 可 执 行 一 的 映像 在 固态存 储 设 备 的存 放 起 始 地址 和终 止 地 址 :
关 键 词 :嵌 入 式 系 统 ; Ln x 3 2 4 A;B o od r ii iu ;¥ C 4 0 ot a e ;vv L
引导 程 序 B oL ae是 嵌 入 式 系 统在 加 电后 执 otod r
器 开 发 的 一 种 B o o dr i 具 有 结 构 清 晰 、功 o t a e。v i L v 能 丰 富 的 特 点 。它 支 持 图形 化 的 用 户 配 置 界 面 。
把vv下 载 到开 发 板上 ,重新 加 电 ,则可 通 过 超级 i i
『 YTL C S R AI
1 大小 的 内存 范 围 内 。而对 于 根 文件 系 统 映像 , MB 则 一般将 其拷 贝 到 ( M— T R + x 00 0 )开始 ME S A T 0 0 10 1
/b处 理 器 体 系相关 的文件 ,和 一些 平 台公 共 l i 的 接 口代 码 。 /cit 提供 配置界 面 的程序 。 sr s p
行 的第一段代码 ,它主要负 责初始化 硬件设 备 , 将 操 作 系统 映像 装 载 到 内存 中 ,然 后 跳转 到 操 作
系 统 所 在 的空 间 ,启 动操 作 系 统 运行 。在 系 统 加
孟祥莲嵌入式系统原理及应用教程部分习题答案
习题 1 1.嵌入式系统的概念的是什么?答:嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
(嵌入式系统是嵌入式到对象体系中的,用于执行独立功能的专用计算机系统。
)2.嵌入式系统的特点是什么?答:系统内核小;专用性强;运行环境差异大;可靠性要求高;系统精简和高实时性操作系统;具有固化在非易失性存储器中的代码嵌入式系统开发和工作环境4.嵌入式系统的功能是什么?答:提供强大的网络服务小型化,低成本,低功能;人性化的人机界面;完善的开发平台5.嵌入式系统的硬件平台由哪些部分组成?答:嵌入式系统的硬件是以嵌入式处理器为核心,由存储器I/O单元电路,通信模块,外部设备必要的辅助接口组成的。
7.嵌入式操作系统的主要特点是什么?答:体积小;实时性;特殊的开发调试环境。
8.叙述嵌入式系统的分类。
答:按嵌入式微处理器的位数分类可以分为4位、8位、16位、32位和64位等;按软件实时性需求分类可以分为非实时系统(如PDA),软实时系统(如消费类产品)和硬实时系统(如工业实时控制系统);按嵌入式系统的复杂程度分类可以分为小型嵌入式系统,中型嵌入式系统和复杂嵌入式系统。
习题21.ARM9处理器和工作状态有哪些?答:ARM状态:此时处理器执行32位的的字对齐的ARM指令。
Thumb状态:此时处理器执行16位的,半字对齐的Thumb指令2.叙述ARM9内部寄存器结构,并分别说明R13、R14、R15寄存器的作用。
答:共有37个内部寄存器,被分为若干个组(BANK),这些寄存器包括31个通用寄存器,包括程序计数器(PC指针)6个状态寄存器。
R13用作堆栈指针,R14称为子程序链接寄存器,R15用作程序计数器。
4.ARM处理器的工作模式有哪些?答:用户模式:ARM处理器正常的程序执行状态。
快速中断模式:用于高速数据传输或通道处理外部中断模式:用于通用中断处理管理模式:操作系统使用的保护模式数据访问终止模式:当数据或指令预期终止时进入该模式,可用于虚拟存储器及存储保护系统模式:运行具有特权的操作系统任务未定义指令终止模式:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
第1讲三星s3c2440微处理器
掉电模式:所有外设和内核的电源都切断了;
1. 可以通过EINT[15:0]或RTC报警中断来从掉电模式中唤醒处
理器
12
S3C2440A特性
中断控制器
60个中断源(1个看门狗定时器,5个定时器, 9个UARTs,24个外部中断,4个DMA,2个 RTC,2 个ADC,1 个IIC,2 个SPI,1个SDI, 2个USB,1 个LCD和1个电池故障,1个NAND 和2个Camera),1个AC97音频
电平/边沿触发模式的外部中断源 可编程的边沿/ 电平触发极性 1. 支持为紧急中断请求提供快速中断服务
13
S3C2440A特性
具有脉冲带宽调制功能的定时器(PWM) 4 通道16位具有PWM功能的定时器,1通道16
位内部定时器,可基于DMA或中断工作 可编程的占空比周期,频率和极性 能产生死区 1. 支持外部时钟源
Main TFT LCD & TSP
1/2/4/8/16 bpp Up to QVGA
SD/SDIO IIS I/F
Audio Codec
TDMB/WLAN
SD/MMC Stereo Speaker Head Set Mic
引言
三星公司推出的16/32位RISC微处理器 S3C2440A,为手持设备和一般类型应用 提供了低价格、低功耗、高性能小型微 控制器的解决方案。
–LCD 实际尺寸的典型值是:640 ×480,320 ×240, 160×160 及其他
–最大虚拟屏幕大小是4M字节
–256 色模式下支持的最大虚拟屏是:4096 ×1024,
2048 ×2048,1024×4096等
17
S3C2440A特性
TFT彩色显示屏 支持彩色TFT的1,2,4或8bbp(像素每位)调色显示 支持16,24bbp无调色真彩显示TFT 在24bbp 模式下支持最大16M色TFT lpc3600定时控制器,为嵌入式lts350Q1-PD1/2(SAMSUNG
看门狗的工作原理和应用
看门狗的工作原理和应用简介看门狗是一种常用的硬件监控机制,主要用于确保系统或设备的稳定运行。
本文将介绍看门狗的工作原理和应用。
工作原理看门狗的工作原理基于定时器和复位机制,其具体流程如下:1.启动定时器:看门狗通过启动一个定时器来计时。
2.监控程序:看门狗监控系统或设备中的关键程序,确保其正常运行。
3.定时器复位:监控程序定时重置定时器的计时。
4.定时器溢出:如果定时器计时超过了预定的时间,即定时器溢出。
5.复位信号:定时器溢出后,看门狗发送一个复位信号给系统或设备。
6.设备重启:系统或设备在接收到复位信号后会进行重启操作,重新启动。
应用场景看门狗的应用非常广泛,在许多领域中发挥着重要的作用。
以下列举了几个常见的应用场景:•嵌入式系统:嵌入式系统通常是长时间运行的,看门狗可以确保系统在长时间运行后仍然稳定,避免死机或其他故障。
•服务器:服务器运行的应用程序往往非常复杂,存在各种潜在的问题,看门狗可以监控服务器的关键进程,及时发现异常情况并进行复位。
•工业自动化:在工业自动化过程中,看门狗可以监控各种设备和传感器,实时检测故障,并进行相应的处理,确保生产过程的稳定进行。
•汽车电子:随着汽车电子的普及和发展,看门狗在汽车电子中也有重要的应用,可以监控汽车各个系统的运行情况,确保汽车的安全和稳定。
•无人机:无人机是一种高度自动化的飞行器,看门狗可以监控无人机的各个部件,检测故障并采取相应的措施,确保飞行安全。
优点看门狗的应用有许多优点,包括:•提高系统的稳定性:看门狗可以监控系统的运行状态,及时发现并处理异常情况,保证系统的稳定性和可靠性。
•自动化处理:看门狗可以自动检测和处理故障,减少人工干预的需求,提高系统的自动化程度。
•快速恢复:一旦发生故障,看门狗可以快速进行复位操作,使系统尽快恢复正常运行。
•灵活性:看门狗可以根据实际需求进行定制,灵活适应不同应用场景。
注意事项在使用看门狗的过程中,需要注意以下几点:•设定合适的定时器时间:定时器时间的设置需要根据具体的应用场景来确定,过短的时间可能会导致频繁的复位,过长的时间则可能会延误故障的处理。
嵌入式选择题1
嵌入式选择题1.0嵌入式期中模拟选择题,因所得题库问题,错误题未录入,如有新题增加联系本人,还有因手工录入可能存在问题,发现问题请及时反馈,1. 能确定总线功能的强弱以及适应性的是() [单选题]A.备用线B.地线C.中断信号线(正确答案)D.数据线2. 决定地线分别方式的线称为() [单选题]A.备用线B.控制线C.电源线D.地线(正确答案)3. 世界上第一台计算机研制成功的年代是() [单选题]A.1944年B.1945年C.1946年(正确答案)D. 1947年4. 80286处理器是() [单选题]A.32位处理器B.16位处理器(正确答案)C.8位处理器D.4位处理器5. 在嵌入式系统的设计过程包括:需求、规格说明、()、组件和系统集成。
[单选题]A.硬件B.软件C.体系结构(正确答案)D.系统设计6. 属于RISC类型的处理器有()。
[单选题]A. ARM、x86、MIPS、PowerPC、SuperHB. ARM、MIPS、PowerPC、SuperH(正确答案)C.ARM、x86、MIPS、PowerPCD. ARM、x86、MIPS7. Cache用于存放主存数据的部分拷贝,主存单元地址与Cache单元地址之间的转换用()。
[单选题]A.硬件完成(正确答案)B.软件完成C.用户完成D.程序员完成8. 下面关于哈佛结构描述正确的是()。
[单选题]A.程序存储空间与数据存储空间分离(正确答案)B.存储空间与IO空间分离C.程序存储空间与数据存储空间合并D.存储空间与IO空间合并9. 关于ARM子程序和Thumb子程序互相调用描述正确的是()。
[单选题]A.系统初始化之后,ARM处理器只能工作在一种状态,不存在互相调用。
B.只要遵循一定调用的规则,Thumb子程序和ARM子程序就可以互相调用。
(正确答案)C.只要遵循一定调用的规则,仅能Thumb子程序调用ARM子程序。
D.只要遵循一定调用的规则,仅能ARM子程序调用Thumb子程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s3c2440看门狗定时器的应用
看门狗定时器的主要作用是在程序因为干扰而跑飞后,能够使系统复位,不至于使系统永远的死下去。
它的原理与一般的定时器没有多大区别,就是先要设置好一段时间,当超过这段时间后,就从当前运行的程序中跳出进入中断处理程序中。
但两者的主要差别是,一般的定时器中断是我们希望它发生的,因此我们不会在定时器中断发生前的那个时间段内干预它;而看门狗定时器中断是我们不希望它发生的,因此我们要想方设法地避免其发生。
主要的方法就是在中断发生前,重新对看门狗定时器的寄存器进行赋值,使它的定时器重新开始计时。
这种方法俗称喂狗,形象地比喻就是一条看门狗每隔一段时间(比如说一个小时)就会饿,所以就要叫唤,唯一使它不叫的方法就是给它喂食,那么下次叫唤的时间就是从当前喂食起的一个小时后。
因此只要在上次喂食后的一个小时内再给它喂食,它就永远不会叫唤。
s3c2440的看门狗定时器不仅可以引起系统复位,还可以引起一般的中断,因此s3c2440的看门狗定时器可以当作一般的定时器使用。
s3c2440看门狗定时器的时钟频率的公式为:
PCLK÷(Prescaler + 1)÷Division
其中Prescaler的取值范围为0~255,Division的取值为16,32,64和128。
例如,当PCLK 为50MHz时,设置Prescaler为249,Division为16,则看门狗定时器的时钟频率为12.5kHz。
这两个参数由寄存器WTCON提供,除此以外,该寄存器还可以设置是否有效看门狗定时器的超时复位,是否有效看门狗定时器的超时中断等。
看门狗定时器还有两个寄存器WTDA T和WTCNT,WTDA T用于确定超时期限,WTCNT为当前看门狗定时器的计数值,在第一次设置看门狗超时时间时,这两个寄存器都要被写入超时时间的初始值。
当要启动超时中断时,还要设置必要的中断寄存器,
下面这个程序就是一个看门狗定时器的实例。
该程序就是正常的跑马灯程序,但加了一个看门狗定时器。
我们设置的看门狗定时器超时时,只会触发中断,不会引起系统复位。
在中断函数内,蜂鸣器会响。
我们设置看门狗定时器的超时期限为4秒,为了不让程序进入看门狗中断,必须在该期限内,往寄存器WTCNT内写数,迫使看门狗定时器重新开始计时。
#define _ISR_STARTADDRESS 0x33ffff00
#define pISR_WDT_AC97 (*(unsigned *)(_ISR_STARTADDRESS+0x44)) #define U32 unsigned int
#define rGPBCON (*(volatile unsigned *)0x56000010) //Port B control
#define rGPBDAT (*(volatile unsigned *)0x56000014) //Port B data
#define rGPBUP (*(volatile unsigned *)0x56000018) //Pull-up control B
#define rSRCPND (*(volatile unsigned *)0x4a000000) //Interrupt request status #define rINTMSK (*(volatile unsigned *)0x4a000008) //Interrupt mask control #define rINTPND (*(volatile unsigned *)0x4a000010) //Interrupt request status #define rSUBSRCPND (*(volatile unsigned *)0x4a000018) //Sub source pending
#define rINTSUBMSK (*(volatile unsigned *)0x4a00001c) //Interrupt sub mask
#define rWTCON (*(volatile unsigned *)0x53000000) //Watch-dog timer mode
#define rWTDAT (*(volatile unsigned *)0x53000004) //Watch-dog timer data
#define rWTCNT (*(volatile unsigned *)0x53000008) //Eatch-dog timer count
void delay(int a)
{
int k;
for(k=0;k<a;k++)
;
}
void __irq watchdog(void)
{
rGPBDAT |= 1; //蜂鸣器响
//清中断标志位
rSRCPND = 0x1<<9;
rSUBSRCPND = 0x1<<13;
rINTPND = 0x1<<9;
}
void Main(void)
{
int light;
int temp;
int i;
rGPBCON = 0x015551; //B0输出,给蜂鸣器;B5~B8输出,给LED
rGPBUP = 0x7ff;
rWTCON = 0xf9<<8; //Prescaler = 249,Division = 16,时钟频率为12.5kHz
//禁止看门狗复位
rWTDAT = 50000; //设置看门狗定时器超时时间为4秒(50÷12.5)
rWTCNT = 50000;
rWTCON |= (1<<5)|(1<<2); //开启看门狗定时器中断
rSRCPND = 0x1<<9;
rSUBSRCPND = 0x1<<13;
rINTPND = 0x1<<9;
rINTSUBMSK = ~(0x1<<13); //打开中断子屏蔽
rINTMSK = ~(0x1<<9); //打开中断屏蔽
pISR_WDT_AC97 = (U32)watchdog;
light = 0x10;
light = light<<1;
temp = light | 1;
rGPBDAT = ~temp;
delay(500000);
while(1)
{
for (i=0;i<3;i++)
{
light = light<<1;
temp = light | 1;
rGPBDAT = ~temp;
delay(500000);
}
rWTCNT = 50000; //喂狗,重新赋值,防止中断
for (i=0;i<3;i++)
{
light = light>>1;
temp = light | 1;
rGPBDAT = ~temp;
delay(500000);
}
}
}
如果我们把程序中红色的那条语句注释掉,则看门狗定时器可以被看成是一个一般的定时器,即每隔4秒钟,蜂鸣器会响一下。
如果我们使能看门狗定时器超时复位,则一定要加上这一句,否则系统会每隔4秒钟复位一次。