基于ARM7的轨道检测仪的设计

时间:2015-04-15来源:网络

  S3C44B0的中断控制器是可以将某个中断设定为FIQ或IRQ类型送至ARM核的。ARM核只有FIQ和IRQ这两个中断信号线,因此处理器需要中断控制器的协作才能确定某个中断来自哪个中断源,S3C44B0提供了两种解决方式:VECTORED INTERRUPT MODE和NON-VECTORED INTERRUPT MODE。VECTORED INTERRUPT MODE可以像CISC处理器那样不同的中断执行不同的中断处理程序,其实现原理是当中断到来时由硬件逻辑根据具体中断源产生一个与之相应的跳转指令放到总线上,ARM核取得该条指令后便立即跳转到相应的处理程序[1]。这样可以提高中断响应速度和简化程序设计,但是这种模式只支持IRQ类型的中断;NON-VECTORED INTERRUPT MODE则像其他ARM处理器一样,由中断服务程序去访问中断控制器的I_ISPR寄存器来确定中断源。

  设计中将光电编码器的中断类型设为FIQ类型,并使用NON-VECTORED方式,其他中断设为IRQ类型,使用VECTORED方式。中断向量表由两部分组成,前部分为ARM核的异常跳转指令,后部分供S3C44B0的VECTORED中断方式使用。中断服务程序可由汇编或者C语言编写,对于FIQ和IRQ类型的C语言函数需要加上__irq宏,编译器才能生成正确的返回指令。

  4.2 软件的整体设计

  由于没有操作系统,启动代码和应用程序是融为一体的,启动代码由汇编语言编写,除前面的中断向量表以外,还负责硬件初始化,将自己从ROM拷贝到SDRAM,初始化各个模式下的堆栈等,完成了上述工作之后程序才能跳入由C语言编写的函数之中去。

  数据采集之外的工作对实时性要求很低,除了键盘扫描和RTC使用低优先级的中断之外,其他部分都包含在主程序循环里。特别需要注意的是,由于中断向量表存放在Flash中,在向Flash写数据的时候必须关闭所有中断,所以需要保存的数据应先放到SDRAM中去,待一次测量完成之后再写至Flash。

  USB控制器CH375的制造商提供了U盘读写的库文件,只需要外部定义读写CH375硬件的函数和将中断服务程序配置到相应的中断,就可以实现对U盘FAT文件系统的操作。

  4.3 编译与调试

  设计采用的软件开发环境是ARM公司的ADS1.2,编译C语言程序时可能会产生用于Semihost通信的代码,其中包含软中断SWI指令,但设计中并未包含SWI异常处理的程序,编译器也没有相应的编译选项去掉Semihost功能,一旦遇到SWI指令便会进入软中断异常。因此可以反汇编机器码,找到对应的函数将其重定义即可。

  5 结束语

  嵌入式系统的特点就在于其应用的针对性很强,设计充分的利用了ARM7处理器的性能和资源,根据特定应用目标构建整个软硬件平台,实现了高性能、低功耗的目标。该系统已成功的用于轨道检测仪样机,对其他基于ARM处理器的嵌入式系统的开发设计具有很好的参考意义。

  本文作者创新点:传统的测试仪器多以单片机为核心,但是单片机速度较慢,资源较少,在许多应用环境中必须对其进行扩展,因此不利于降低系统功耗和提高集成度。将ARM7处理器应用到轨道检测仪的设计是新的信息处理技术与传统应用的一次创新结合,ARM7嵌入式平台在提升系统性能和集成度的同时也改变了以往的系统设计方法,尤其是ARM处理器特有的中断机制可以使实时数据的采集和处理实现起来更加方便和可靠。此外,高效率的供电系统也是本文的亮点。

  参考文献

  [1] S3C44B0X Datasheet [Z]. Samsung. Co. Ltd. , 2003.

  [2] 张俊涛,王长安. 12bA/D转换器MAX197及其应用[J]. 现代电子技术 , 2004,(19) .

  [3] 李新龙, 翟宏范, 狄国伟, 王鑫. USB芯片CH375在电能测量仪系统中的应用[J]. 微计算机信息 , 2006,(26).

  [4] 杜春雷. ARM体系结构与编程 [M]. 北京: 清华大学出版社, 2003.

  [5] 季振华. 基于ARM7TDMI内核的S3C44B0异常处理分析[J]. 微计算机信息 , 2006,(05).

1 2 3

关键词: ARM7 S3C44B0

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版