




付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM嵌入式系统软件实时时钟的设计The Design of real-time clock for ARM embedded system(中国地质大学 北京) 杜 刚 邓明胡小波Du,Gang Deng,Meng Hu,Xiaobo【摘要】 本文使用 PCF8563芯片为嵌入式系统提供一个独立的实时时钟,它独立自主地运行,CPU从它那里获得时间信息。文中简介了嵌入式 ARM处理器和 I 2C 总线的通讯协议;通过 uclinux 的交叉编译、移植和烧写uclinux内核,在 UP-NETARM3000上成功的运行 uclinux 系统;在移植的 uclinux系统上挂载 NFS文件系统,运
2、行其中的应用程序;并通过C 程序在 uclinux下实现了对 PCF8563的读写功能,成功地添加了实时时钟。【关键词】实时时钟; ARM 处理器; uclinux移植; PCF8563;I2 C 总线Abstract :This paper uses one real-time clock chip PCF8563 to give embedded systems an independent real-time clock ,it runs independently, CPU receives time information from it.The paper introduced e
3、mbedded ARM processor of the mainstream, explained I2C bus communication protocol 。Have compiling, transplantingand burning uclinux kernel, successfully operate uclinux system on UP-NETARM3000. Mounting NFS file system in transplanted uclinux system,operate theapplication program among NFS file syst
4、em. Using a C program to carry out the function of reading and writing PCF8563, succeed in adding the real-time clock under uclinux.Keywords :Real-time clock; ARM processor; uclinux transport; PCF8563; I 2C bus1 引言现在的许多设备对实时时钟都有很高的要求,在片集成的实时时钟往往只注意到了其使用的方便,而没有考虑在实际应用中还有很多特殊的要求。本文讨论如何使用独立的外扩实时时钟,来满足这
5、些要求。什么是实时系统?就是系统运行时的反馈信息或者指令,必须在要求的时间内发出或者返回,否则视为无效。例如,数据采集的时候, 必须在对应的时间内得到信号,以保证数据采集的有效性。那么什么是实时时钟?就是采用独立的晶振(或集成),拥有独立供电系统,永不间断的运行,从而给系统提供可靠的系统时间。集成的实时时钟和独立实时时钟的比较:以博创 UP-NETARM3000开发板为例,它使用的是三星公司生产的S3C44B0XARM 处理器,该处理器内部集成了一个实时时钟, 其中的 2 个中断源 INT_RTC 和 INT_ADC 中断源在 26 个中断源中优先级最低。 RTC 的电压要求 2.5V 或 3
6、V ,但是不支持 3.3V 。也就是说开发板上的实时时钟不能脱离开发板独立地运行,同时中断级别低,电压范围窄,精度不可调,不具备通用性。而外扩的独立实时时钟电压范围宽,使用I2C 总线,中断级别高, 同时独立于开发板运行,通用性好。特别是精度是可以矫正调节的,这对实时性来说精度是很重要的指标。2 ARM处理器ARM(Advanced RISC Machines)是一类微处理器的通称1 。1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。ARM现在已遍及工业控制,消费类电子产品,通信系统,网络系统,无线系统等各类产品市场,基于 ARM 技术的微处理器应用占据了 32 位 RI
7、SC 微处理器 75%以上的市场比例, ARM 技术正在逐步渗入到我们生活的各个方面。3 PCF8563PCF8563是 PHILIPS 公司生产的低功耗 CMOS实时时钟 / 日历芯片 , 芯片最大总线速度为 400kbits/s, 每次读写数据后 , 其内嵌的字地址寄存器会自动产生增量。 PCF8563 可广泛应用于移动电话、便携仪器、传真机、电池电源等产品中。 PCF8563 有 16 个 8 位寄存器 , 其中包括 : 可自动增量的地址寄存器、内置32.768kHz 的振荡器( 带有一个内部集成电容 ) 、分频器 ( 用于给实时时钟RTC提供源时钟 ) 、可编程时钟输出、定时器、报警器
8、、掉电检测器和400kHz 的 I 2C 总线接口。所有16 个寄存器设计成可寻址的8 位并行寄存器 , 但不是所有位都有用。当一个RTC寄存器被读时 , 所有计数器的内容将被锁存, 因此 , 在传送条件下 , 可以禁止对时钟 / 日历芯片的错读。同时它还拥有PHILIPS 的优良品质, 在 3V 电压,25 摄氏度下, 功耗为 250nA,非常低。本文选用PCF8563杜刚:副教授基金项目: 国家 863 计划课题 (2002AA615020) 资助1来外扩实时时钟,其硬件连接示意图如图1 所示:图 1 PCF8563 与 S3C44B0X的连接图4 I 2C总线在现代电子系统中, 有为数众
9、多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计, PHILIPS 开发了一种用于内部IC 控制的简单的双向两线串行总线 I2C(Inter IC 总线 )。 I2C总线支持任何一种 IC 制造工艺。作为一个专利的控制总线,I2C已经成为世界性的工业标准2 。5 uclinux系统 3uClinux是微控制器领域中的Linux 系统。它通常用于具有很少内存或Flash通用许可证的保证下 , 运行 Clinux操作系统的用户可以使用几乎所有的Linux API定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的除了不能实现fork()外,其余uCl
10、inux的 API 函数与标准Linux 完全相同。.uClinux的内核加载方式的嵌入式操作系统。在 GNU 函数。它具有体积小、稳 API 函数等优点。 uClinuxuClinux的内核有两种可选的运行方式:可以在flash上直接运行,也可以加载到内存中运行。Flash运行方式:把内核的可执行映象烧写到flash上,系统启动时从flash的某个地址开始逐句执行。内核加载方式:把内核的压缩文件存放在flash上,系统启动时读取压缩文件在内存里解压,然后开始执行。 .uclinux 的根( root )文件系统uClinux系统采用romfs 文件系统,这种文件系统相对于一般的ext2 文件
11、系统要求更少的空间。内核支持 romfs 文件系统比支持 ext2 文件系统需要更少的代码, romfs 文件系统相对简单,建立文件系统超级块(superblock )需要更少的存储空间。 romfs 文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟 ram 盘的方法进行处理( ram 盘将采用 ext2 文件系统)。6 uclinux在 S3C44B0X上的移植 4BootLoader 引导程序是嵌入式开发很重要的组成部分。它是CPU 加电后第一个开始运行的代码,由它最终将操作系统启动起来并将控制权交给操作系统内核。BLOB(Boot Loader OBject)最初是由Jan
12、-Derk Bakker 和Erik Mouw 为 LART 而写的引导代码,由于其良好的移植性和强大的功能被移植到了很多其它机器上。BLOB遵守 GNU GPL licence 。 BLOB 功能比较强大,它可以: . 初始化诸如 CPU 的主频、 SDRAM 的控制管理、中断、串行口等硬件; . 启动 Linux 内核并提供一个 RAMDISK ; . 通过串口下载内核或者 RAMDISK 到板卡上; . 可以将修改过的新的内核或者RAMDISK写到 Flash 上; . 可以重新自由设定存储中不同的布局; . 可以提供一个命令行接口给用户。Blob 常用的命令有:blob 、boot 、
13、xdownload 、 flashreload 、dump、 reblob、status、 flash 等。 xdownload 命令用于下载内核和根文件系统到内存中,flash 命令用来把它们烧到flash 中。在 PC 机上建立起uclinux 的编译环境,在终端中运行博创开发板自带光盘上的install.sh 文件,它将在你的 PC 机上安装交叉编译环境和一个在 44B0X 上运行 uclinux-2.4.x 文件夹和许多有用的文件夹。 建立交叉编译环境也可以通过下在通用的 gcc 编译器来实现,它是一个 .sh 文件,其运行方法在后面有介绍。实际上就是建立 uclinux 的库文件的过
14、程。开源的好处就在于这一切都是透明的,不需要你去配置,只要会安装就可以了。通过串口烧写 uclinux 内核和根文件系统,这在 Windows 下使用超级终端。 Linux 下使用 minicom 。基本设置是波特率115200, 8 个数据位,无奇偶校验,停止位1,无数据流控制。2同时要在PC 机上建立 NFS 文件共享服务, 本文的共享目录是/root/nfs 。进入服务器配置选项, 里面有 NFS,网络服务器配置等。配置过程时建立要选择共享的目录和访问的IP 段。7 PCF8563的读写程序PCF8563 使用的是 I2C 总线,他的读写过程遵循总线的读写过程, S3C44B0X 的 I
15、2C 总线控制器为一个多主的控制器,其读写流程如图 2 所示。开始主模式已经配置从设备地址写入 IICDS0XF0 写入 IICSTATIICDS 中数据已经送出ACK (应答)且中断产生Y将0X9/D0 写入 IICSTAT停止了?N将需要发送的数据送 IICDS清除 PENDING清除 PENDING ,接下个中断等待,直到停止位起作用IICDS 中数据移位 SDA 输出结束图 2 I 2C 总线主模式的读/写流程根据流程编写了PCF8563 的读写程序。 该程序通过 uclinux的交叉编译工具编译成为可以在S3C44B0X上面运行的程序,过程如下:该程序和它的头文件放到同一个目录下,然
16、后打开终端在终端下执行:cd 所在目录arm-elf-gcc -elf2flt rtc main.c这样就会生成一个uclinux下的可执行文件,通过NFS挂载过去,步骤如下:ifconfig eth0 202.204.96.196mount -t nfs 202.204.96.198:/root/nfs /host用 cd 命令进入所挂载的目录,直接执行就可以了。该过程在实际操作过程中可以用一种简便的方法来实现,这也是经行uclinux 下开发程序的简便之处,那就是 makefile 文件。我们在一台服务器主机上建立一个虚拟机VM work station ,里面安装的是linux 系统和u
17、clinux 的交叉编译环境,在需要编译的文件所在目录下建立一个makefile 文件,内容如下:all: main.c/ 编译的文件arm-elf-gcc -elf2flt -o rtc main.c/ 编译读写程序cp rtc /root/nfs/ 复制 rtc到 NFS共享目录下chmod +x /root/nfs/rtc/ 改变可执行文件rtc的属性3通过 telnet获得虚拟机的root权限。然后进入main.c 所在目录。这时候的编译就只需要在main.c所在目录下运行make命令就可以了,它会自动生成可执行文件rtc, 自动复制到NFS共享文件夹中。在开发板上进入 NFS共享文件
18、夹, 运行其中的应用程序。 这种方法对程序的开发极其的方便, 这也是 linux 下程序开发调试的优势之一。8 结论:本文使用PCF8563来代替 CPU上集成的实时时钟,使系统时间不会丢失,在硬件上保证了实时性;精度相对集成实时时钟得到了提高。在其读写程序的编写编译过程中,还对uclinux 下的高效程序开发方法进行了实践。在有较高的精度要求时,可以对时钟的精度进行调整以适应需求。同时这种扩展方法具有一定的通用性,可以在各种单片机和 ARM应用系统中使用,有一定的使用和借鉴价值。参考文献:1 李驹光等 . ARM 应用系统开发祥解 . 北京: 清华大学出版社 ,20032慕春棣 . 嵌入式系统的构建 . 清华大学自动化系试用教材.2003年 1 月3 刘峥嵘、张智超等编著 . 嵌入式 Linux 应用开发详解 . 北京:机械工业出版社 .20044 北京博创科技有限公司 .UP-NETARM3000uClinux 开发指南 .2003
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省许昌市建安区第三高中2026届化学高二第一学期期末达标检测模拟试题含答案
- 四川省达州市开江县普安中学2024-2025学年七年级下学期第三次月考数学试卷(含答案)
- 汉字录入课件
- 北师大版五年级上册数学期末检测卷(无答案)
- Unit1 Friendship单元综合测评卷(含答案)译林版(2024)八年级英语上册
- 3DMAX基础建模知到智慧树答案
- 《企业财务会计》知到智慧树答案
- 电子游戏安全风险防范策略
- “两山”之光:理论与实践知到智慧树答案
- 军事理论(四川卫生康复职业学院)知到智慧树答案
- GB/T 9869.2-2025橡胶用硫化仪测定硫化特性第2部分:圆盘振荡硫化仪
- 保密教育培训课件内容
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 2024-2025学年人教版数学五年级下学期期末试卷(含答案)
- 中华人民共和国政府信息公开条例解读PPT
- 同济大学信纸
- 采气工技能操作题库
- 贵州省遵义市红花岗区小升初数学试卷
- 高压氧治疗相关知识
- 外科学麻醉专题知识讲座培训课件
- 课程设计与评价
评论
0/150
提交评论