你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

环境传感器:用于 Android 的硬件抽象层

[复制链接]
STMCU小助手 发布时间:2023-4-22 12:33
前言
本应用笔记为将意法半导体环境传感器 (气压、湿度、紫外线传感器)成功集成到Linux/Android 操作系统提供指南


1文档概述
本文档描述如何将意法半导体环境传感器集成到 Linux/Android 系统。
它提供关于如何管理此任务的详细信息和流程。
您可以通过当地销售代表获取文档中提及的 ST 代码。
为了成功集成不同类型的传感器,除了问题和可能的解决方案,还将讨论传感器 HAL (硬件抽象层)的配置文件。
最后,还将描述该库的编译和安装。
1.1 Android 传感器 HAL 概述
Android 传感器 HAL 是提供从内核空间驱动程序到 Android 传感器服务和 Android 传感器管理器的链路的库。
Android 传感器框架的架构如下图所示。


2RK7`$B3TXDR1Q[Y0U95[SU.png

1.1.1 Kernel
该层包含使用输入子系统 (所有输入设备的通用 Linux 框架)创建的 Linux 设备驱动。数据通过 Sysfs 虚拟文件系统导出到用户空间 (/sys/class/input/)。驱动通过稳定的 Linux 子系统 I²C 从 / 向传感器接收 / 发送数据。

1.1.2传感器库
这些库用于为上层创建复杂接口。通过 SensorManager 类、传感器服务类和传感器 HAL 完成此任务。

1.1.3应用框架
apk 应用使用该层从传感器获取数据。通信从创建传感器服务实例的 SensorManager 类开始,通过传感器 JNI (Java 本地接口)到达下层。

2测试环境 / 生态环境
本文档适用于下列测试环境:
• Panda board:
– 处理器:Omap4430
– 测试板:PandaBoard ES Rev B2.
• 主机:
– HP EliteBook 8470p
• Linux:
– Ubuntu 13.04
• Android:
– KitKat-4.4
• 编译环境:
– androidearm-eabi7

2.1将传感器连接到 PandaBoard
我们的意法半导体 DIL24 适配器 STEVAL-MKI141V2、 STEVAL-MKI142V1 和 STEVALMKI165V1 分别使用 “HTS221 湿度传感器 ”、“LPS25H 气压传感器 ” 和 “LPS25HB 气压传感器 ” 进行测试。
将适配器连接到 PandaBoard 的 J3 扩展连接器;使用 I²C 总线执行测试。
举例来说,对于下图中的 STEVAL-MK141V2 (可以对另外两块适配器重复相同步骤),假设适配器的脚位如下:


KBX3XJ@NQ1}%_`9PN~(]YOP.png


引脚 1:Vdd ;引脚 2:Vdd_IO ;引脚 19:CS ;引脚 20:SCL ;引脚 21:SDA ;引脚22:SDO
其中引脚 1 在左上,引脚 12 在左下,引脚 13 在右下,引脚 24 在右上。
这些引脚必须连接到 PandaBoard 的 “ 扩展连接器 A, J3” 的下列引脚:


G`69XM9NZ_EG0NRQQU4L7I5.png

2.2 Ubuntu 13.04 环境的特定设置
在完成 Ubuntu-13.04 的标准安装后,应用一些特定设置。
使用的软件包版本:
• Java:JDK1.6.0_45 和 JRE1.6.0_45
• GNU Make 3.82
• Python 2.7.4

注: 在编写时, 1304 软件包的特有副标题不存在。
• sudo apt-get install git gnupg flex bison gperf build-essential \zip curl libc6-dev libncurses5-dev:amd64 x11proto-core-dev \libx11-dev:amd64 libreadline6-dev:amd64 libgl1-mesa-glx:amd64 \libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev: amd64
• sudo ln -s /usr/lib/amd64-linux-gnu/mesa/libGL.so.1 /usr/lib/ amd64-linux-gnu/libGL.so
用相应的 32 位 libz 替代 64 位 libz.so.1。
• sudo apt-get install lib32z1.
在使用代理时,为了使用上述及其他设置所需的 “apt-get”,使用下列单行代码创建文件/etc/apt/apt.conf.d/01proxy:

使用下列单行代码在文件夹 “/home/user” 中创建文件 bashrc:
• export USE_CACHE=1
从 Android Root 源码应用下列指令:
[RAS]: /prebuilts/misc/linux-x86/ccache/ccache -M 50G
为了下载和编译内核源码,将 ‘git’ 进行如下配置:
• $ git config --global user.email "e-mailing_address"
• $ git config --global user.name "user"
为了使用 fastboot 指令和 adb 指令连接到测试板,将下列代码行添加到文件/etc/udev/rules.d/51-android.rules。
• # adb protocol on panda (PandaBoard)
• SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101",MODE="0666", owner=”username”
• # fastboot protocol on panda (PandaBoard)
• SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022",MODE="0666", owner=”username”
• # usbboot protocol on panda (PandaBoard)
• SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010",MODE="0666", owner=”username”
还必须修改该文件的权限:
"chmod a+x /etc/udev/rules.d/51-android.rules.
然后,使用指令 “sudo service udev restart” 重启 udev 服务。


完整版请查看:附件
AN4503 环境传感器 用于Android 的硬件抽象层.pdf (430.49 KB, 下载次数: 0)
收藏 评论0 发布时间:2023-4-22 12:33

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版