TurboC在嵌入式PC104系统中的应用.pdfVIP

  • 7
  • 0
  • 约8.52千字
  • 约 6页
  • 2017-09-15 发布于重庆
  • 举报
TurboC 在嵌入式 PC/104 系统中的应用 The application of TurboC in the embedded PC/104 system 邓智敏 Deng,Zhimin 摘 要:本文介绍了 TurboC 在嵌入式程序设计中的特点,并结合 TurboC 实例,详细介绍了 PC/104 系统中,应用中断完成数据采集、处理及显示的方法和技巧。 关键词:TurboC;嵌入式系统;PC/104 Abstract : This article introduces the characteristic of TurboC in the embedded programming,and programs with TurboC respectively explain the method and technique of data-acquisition,data-processing and data-showing by interrupt under PC/104 system. Key:TurboC;embedded system;PC/104 1 引言 随着电子技术的高速发展,嵌入式计算机已得到了广泛的应用。PC/104 就是专门为嵌入式控制 而定义的工业控制总线,它是一种优化的、小型、堆栈式结构的嵌入式控制系统,其有效信号线和 控制线完全与 PC 和 PC/AT 兼容。在 PC/104 系统中,一般的硬盘是不适用的,常使用 Flash EEPROM 固态电子盘,其存储空间一般较小,无法使用 Windows 下的编程语言,而汇编语言的执行速度虽快, 但移植性较差,调试较复杂,不宜在复杂系统中使用。TurboC 则既有低级语言的直接控制硬件的能 力,又有高级语言的灵活性,易于维护,是目前嵌入式 PC/104 系统中应用较广泛的编程语言。在我 们所设计的国产某型大气数据计算机的外场检测仪就是 TurboC 与PC/104 的结合。 2 用 TurboC 编写中断服务程序 所谓中断是指CPU在正常运行程序时,由于程序的预先安排或内外部事件,引起CPU中断正在运 行的程序,而转到为预先安排的事件或外部事件服务的程序中去。由于我们的检测仪要求实时地检 测并显示大气机输出的各种参数,在时间上又不是非常精确,为了实现这一任务,我们利用了中断 向量表中类型码为 1CH的定时器中断。它以每秒 18.2 次的频率进行时钟硬中断(使用中断请求IRQ0 ), 即执行 8 号中断。这个中断周而复始的在运行,在它的中断服务程序中除了进行日时钟计数和磁盘 驱动器超时检测控制外,接着又进行 0x1C的软中断调用,0x1C软中断只有一条返回指令,它不做什 么事情,因而我们利用这一特点,修改该向量使其在中断时指向我们自己定义的中断服务程序的入 口,完成特定的工作,使我们的数据采集在“后台”工作,而数据处理及显示在“前台”工作。所 要注意的是,我们所编制的中断服务程序的执行周期应小于原有中断的执行周期(1/18.2 秒),以免 造成系统崩溃。 一般地讲,编写这类程序应首先定义一个中断类型的句柄: void interrupt for handler( ); 然后将我们所编制的中断服务程序安装在所要替代的中断 INTERRUPT 上。 oldhandler=getvect(INTERRUPT); setvect(INTERRUPT,handler); 注意应将中断 INTERRUPT 保存在 oldhandler 中,以便在程序结束时恢复,恢复时用 setvect(INTERRUPT,oldhandler)完成。 3 系统简介 3.1 系统硬件构成 由于我们所要检测的大气机输出三种类型的数据,即模拟量、开关量和串行数字量,我们采用 了 CPU 卡配套数据采集卡的模式,使用的是 Advantech 公司生产的 PCM-3350CPU 模块、PCM-3718HG 可编程 12 位数据采集卡(带 16 位 DI/DO)和 PCM-3610 串口通讯卡,系统构成如图 1。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档