谢加明 广州市花都区技工学校 510800
【文章摘要】
为了实现快速有效的数据采集和数模转换,采用基于ARM9 微控制器S3C2410 和嵌入式实时操作系统μC/ OS- Ⅱ的多任务A/D 采集系统。不仅能够以高精度、可靠、稳定、实时完成多路模拟量信号以及开关量信号的数据采集, 并实时在LCD 显示。系统软件在ADS1.2 编译环境下完成,采用C 语言与汇编语言混合编程,充分利用了不同语言的优点。文中构建了系统的总体的设计方案,详细给出了硬件电路设计的方法,同时介绍移植μC/OS-II 嵌入式操作系统的关键以及软件设计的要点。
【关键词】
S
中图分类号:TP274.2
0 引言
在当今计算机技术得到快速稳定的发展,人们对所取的信息越来越大,考虑在便携式计算机上处理的各种领域的信息,新的嵌入式技术应运而生,它综合了先进的半导体技术、计算机技术、、电子技术等,也包括了不断创新的知识集成了体系。以至于嵌入式应用产品的大规模生产,它的应用范围出现在智能机器人、移动终端等领域,特别在信息时代,人们对信息领域的需求量逐渐增大,数据采集和图像采集及其应用技术受到了重视和应用。正是由于科学技术的发展,数据采集和人脸识别系统正向以着高精度、集成化和微型化的方向发展。目前,作为一个独立的大多数的数据采集监控系统,只能完成数据的工业现场采集或储存,这样满足不了实时通信。现代数据采集系统的发展正是依赖于嵌入式系统基础之上的完成。比如,基于ARM920T 内核的数据采集和处理系统是单片机应用领域中使用最成熟的一类系统。数据采集是获取信息的基本手段, 数据采集系统可对物理量进行采集、存储、处理和显示, 实现对物理量的监测或控制, 将处理后的数据送到显示设备进行显示, 也可通过串行口送给其它计算机。以嵌入式系统为平台的数据采集系统就应运而生。在嵌入式系统中,主要涉及到可移植性、可裁剪性、系统服务、中断管理、稳定性和可靠性等几个过程。针对系统具有需要可靠性,稳定性、实时性的特点,嵌入式数据采集系统将具有十分广阔的前景。
1 系统总体设计
系统总体设计主要包括软件设计和硬件设计。该系统以ARM9 微控制器S3C2410 为中心的硬件和基于嵌入式实时操作系统μC/OS- Ⅱ的软件两部分而成。底层硬件层是数据采集系统,它主要完成实时数据采样、编码、并送入模数转换器变成数字信号,然后对通过协议传至尚上位机。上位机通信接口将实时数据发送到LCD 显示,系统框架如图1 所示。
其中最上层是AD 采集系统的应用程序层,分成5 个任务,分别是主任务,三通道的AD 任务,LCD 刷新任务。各个任务的优先级设置为12,20,21,22,23。便于任务管理与调度。中间层是μC/OS- Ⅱ操作系统,最底层则是硬件层,以微控制器S3C2410 为核心的硬件平台。
2 硬件设计
系统资源以ARM9 微控制器为核心, 外围电路资源有电压调整电路,AD 采集电路,JTAG 电路,时钟复位电路,RS232 电路,LCD 显示电路,电源电路等,硬件系统设计框图如图2 所示。
2.1 模拟量输入电路
S
2.2 RS232 通信接口电路
S
2.3 LCD 驱动电路
S
2.4 电压调整电路
该电压调整电路产生最大电压值为3.3V,最小为0V。在电路中采用最大电阻为10K 的电位器来产生不同电压值。其中L1001 是高频磁珠,用来隔离和储能作用。通过AIN0、AIN1、AIN2 调节按钮来实时更新显示。如图5 所示。
3 软件设计
软件设计主要涉及包括嵌入式实时操作系统μC/OS-II 的移植以及相关任务子程序设计。
3.1 μC/OS-II 在S
在该系统采用了嵌入式实时操作系统μC/OS-II, 内核具有多任务抢占式可固化实时特点。支持64 个任务, 最多可以支持56 个用户任务,其中统计任务优
图1 嵌入式AD 采集系统框图
图2 硬件电路系统框图048
软件开发
Software Development
电子制作
先级比空闲任务优先级高,分别是64 和63。软件调试平台采用ADS1.2 , 可以生成可执行文件并用AXD 软件调试。首先将μC/OS-II 移植到S3C2410 处理器上, 需修改的文件主要包括。它们分别是内核文件(OS_CPU.H 文件,OS_ CPU_C.C) 文件和启动代码文件(OS_CPU_A.S 文件)。对于内核文件中的OS_CPU. H 文件, 根据AXD 仿真器要求修改数据参数主要涉及:类型定义、宏定义、堆栈单位、堆栈增长方向。对于内核中另一个文件OS_CPU_ C.C , 它采用用C 语言编写6 个操作系统相关的函数(Function OSTaskCreateHook, F u n c t i o n O S T a s k D e l H o o k , F u n c t i o n OSTaskSwHook, Function OSTaskStatHook, Function OSTimeTickHook,Function OSTaskStkInit)其中被可以简单地空函数是前5 个函数。而对于启动代码文件OS_ CPU_A.S 中编写4 个与处理器相关的函数都是采用汇编语言, 即function OSStart HighRdy() 作为运行优先级最高的就绪任务) 、function OSIntCtxSw ()( 中断级的任务切换函数) 和 ,function OS2TASK2SW() ( 任务级的任务切换函数) 、function OSTickISR()( 时钟中断处理函数) 。整个μC/OS-II 移植过程基本上采用汇编语言。
3.2 子程序设计
任务子程序包括几类程序。它们是系统初始化程序、A/D 数据采集处理程序、初始化系统消息、LCD 显示程序、串口初始化及处理程序等。待系统初始化和启动以后, 数据采集系统程序完成启动模数转换, 将采集数据存入存储器中(NAND flash)并送入显示缓存区。通过显示程序把将存储器中缓存区数据进行显示在LCD 屏幕上。负责输出当前的电压值由串口处理程序来完成,初始化A/D 设备将在主任务程序中启动,实时显示出以采集到的电压值作为幅值显示一个周期为π/10 的正弦波形。以及调用各种子程序和中断服务程序相互嵌套调用。系统通信程序包括串口通信, 是系统软件设计的关键。程序流程图如图6 所示。
LCD 显示任务主要是通过任务优先级的高低,来调整任务运行来实现。正弦波形的显示主要通过创建设备上下文DC,即函数CreateDC()。初始化ADC 则通过init_ADevice() 函数实现。该函数放在Main_Task 任务中,如果放在其它的子程序中,始终无法实现。因为主任务的任务优先级大于AD 任务的优先级,在AD 任务中采用GetADresult() 来保存采集到的数据。然后将这些数据作为幅值显示一个周期为π/10 的正弦波形。图形结果如图7 和8 所示。由于图形较多,只列出电压值为3.2V 时的波形图。
4 结束语
在设计中,主要是针对微控制器S3C2410 数据采集系统进行研究与设计。系统以32 位ARM902T 为内核,充分利用现有硬件资源, 以其自带的ADC 作为模数转换器件,提高了转换效率以及系统的实用性。软件方面移植了实时操作系统μ C/OS-II 内核, 系统易于构建, 便于扩展, 系统的可靠性和实时性也得到很大提高, 具有较良好的应用前景。
【参考文献】
[1] 陈平, 欧阳斌林. 基于ARM 的数据采集系统的设计[J]. 东北农业大学学报,2008,(4):99-101.
[2] LABROSSE JJ. 嵌入式实时操作系统μ C/OS-II [M]. 邵贝贝, 译. 名北京: 北京航空航天大学出版社,2003.
[3] 李莉, 夏路易. 基于ARM 处理器和嵌入式实时操作系统的数据采集装置设计[D]. 太原:太原理工大学, 2006.
[4] 周立功等.ARM 嵌入式系统基础教程[M]. 北京:北京航空航天大学出版社,2005.
[5] 靳其兵. 单片机数据采集卡及其实时多任务机制的实现[J]. 自动化仪表,2002 ,23(6):33-35.
[6] 刘锐, 王林. 基于ARM 数据采集系统的设计[J]. 中国测试,2010,36(4):89-92.
[7] 唐明军, 杨润贤. 嵌入式数据采集系统的设计[J]. 仪器仪表与检测技术,2009,28(10):100-102.
图6 程序流程图
图7 串口显示图
图4 LCD 驱动电路
图8LCD 显示采集结果图
图5 电压调整电路
图3 RS232 电平转换电路图049