自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (7)
  • 收藏
  • 关注

原创 4.Auracast-接收广播音频流

为了实现这一点,电视会包含一个广播助手,它会与每个用户的耳机配对,如下图所示。假设,B收到一包广播,paEventCounter是PEb,此时,B和C的connEventCount是CEs,那么,B就可以计算出将来的某个时间点CEref,再加上offset,就是A发送周期广播PEa的时间点。广播助手连上BMR之后,广播助手需要PAC信息才能知道BMR的接收能力,才能为BMR设置适当的 BIS_Sync值,以确保其接收正确的BIS,如下图service discovery flow。

2025-07-05 11:15:26 596

原创 3.Auracast-启动广播音频流

在某个时间点,B和C都能接收完数据,我们把这个时间点称之为SDU Synchronization Reference,之后B和C都会将SDU数据进行decode,但每个设备的CPU处理能力不同,decode时间会有差异,但是必须在presentation Delay时间内完成,并且必须在SDU Synchronization Reference + presentation Delay时间点播放,这样就可以保证B、C同时播放。然而,描述和定位广播音频流所需的信息量仍然大于扩展广播数据包的极限。

2025-07-05 10:58:14 621

原创 2.Unicast-使用单播音频流

如下图,在SC1在执行操作之前,先把SM1和SM2 lock,在SC1释放lock之前,SC2也想lock SM1,当然,这时SC2只会收到error response, SC2可以设置一个通知,待lock被释放之后,SM1再通知SC2.第四个 LTV 结构是 Supported_Octets_Per_Codec_Frame (Type = 0x04),此结构由两对两个八位字节组成,下对(八位字节 0 和 1)指定每个编解码器帧的最小八位字节数,上对指定每个编解码器帧的最大八位字节数。

2025-07-05 10:44:07 611

原创 1.Unicast-Connected Isochronous Streams

LE Audio数据传输机制:ISOAL与CIS解析 本文介绍了LE Audio通过ISO通道传输音频数据的核心机制,重点分析了Isochronous Adaptation Layer(ISOAL)和Connected Isochronous Stream(CIS)的工作原理。ISOAL作为适配层,负责处理Host与Controller之间的数据转换,支持两种PDU格式:Unframed(单SDU)和Framed(多SDU)。

2025-07-05 10:21:09 892

翻译 Introduction-Auracast

蓝牙LE Audio广播功能Auracast将带来音频体验革命性变革。文章介绍了Auracast的技术背景、应用场景和标准化要求。Auracast支持多音频流广播,适用于电视共享、公共场所助听和体育酒吧等多场景应用。为确保全球互操作性,蓝牙技术联盟制定了《Auracast简易发射器最佳实践指南》,规定必须支持标准质量(16/24kHz)广播,公共场所发射器需默认采用该配置。高质量音频配置作为可选功能提供。Auracast将简化音频设备部署,为用户提供自由选择的音频体验,其影响力堪比20世纪立体声技术的诞生。

2025-06-21 09:37:53 20

翻译 第13章-词汇表和索引

Introducing-Bluetooth-LE-Audio-book 第13章-词汇表和索引

2022-08-28 09:53:39 804

翻译 第12章-Bluetooth® LE Audio applications

Introducing-Bluetooth-LE-Audio-book 第12章-Bluetooth® LE Audio applications

2022-08-28 09:52:33 1297

翻译 第11章-顶层蓝牙® LE Audio profile

Introducing-Bluetooth-LE-Audio-book 第11章-顶层蓝牙® LE Audio profile

2022-08-28 09:50:54 2818

翻译 第10章-音量&音频输入&麦克风控制

Introducing-Bluetooth-LE-Audio-book 第10章-音量&音频输入&麦克风控制

2022-08-27 22:13:19 2010

翻译 第9章-Telephony and Media Control

Introducing-Bluetooth-LE-Audio-book 第9章-Telephony and Media Control

2022-08-27 22:05:36 1268

翻译 第8章-设置和使用广播音频流

Introducing-Bluetooth-LE-Audio-book 第8章-设置和使用广播音频流

2022-08-27 21:42:11 3139

翻译 第7章-设置单播音频流

Introducing-Bluetooth-LE-Audio-book 第7章-设置单播音频流

2022-08-27 21:17:11 2805

翻译 第6章-CAP和CSIPS

Introducing-Bluetooth-LE-Audio-book 第6章-CAP和CSIPS

2022-08-27 20:49:43 2568

翻译 第5章-LC3, latency and QoS

Introducing-Bluetooth-LE-Audio-book 第5章-LC3, latency and QoS

2022-08-27 20:44:26 4559

翻译 第4章-Isochronous Streams

Introducing-Bluetooth-LE-Audio-book 第4章-Isochronous Streams

2022-08-27 18:10:14 4537 3

翻译 第3章-蓝牙®LE audio新概念

Introducing-Bluetooth-LE-Audio-book 第3章-蓝牙®LE音频新概念

2022-08-27 17:44:36 4043

翻译 第2章-Bluetooth® LE audio架构

Introducing-Bluetooth-LE-Audio-book 第2章 Bluetooth® LE 音频架构

2022-08-27 17:36:13 4067

翻译 第1章-背景与遗产

Introducing-Bluetooth-LE-Audio-book 第1章-背景与遗产

2022-08-27 17:20:48 1502

原创 8.声卡驱动06-自己实现alsa驱动-虚拟声卡-widget

平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:一个codec里面可能有多个录音通道,如果要打开某一通道录音,需要怎么做?目的:就像做数学题一样,看一遍答案,以为自己看懂了,就会了,非也,真到自己去做时,不一定能做出来。那就在自己的驱动里实现一遍。本文只追求应用,不讲原理。想了解细节可以看官方文档或者看https://blog.csdn.net/droidphone/category_1118446.html。

2021-11-19 13:08:21 2320

原创 8.声卡驱动05-自己实现alsa驱动-虚拟声卡-kcontrol

平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:前几篇文章完成了播放/录音功能,声卡驱动就这样完成了吗?某种意义上讲是完成了,但是如果需要控制音量怎么办?这里加一个kcontrol,实现音量控制功能。目的:就像做数学题一样,看一遍答案,以为自己看懂了,就会了,非也,真到自己去做时,不一定能做出来。那就在自己的驱动里实现一遍。本文只追求应用,不讲原理。想了解细节可以看官方文档或者看https://blog.csd

2021-11-16 21:43:02 2135

原创 8.声卡驱动04-写一个alsa应用程序

平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:一个进程播放音频,一个进程录音。直接贴代码#include <stdio.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>#include <alsa/asoundlib

2021-10-27 11:14:06 1163

原创 8.声卡驱动03-自己实现alsa驱动-虚拟声卡-缓存

平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:传说中的回采,做过语音方案的童鞋应该能懂,就是播放的音频,录音录回去。因为是虚拟的声卡,不涉及硬件操作,也只能这样看点效果。目的:当然是为了能更直观的理解alsa驱动框架。虚拟出一个声卡,不涉及复杂的硬件操作,不涉及复杂的硬件调试,只关心数据流怎么一步一步传给应用的。1.数据是怎么交互的以playback为例驱动程序分配一个bufferAPP不断写

2021-10-27 11:09:31 6665 4

原创 8.声卡驱动02-自己实现alsa驱动-虚拟声卡-匹配

亲自动手,丰衣足食。本文目的是实现史上最简单的Linux声卡驱动。如果你是初学者,可能从其他文章了解到声卡驱动,不出意外你可能已经云里雾里了,除非你聪明绝顶(秃顶那种)。其实生成声卡的节点,子需要几个函数就可以了,它们分别是:platform:snd_soc_register_component()注册CPU DAI, snd_soc_register_platform()注册platform;codec:snd_soc_register_codec()注册CODEC DAI和CODEC;mac

2021-10-27 11:01:44 5252 5

原创 8.声卡驱动01-一些好文章

这里保存一些优秀的文章Linux ALSA声卡驱动之一:ALSA架构简介Linux ALSA声卡驱动之二:声卡的创建Linux ALSA声卡驱动之三:PCM设备的创建Linux ALSA声卡驱动之四:Control设备的创建Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)Linux ALSA声卡驱动之六:ASoC架构中的MachineLinux ALSA声卡驱动之七:ASoC架构中的CodecLinux ALSA声卡驱动之八:ASoC架构中的PlatformALSA声卡驱

2021-10-27 10:52:55 1290

原创 7.camera驱动08-全志-media framework

平台:全志A133 androidQ启动过程贯穿全篇的数据流向sensor0 ==> mipi0 ==> csi0 ==> isp0 ==> scale0(vipp0) ==> vinc0(dma0) ==> video0sensor1 ==> mipi1 ==> csi1 ==> isp0 ==> scale1(vipp1) ==> vinc1(dma1) ==> video1sensor、mipi、csi、isp、sc

2021-10-08 18:24:13 2239 4

原创 7.camera驱动07-写一个v4l2应用程序

直接贴代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <malloc.h>#include <sys/stat.h>#include <sys/types.h>#include <

2021-10-06 13:09:50 372

原创 7.camera驱动06-自己实现v4l2驱动-虚拟摄像头

1. 框架分层实际上的v4l2框架:v4l2本质是还是一个字符设备驱动,有自己的fops。每注册一个video_device都会以次设备号为下标放到v4l2层的一个数组里。应用调用open函数时,v4l2会根据次设备号找到对应的video_device,进而调用video_device对应的fops。2. 注册v4l2_dev和video_device(1) 注册platform_device和platform_driver,也并不是一定要这样做,只是大家都这样做,那也就跟着做了(2) 注册

2021-10-04 22:11:19 4434

原创 7.camera驱动06-自己实现v4l2驱动-准备

平台:Ubuntu-16.04$uname -aLinux vbox-pc 4.15.0-112-generic #113~16.04.1-Ubuntu SMP Fri Jul 10 04:37:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux可以看到内核版本是4.15.0,去www.kernel.org找同版本的内核,如果没有请找最相近的内核代码下载完后,解压,把linux-4.15\drivers\media\platform\vivid复制到ubunt

2021-10-04 22:07:35 731 1

转载 7.camera驱动05-V4L2框架-control的数据结构

原文地址:https://yellowmax.blog.csdn.net/article/details/83242446本篇文章写一下 V4L2 里面的众多 control 的组织方式,也就是它的数据结构。主要就是新建的 control 是如何存放的,以及在需要用到的时候如何查找。里面用到了类似于「桶」的概念,没错就是「桶排序」里面的那个桶,这种比较特殊的小优化为查找速度提供了不少的帮助。话不多说,直接进入正题,本文章是基于 linux-4.4.138 内核来探讨的。几个结构体之间的关系st

2021-10-02 21:57:35 343

转载 7.camera驱动04-V4L2框架-control

原文地址:https://yellowmax.blog.csdn.net/article/details/81430870本文介绍在 v4l2 框架下面的 control 控制接口,这些接口通常用来实现一些特效控制、菜单控制等等。简介既然涉及到视频输入,就会有很多与 ISP 相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。V4L2 很贴心地为我们提供了这样一些接口以供使用(可以说是非常贴心的了),在内核里面,这些控制项被抽象为一个

2021-10-02 21:56:08 785

转载 7.camera驱动03-V4L2框架-videobuf2

原文地址:https://yellowmax.blog.csdn.net/article/details/81054611本文介绍在 v4l2 框架之下的数据流交互的实现与使用,主要目的是实现一个能够进行用户空间与内核空间进行数据交互、数据流格式设置、数据流 buffer 申请与释放、数据流开启与关闭的 video 设备驱动。简介videobuf2 用于连接 V4L2 驱动层与用户空间层,提供数据交流的通道,它可以分配并管理视频帧数据。videobuf 层实现了很多 ioctl 函数,包括 buf

2021-10-02 21:54:00 497

转载 7.camera驱动02-V4L2框架-media device

原文地址:https://yellowmax.blog.csdn.net/article/details/80889947本文对 V4L2 的运行时数据流设备管理做一个详细的介绍,包括什么叫「运行时设备管理」,它是干什么用的,怎么使用等等。本文的目标是掌握 media device 的编码使用方法以及功能运用。media framework简介相关的控制 API 在 Documentation/DocBook/media/v4l/media-controller.xml,本文档聚焦于内核测的

2021-10-02 21:50:34 566

转载 7.camera驱动01-V4L2框架-v4l2 device

原文地址:https://yellowmax.blog.csdn.net/article/details/80782068本文对 V4L2 中比较容易理解的骨干结构进行介绍,涉及两个核心结构体:v4l2_device, v4l2_subdev。文章围绕这两个结构体以 Linux-4.4 内核的 omap3isp 代码为例进行相关的介绍,所谓介绍还是起到辅助作用,真真儿的还是要靠 RTFSC、WTFSC。下面「该例程」均指的是 omap3isp 这个例程。V4L2 框架补充首先看图:V4L2

2021-10-02 21:46:57 584

转载 7.camera驱动00-V4L2框架概述

导读:V4L2 是专门为 linux 设备设计的一套视频框架,其主体框架在 linux 内核,可以理解为是整个 linux 系统上面的视频源捕获驱动框架。其广泛应用在嵌入式设备以及移动端、个人电脑设备上面,市面上的编码产品类如:SDV、手机、IPC、行车记录仪都会用到这个框架来进行视频采集,当然,有比较厉害的厂家直接就使用自己实现的一套视频采集框架,这种属于是厂家中战斗机了。下文主要参考linux-4.4内核文档对V4L2框架进行一次全局的介绍。V4L2框架简介几乎所有的设备都有多个 IC 模块,它们可

2021-10-02 21:33:24 1364

原创 6. lcd驱动2-浅析mipi

1. MIPI简介MIPI联盟是一个开放的会员制组织。2003年7月,由美国德州仪器(TI)、意法半导体(ST)、英国ARM和芬兰诺基亚(Nokia)4家公司共同成立。MIPI联盟旨在推进移动应用处理器接口的标准化 。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。MIPI包括:MIPI-DBI 显示总线接口:MIPI联盟发布的第一个显示标准,用来规定显示接口;MIPI-DP

2021-08-28 10:24:39 3411

原创 6. lcd驱动1-硬件原理

1. 液晶显示原理TFT-LCD(Thin Film Transistor Liquid Crystal Display)即薄膜晶体管液晶显示器,是微电子技术与液晶显示器技术巧妙结合的的一种技术。目前主流的LCD显示器都是TFT-LCD,是由原有液晶技术发展而来。TFT液晶为每个像素都设有一个半导体开关,以此做到完全的单独控制一个像素点,液晶材料被夹在TFT阵列和彩色滤光片之间,通过改变刺激液晶的电压值就可以控制最后出现的光线强度和色彩,如下图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下

2021-08-26 09:26:16 12899

原创 4. 例-内核高精度定时器

1.初始化定时器void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, enum hrtimer_mode mode);参数说明timer:描述高精度定时器的结构体; struct hrtimer { struct timerqueue_node node; ktime_t _softexpires;

2021-08-18 16:24:03 226

原创 2. 例-中断(GPIO按键事件)

LCD驱动(1)硬件部分​ Tiny4412开发板​ 型号:AT070TN92​ 分辨率:800*480​ 接口:RGB888​ 全志A33开发板​ 型号:​ 分辨率:1024*600​ 接口:RGB硬件连接接口​ TTL(RGB)​ LVDS​ MIPI时序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3OwZCjY-1629086471921)(file:///C:\Users\aspire\AppData\Local\Tem

2021-08-16 23:05:48 1154

原创 1. 例-字符设备驱动(开关灯)

字符设备驱动1.管理设备号dev_t dev = MKDEV(主设备号,次设备号) -->组合设备号主设备号 = MAJOR(dev_t dev) -->提取主设备号次设备号=MINOR(dev_t dev) -->提取次设备号2.分配设备号#include <linux/fs.h>int register_chrdev_region(dev_t from, unsigned count, const

2021-08-15 16:31:31 394

转载 error: device not found

https://blog.csdn.net/weixin_42953268/article/details/87183535

2019-08-25 16:01:44 3829

通俗易通理解XGBoost算法

一篇不错的博文能通俗易通理解XGBoost算法。 有公式推导,有例子说明,相当不错,推荐一下给大家。

2020-02-02

makefile教程(中文版)

非常详细的makefile教程,分享一下。

2017-06-21

MIPI及DSI协议介绍.pdf

MIPI及DSI协议介绍

2021-08-27

Teledyne LeCroy Wireless

Teledyne LeCroy Wireless Wireless Protocol Suite 2.20 解析蓝牙HCI log

2024-05-27

ubuntu建自己的repo服务器.zip

ubuntu建自己的repo服务器,内有详细的操作步骤,另外附带有所需要的repo工具和其他所需要的源代码,亲测可行!!!

2019-07-27

MIPI DSI Essential2.ppt

MIPI DSI Essential

2021-08-27

linux 3.X wm8960 codec 代码跟读

linux 3.X wm8960 codec 代码跟读

2021-10-31

Android Studio快捷键大全

比较常用的Android Studio快捷键,分享给大家。

2017-07-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除