下面以笔者工作中调试的两款器件为例,带大家了解各类器件的从0开发流程:
1、Camera
问题一:拿到一个实体camera你的第一感受是啥?
即,Camera物理结构是由什么组成的
物理结构:LENS(镜头) --> HOLD(基座) --> IR(红外滤波片)--> sensor(图像传感器)--> FPC
问题二:Camera成像原理是啥?
景物 ---- -->
镜头(LENS)生成的光学图像 ------>
投射到图像传感器(Sensor) ------>
然后转为模拟的电信号 ------>
经过 A/D(模数转换)转换后变为数字图像信号 ------>
再送到数字信号处理芯片(DSP)中加工处理 ------>
再通过 IO 接口或mipi传输到 CPU 中处理 ------> 通过 LCD 就可以看到图像
图像传感器(SENSOR):是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。
目前的 SENSOR 类型有两种:
CCD(Charge Couple Device): 电荷耦合器件,它是目前高像素类 sensor 中比较成熟的成像器件,是以一行为单位的电流信号。
CMOS(Complementary Metal Oxide Semiconductor):互补金属氧化物半导体,CMOS 的信号是以点为单位的电荷信号,更为敏感,速度也更快,更为省电。
ISP 的性能是决定影像流畅的关键,JPEG encoder 的性能也是关键指标之一。而 JPEG encoder 又分为硬件 JPEG 压缩方式,和软件 RGB 压缩方式。
DSP 控制芯片的作用是:将感光芯片获取的数据及时快速地传到 baseband 中并刷新感 光芯片,因此控制芯片的好坏,直接决定画面品质(比如色彩饱和度和
清晰度)与流畅度。
问题三:Camera数据格式有啥?
RAW、YUV、RGB
RGB 格式:采用这种编码方法,每种颜色都可用三个变量来表示红色、绿色以及蓝色的强度。每一个像素有三原色 R 红色、G 绿色、B 蓝色组成。
YUV 格式:其中“Y”表示明亮度(Luminance 或 Luma),就是灰阶值;而“U”和“V”表示色度 (Chrominance 或 Chroma),是描述影像色彩及饱和度,用于指定像素的颜色。
RAW DATA 格式:是CCD 或 CMOS 在将光信号转换为电信号时的电平高低的原始记 录,单纯地将没有进行任何处理的图像数据,即摄像元件直接得到的电信号
进行数字化处理 而得到的。
YUV/RGB 格式的模组:一般会在模组上集成 ISP(Image Single Processor),经过 A/D 转换过的原始数据经过 ISP 处理生成 YUV 标准格式传到 BB。
这种设计适 用于低像素 Camera 的要求,会在主板上省去一个 DSP,可降低成本。在调试过程中,
RawData 格式的模组:由于感光区域的需求,不会再模组内集成 ISP 以最大程度 的增大感光区域的面积,提高照片质量。模组把原始的数字信号传给 BB 上的
DSP 进行处 理。
参考:https://wenku.baidu.com/view/fbc4b51916fc700aba68fc1f.html
2、LCD
物理结构:
参考:http://blog.csdn.net/xubin341719/article/details/912558
3、三轴加速度传感器应用之计步器
本节以ADXL345三轴加速度传感器为例介绍计步器原理:
ADXL345传感器是一个x,y,z三轴传感器,当模块被水平放置z轴重力加速度传感器模块中,X,Y轴方向加速度是0,Z轴为1。当你按照一定的方向把它旋转90度,它
的加速度加1,反向则为负1。
在使用过程中移动用户有三个方向的加速度方向变化,即向前,垂直和横向,如图所示。ADXL345三轴加速度计就是用来检测x,y和z三轴上的加速度,计步器放在不
同的位置,会导致测量结果不同而产生偏差,所以说测量的精确度跟运动轴加速度计测量轴之间并不是线性关系。
首先,分析了步行的特性。把左脚(右脚)从抬起到迈出落地定义成步行的一个周期,步行周期的各个阶段与垂直方向加速度和向前的加速度变化之间有一定的关系,与侧
向加速度没有太多关系。
其次,观察了人走路的姿势。行走时,脚、腿、腰部,手臂都在运动,根据物理知识我知道它们的运动都会产生相应的加速度,并且会在某点有一个峰值。而从脚的加速度来检测
步数是最准确的,所以本设计最终选择利用脚的运动来检测步数。因为当计步器在脚上时,运动过程中脚抬起和落下是最明显的,即加速度传感器的z轴是记录人体前进步数
的主要根据。
图2显示了与一名跑步者的竖向、前向和侧向加速度相对应的x、y和z轴测量结果的典型图样。无论如何穿戴计步器,总有至少一个轴具有相对较大的周期性加速度变化,因
此峰值检测和针对所有三个轴上的加速度的动态阈值决策算法对于检测单位步行或跑步周期至关重要。
(1)步伐参数
数字滤波器:首先,为使信号波形变得平滑,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如图3所示。当然,可以使用更多寄存器以使加速度数据更
加平滑,但响应时间会变慢。
图4显示了来自一名步行者所戴计步器的最活跃轴的滤波数据。对于跑步者,峰峰值会更高。
动态阈值和动态精度:系统持续更新三轴加速度的最大值和最小值,每采样50次更新一次。平均值(Max + Min)/2称为“动态阈值”。接下来的50次采样利用此阈值判断个体是
否迈出步伐。
由于此阈值每50次采样更新一次,因此它是动态的。这种选择具有自适应性,并且足够快。除动态阈值外,还利用动态精度来执行进一步滤波。
步伐迈出的条件定义为:当加速度曲线跨过动态阈值下方时,加速度曲线的斜率为负值( sample_new 。
峰值检测:步伐计数器根据x、y、z三轴中加速度变化最大的一个轴计算步数。如果加速度变化太小,步伐计数器将忽略。
步伐计数器利用此算法可以很好地工作,但有时显得太敏感。当计步器因为步行或跑步之外的原因而非常迅速或非常缓慢振动时,步伐计数器也会认为它是步伐。为了找到
真正的有节奏的步伐,必须排除这种无效振动,利用“时间窗口”和“计数规则”可以解决这个问题。
“时间窗口”能用于排除无效振动。假设人们最快的跑步速度为每秒5步,最慢的步行速度为每2秒1步。这样,两个有效步伐的时间间隔在时间窗口[0.2s-2.0s]之内,时间间
隔超出该时间窗口的所有步伐都应被排除。
ADXL345的用户可选输出数据速率特性有助于实现时间窗口。表5.1列出了TA =25°C、VS=2.5V、VDDI/O =1.8V时的可配置数据速率(以及功耗)。
此算法使用50 Hz数据速率(20 ms)。采用interval的寄存器记录两步之间的数据更新次数。如果间隔值在10与100之间,则说明两步之间的时间在有效窗口之内;否则,时
间间隔在时间窗口之外,步伐无效。
“计数规则”用于确定步伐是否是一个节奏模式的一部分。步伐计数器有两个工作状态:搜索规则和确认规则。步伐计数器以搜索规则模式开始工作。假设经过四个连续有效
步伐之后,发现存在某种规则(in regulation),那么步伐计数器就会刷新和显示结果,并进入“确认规则”工作模式。在这种模式下工作时,每经过一个有效步伐,步伐计数器
就会更新一次。但是,如果发现哪怕一个无效步伐,步伐计数器就会返回搜索规则模式,重新搜索四个连续有效步伐。
在linux中模型参考:http://blog.csdn.net/jkf40622/article/details/41646463