您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

LPC2294的及时时钟表现工程计划阐发

发布日期:2011-05-16

  LPC2294是飞利浦半导体公司生产的基于ARM7TDMI-S内核的芯片。本文先容一个基于LPC2294的完备的时钟表现计划工程,给出启动代码的细致计划进程,以厦时钟表现应用步伐的重要函敷阐明。此中的启动代码计划进程可供一样平常的基于ARM7TDMI-S内核的嵌入式处理惩罚器芯片参考利用。
  引 言
   
  嵌入式体系因此应用为中间,以谋略机技能为底子,软硬件可裁剪,适应于应用体系对成果、可靠性、本钱、体积、功耗有严格请求的专用谋略机体系。嵌入式体系有巨大和大略之分。通常代码量少的体系完成的成果有限,可以不利用嵌人式操纵体系,直接在裸机上开辟,利用的开辟东西可以是汇编语言和C语言;巨大的嵌入式体系保举利用嵌入式操纵体系。
   
  ARM(Advarlced RISC Machine)是计划这种处理惩罚器内核的公司的名字,ARM核并非芯片。ARM核与其他部件,如RAM、ROM、片表里设,组合在一起才构成实际的芯片。ARM作为一类微处理惩罚器的通称,作为一种低功耗、高性能的32位嵌入衰落处理惩罚器,如今已经被遍及应用在各个范畴中。
   
  ARM应用的开辟东西重要包括集成开辟环境IDE、评估板和JTAG仿真器等。海内利用较多的IDE为ARM公司的SDT、ADS以及英蓓特公司的Embest IDE。仿真器有ARM公司的Muti-ICE和英蓓特公司的Embest系列ARM JTAG仿真器等。
   
  可以在PC机上开辟一个嵌入式体系,利用集成开辟环境编写并编译链接孕育产生ARM处理惩罚器实行代码。然后用仿真器等调试东西调试,并下载代码到硬件上,如图1所示。

  在嵌入式体系的编程开辟进程中,技能难点重要在于体系引导步伐的编写。为此提供一个较完备的小工程,细致阐发在ARM7底子上开辟嵌入式体系时引导步伐的关键代码,并扼要先容应用步伐的重要函数。
   
  LPC2294是基于一个支持及时仿真和跟踪的16/32位ARM7TDMI-SCPU,带有256 KB嵌入的高速Flash存储器。它有极低的功耗、多个32位定时器、RTC模块、WDT模块等。
   
   本文重要是在以LPC2294为内核的ARM小体系中,在不采取操纵体系的环境下,试编写了一个工程,并下载到该开辟板的外部存储器(该开辟板的片外存储器为4 MB片外32位数据总线宽度Flash存储器),接上VFD表现模块后,脱机运行时,表现及时时钟告成。
   
  该工程利用ADS开辟软件,在CodeWarrior IDE集成开辟环境下,编写编译并利用AXD和技创公司的techorICE仿真器诃试,并下载步伐,VFD模块采取PT6311驱动芯片。
   
  工程的步伐重要分两部分:体系引导(BOOT)部分和应用步伐部分。
 
  1 体系引导部分
   
  体系引导(BOOT)是芯片复位掉队入应用步伐之前实行的一段代码,重要是为运行应用步伐提供根本的运行环境,对体系硬件和软件运行环境举行初始化。这些事变是用汇编语言和C语言完成的,是嵌入式体系中应用步伐的开头部分,与应用步伐一起固化在ROM中,并起首在体系上运行。
   
  计划好体系引导(BOOT)是计划嵌入式步伐的关键,也是体系可以或许正常事变的条件。体系引导(BOOT)所实行的操纵重要依赖于CPU内核的范例,以及正在开辟的嵌入式体系软件中必要利用的CPU芯片上的资源。针对该款芯片和应用步伐的体系引导(B00T)代码的流程如图2所示。

     以下按在片内RAM调试该工程时,次序出现的启动代码的有关文件,给出关键代码阐发:;中斯向量表,给出CPU芯片出现非常时应该转去实行的步伐
   
   
       
      
     体系引导模块完成种种初始化事变后,用一条跳转指令进入C的主入口Main,以后控制权移交给了C应用步伐。

     2 应用步伐部分
   
     对付该工程中利用到的LPC2294芯片里的各个模块,如I/O端口、RTC、TIMERl,应该起首在相应函数中对该模块里的各个寄存器全部举行初始化,如许脱机运行时才华顺利表现。
   
     下面扼要先容一下main.c主步伐里用到的各重要函数。
   
      hitVfdl312();
     该函数起首初始化LPC2294的P0口全部为GPIO口。本工程中设置PO.6与P0.7、P0.8为输出,并在硬件连接上分别接到PT6311模块的数据线、片选线、时钟线,然后利用P0.6与P0.7、P0.8送出数据到VFD模块,初始化VFD,舔加初始化数据。实际上初始化为空格,然后全部点亮VFD。
     RTCIni();
     初始化及时时钟并启动RTC。
     TIMERl_InitTimef();
     初始化定时器1,设置每过1ms孕育产生1次停止,即置位定时器里IR中的MR0位;并复位定时器计数器TC。
     TIMERl_StartTimer();
     使定时器1退出复位状态,并开始计时。
     pollint();
     设置变量_mSet、_10mSct、_100mSct,其数值代表的单位分别为1ms,10ms,110ms。随着定时器1的不绝置位停止和复位,它们的数值也相应孕育产生变革。
     GetTime();
     每过1s,读一下RTC里的时间,送到VFD缓冲区。
     UpdateVfdl312();
     每过100ms,读取VFD缓冲区里的数值,革新VFD表现。
 
  结语
   
  把该工程应用于基于LPC2294的开辟板外部存储器后,可以或许脱机运行,VFD及时时钟全部点亮,并且表现时间精确。
   
  LPC2294实用于开辟税控配置。税控配置上有较多的模块,VFD客显模块是此中之一,可用来表现时间。
   
  这个工程是一个较完备的工程,可以在该工程上扩展税控机的其他模块和应用步伐等。不必要窜改启动代码,只需在mian.c和其他应用步伐中添加相应的函数。以期以后开辟成一个完备的税控机体系。