APP下载

基于嵌入式系统的传感器应用试验设计

2019-04-23

微型电脑应用 2019年2期
关键词:编译器嵌入式交叉

(广州大学 机械与电气工程学院, 广州 510006)

0 引言

计算机技术是现下时代发展的核心技术之一,而在计算机技术的支撑之下,产生了嵌入式系统,此系统具备较强的串联能力,能够同时具备控制灵活、智能化和互联性等特点,而因为此类特点,此系统能够应用于工业控制、环境工程等多项领域,而在领域应用当中,实现嵌入式系统的即为嵌入式系统的传感器,因此为了充分地了解嵌入式系统中传感器的应用,本文对基于嵌入式系统的传感器应用试验设计展开了研究分析。

1 硬件电路设计

1.1 反射型光电传感器应用设计与分析

设计主要基于光电感应领域进行设计。在本文的嵌入式系统设计当中,运用了多种不同的传感器,具体分析来看多项传感的应用结果显示,本文设计对于反射型光电传感器应用最为频繁,因此类传感器同时具备了两项功能,即在进行黑白颜色的路径导航的同时,还能够兼顾障碍物检测的应用[1,2]。

因反射型光电传感器的应用频率最高,所以本文对此进行针对性分析。首先对反射型光电传感器的原理进行分析,其基本原理在于:在传感器内部结构当中,其备有一个红外发光管和一个红外接收管,此时当红外发光管发出的光与待测物体进行接触之后,就会产生反射光线,而反射光线会在之后被接收管接收,从而对接收管的电阻会产生相应的影响,一般情况下这种变化会在电路上以电压的变化形式来进行表现,此时再结合ADC转换或LM324等电路的处理,即可得到准确的输出结果[3,4]。

基于以往相关研究可以得知,接收管所接收到的红外信号强度将直觉决定电阻的变化趋向,如图1所示[5,6]。

在此理论基础上因为本文的反射型光电传感器设计,主要采用了一体化设计结构,通过采用红外光来进行感应,因红外光对于常见光的干扰具有较高的抵抗能力,从而采用本文的设计,能够在类似智能导航小车、机器人等制作领域内,得到良好的应用结果[7,8]。

图1 嵌入式系统实物图

在传统的黑白颜色路径导航的基础上,本文所设计的嵌入式系统的检测原理为:因为黑色具备较强的吸光功能,所以在红外发射管发出的光照,并与黑色表面进行接触之后,其产生的反射光较小,进而接收管能够接收到的红外光总量也就较少,此时电阻表现方面会显示出电阻比较大的结果,最终采用外接电路即可对检测的状态、数据等进行读取[9,10]。同理,当照射在白色表面时,反射的红外光就比较多,表现为接收管的电阻就比较小[11,12]。

1.2 反射型光电传感器加装滤色片应用与分析

设计主要参考了以往的研究,进而得知要改变红外光管的光谱特性,可以通过加装滤色片来实现。通过加装滤色片的工艺,首先能够实现红外光管的光谱特性的改变,并在此前提下方面制造多种颜色传感器,同时还能够对不同颜色的路径进行识别,反射型光电传感器应用基本的电路原理图,如图2所示。

图2 反射型光电传感器应用电路原理图

对图3进行分析:

图3 反射型光电传感器模块电路实物图

图中R1为限流电阻,而限流电阻的大小会决定红外发光管的发射功率,其原理在于R1越小,红外发射管的功率就越大,而在此基础上也就说明当系统检测的距离越远,就会增大功能消耗。在上述分析之下本文的系统设计主要根据系统测试情况来对合适的限流电阻进行选择;图中R2为分压电阻,本文的系统在对R2的选择、采用红外接收管主要结合内阻,因为R2和接收管构成分压电路,因此R2的大小和接收管的电压变化有关。其阻值的选择需要在实际的测试环境中进行调整。

本设计主要采用LM339AM来进行配置。LM339AM主要用于实现比较器的功能,LM339AM的同相端主要与一个可变电阻进行相连,以此即可实现对参考电压的调节,进而支撑反相端接光电传感器的输出。而当同相端电压超过反相端时,系统的输出管将会截止,并相于输出端开路,由外接的上拉电阻R4提供一个高电平。当反相端电压高于同相端时,输出管饱和,相当于输出端接低电位。当2个输入端电压差别大于10 mv就能在输出端得到电平状态的变化。按图2的原理图设计印制板图,和微控制器的接口只需要3根连线:电源(VCC),可接3.3 V或者5 V地(GND),状态输出(OUT)。最终的实物图如图3所示。

1.3 嵌入式控制系统集成处理器

在本文的设计当中,将嵌入式控制系统硬件电路定义为传感器的搭载平台,所以对于本文的传感器而言,搭载平台的最核心的组成,有着很关键的作用。选用合适的嵌入式集成处理器并搭载合适的嵌入式操作系统对整体平台的搭建,就显得尤为重要。

基于目前的科技水平,嵌入式集成处理器有着较多的种类,而为了良好的区分其各自的型号,主要会依照处理器的总线数据宽度来进行分类,主要可氛围32位与64位两种。而在此前提下,较常使用的处理器架构有POWER架构、MIPS架构、ARM 架构。其中ARM架构的应用范围最为广泛,其能够生产出大量的基于ARM核心的集成产品。并且ARM架构其性能方面,相较于其他两种架构具有较多的优势,所以本文主要选择了ARM架构的 AT91SAM9263作为设计集成处理器。

2 系统软件设计

2.1 嵌入式系统的传感器系统软件设计

本文在对反射型光电传感器的硬件电路设计完毕之后,即开始对系统软件进行设计。本文的系统软件设计的思路为:首先确保系统软件的基本读取程序便捷性,进而能够实现直接利用微控制器的GPIO的输入功能,就能够对引脚的电平变化进行读取的功能。在上述前提下,本文设计的嵌入式系统平台采用了Cortex-m3内核的微控制器LPC1768,具体原因在于此控制当中的GPIO微控制器的操作系统非常简单,有助于本文设计的便捷性,其基本操作流程如图4所示。

图4 GPIO操作流程

基于图4,在进行具体的路径识别的设计时,因为设计需要对相应算法进行考虑,所以在以下设计流程中,主要以最基本的黑白线循迹为基础,进而采用最简单的循迹算法来进行设计。假设在3个反射型光电传感器的基础上,来对路径进行检测,检测的背景为白色背景的KT板,同时在KT板上放置黑色的导航条,以此实现路径与路径引导。进而通过传感器的检测,其在经过黑线时,会呈现出输出高电平,相反检测到白色背景时输出低电平。

2.2 嵌入式控制系统软件平台搭建

基于当前普遍使用的嵌入式操作系统得知,LINUX以及WINCE的应用相对广泛,但出于对适用性的考虑,本文主要采用了LINUX操作系统。LINUX操作系统可以同时对许多硬件设备、应用程序、网络协议提供良好的支持,同时具备较强的扩展性。在于传统的专有嵌入式操作系统相比之下了解到,在采用LINUX操作系统进行设计,能够实现对新出现的硬件平台、设备也可快速的进行支持。所以在LINUX系统的多重优势之下,本文才采用嵌入式 LINUX作为搭载平台的操作系统。但既然本文选用了嵌入式LINUX作为操作系统,那么在设计方面,就必需在处理器上为其搭建合适的平台环境,以此才能支持嵌入式LINUX系统平台搭建,具体步骤如下:

1) 建立合适的交叉开发环境;

2) 移植合适的系统引导加载程序;

3) 裁剪并编译 Linux 内核;

4) 为 Linux建立根文件系统;

2.3 嵌入式交叉开发环境的建立

一般来说,每一个嵌入式操作系统都会包括3 种编译器以及 3 个版本的标准头文件,在此基础上要对嵌入式系统进行运作,就需要CPU具备高强度的运算能力,以此才能满足其储存空间的相应需求,但如果环境不存在合适的工具和主机系统配合,那么要在嵌入式系统上调试应用程序将具备较高的难度,此处本文基于适用性的考虑,为解决这项局限性,在设计思路当中引入交叉开发设计[13]14]。交叉开发即为是在主机系统上编译和构建应用程序,然后将编译好的应用程序在嵌入式系统上运行。采用交叉开发的好处在于,设计可以利用开发主机的强大功能来运行编译器、调试器、编辑器等工具,在开发板上只需执行专门为它设计的应用程序[15][16]。

嵌入式交叉开发环境的建立步骤:在目前的研究上得知,当前关于搭建交叉开发环境的方法种类较多,其所应用的体系结构存在差异,并且在不同的操作方式甚至是不同版本的内核,都会用到不同的交叉编译器,本文的设计主要考虑到适用性,所以进行以下设计:

首先,设计并建立了Linux的交叉开发环境,主要配备了以下工具:gcc(GNU c 语言编译器);binutils(GNU下二进制工具);glibc(标准 C 库)以及 Linux 内核头文件。逐一分析方面:Gcc 是用来生成 arm-linux-gcc 交叉编译工具;Binutils 是二进制程序处理工具,包括编译器连接器、汇编器等目标程序处理的工具;glibc 主要是提供用户程序所使用的一些基本的函数库。

建立交叉开发环境的步骤:

1) 准备编译环境。此阶段,首先对binutils、gcc和glibc 等文件代码包进行下载,为工作目录的创建提供基础。在工作目创建完毕之后将其命名为~/armlinux,之后在~/armlinux下边分别创建source、kernel、build,最终源代码包放入~/armlinux/source 内,目录复制过来,进而创建如下目录

~/ armlinux/source

~/ armlinux/buildlogs

~/ armlinux/patches

~/ armlinux/linux-2.6.30

~/ armlinux/***/arm-linux-build

2) 编译binutils。首先对binutils文件包进行解压,并在binutils的目录基础上,创建 arm-linux-build目录,arm-linux-build目录的功能在于配置编译工作目录。之后对提前设置好的configure文件中的相应参数进行编译,依照编译的结果,把新生成的工具添加到环境变量 PATH中,最终采用export来添加命令,并对PATH=PATH:Linux参数进行设置,以此即可启动脚本目录。

3) 编译GCC的辅助编译器。首先对gcc源码包进行解压,同时对t-linux文件进行初步配置,以此来修改configure文件中的指定目标版结构、指定安装路径、指定内核头文件所在路径等相关参数。之后即可使用不使用共享库、不使用线程库、支持C语言命令等功能。最终对make进行编译编译。在上述搭建完毕之后即可执行make install 来实施安装,如此就使得辅助的编译器搭建完成,可以在编译glibc的时提供应用帮助。

4) 编译完整的GCC编译器。首先启用libc,以此可以对其中的临时配置文件进行去除,在此前提下,将辅助编译器进行关闭,进而正确的配置configure中的路径、体系架构、头文件路径等参数。在上述设计完成之后分别执行make、make install,交叉开发环境就搭建完成。

3 实验结果

为了验证传感器搭载平台能否正常工作,本文在平台上搭载了反射型光电传感器来进行试验。并将此系统集成后,放置在实验环境中进行了模拟实验。

试验结果显示:本文所设计的嵌入式控制系统,在与单片机控制系统、电源控制板进行组合之后,能够成功的应用于传感器搭载平台。对搭载平台的运行参数进行分析看到,供电用实验室稳压电源模拟。在经过长时间的试验后,对结果进行了分析,发现传感器搭载平台可以顺利完成系统所需工作。说明本传感器搭载平台设计成功。

4 总结

本文设计主要将相关参数和传感器应用的参数相结合,采用了基本的循迹算法让操作者能够进行编程的练习。本文的设计思路方面,首先对硬件电路进行了设计,设计当中主要涵盖了反射型光电传感器应用设计与分析、反射型光电传感器加装滤色片应用与分析、嵌入式控制系统集成处理器三个部分,之后对系统软件进行了设计,主要涵盖了嵌入式系统的传感器系统软件设计、嵌入式控制系统软件平台搭建、嵌入式交叉开发环境的建立三个部分,在软硬件搭建完毕之后,得到一个完整的嵌入式系统模型,之后为了验证模型的有效性,进行了实验结果分析,说明本文设计成功。

猜你喜欢

编译器嵌入式交叉
基于IMX6ULL的嵌入式根文件系统构建
菌类蔬菜交叉种植一地双收
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
面向理想性能空间的跨架构编译分析方法
运行速度大突破华为《方舟编译器》详解
基于ARM嵌入式的关于图像处理的交通信号灯识别
“六法”巧解分式方程
TS系列红外传感器在嵌入式控制系统中的应用
连数
连一连