目前在做柔性超声成像系统相关研究,欢迎感兴趣的朋友联系我。

速通Linux驱动程序

痛苦,非常的痛苦!学Linux的驱动要么上天要么入土,因此笔者决定写这篇博客帮所有想入门Linux驱动的读者走地更安详。😇另外的,笔者在学习时具有一定程度的硬件知识储备和嵌入式裸机开发经验,因此本文将不会太多地帮助硬件小白,建议阅读学习笔者之前的硬件相关博客或其他大神的入门教程。

Linux设备驱动概念篇

驱动类型

Linux天下无敌,支持所有的硬件外设,所以提出了3个类别的驱动程序。

驱动类型 特点 常见设备
字符设备 操作字节数据 GPIO、I2C、SPI、音频、显卡
块设备 一次操作一组(块)数据 EMMC、NAND、SD Card
网络设备 套接字(socket)操作 以太网

字符设备常常被创建为设备节点,以类似文件的形式存在于/dev/目录下(例如串口/dev/tty),这种形式操作起来和对普通文件的操作极其相似,同时字符设备类驱动是最常见的,做项目时写的最多的,但是3种驱动里最简单的。
另外两种驱动,块设备和网络设备,驱动模型写起来又臭又长,一般IC器件的厂家都把驱动写好了,属于Linux高手的玩物。

因此,本文中将主要分享字符设备驱动的开发。

内核态

Linux在隔离业务应用和硬件这块做的非常好,操作系统上分为了:用户态内核态。内核态提供服务给用户态调用,具有统一的抽象接口,使得用户态程序可以在不了解硬件的情况下很好地运行并操作所需硬件。显然,我们要编写的驱动程序就是工作在内核态,所以编写时要满足Linux的模型。

用户态与内核态

驱动程序运行方式

阅读更多...

电子罗盘的理论分析与实际应用(AK09915)

前言:继上篇6轴IMU之后,本文将介绍电子罗盘的原理(数学模型)和以AK09915为目标的应用实例。

磁基础知识

磁的分类

  • 硬磁:也就是永磁性材料。因为这种材料的矫顽力高/磁滞回线面基大,所以在被磁化后将很难退磁
  • 软磁:普通的纯铁就是很好的例子,可以被磁铁吸住(纯铁被磁化),但是把磁铁拿掉后,很快将不表现出磁性(退磁)。这种材料的矫顽力小/磁滞回线面基小,所以被磁化后将快速退磁;这种材料一般使用的目的就是增加磁导率,比如做成电感的磁芯可以加大电感量($L=\mu\cdot S_{磁芯} \cdot N^2/l_{磁路}$)而又不带来大损耗。
    硬磁与软磁
  • 地磁:地球产生的磁场,可以理解地球为永磁体,这里我们并不关注地球的磁性从何而来,只关心地磁场的模型(如下图)。NOTE:在地表测量地磁的磁感应强度范围约是0.4~0.6高斯,地磁场的大磁极轴与地球自转轴有一个约11.5°夹角。
    地磁场

磁物理量

首先是常见的磁感应强度$B$,磁场强度$H$,表征磁介质磁性能力的磁导率$\mu=B/H$。磁感应强度$B$的单位有国际标准单位“特斯拉”(T),也有常听到的“高斯”(G),这两个量的关系为:$1T=10^4G$。

阅读更多...

六轴传感器(ICM42688)驱动及姿态估计

前言:打算给小巡洋舰搞点花活,顺便做个飞控,记录一下其中最为关键的惯性导航(IMU)。本次项目中使用的是TDK出的最新MEMS传感器以提高项目的生命周期,因此本文将先简单介绍ICM42688这个片子,接着探讨SPI驱动方法,最后记录六轴MEMS传感器的工作原理。

ICM42688简介

ICM42688芯片

这款6轴MEMS运动跟踪传感器内有一个三轴陀螺仪和一个三轴加速度计,通信方面支持I3C接口、常规的IIC、SPI通信和2kB的FIFO,并且按照TDK的老传统这个片子里也是带数字处理单元的。这个片子目前算是消费电子里的顶流了,参数如下:

  • 陀螺仪噪声密度:$0.0028°/s/\sqrt{Hz}$
  • 加速度计噪声密度:$70\mu g/\sqrt{Hz}$
  • 8档陀螺仪量程:$\pm15.6 \sim 2000dps$
  • 4档加速度计量程:2/4/8/16g
  • 前端ADC精度:16bits
  • SPI通信速率达24MHz
  • 最后,温漂参数也是非常不错:
    • 陀螺仪SSF-Temp为$\pm 0.005 % /° C$,ZRO-Temp为$\pm 0.005 °/s/° C$
    • 加速度计SSF-Temp为$\pm 0.005 % /°C$,ZGO-Temp为$\pm 0.15 mg/° C$

至于内置的APEX数字运动处理器也是非常优秀了,可以说是针对消费电子设计的,支持检测拿起、记录步数、倾斜测试等。这些功能在机器人应用上虽然犹如鸡肋,但是应该可以做一些花活。

SPI总线

阅读更多...
  • Copyrights © 2022-2024 RY.J
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信