基于ARM的便携式智能仪器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ARM的便携式智能仪器的设计
Design of Portable Intelligent Instrument Based on the ARM
陶定雄1,刘益成2
(长江大学电子信息学院,湖北荆州市 434023)
摘要:本文介绍了一种基于ARM的便携式智能仪器,并给出了该仪器的软、硬件设计方案。
详细论述了仪器的硬件组成和设计,简要说明了移植µClinux嵌入式操作系统的关键和对操作系统的扩展设计,最后以信号发生功能部分为例给出了信号发生器的设计方法。
关键字:嵌入式系统;ARM;µClinux;移植;信号发生
中图分类号:TP 文献标识码:B
Abstract: A kind of intelligent instrument based on the ARM is introduced in the paper, and the software and hardware are given. The hardware composition and design are expounded, and the cruxes of porting and the extended design of µClinux embedded operating system are simply explained. Finally, the methods of design of signal generating task as the case of signal generating function is given.
Keywords:embedded system;ARM; µClinux; port; signal generating
0.引言
信号发生器、频谱分析仪、数字示波器等电子仪器是科研人员进行科学研究及试验的重要工具。
考虑到科研人员在室外、尤其是野外,测量分析条件的不便,设计了一台低功耗、多用途的便携式智能仪器,它具有产生正弦和方波信号、最大4通道信号采集、对采集的数据进行图形显示和频谱分析,以及可通过USB接口与PC机进行通讯的功能。
仪器基于ARM嵌入式处理器来设计,逻辑上,采用硬件层、系统层、应用层三层次的设计方案,其中系统层和应用层构成仪器系统的软件部分。
根据IEEE的定义,嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”。
从广义上说,也指以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统且对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统以嵌入式处理器为核心,如微控制器(MCU)、数字信号处理器(DSP)、片上系统(SOC)、可编程片上系统(SPOC)。
ARM是英国ARM公司设计的通用32位RISC微处理器体系结构,目前,基于 ARM的SOC以微型化、低功耗、高性能的设计目标几乎占据了嵌入式处理器的半壁江山。
1.硬件设计
根据智能仪器的功能要求,硬件层由系统核心部分、数据采集部分和信号发生器部分组成。
硬件原理图如图1。
1.1系统核心组成介绍
微处理器选用目前常见的三星S3C44B0X芯片,芯片内核是带8K Cache的ARM7TDMI 核,工作频率66MHz。
存储器以SST39VF160 Flash ROM(2MB,16Bit)作为程序存储器,以HY57V641620 SDRAM(8MB,16Bit PC100/PC133)作内存,构成嵌入式系统核心。
从功耗、成本考虑,液晶显示屏选用640*480分辨率单色全反射LCD,适于强光野外工作,屏幕刷新率由CPU内部提供的LCD控制器完成。
另外为了减轻CPU的工作压力,使用FPGA芯片实现键盘输入和向A/D转换器提供转换时钟信号的功能。
图1 硬件原理框图
1.2数据采集部分设计
数据采集部分要求达到4通道、0-5V信号输入、单通道6MHz,4通道1.5MHz的最大采样频率。
所以模数转换部分采用TI公司THS1206 12位A/D转换器,除了高精度外,它还具有6MSPS高转换效率、低功耗(最大216mW)、高信噪比(68dB)的特点。
电路连接采用4路单端输入(每路转换率1.5MSPS),中断方式接受数据。
为保证高精度,减少数字噪声对模拟信号的影响,在电源输入端加去耦电路,同时印刷板将数字信号、电源、地线分层布线,减少模拟信号干扰。
另外A/D转换前的信号放大器的放大倍数的准确度以及时漂、温漂等问题都会影响数据采集的精度,对信号放大器进行校准是十分必要的。
所以使用美国TI公司的自校准信号放大器TLC4502配合TLC4501进行信号自校准,提高数据采集的精度。
1.3信号发生器部分设计
信号发生器部分要求产生频率范围为10Hz-10KHz的正弦和方波信号,分辨率0.1Hz。
这部分的核心是使用美国TI公司的基于数字合成(DDS)技术的频率合成芯片AD9850。
它在125MHz时钟下,输出频率分辨率可达0.0291Hz,其内部包括相位累加器和正弦查找表。
查找表把输入地址的相位信息映射成正弦波幅度信号,然后驱动10bit的DA变换器,输出2个互补的电流。
AD9850包含5字节频率/相位控制字,可通过并行或串行方式送入。
并行方式连续输5次,每次同时输入8位,通过8位总线D0~D7将外部控制字输入到寄存器,在W_CLK的上升沿后,通过F1_UD(频率更新时钟)将5字节数据从输入寄存器装入到频率/相位寄存器中。
2.软件设计
软件部分主要由系统层和应用层组成。
系统层设计首先是进行嵌入式操作系统内核的移植,再对内核扩展形成一个简单、高效的操作系统。
应用层设计是在操作系统的基础上进行信号发生、信号采集、频谱分析任务的设计。
逻辑上,软件与硬件之间有BSP(板级支持包)形成过渡。
2.1系统层
系统层以免费、成熟的µClinux操作系统内核为基础进行移植扩展。
所谓移植,是指使一个操作系统能够在某个微处理器平台上运行。
在移植µClinux之前要做一些准备工作,比如调试器是否可以正常工作,交叉编译环境的建立等。
然后,再开始启动代码的移植和µClinux的移植。
移植µClinux主要解决以下几个问题:
a) 引导程序Bootloader的移植;
b) µClinux针对硬件的改动;
c) µClinux的移植;
引导程序移植的关键是修改与开发板相关的源文件,µClinux针对硬件的改动即针对不同的开发板作相应的改动。
µClinux的移植首先要对内核进行配置,关键是修改内核,而编译内核时不能简单地通过make来实现,要有一定的步骤,然后配置生成µClinux的文件系统,下载到开发板上并运行µClinux,当µClinux内核比较稳定并不需要经常修改的时候,将它下载到开发板的Flash中,这样就完成了开发板µClinux的移植。
在µClinux提供的任务调度内核的基础上通过设计驱动程序模块、操作系统的API函数、系统任务、任务调度模块等模块对操作系统内核进行扩展。
通过设计实现LCD和USB设备的接口函数,建立驱动程序模块,使操作系统API函数和底层硬件分离开;操作系统的API 函数部分主要是设计图形用户接口(GUI)函数,建立系统API函数库;系统任务部分设计液晶显示屏刷新任务、按键扫描任务两个基本任务,并随操作系统的启动而启动。
2.2应用层
2.2.1任务设计
在系统层提供的API函数和任务调度模块的基础上,设计主任务、信号采集任务、频谱分析任务、信号发生器任务来分别完成开机主界面操作、4通道信号采集及图形显示、采集信号的频谱分析、信号发生器功能。
主任务,即开机操作界面,基于系统层提供的图形用户接口(GUI)函数完成用户功能选择,并创建所选功能的任务,通过系统层任务调度模块运行任务:信号采集任务利用12位A/D转换芯片输出值经v=(Vmax/212)*D12计算得到电压值,其中Vmax是信号上限值,D12为A/D转换芯片输出值,利用系统层提供的绘图函数建立二维坐标系,绘制曲线图形,图形的刷新最终由操作系统的LCD刷新任务实现;频谱分析任务:利用快速傅立叶(FFT)算法进行信号的时域向频域的变换,同样调用系统层绘图函数绘制频谱图,考虑到液晶显示屏仅支持16级灰度显示,采用图像抖动算法表现256级灰度的效果。
系统硬件、操作系统、LCD的初始化部分由应用程序入口函数Main函数调用执行,Main函数流程如图2(a),其中主任务流程如图2(b)。
图2(b)主任务流程
图2(a)程序入口Main 函数流程
2.2.2信号发生器任务
信号发生器任务的原理以AD9850芯片为基础,AD9850包含5字节的频率/相位控制字,通过并行方式将5字节的频率/相位控制字送入芯片,从而输出相应频率的信号。
任务流程是:由按键扫描任务计算出任务输入的要求产生的频率值F(3个字节),通过输入频率F 与AD9850频率擦/相位控制字的转换关系:△F=232*F/CLKIN(CLKIN 为外部参考时钟),得到的输出频率控制码△P ,△P 构成了频率/
相位控制字的低4位字节的值,频率/相位控制字的最高1个字节是控制信息,通过并行方式先将高字节 的控制信息送入芯片,再分4次(每次1个字节)送出计算得到的4字节的△P 值。
信号发生器任务软件流程如图3。
3.结束语
在仪器设计过程中,我们充分考虑了嵌入式系统对功耗、尺寸和成本的敏感性,除了在硬件器件的选择设计上,以低功耗、小尺寸、低成本为目标外,鉴于低功耗RISC CPU的工作主频越来越高,数据吞吐量和处理速度也增加了很多,因此在软件方面考虑移植操作系统时对内核进行裁剪和配置,达到增强数据管理、实现多任务调度、缩短开发周期,提高程序可维护性的目的。
设计这样一台低功耗、多用途的便携式智能仪器,对改善和解决科研人员室外特别是野外试验研究不便的问题有着广泛的应用意义。
本文创新点:在基于ARM7的基础上采用嵌入式µClinux操作系统进行便携式智能仪器设备的开发,采用嵌入式MiniGUI进行图形界面的开发。
参考文献:
[1] 金敏,周翔,金梁,嵌入式系统-组成、原理与设计编程.人民邮电出版社.2006.
[2] 田家林,陈利学,寇向辉.LINUX嵌入式操作系统在ARM上的移植.微计算机信息.2007, 4-2
[3] 毛伟云,陈明,丁力.ARM嵌入式处理器在智能仪器中的应用.计算机技术与应用.2007, 01)
[4] 王晓宁,史俊富.A/D高速采集模拟信号的阀值设定.单片机与嵌入式系统应用.2005, 11.72
[5] 徐荣珍,李从心,李加文. 基于ARM7TDMI处理器的嵌入式系统启动流程.计算机工程,2006,02)
作者简介:陶定雄,男,长江大学电子信息学院,在读硕士,主要研究方向:嵌入式系统.
刘益成,男,长江大学电子信息学院,教授,主要研究方向:信息处理。
Biography:Tao Dingxiong, Male, Electronics & Information College of Yangtze University, Master Degree, Research Direction: Embedded System.
Liu Yicheng,Male,Electronics & Information College of Yangtze University,professor,Research Direction: Information Processing.。