ARM嵌入式系统软件实时时钟的设计 作者:杜刚 邓明 胡小波 来源:微计算机信息 【摘要】本文使用PCF8563芯片为嵌入式系统提供一个独立的实时时钟,它独立自主地运行,CPU从它那里获得时间信息。文中简介了嵌入式ARM处理器和I2C总线的通讯协议;通过
uclinux的交叉编译、移植和烧写uclinux内核,在UP-NETARM3000上成功的运行uclinux系统;在移植的uclinux系统上挂载NFS文件系统,运行其中的应用程序;并通过C程序在
uclinux下实现了对PCF8563的读写功能,成功地添加了实时时钟。 【关键词】实时时钟; ARM处理器; uclinux移植; PCF8563;I2C总线
1 引言 现在的许多设备对实时时钟都有很高的要求,在片集成的实时时钟往往只注意到了其使用的方便,而没有考虑在实际应用中还有很多特殊的要求。本文讨论如何使用独立的
外扩实时时钟,来满足这些要求。 什么是实时系统?就是系统运行时的反馈信息或者指令,必须在要求的时间内发出或者返回,否则视为无效。例如,数据采集的时候,必须在对应的时间内得到信号,以保证数据
采集的有效性。那么什么是实时时钟?就是采用独立的晶振(或集成),拥有独立供电系统,永不间断的运行,从而给系统提供可靠的系统时间。 集成的实时时钟和独立实时时钟的比较: 以博创UP-NETARM3000开发板为例,它使用的是三星公司生产的S3C44B0XARM7处理器,该处理器内部集成了一个实时时钟,其中的2个中断源INT_RTC和INT_ADC中断源在26个
中断源中优先级最低。RTC的电压要求2.5V或3V,但是不支持3.3V。也就是说开发板上的实时时钟不能脱离开发板独立地运行,同时中断级别低,电压范围窄,精度不可调,不具备
通用性。而外扩的独立实时时钟电压范围宽,使用I2C总线,中断级别高,同时独立于开发板运行,通用性好。特别是精度是可以矫正调节的,这对实时性来说精度是很重要的指标
。
2 ARM处理器 ARM(Advanced RISC Machines)是一类微处理器的通称[1]。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。ARM现在已遍及工业控制,消费类电子产品,通信
系统,网络系统,无线系统等各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器75%以上的市场比例,ARM 技术正在逐步渗入到我们生活的各个方面。
3 PCF8563 PCF8563是PHILIPS公司生产的低功耗CMOS实时时钟/日历芯片, 芯片最大总线速度为400kbits/s,每次读写数据后,其内嵌的字地址寄存器会自动产生增量。PCF8563可广泛应
用于移动电话、便携仪器、传真机、电池电源等产品中。PCF8563有16个8位寄存器,其中包括:可自动增量的地址寄存器、内置32.768kHz的振荡器(带有一个内部集成电容)、分频器
(用于给实时时钟RTC提供源时钟)、可编程时钟输出、定时器、报警器、掉电检测器和400kHz的I2C总线接口。所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用
。当一个RTC寄存器被读时,所有计数器的内容将被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读。同时它还拥有PHILIPS的优良品质,在3V电压,25摄氏度下,功耗为
250nA,非常低。本文选用PCF8563来外扩实时时钟,其硬件连接示意图如图1所示:
|