张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

详解嵌入式Linux设备驱动篇module_init

2018-04-18 14:50 次阅读

一直以来写linux驱动,都是按照固定格式,定义一个初始化和退出函数,书上告诉我这两个函数会被调用,至于为什么会被调用,在哪调用,一直不清楚。

偶然的一个机会,看到blob里面的代码,里面有一个初始化函数列表。按照一般的编程想法,各部分的初始化函数会在一个固定的函数里调用比如:

void init(void)

{

init_a();

init_b();

}

如果再加入一个初始化函数呢,那么再init_b()后面再加一行:

init_c();

这样确实能完成我们的功能,但这样有一定的问题,就是不能独立的添加初始化函数,每次添加一个新的函数都要修改init函数,blob中的初始化函数就是完全独立的,只要用一个宏来修饰一下:

void init_a(void)

{

}

__initlist(init_a, 1);

它是通过这个宏来实现初始化函数列表的呢?

先来看__initlist的定义:

#define __init __attribute__((unused, __section__(".initlist")))

#define __initlist(fn, lvl) /

static initlist_t __init_##fn __init = { /

magic: INIT_MAGIC, /

callback: fn, /

level: lvl }

看来就是定义了一个结构体,存了初始化函数的指针,没什么特别的。请注意:__section__(".initlist")

这个属性起什么作用呢?它告诉连接器这个变量存放在.initlist区段,如果所有的初始化函数都是用这个宏,那么每个函数会有对应的一个initlist_t结构体变量存放在.initlist区段,也就是说我们可以在.initlist区段找到所有初始化函数的指针。怎么找到.initlist区段的地址呢?

extern u32 __initlist_start;

extern u32 __initlist_end;

这两个变量起作用了,__initlist_start是.initlist区段的开始,__initlist_end是结束,通过这两个变量我们就可以访问到所有的初始化函数了。

这两个变量在那定义的呢?

在一个连接器脚本文件里

. = ALIGN(4);

.initlist : {

__initlist_start = .;

*(.initlist)

__initlist_end = .;

}

这两个变量的值正好定义在.initlist区段的开始和结束地址,所以我们能通过这两个变量访问到所有的初始化函数。

与此类似,内核中也是用到这种方法,所以我们写驱动的时候比较独立,不用我们自己添加代码在一个固定的地方来调用我们自己的初始化函数和退出函数,连接器已经为我们做好了。当然module_init还有其他的特性,比如:我们的初始化函数在完成初始化后,代码占用的空间会被释放,这又是为什么呢?今天晚了,下次再写。

linux kernel中有很大一部分代码是设备驱动代码,这些驱动代码都有初始化和反初始化函数,这些代码一般都只执行一次,为了有更有效的利用内存,这些代码所占用的内存可以释放出来。

linux就是这样做的,对只需要初始化运行一次的函数都加上__init属性。在kernel初始化后期,释放所有这些函数代码所占的内存空间。它是怎么做到的呢?看过module_init和module_exit 的人知道,连接器把带__init属性的函数放在同一个section里,在用完以后,把整个section释放掉。

口说无凭,我们看源码,init/main.c中start_kernel是进入kernel的第一个c函数,在这个函数的最后一行是

rest_init();

static void rest_init(void)

{

kernel_thread(init, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGNAL);

unlock_kernel();

cpu_idle();

}

创建了一个内核线程,主函数init,代码如下:

static int init(void * unused)

{

lock_kernel();

do_basic_setup();

prepare_namespace();

/*

* Ok, we have completed the initial bootup, and

* we're essentially up and running. Get rid of the

* initmem segments and start the user-mode stuff..

*/

free_initmem();

unlock_kernel();

红色那行代码就是用来释放初始化代码和数据的。

void free_initmem(void)

{

#ifndef CONFIG_XIP_ROM

if (!machine_is_integrator()) {

free_area((unsigned long)(&__init_begin),

(unsigned long)(&__init_end),

"init");

}

#endif

}

接下来就是kernel内存管理的事了。

********************************************************************************************************

在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(obj-y)。

1.在MODULE没有定义这种情况下,module_init定义如下:

#define module_init(x) __initcall(x);

因为

#define __initcall(fn) device_initcall(fn)

#define device_initcall(fn) __define_initcall("6",fn,6)

#define __define_initcall(level,fn,id) \

static initcall_t __initcall_##fn##id __used \

__attribute__((__section__(".initcall" level ".init"))) = fn

所以,module_init(x)最终展开为:

static initcall_t __initcall_##fn##id __used \

__attribute__((__section__(".initcall" level ".init"))) = fn

更直白点,假设阁下driver所对应的模块的初始化函数为int gpio_init(void),那么module_init(gpio_init)实际上等于:

static initcall_t __initcall_gpio_init_6 __used __attribute__((__section__(".initcall6.init"))) = gpio_init;

就是声明一类型为initcall_t(typedef int (*initcall_t)(void))函数指针类型的变量__initcall_gpio_init_6并将gpio_init赋值与它。

这里的函数指针变量声明比较特殊的地方在于,将这个变量放在了一名为".initcall6.init"节中。接下来结合vmlinux.lds中的

.initcall.init : AT(ADDR(.initcall.init) - (0xc0000000 -0x00000000)) {

__initcall_start = .;

*(.initcallearly.init) __early_initcall_end = .; *(.initcall0.init) *(.initcall0s.init) *(.initcall1.init) *(.initcall1s.init) *(.initcall2.init) *(.initcall2s.init) *(.initcall3.init) *(.initcall3s.init) *(.initcall4.init) *(.initcall4s.init) *(.initcall5.init) *(.initcall5s.init) *(.initcallrootfs.init) *(.initcall6.init) *(.initcall6s.init) *(.initcall7.init) *(.initcall7s.init)

__initcall_end = .;

}

以及do_initcalls:

static void __init do_initcalls(void)

{

initcall_t *call;

for (call = __initcall_start; call < __initcall_end; call++)

do_one_initcall(*call);

/* Make sure there is no pending stuff from the initcall sequence */

flush_scheduled_work();

}

那么就不难理解阁下模块中的module_init中的初始化函数何时被调用了:在系统启动过程中start_kernel()->rest_init()->kernel_init()->do_basic_setup()->do_initcalls()。

2.在MODULE被定义的情况下(大部分可动态加载的driver模块都属于此, obj-m),module_init定义如下:

#define module_init(initfn) \

static inline initcall_t __inittest(void) \

{ return initfn; } \

int init_module(void) __attribute__((alias(#initfn)));

这段宏定义关键点是后面一句,通过alias将initfn变名为init_module。前面那个__inittest的定义其实是种技巧,用来对initfn进行某种静态的类型检查,如果阁下将模块初始化函数定义成,比如,void gpio_init(void)或者是int gpio_init(int),那么在编译时都会有类似下面的warning:

GPIO/fsl-gpio.c: In function '__inittest':

GPIO/fsl-gpio.c:46: warning: return from incompatible pointer type

通过module_init将模块初始化函数统一别名为init_module,这样以后insmod时候,在系统内部会调用sys_init_module()去找到init_module函数的入口地址。

如果objdump -t gpio.ko,就会发现init_module和gpio_init位于相同的地址偏移处。简言之,这种情况下模块的初始化函数在insmod时候被调用。

原文标题:嵌入式Linux设备驱动篇module_init 详解

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

轻松学Linux系列课程之Linux基础

课程从0开始,讲到云计算结束,按阶段授课,从入门到跑路,适合初学者,也适合定制,需要哪个模块学哪个模块2,包含初级运维工
发表于 07-24 00:00 15809次 阅读
轻松学Linux系列课程之Linux基础

连接器的四大过程你了解吗

连接器是一种连接电气端子以形成电路的耦合装置。生活中很多地方都用到连接器,像汽车、计算机等电子设备都....
发表于 08-20 17:02 18次 阅读
连接器的四大过程你了解吗

Matlab软件进行程序设计的教程免费下载

本文档的主要内容详细介绍的是Matlab软件进行程序设计的教程免费下载 主要介绍如下几个方面的内容....
发表于 08-20 16:19 4次 阅读
Matlab软件进行程序设计的教程免费下载

蓝牙广播用app连接后重新断开搜索不到蓝牙是怎么回事?

我的应用场景要求是在一段时间内关闭蓝牙 我的方法是在蓝牙任务里开启了一个定时器,到达时间后执行 GAPRole_SetParamet...
发表于 08-20 13:26 27次 阅读
蓝牙广播用app连接后重新断开搜索不到蓝牙是怎么回事?

为什么串行通信不一致?

我已经遇到了一个奇怪的问题,使用EUSAT上的PIC18F45 K22设计。UART正在与另一个运行Linux的CPU通信,在9600/...
发表于 08-20 11:29 10次 阅读
为什么串行通信不一致?

为什么CC2652 SDK的主函数哪里都找不到?

下载了SDK包 但是找了半天 没有找到主函数,请教一下在哪里可以看到...
发表于 08-20 11:15 38次 阅读
为什么CC2652 SDK的主函数哪里都找不到?

选择工业接插件时所需要考虑的因素

先根据自己需要的产品处于什么环境来选择,比如是室内还是室外,潮湿或者干燥,是不是腐蚀性环境,这些环境....
发表于 08-20 10:54 19次 阅读
选择工业接插件时所需要考虑的因素

航空接插件的选择方法以及使用规则

在选择航空接插件的时候,产品的质量问题是最为重要的,如果质量不过关的话,肯定就无法长期使用,在使用中....
发表于 08-20 10:49 14次 阅读
航空接插件的选择方法以及使用规则

Linux嵌入式操作系统有什么优势?

嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了I...
发表于 08-20 07:42 14次 阅读
Linux嵌入式操作系统有什么优势?

嵌入式Linux的USB设备结构是什么?

随着计算机外围硬件的扩展,各种外围设备使用不同的总线接口,导致计算机外部各种总线繁多,管理困难,USB总线可以解决这些问...
发表于 08-20 07:34 9次 阅读
嵌入式Linux的USB设备结构是什么?

XUPV5螺丝该怎么制作?

亲爱的Xilinx, 非常感谢您在XUPV5板的底部添加塑料保护器。 它几乎可以肯定地将它从我办公桌上挂出的许多其他电路板的命...
发表于 08-20 07:16 19次 阅读
XUPV5螺丝该怎么制作?

Linux系统的短信收发怎么实现?

全球移动通信系统GSM是我国范围最广、通信能力最强的移动通信业务,而其中的短消息功能由于其使用方便、价格低廉、可靠性高而...
发表于 08-20 06:17 9次 阅读
Linux系统的短信收发怎么实现?

为什么ucos OSTimeDlyHMSM函数有问题?

最近在看 ucos 用的是stm32f042芯片 好不容易将ucos一直成功了,发现OSTimeDlyHMSM函数有点问题,不准啊,我是按照50hz'...
发表于 08-20 04:35 35次 阅读
为什么ucos OSTimeDlyHMSM函数有问题?

为什么u-boot中nand-flash读函数不能执行?

自己写的u-boot,烧到nor flash运行时,只打印出了前两句话   Copy kernel from nand和what happen1?,看反汇编感觉n...
发表于 08-20 04:15 53次 阅读
为什么u-boot中nand-flash读函数不能执行?

请问STM32F4怎么用LWIP协议栈里的TFTP协议上传文件?

原子大哥以及各位同行高手,我现在做一个项目,目的在STM32F439平台上,把SD卡里面的文件上传到指定服务器。目前已经移植好...
发表于 08-19 21:59 28次 阅读
请问STM32F4怎么用LWIP协议栈里的TFTP协议上传文件?

TE Connectivity推出Sliver跨接式连接器,支持下一代硅技术PCIe标准

全球连接与传感领域领军企业TE Connectivity (TE) 针对 SFF-TA-1002 推....
的头像 电子发烧友网工程师 发表于 08-19 11:55 42次 阅读
TE Connectivity推出Sliver跨接式连接器,支持下一代硅技术PCIe标准

工业接插件PIN针的技术与基础知识讲解

PIN针引脚是工业接插件的关键部件,它直接决定了产品的质量问题,合理的设计至关重要。
发表于 08-19 11:39 13次 阅读
工业接插件PIN针的技术与基础知识讲解

关于线束连接器端子的故障分析

端子退针是线束连接器非常常见的一种失效方式,这种现象会造成连接器功能丧失,其品质好坏直接影响到电力或....
发表于 08-19 11:34 28次 阅读
关于线束连接器端子的故障分析

关于连接器种类与选型以及它的行业标准

连接器在汽车的生产过程中使用的频率已经越来越高了,随着社会的发,人们生活水平的提高,汽车的需求量在现....
发表于 08-19 11:31 39次 阅读
关于连接器种类与选型以及它的行业标准

OpenCV跨平台计算机视觉库的详细资料简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Window....
发表于 08-19 08:00 8次 阅读
OpenCV跨平台计算机视觉库的详细资料简介

Linux内核完全剖析修正版V5.0PDF电子书免费下载

本书对 Linux 操作系统早期内核(V0.12)全部源代码文件进行了详细全面的注释和说明,旨在让读....
发表于 08-19 08:00 16次 阅读
Linux内核完全剖析修正版V5.0PDF电子书免费下载

TE推出新型VAL-U-LOK连接器 最大额定电流从9A提高至13A

TE Connectivity近日推出VAL-U-LOK系列连接器新品,将应用广泛的4.2mm中心线....
发表于 08-18 09:49 111次 阅读
TE推出新型VAL-U-LOK连接器 最大额定电流从9A提高至13A

Linux加载程序的步骤

一个进程在内存中主要占用了以下几个部分,分别是代码段、数据段、BSS,栈,堆,等参数。其中,代码、数....
发表于 08-18 09:02 46次 阅读
Linux加载程序的步骤

Iptables的移植步骤

Linux下支持netfilter机制的配置工具就是iptables,它也就相当与一个应用程序,可以....
发表于 08-18 09:01 36次 阅读
Iptables的移植步骤

连接器行业在军工领域的应用状况

从军队整体环境来看,受益于军费增速加快和军改落地后的订单释放,军品将持续稳步增长。随着国防信息化建设....
发表于 08-17 11:02 57次 阅读
连接器行业在军工领域的应用状况

浅谈2019年汽车连接器的发展趋势

汽车连接器是汽车内部构造的一个重要部件,在电路内被阻断处或孤立不通的电路之间,担任着桥梁的作用。
发表于 08-17 10:58 29次 阅读
浅谈2019年汽车连接器的发展趋势

使用C语言进行单片机编程的基本知识点和编程规范资料总结

这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和....
的头像 玩转单片机 发表于 08-17 09:08 200次 阅读
使用C语言进行单片机编程的基本知识点和编程规范资料总结

Type-C接口能否一统手机接口界

虽说无法与iPhone手机的Lightning接口相比,但Type-C接口在日常使用上确实有着更为出....
发表于 08-16 17:02 36次 阅读
Type-C接口能否一统手机接口界

关于近两年连接器行业市场的深度分析

连接器通常是指是使导体(线)与适当的配对元件连接,实现电流或信号接通和断开的机电元件,在器件与组件、....
发表于 08-16 11:23 55次 阅读
关于近两年连接器行业市场的深度分析

浅谈汽车领域中连接器行业的发展潜力

近年来,新能源汽车发展因受国家政策的引导和政策的补贴,发展势头越来越迅猛。
发表于 08-16 11:19 40次 阅读
浅谈汽车领域中连接器行业的发展潜力

关于连接器和电缆线束组件的几个好处

连接器和电缆线束组件过度成型的过程涉及在受控条件下在关键电连接周围注入塑料树脂,此工艺生产得出的结果....
发表于 08-16 11:13 28次 阅读
关于连接器和电缆线束组件的几个好处

【盘点】2019上半年,工程师使用率最高的「十大连接器型号」

2019年已经过半华强芯城通过数据整理盘点出今年上半年度工程师使用率最高的「十大连接器型号」下面先睹为快吧↓↓
的头像 华强芯城官网 发表于 08-15 22:35 169次 阅读
【盘点】2019上半年,工程师使用率最高的「十大连接器型号」

嵌入式C语言中的动态内存管理和动态内存分配

动态内存管理同时还具有一个优点:当程序在具有更多内存的系统上需要处理更多数据时,不需要重写程序。
发表于 08-15 17:16 58次 阅读
嵌入式C语言中的动态内存管理和动态内存分配

从C语言来分析Linux系统是如何创建的

许多操作系统都提供了专门的进程产生机制,比较典型的过程是:首先在内存新的地址空间里创建进程,然后读取....
发表于 08-15 17:09 58次 阅读
从C语言来分析Linux系统是如何创建的

Intel将推出新Linux驱动 核显性能提升20%

日前报道过有程序员在Linux系统上玩上了魔兽世界、DOTA2、CSGO等Windows系统下的游戏....
发表于 08-15 15:24 217次 阅读
Intel将推出新Linux驱动 核显性能提升20%

Linux系统被侵入该怎么处理解决

很多客户网站服务器被入侵,被攻击,找到我们SINE安全公司寻求技术支持与帮助,有些网站被篡改,被跳转....
发表于 08-15 14:28 36次 阅读
Linux系统被侵入该怎么处理解决

Type-c接口除了充电还有很多功能可以用

随着各大手机厂商的激烈竞争,在手机接口方面,Type-c接口显然已经成为标配,深受广大用户的喜爱。
发表于 08-15 11:43 73次 阅读
Type-c接口除了充电还有很多功能可以用

初学者也能看懂的DPDK解析

从我们用户的使用就可以感受到网速一直在提升,而网络技术的发展也从1GE/10GE/25GE/40GE....
的头像 Linuxer 发表于 08-14 18:01 214次 阅读
初学者也能看懂的DPDK解析

索尼推出支持HDMI的最快的USB-C连接器

索尼正式推出其多功能USB-C集线器MRW-S3,据称它是世界上最快的中心枢纽。更具体地说,索尼声称....
发表于 08-14 11:16 39次 阅读
索尼推出支持HDMI的最快的USB-C连接器

M8母插座连接器的作用是什么

与Binder的M 12连接器系列一样,现在还有可用于PCB安装的超值直线和角度M8连接器。
的头像 PCB线路板打样 发表于 08-14 09:00 101次 阅读
M8母插座连接器的作用是什么

使用MATLAB编写单层感知器的函数免费下载

本文档的主要内容详细介绍的是使用MATLAB编写单层感知器的函数免费下载。
发表于 08-13 16:55 38次 阅读
使用MATLAB编写单层感知器的函数免费下载

Matlab图形处理的函数详细资料说明

作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于....
发表于 08-13 16:25 33次 阅读
Matlab图形处理的函数详细资料说明

预应力锚具之锚具连接器的知识

预应力锚具应考虑等级分类张拉、补张拉和释放压力预应力的规定。钢筋锚固好几根预应力筋的预应力锚具,除需....
发表于 08-13 11:10 38次 阅读
预应力锚具之锚具连接器的知识

采购国产连接器时应该有哪些方面的考虑

连接器的种类成千上百种,应用范围涉及生活工作(计算机、手机、电器、汽车)国计民生(通信、工业、航空航....
发表于 08-13 11:04 54次 阅读
采购国产连接器时应该有哪些方面的考虑

Linux的命令大全合集免费下载

本文档的主要内容详细介绍的是Linux的命令大全合集免费下载。
发表于 08-13 08:00 25次 阅读
Linux的命令大全合集免费下载

比4G更复杂,5G连接器将面临何种挑战?

这么多新变化,对5G基建各层级的参与者而言都是挑战和机遇,甚至包括了供电、散热解决方案。
的头像 EDA365 发表于 08-12 18:26 369次 阅读
比4G更复杂,5G连接器将面临何种挑战?

5G对连接器提出何种要求?

5G架构转变有三个核心要素:C-RAN架构的普遍采用、前传需要采用新的传输技术,以及AAS有源天线系....
的头像 EDA365 发表于 08-12 18:23 298次 阅读
5G对连接器提出何种要求?

电源连接器设计步骤正确的打开方式是怎样的

除了高紧凑这一设计特点之外,电源连接器在设计环节就必须具有极高的灵活性。设计时可以将紧凑性与绝佳的电....
发表于 08-12 16:59 44次 阅读
电源连接器设计步骤正确的打开方式是怎样的

SMA连接器尺寸测量不准所带来的影响

在射频连接器领域中,sma连接器是常见的一款产品之一,关于这款产品有许多地方是需要引起人们注意的。
发表于 08-12 16:56 46次 阅读
SMA连接器尺寸测量不准所带来的影响

浅析AMP汽车连接器的应用

利用Whitaker先生的解决方案,工程师们可以快速地制造出无焊、非绝缘的电连接器,它们的安装速度比....
发表于 08-12 16:53 52次 阅读
浅析AMP汽车连接器的应用

接插件在电路板上的作用及它的种类介绍

接插件也称连接器,它是实现电路器件、部件或组件之间可拆卸连接的最基本的机械式电气连接器件。常用的接插....
的头像 牵手一起梦 发表于 08-12 15:46 609次 阅读
接插件在电路板上的作用及它的种类介绍

射频连接器中的射频测试是什么

在射频连接器中RF是短期的射频。RF是与无线电波传播相关的电磁频谱内的任何频率。当RF电流被提供给天....
发表于 08-12 11:16 51次 阅读
射频连接器中的射频测试是什么

射频连接器高功率射频的考虑因素和约束

RF和微波无源元件承受许多设计约束和性能指标的负担。根据应用的功率要求,对材料和设计性能的要求可以显....
发表于 08-12 11:12 53次 阅读
射频连接器高功率射频的考虑因素和约束

关于一些拥有独特外形的连接器品牌

连接器发展到今年,经历过很多代的更新,起源于二次世界大战的连接器,直到今天为止,整个产业发生了翻天覆....
发表于 08-12 11:07 54次 阅读
关于一些拥有独特外形的连接器品牌

Linux命令行与shell脚本编程大全第3版PDF电子书免费下载

这是一本关于 Linux 命令行与 shell 脚本编程的全方位教程,主要包括四大部分 :Linux....
发表于 08-12 08:00 82次 阅读
Linux命令行与shell脚本编程大全第3版PDF电子书免费下载

如何使用 unexpand 命令?

unexpand 命令示例
的头像 Linux爱好者 发表于 08-11 11:27 190次 阅读
如何使用 unexpand 命令?

Expand 命令示例

与我之前提到的一样,expand 命令使用空格替换文件中的 TAB 字符。
的头像 Linux爱好者 发表于 08-11 11:27 230次 阅读
Expand 命令示例

Linux 或成 Azure 实际主导者

目前Azure虚拟机中最流行的操作系统的是Linux,而且这一比例还在上升。
的头像 Linux爱好者 发表于 08-11 11:22 144次 阅读
Linux 或成 Azure 实际主导者

简述Linux文本查看命令

Linux 常用命令中,除了 cat 还有很多其他用于文本查看的命令。
的头像 Linux爱好者 发表于 08-11 11:17 159次 阅读
简述Linux文本查看命令

活久见!Linux 之父彬彬有礼指出代码错误

反省归来的 Linus Torvalds 重新掌控 Linux 4.20 或 5.0 的开发
的头像 Linux爱好者 发表于 08-11 11:07 219次 阅读
活久见!Linux 之父彬彬有礼指出代码错误

Linux到底是怎么样来的?发展过程是如何的

Linux 内核非常庞大,我说的非常大并不是为了吓唬大家,确实是非常多的代码,超过 600 万行的代....
的头像 马哥Linux运维 发表于 08-11 11:00 278次 阅读
Linux到底是怎么样来的?发展过程是如何的

NSPU3061 6.3 V单向浪涌保护器件

61旨在保护电压敏感元件免受ESD影响。出色的钳位能力,低泄漏,高峰值脉冲电流处理能力和快速响应时间,可为暴露于ESD的设计提供一流的保护。由于尺寸小,它适用于手机,平板电脑,MP3播放器,数码相机和许多其他便携式应用,其中电路板空间非常宝贵。 特性 高I pp下的低钳位电压 低泄漏 IEC61000-4-2等级4的保护:±30 kV接触放电 IEC61000-4-5(闪电)保护:30 A(8 /20μs) 这些器件无铅,无卤素/ BFR,符合RoHS标准 小体轮廓:1.0 mm x 0.6 mm 应用 终端产品 LCD电源线保护 配置通道线路保护C型连接器 USB V BUS 和CC线路保护 麦克风线路保护 GPIO保护 智能手机 平板电脑 笔记本电脑 电路图、引脚图和封装图...
发表于 08-04 22:02 2次 阅读
NSPU3061 6.3 V单向浪涌保护器件

FUSB302B 可编程USB Type-C控制器含供电PD(预设SNK)

2B面向期望实现DRP / SRC / SNK USB Type-C连接器,但需要少量编程的系统设计人员。 FUSB302B支持USB Type-C检测,包括连接和方向.FUSB302B集成了USB BMC电力输送协议的物理层,允许高达100 W功率和角色互换.BMC的PD模块全面支持Type-C规格的替代接口。 特性 自动DRP切换的双角色功能 基于连接对象可以作为主机或设备进行连接的能力。 软件可配置为专用主机,专用设备或双角色。 专用设备可以在带固定CC或VCONN通道的Type-C插座或插头上运行。 完全支持Type-C 1.2。集成CC引脚的以下功能 作为主机进行连接/分离检测 作为主机进行电流能力指示 作为设备进行电流能力指示 音频适配器附件模式 调试附件模式 主动电缆检测 将CCx集成到VCONN开关上,为所有具有USB 3.1功能的电源线缆提供过流限制。 USB功率供给(PD)2.0,支持1.1版本 自动GoodCRC报文响应 需要时,自动软重置重发报文 未收到GoodCRC时自动重发报文 电池耗尽支持(无电量时支持SNK模式) 自动硬...
发表于 08-01 14:02 7次 阅读
FUSB302B 可编程USB Type-C控制器含供电PD(预设SNK)

NS5S1153 具有负摆动功能的DP2T USB 2.0高速/音频开关

53是一款DPDT开关,用于组合真地接地音频和USB 2.0高速数据应用。它允许便携式系统使用单个端口传输来自外部耳机的USB数据或音频信号;耳机; 2个通道符合USB 2.0,USB 1.1和USB 1.0。该开关能够传递低于地电压2伏的负电压信号。该器件在音频端口上配有分流电阻。当音频通道关闭时,这些电阻器会接通,并为音频线路上可能产生的任何电荷提供安全的接地路径。这样可以减少音频系统中的Pop和Click噪音。 NS5S1153还配备了VBUS检测电路,以便在VBUS上检测到电压时立即切换到USB模式。 NS5S1153采用节省空间的超薄型1.4 x 1.8 x 0.5 mm 10引脚UQFN封装。 特性 优势 2:1高速开关 从单个USB插座复用音频或高速数据路径 5.25 V耐受公共引脚 支持任何短路到V BUS 820 MHz的高带宽 所有频道都支持USB2.0,USB1.1,USB1.0 能够在R / L通道上将负摆动信号降至-2 V 可以将音频真实接地放大器连接到微型USB耳机 1.8 V兼容控制引脚和V BUS 检测c ircuitry 自动或手动切换频道 音频通道分流电阻器 弹出并单击降噪 超...
发表于 08-01 08:02 8次 阅读
NS5S1153 具有负摆动功能的DP2T USB 2.0高速/音频开关

FSUSB242 USB Type-C端口保护开关

42是一款为HSD + / HSD线路提供高压和浪涌保护的开关。浪涌是USB microB和USB Type-C™等小型连接器日益受到关注的问题。该产品将提供2:1切换,同时保持足够的信号完整性,因此USB 2.0 HS眼图仍然可以通过。 特性 完全USB数据端口保护 VDD 0 V - 5.5 V(12 V直流耐压) HSD±端口±20 V DC容差 ±26 V IEC 64000-4-5没有外部TVS的浪涌保护 VDD工作范围,2.7 V-5.5 V HSD RON:典型值5Ω CON = 5 pF典型 宽-3 dB带宽:> 720 MHz 低功耗工作:ICC...
发表于 08-01 06:02 3次 阅读
FSUSB242 USB Type-C端口保护开关

FSUSB40 低功率 双端口 高速USB2.0(480Mbps的)开关

0是双向低功率双端口高速USB2.0开关。该器件配置为双刀双掷(DPDT)开关,专为在两个高速(480Mbps)源或高速和全速(12Mbps)源之间切换进行了优化。 FSUSB40符合USB2.0的要求,具有5.5pF的极低导通电容(C ON )。该器件较宽的带宽(720MHz)超过了通过第3次谐波的要求,这样可使信号边缘和相位失真度最小。卓越的通道间串扰也最大限度地减少了干扰。 FSUSB40包含开关I / O引脚上的特殊电路,用于电源V CC 断开(V CC = 0)的应用,使该器件能承受过压条件。该器件的设计可将电流损耗尽量降低,即使当施加在时间可保证。此特性对超便携式应用(例如手机)尤为重要,可支持基带处理器通用I / O的直接接口。其他应用包括便携手机,PDA,数码相机,打印机和笔记本电脑中共的开关和连接器。 特性 低导通电容,5.9pF典型值 低导通电阻,3.9Ω典型值 低功能耗电:1μA最大值 15μA最大值I CCT 以上且扩展控制电压范围(V IN = 1.8V,V CC = 4.3V) 宽-3dB带宽,> 720MHz 封装: 10引线MicroPak™(1.6×2.1毫米) 10引线UMLP(1.4×1...
发表于 08-01 05:02 2次 阅读
FSUSB40 低功率 双端口 高速USB2.0(480Mbps的)开关

FSUSB30 低功率2端口高速USB 2.0(480 Mbps)开关

0是一款低功率,2端口,高速USB 2.0开关。配置为双刀双掷(DPDT)开关,此开关针对两个高速(480Mbps)源之间或高速与全速(12Mbps)源之间的切换操作进行了优化.FSUSB30符合USB2.0的要求,并且具有3.7pF的极低导通电容(C ON )。该器件较宽的带宽(720MHz)超过了通过第3次谐波的要求,这样可使信号边缘和相位失真度最小。出色的通道间串扰性能可实现最小的干扰。 FSUSB30在D + / D-引脚上包含了特殊的电路,在断电时可使器件承受过压条件。同时,当应用于S引脚的控制电压小于电源电压(V CC )时,该器件可以最大限度地降低功耗。此特性对超便携式应用(例如手机)尤为重要,可支持基带处理器通用I / O的直接接口。其他应用包括便携手机,PDA,数码相机,打印机和笔记本电脑中共享的开关和连接器。 特性 低导通电容: 3.7pF(典型值) 低导通电阻:6.5Ω(典型值) 低功耗:1μA(最大值) 10μA最大I CCT 超过扩展控制电压范围(V IN = 2.6 V,V CC = 4.3 V) 宽-3dB带宽,> 720MHz 8kV静电放电保护 当V CC = 0V; D + / D-引脚可耐受...
发表于 08-01 05:02 2次 阅读
FSUSB30 低功率2端口高速USB 2.0(480 Mbps)开关

FSA9285A 符合MCPC标准 USB端口 带自动检测多媒体开关 12 V V

5是一款高性能多媒体开关,对USB端口采用自动开关和配件检测.FSA9285允许共用一个常用USB端口在充电的同时通过音频和USB数据。此外,FSA9285集成了附件的检测,如耳机,带MIC及发送/结束的手机移动计算推广联盟(MCPC),车载充电器,USB充电器,USB On-The-Go(OTG),还集成了附件充电调节器(ACA)使用一个常用USB连接器.FSA9285可编程为基于检测到的配件实现USB数据路径的手动开关或自动开关。通过一个集成的14 V过压保护和1.45 A过流保护FET,FSA9285A集成常用于V BUS 的USB保护功能。 特性 开关类型:音频,FS / HS-USB,充电 开关机制:带可用中断的可编程开关 配件检测: 带麦克风(MIC)和发送/结束按钮的耳机: USB数据电缆 USB充电器(汽车,CDP,DCP) USB On-The-Go(OTG) 符合MCPC规范 可编程模式 USB:符合FS和HS 2.0标准 USB充电 符合电池充电标准1.2 集成FET,充电器检测 OCP(1.45 A) 音频 OVP(6.5 V - ...
发表于 08-01 02:02 0次 阅读
FSA9285A 符合MCPC标准 USB端口 带自动检测多媒体开关 12 V V

FSA806 USB 2.0高速 UART和带负信号能力的音频开关

是一款3:1 USB附件开关,可让USB数据,立体声和单声道音频,视频和UART数据共用一个连接器端口。两个端口被设计用于高速USB 2.0信号,同时还可用于全速USB和UART通信。该架构设计为允许音频信号在负电压下摆动,使常用的USB和耳机插孔可用于个人媒体播放器和便携式外设。 FSA806符合USB规格修订版2.0和micro-USB规格。 特性 •3:1开关处理: 音频耳机 UART
发表于 08-01 02:02 0次 阅读
FSA806 USB 2.0高速 UART和带负信号能力的音频开关

FSHDMI08 宽带宽差分信号的HDMI开关

08是一个宽带宽开关,设计用于路由HDMI链接数据,时钟和相关在UXGA分辨率情况下支持每通道高达1.65Gbps数据速率的DDC和CEC控制信号。应用包括LCD电视,DVD,机顶盒和使用多个数据视频接口的笔记本设计。该开关支持HDMI链路信号通路,具有超低非相邻通道串扰和超低的隔离特性。此性能对于尽量减少视频应用中有源视频源之间的重开至关重要。此开关的宽带宽允许高速差分信号以最小的加性歪斜和相位抖动通过开关。引脚支持HDMI标准A连接器PCB布局。 应用 多媒体平板电脑 手机 PMP / MP3播放器 电路图、引脚图和封装图...
发表于 08-01 02:02 2次 阅读
FSHDMI08 宽带宽差分信号的HDMI开关

FSA4480 具有保护功能的USB Type-C™模拟音频开关

0是一款高性能USB Type-C™端口多媒体交换机,支持模拟音频耳机。 FSA4480允许共享通用USB Type-C™端口,以传递USB2.0信号,模拟音频,边带使用线和模拟麦克风信号。 FSA4480还支持USB Type-C™插座侧的SBU端口和USB端口上的高电压。 特性 电源:VCC,2.7 V至5.5 V USB高速(480Mbps)SDD 21 -3dB带宽:950 MHz USB高速R ON :3Ω典型 音频开关负轨能力:-3V至+ 3V 音频开关THD + N = -110 dB; 1 V RMS ,f = 20Hz-20 kHz,32Ω负载 音频R ON :1Ω典型 高压保护:连接器侧引脚上的20V直流容差 过压保护:V TH = 5V典型 OMTP和CTIA引脚支持 支持音频感知路径 终端产品 手机 平板电脑 笔记本电脑 媒体球员 电路图、引脚图和封装图...
发表于 08-01 01:02 61次 阅读
FSA4480 具有保护功能的USB Type-C™模拟音频开关

FSA3000 双端口高速MHL开关

0是一款双向,低功率,双端口,高速USB2.0视频数据开关,支持移动高清链路(MHL)规格版本.1.0。 FSA3000配置为双刀双掷(DPDT)数据开关,专门针对USB2.0和MHL数据源进行了优化。 FSA3000的开关I / O引脚上有电路,使得器件能够在V CC 电源断开(V CC = 0)的应用中承受过压状况.FSA3000最大限度地降低了电流消耗,即使在施加于控制引脚的电压低于电源电压的情况下也是如此(V CC )。该特性特别适合手机等移动应用,可直接连接基带处理器的通用I / O。其他应用包括便携手机,数码相机和笔记本电脑中实现开关和连接器共用功能。 应用 多媒体平板电脑 存储和外设 手机 WLAN网卡和宽带接入 PMP / MP3播放器 电路图、引脚图和封装图...
发表于 08-01 00:02 0次 阅读
FSA3000 双端口高速MHL开关

FSA3200 两端口高速USB2.0开关 带​​移动高分辨率链接

0是一款双向,低功率,双端口,高速USB2.0和视频数据开关。该元件配置为双刀双掷(DPDT)开关及用于ID的数据和单刀双掷(SPDT)开关;该元件经过优化,适用于两个高速或全速USB和移动数字视频源(MDV)之间进行切换,还支持MHL™修订版1.0。 FSA3200包含开关I / O引脚上的特殊电路,用于电源V CC 断开(V CC = 0)的应用,使该器件能承受过压条件。此开关设计用于将电流消耗降低至最低,即使应用于控制引脚上的控制电压低于电源电压(V CC )时也是如此。该特性特别适用于手机等移动应用,可直接连接基带处理器的通用I / O。其他应用包括便携手机,数码相机和笔记本电脑中实现开关和连接器共用功能。 应用 多媒体平板电脑 存储和外设 手机 WLAN网卡和宽带接入 PMP / MP3播放器 电路图、引脚图和封装图...
发表于 08-01 00:02 0次 阅读
FSA3200 两端口高速USB2.0开关 带​​移动高分辨率链接

NLAS7213 用于高速USB 2.0的DPST模拟开关

13是一款DPST开关,针对便携式系统中的高速USB 2.0应用进行了优化。它具有超低的关断电容,COFF = 3.0 pF(典型值),带宽高于1118 MHz。它针对使用单个USB接口连接器路由多种信号类型的应用进行了优化。两个开关的CON和RON都很低,允许NLAS7213将任何速度的USB数据或音频信号传递到中等电阻的终端,如外部耳机。 NLAS7213采用ll引脚保护,具有8 kV人体模型ESD保护。它采用1.5 x 1.5 x 0.55 mm UQFN8封装。 特性 RON:10ΩMax@ V CC = 3.3 V C OFF :3.0 pF Typ at V CC = 3.3 V V CC 工作范围:1.65 V至4.5 V > 1118 MHz带宽 D + / D引脚上的OVT高达5.25 V 1.5 x 1.5 x 0.55 mm UQFN8封装 所有引脚上的8 kV HBM ESD保护 这是一个无铅设备 应用 终端产品 高速USB 2.0数据 手机 便携设备 电路图、引脚图和封装图...
发表于 08-01 00:02 0次 阅读
NLAS7213 用于高速USB 2.0的DPST模拟开关

FSA3030 FSA3030-具有负摆幅音频的高速USB2.0 /移动高清连接(MHL™)

0是一种双向高速低功率音频开关,并具备3:1,USB2.0,MHL™技术。配置为双刀三掷(DP3T)开关;经过优化,用于高速或全速USB之间的切换,移动高清连接源(MHL2.0版规格)以及具有负摆幅功能的音频。 FSA3031包含开关I / O引脚上的特殊电路,用于电源VCC断开(VCC = 0)的应用,使该器件能承受过压条件。 此开关设计用于将电流消耗降低至最低,即使应用于控制引脚上的控制电压低于电源电压(V CC )时也是如此。该特性特别适合手机等移动应用,可直接连接基带处理器的通用I / O。其他应用包括便携手机,数码相机和笔记本电脑中实现开关和连接器共用功能。 特性 低导通电容:4.2pF / 5pF MHL / USB(典型值) 低功耗30μA(最大值) 支持MHL版本2.0 MHL数据速率:4.0 Gbps 音频摆幅:-1.5 V到+1.5 V(典型值) 12引脚UMLP封装(1.8 x 1.8mm) IEC 610002-4第4级ESD容差 所有USB端口过压容限(OVT): 高达5.25 V,无外部元件 应用 手机 PMP / MP3播放器 WLAN网卡和宽带接入 多媒体平板电脑 存储和外设 消费...
发表于 07-31 23:02 0次 阅读
FSA3030 FSA3030-具有负摆幅音频的高速USB2.0 /移动高清连接(MHL™)

NCN1154 DP3T数据开关 USB 2.0高速/音频 具有负摆动功能

4是一款DP3T开关,用于组合真地音频,USB 2.0高速数据和UART应用。它允许便携式系统使用单个端口传输来自外部耳机的USB数据或音频信号; 3个通道符合USB 2.0,USB 1.1和USB 1.0。该开关能够传递低于地电压2伏的负电压信号。 NCN1154在音频端口上具有分流电阻。当音频通道关闭时,这些电阻器会接通,并为音频线路上可能产生的任何电荷提供安全的接地路径。这减少了Pop&单击音频系统中的噪音。该器件具有扩展的V CC 范围,可以在高达4.2 V的V CC 下工作,同时将真正的接地音频信号传递至-2 V. 特性 优势 3:1高速开关 多路复用音频或高速数据或UART信号路径一个USB插座 公共引脚上的5.25 V容差 支持任何短片到V BUS 高带宽820 MHz USB2.0,USB1.1,USB1。 0能够在所有通道上运行 能够在R / L通道上将负摆幅信号降至-2V 可以将音频真实接地放大器连接到微型USB耳机 1.8 V兼容控制引脚 GPIO低压控制 音频通道分流电阻器 弹出并单击降噪 超低THD 最小音频失真 应用 终端产品 单个连...
发表于 07-31 20:02 8次 阅读
NCN1154 DP3T数据开关 USB 2.0高速/音频 具有负摆动功能

NB7VPQ904M 1.8V USB Type-C™DisplayPort™ALT模式10Gbps线性转接驱动器

904M是1.8 V USB Type-C™DisplayPort™备用模式线性转接驱动器,完全支持DisplayPort 1.4(8.1 Gbps)和USB 3.1 Gen 1 / Gen 2(5/10 Gbps)协议。信号完整性因PCB走线,传输电缆和符号间干扰(ISI)而降低。 NB7VPQ904M通过使用不同级别的用户可选平坦增益来补偿这些损失。均衡,为输出数据信号创建最佳眼图。 特性 1.8 V +/- 5%电源 4通道线性转接驱动器,支持高达10Gbps的数据速率 支持USB Type-C USB3.1 Gen 1 / Gen 2和DP1.4作为具有设备操作模式的备用模式 支持已集成USB3.1&的SOC。 DP1.4 MUX over USB Type-C 可用于USB Type-C电缆,以减少电缆损耗 用于DP AUX通道的USB Type-C SBU信号的集成开关 深度省电模式的芯片使能引脚 具有热插拔功能 ESD保护±4kV HBM 应用 终端产品 移动电话 计算:台式机,笔记本电脑和笔记本电脑平板电脑 带USB-C,USB或DP连接器的扩展坞 游戏控制台&智能电视 USB Type-C有源线 手机 计算:台式机,笔记本电脑和平板电脑 带US...
发表于 07-31 17:02 2次 阅读
NB7VPQ904M 1.8V USB Type-C™DisplayPort™ALT模式10Gbps线性转接驱动器

HFBR-RUS100Z 塑料光纤电缆 - 标准衰减,非连接,单工电缆,100米,符合RoHS标准

HFBR-R / EXXYYYZ系列塑料光纤电缆由单层阶跃折射率光纤构成,护套采用黑色聚乙烯护套。双面纤维由两根单面纤维和拉链网连接而成。 标准衰减和超低损耗POF电缆除衰减规范外完全相同。所有塑料光纤电缆上的聚乙烯护套均符合UL VW-1阻燃规范(UL文件#E89328)。电缆有未连接或连接选项。有关部件号信息,请参阅“订购指南”。功能 符合RoHS标准 与Broadcom Versatile Link系列连接器和光纤组件兼容 1 mm直径塑料光纤(POF)有两个等级:低成本标准POF,典型衰减0.22 dB / m,或高性能超低损耗POF,典型衰减0.19 dB / m...
发表于 07-04 11:06 26次 阅读
HFBR-RUS100Z 塑料光纤电缆 - 标准衰减,非连接,单工电缆,100米,符合RoHS标准

HFBR-RTD45DZ 塑料光纤电缆 - 标准衰减,闭锁双工连接器,双工拉链电缆,4.5米,符合RoHS标准

HFBR-R / EXXYYYZ系列塑料光纤电缆由单层阶跃折射率光纤构成,护套采用黑色聚乙烯护套。双面纤维由两根单面纤维和拉链网连接而成。 标准衰减和超低损耗POF电缆除衰减规范外完全相同。所有塑料光纤电缆上的聚乙烯护套均符合UL VW-1阻燃规范(UL文件#E89328)。电缆有未连接或连接选项。有关部件号信息,请参阅“订购指南”。功能 符合RoHS标准 与Broadcom Versatile Link系列连接器和光纤组件兼容 1 mm直径塑料光纤(POF)有两个等级:低成本标准POF,典型衰减0.22 dB / m,或高性能超低损耗POF,典型衰减0.19 dB / m...
发表于 07-04 11:06 18次 阅读
HFBR-RTD45DZ 塑料光纤电缆 - 标准衰减,闭锁双工连接器,双工拉链电缆,4.5米,符合RoHS标准

HFBR-RMD010Z 塑料光纤电缆 - 标准衰减,标准双工连接器,双工拉链电缆,10米,符合RoHS标准

塑料光纤电缆 - 标准衰减,标准双工连接器,双工拉链电缆,10米,符合RoHS标准 功能
发表于 07-04 11:06 16次 阅读
HFBR-RMD010Z 塑料光纤电缆 - 标准衰减,标准双工连接器,双工拉链电缆,10米,符合RoHS标准

HFBR-EUS500Z 塑料光纤电缆 - 超低损耗,非连接,单芯电缆,500米,符合RoHS标准

HFBR-R / EXXYYYZ系列塑料光纤电缆由单层阶跃折射率光纤构成,护套采用黑色聚乙烯护套。双面纤维由两根单面纤维和拉链网连接而成。 标准衰减和超低损耗POF电缆除衰减规范外完全相同。所有塑料光纤电缆上的聚乙烯护套均符合UL VW-1阻燃规范(UL文件#E89328)。电缆有未连接或连接选项。有关部件号信息,请参阅“订购指南”。功能 符合RoHS标准 与Broadcom Versatile Link系列连接器和光纤组件兼容 1 mm直径塑料光纤(POF),分为两个等级:低成本标准POF,典型衰减为0.22 dB / m,或典型衰减为0.19 dB / m的高性能超低损耗POF...
发表于 07-04 11:06 33次 阅读
HFBR-EUS500Z 塑料光纤电缆 - 超低损耗,非连接,单芯电缆,500米,符合RoHS标准