日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]USB博大精深不是一篇文章就能夠解釋清楚的。想要深入研究USB的話,USB協(xié)議(外加Host和OTG協(xié)議)是必要的知識(shí),另外,國內(nèi)有本<>也寫的很好很詳細(xì)(點(diǎn)擊閱讀原文,21ic嵌入式論壇有下載),唯一美中不足的就是寫得太詳細(xì)了反而感覺思路架構(gòu)不是很清晰了。今天我們來簡單地把USB在Linux里的結(jié)構(gòu)框架大致整理下,其中重點(diǎn)解析下USB Core和Hub。

USB博大精深不是一篇文章就能夠解釋清楚的。想要深入研究USB的話,USB協(xié)議(外加Host和OTG協(xié)議)是必要的知識(shí),另外,國內(nèi)有本<>也寫的很好很詳細(xì)(點(diǎn)擊閱讀原文,21ic嵌入式論壇有下載),唯一美中不足的就是寫得太詳細(xì)了反而感覺思路架構(gòu)不是很清晰了。今天我們來簡單地把USB在Linux里的結(jié)構(gòu)框架大致整理下,其中重點(diǎn)解析下USB Core和Hub。

0. 預(yù)備理論

說實(shí)話,讀USB協(xié)議還是蠻痛苦的,它僅僅是一個(gè)協(xié)議,一個(gè)在USB世界里制定的游戲規(guī)則,就像法律條文一樣,它并不是為了學(xué)習(xí)者而寫的,可讀性很差。這里總結(jié)以下幾個(gè)重點(diǎn)基本點(diǎn)。

0.1 拓?fù)浣Y(jié)構(gòu) (ch4.1.1)

· 之所以要規(guī)定這個(gè)樹形拓?fù)浣Y(jié)構(gòu)是為了避免環(huán)形連接。

· 一條USB總線有且只有一個(gè)USB Host,對應(yīng)一個(gè)RootHub

· USB設(shè)備分為兩類,Hub和Functions,Hub通過端口Port連接更多USB設(shè)備,F(xiàn)unctions即USB外接從設(shè)備。

· 層次最多7層,且第7層不能有Hub,只能有functions。

· Compound Device - 一個(gè)Hub上接多個(gè)設(shè)備組成一個(gè)小設(shè)備。

· Composite Device - 一個(gè)USB外接設(shè)備具有多個(gè)復(fù)用功能。

0.2 機(jī)械性能 (ch5)

· 連接件connector,就是設(shè)備上的那個(gè)連接口。

· 插頭plug,就是USB電纜線兩頭的插口。

· Mini-AB, Micro-AB指的是支持A和B兩類插頭的連接件。

0.3 電氣性能 (ch6)

· VBUS - +5V電源供電。

· D+ D- - 用于數(shù)據(jù)傳輸?shù)碾娎|線。

· 低速 low-speed 10-100Kb/s 應(yīng)用于鼠標(biāo)和鍵盤等

· 全速 full-speed 500Kb-10Mb/s 應(yīng)用于音頻和麥克等

· 高速 high-speed 25-400Mb/s 應(yīng)用于存儲(chǔ)和視頻等 (USB3.0比之塊10倍)

0.4 四大描述符 (ch9.5)

協(xié)議規(guī)定了USB的四個(gè)描述符descriptor - 設(shè)備device,配置configure,接口interface,端點(diǎn)endpoint。

終端下輸入命令 # ls /sys/bus/usb/devices

usb1

1-0:1.0

usb2

2-0:1.0 // USB總線(RootHub) No.2,USB port端口號No.0,配置號No.1,接口號No.0。

· 區(qū)別port和endpoint,port之于hub,endpoint是每個(gè)USB設(shè)備用于數(shù)據(jù)傳輸所必需的端點(diǎn)。

· 設(shè)備device>配置configure>接口interface>設(shè)置setting>端點(diǎn)endpoint。

· 設(shè)備可以有多個(gè)配置,配置可以有一個(gè)或多個(gè)接口,接口可以有一個(gè)或多個(gè)設(shè)置。

· 一個(gè)接口對應(yīng)一個(gè)驅(qū)動(dòng),接口是端點(diǎn)的集合。

0.5 啟動(dòng)流程 (ch9.1,9.2)

· attached->powered->default->address->configured

· 啟動(dòng)流程與其他設(shè)備比如SD卡相比,最大的不同在于Hub,主機(jī)Host通過Hub狀態(tài)的變化判斷USB外接設(shè)備的有無。

· USB外接設(shè)備插入和拔出整個(gè)實(shí)現(xiàn)過程稱為總線枚舉Bus Enumeration。

0.6 數(shù)據(jù)流傳輸 (ch5)

· endpoint分零端點(diǎn)和非零端點(diǎn),零端點(diǎn)作為默認(rèn)的控制方法用于初始化和操控USB邏輯設(shè)備。

· 數(shù)據(jù)流傳輸分 control/bulk/interrupt/isochronous data transfer。

0.7 數(shù)據(jù)包 (ch8)

· 數(shù)據(jù)包分Token, Data, Handshake, Special,四種包有自己的數(shù)據(jù)組織方式。

· Token令牌包只能由主機(jī)傳送給設(shè)備,分IN, OUT, SOF和SETUP。

· SETUP包實(shí)現(xiàn)主機(jī)向設(shè)備發(fā)出的請求request,也要滿足特定的格式。(ch9.3,9.4)

1. USB Core

先啰嗦幾句,回答一個(gè)困擾我很久的問題,讀Linux源碼究竟要讀到什么程度?這是個(gè)永恒的話題,每個(gè)同道中人都有自己的看法。以吾輩之見,如何閱讀源碼主要取決于自己的職業(yè)定位,是研發(fā)還是開發(fā),是為Linux社區(qū)作貢獻(xiàn)還是用已有的方案開發(fā)?我想大多數(shù)驅(qū)動(dòng)工程師屬于后者,那么,面對已經(jīng)很完善的核心層源碼,還有必要看嗎,或者有必要去深入研究嗎?我認(rèn)為既然我們已經(jīng)站在了巨人的肩膀上,至少要知道這寬闊的肩膀是如何煉成的,它所存在的價(jià)值以及如何去使用它。

既然如此,那USB核心層到底是什么,它都默默地做了些什么,我們要如何使用它?這里主要有兩個(gè)重點(diǎn),USB總線和urb。

1.1 USB子系統(tǒng)結(jié)構(gòu)

協(xié)議里說,HCD提供主控制器驅(qū)動(dòng)的硬件抽象,它只對USB Core一個(gè)負(fù)責(zé),USB Core將用戶的請求映射到相關(guān)的HCD,用戶不能直接訪問HCD。換句話說,USB Core就是HCD與USB設(shè)備唯一的橋梁。

1.2 USB子系統(tǒng)的初始化

USB core源碼位于./drivers/usb/core,其中的Makefile摘要如下,

usbcore這個(gè)模塊代表的不是某一個(gè)設(shè)備,而是所有USB設(shè)備賴以生存的模塊,它就是USB子系統(tǒng)。

./drivers/usb/core/usb.c里實(shí)現(xiàn)了初始化,偽代碼如下,

usbcore注冊了USB總線,USB文件系統(tǒng),USB Hub以及USB的設(shè)備驅(qū)動(dòng)usb generic driver等。

1.3 USB總線

注冊USB總線通過bus_register(&usb_bus_type);

struct bus_type usb_bus_type = {

.name = "usb",

.match = usb_device_match, // 這是個(gè)很重要的函數(shù),用來匹配USB設(shè)備和驅(qū)動(dòng)。

.uevent = usb_uevent,

.pm = &usb_bus_pm_ops,

};

下面總結(jié)下USB設(shè)備和驅(qū)動(dòng)匹配的全過程,

-> step 1 - usb device driver

USB子系統(tǒng)初始化的時(shí)候就會(huì)注冊usb_generic_driver, 它的結(jié)構(gòu)體類型是usb_device_driver,它是USB世界里唯一的一個(gè)USB設(shè)備驅(qū)動(dòng),區(qū)別于struct usb_driver USB驅(qū)動(dòng)。

· USB設(shè)備驅(qū)動(dòng)(usb device driver)就只有一個(gè),即usb_generice_driver這個(gè)對象,所有USB設(shè)備都要綁定到usb_generic_driver上,它的使命可以概括為:為USB設(shè)備選擇一個(gè)合適的配置,讓設(shè)備進(jìn)入configured狀態(tài)。

· USB驅(qū)動(dòng)(usb driver)就是USB設(shè)備的接口驅(qū)動(dòng)程序,比如adb驅(qū)動(dòng)程序,u盤驅(qū)動(dòng)程序,鼠標(biāo)驅(qū)動(dòng)程序等等。

-> step 2 - usb driver

Linux啟動(dòng)時(shí)注冊USB驅(qū)動(dòng),在xxx_init()里通過usb_register()將USB驅(qū)動(dòng)提交個(gè)設(shè)備模型,添加到USB總線的驅(qū)動(dòng)鏈表里。

-> step 3 - usb device

USB設(shè)備連接在Hub上,Hub檢測到有設(shè)備連接進(jìn)來,為設(shè)備分配一個(gè)struct usb_device結(jié)構(gòu)體對象,并將設(shè)備添加到USB總線的設(shè)備列表里。

-> step 4 - usb interface

USB設(shè)備各個(gè)配置的詳細(xì)信息在USB core里的漫漫旅途中已經(jīng)被獲取并存放在相關(guān)的幾個(gè)成員里。

usb_generic_driver得到了USB設(shè)備的詳細(xì)信息,然后把準(zhǔn)備好的接口送給設(shè)備模型,Linux設(shè)備模型將接口添加到設(shè)備鏈表里,然后去輪詢USB總線另外一條驅(qū)動(dòng)鏈表,針對每個(gè)找到的驅(qū)動(dòng)去調(diào)用USB總線的match函數(shù),完成匹配。

1.4 USB Request Block (urb)

USB主機(jī)與設(shè)備間的通信以數(shù)據(jù)包(packet)的形式傳遞,Linux的思想就是把這些遵循協(xié)議的數(shù)據(jù)都封裝成數(shù)據(jù)塊(block)作統(tǒng)一調(diào)度,USB的數(shù)據(jù)塊就是urb,結(jié)構(gòu)體struct urb,定義在,其中的成員unsigned char *setup_packet指針指向SETUP數(shù)據(jù)包。下面總結(jié)下使用urb完成一次完整的USB通信需要經(jīng)歷的過程,

-> step 1 - usb_alloc_urb()

創(chuàng)建urb,并指定USB設(shè)備的目的端點(diǎn)。

-> step 2 - usb_control_msg()

將urb提交給USB core, USB core將它交給HCD主機(jī)控制器驅(qū)動(dòng)。

-> step 3 - usb_parse_configuration()

HCD解析urb,拿到數(shù)據(jù)與USB設(shè)備通信。

-> step 4

HCD把urb的所有權(quán)交還給驅(qū)動(dòng)程序。

協(xié)議層里最重要的函數(shù)就是usb_control/bulk/interrupt_msg(),這里就簡單地理一條線索,

usb_control_msg() => usb_internal_control_msg() => usb_start_wait_urb() => usb_submit_urb() => usb_hcd_submit_urb => hcd->driver->urb_enqueue() HCD主控制器驅(qū)動(dòng)根據(jù)具體平臺(tái)實(shí)現(xiàn)USB數(shù)據(jù)通信。

2. USB Hub

Hub集線器用來連接更多USB設(shè)備,硬件上實(shí)現(xiàn)了USB設(shè)備的總線枚舉過程,軟件上實(shí)現(xiàn)了USB設(shè)備與接口在USB總線上的匹配。

下面總結(jié)下USB Hub在Linux USB核心層里的實(shí)現(xiàn)機(jī)制,

USB子系統(tǒng)初始化時(shí),usb_hub_init()開啟一個(gè)名為"khubd"的內(nèi)核線程,

內(nèi)核線程khubd從Linux啟動(dòng)后就自始至終為USB Hub服務(wù),沒有Hub事件時(shí)khubd進(jìn)入睡眠,有USB Hub事件觸發(fā)時(shí)將會(huì)經(jīng)由hud_irq() => hub_activate() => kick_khubd() 最終喚醒khubd,將事件加入hub_event_list列表,并執(zhí)行hub_events()。hub_events()會(huì)不停地輪詢hub_events_list列表去完成hub觸發(fā)的事件,直到這個(gè)列表為空時(shí)退出結(jié)束,回到wait_event_xxx繼續(xù)等待。

處理hub事件的全過程大致可分為兩步,

· 第一步 判斷端口狀態(tài)的變化

通過hub_port_status()得到hub端口的狀態(tài)。

源碼里類似像hub_port_status(), hub_hub_status()等功能函數(shù),都調(diào)用了核心層的usb_control_msg()去實(shí)現(xiàn)主控制器與USB設(shè)備間的通信。

· 第二步 處理端口的變化

hub_port_connect_change()是核心函數(shù),以端口發(fā)現(xiàn)有新的USB設(shè)備插入為例,USB Hub為USB設(shè)備做了以下幾步重要的工作,注意這里所謂的USB設(shè)備是指插入U(xiǎn)SB Hub的外接USB設(shè)備(包括Hub和Functions),接下來Hub都在為USB設(shè)備服務(wù)。

1) usb_alloc_dev() 為USB設(shè)備申請一個(gè)sturct usb_device結(jié)構(gòu)。

2) usb_set_device_state() 設(shè)置USB設(shè)備狀態(tài)為上電狀態(tài)。(硬件上設(shè)備已進(jìn)入powered狀態(tài))。

3) choose_address() 為USB設(shè)備選擇一個(gè)地址,利用一個(gè)輪詢算法為設(shè)備從0-127里選擇一個(gè)地址號。

4) hub_port_init() 端口初始化,實(shí)質(zhì)就是獲取設(shè)備描述符device descriptor。

5) usb_get_status() 這個(gè)有點(diǎn)特殊,它是專門給Hub又外接Hub而準(zhǔn)備的。

6) usb_new_device() 這時(shí)USB設(shè)備已經(jīng)進(jìn)入了Configured狀態(tài),調(diào)用device_add()在USB總線上尋找驅(qū)動(dòng),若匹配成功,則加載對應(yīng)的驅(qū)動(dòng)程序。

3. USB OTG

引入OTG的概念是為了讓設(shè)備可以充當(dāng)主從兩個(gè)角色,主設(shè)備即HCD,從設(shè)備即UDC,也就是Gadget。這里就簡單梳理下協(xié)議和源碼。

3.1 協(xié)議

1) Protocol

OTG的傳輸協(xié)議有三類 - ADP,SRP,HNP。

· ADP(Attach Detection Protocol) 當(dāng)USB總線上沒有供電時(shí),ADP允許OTG設(shè)備或USB設(shè)備決定連接狀態(tài)。

· SRP(Session Request Protocol) 允許從設(shè)備也可以控制主設(shè)備。

· HNP(Host Negotiation Protocol) 允許兩個(gè)設(shè)備互換主從角色。

2) Device role

協(xié)議定義兩種角色,OTG A-device和OTG B-device,A-device為電源提供者,B-device為電源消費(fèi)者,默認(rèn)配置下,A-device作為主設(shè)備,B-device作為從設(shè)備,之后可以通過HNP互換。

3) OTG micro plug

協(xié)議上說"An OTG product must have a single Micro-AB receptacle and no other USB receptacles."這句話有點(diǎn)問題。。。應(yīng)該還包括mini-AB receptacle,以下所有micro都可以是mini。

OTG電纜一端為micro-A plug,另一端為micro-B plug。

OTG加了第5個(gè)pin腳,名為ID-pin,micro-A plug的ID-pin接地,micro-B plug的ID-pin懸空。

OTG設(shè)備被接上micro-A plug后被稱為micro-A device,被接上micro-B plug后被稱為micro-B device。

3.2 源碼淺析

OTG控制器集成在CPU內(nèi),Linux下的源碼驅(qū)動(dòng)由各家開發(fā)平臺(tái)提供,位于./drivers/usb/otg/下。

以Freescale平臺(tái)為例,主要的思路就是,當(dāng)有OTG線插入OTG設(shè)備時(shí)產(chǎn)生中斷,中斷處理函數(shù)上半部通過讀取OTG控制器寄存器相應(yīng)值判斷OTG設(shè)備屬于Host(HCD)還是Gadget(UDC),下半部通過工作隊(duì)列由回調(diào)函數(shù)類似host->resume()或gadget->resume()重啟Host或Gadget控制器,resume()具體的實(shí)現(xiàn)過程在HCD或UDC相關(guān)驅(qū)動(dòng)里實(shí)現(xiàn)。

4. USB Host

USB主控制器(HCD)同樣集成在CPU內(nèi),由開發(fā)平臺(tái)廠商提供驅(qū)動(dòng),源碼位于./drivers/usb/host/下。

主控制器主要有四類:EHCI, FHCI, OHCI, UHCI, 它們各自的寄存器接口協(xié)議不同,嵌入式設(shè)備多為EHCI。

該驅(qū)動(dòng)的結(jié)構(gòu)體類型為struct hc_driver,其中的成員(*urb_enqueue)最為重要,它是主控制器HCD將數(shù)據(jù)包urb傳向USB設(shè)備的核心實(shí)現(xiàn)函數(shù),之前已經(jīng)提到,協(xié)議層里最主要的函數(shù)usb_control_msg()最終就會(huì)回調(diào)主控制器的(*urb_enqueue)。

usb_control_msg() => usb_internal_control_msg() => usb_start_wait_urb() => usb_submit_urb() => usb_hcd_submit_urb => hcd->driver->urb_enqueue()

5. USB Gadget

Gadget源碼位于./drivers/usb/gadget/下,涉及的驅(qū)動(dòng)程序和數(shù)據(jù)結(jié)構(gòu)相對較多。

驅(qū)動(dòng)主要有,

· 平臺(tái)相關(guān)的Gadget控制器驅(qū)動(dòng)

· 平臺(tái)無關(guān)的復(fù)用設(shè)備驅(qū)動(dòng)composite.c

· android平臺(tái)的復(fù)用設(shè)備驅(qū)動(dòng)android.c

· adb驅(qū)動(dòng)f_adb.c,U盤驅(qū)動(dòng)f_mass_storage.c等一些復(fù)用的USB驅(qū)動(dòng)

數(shù)據(jù)結(jié)構(gòu)主要有,

· struct usb_gadget 里面主要有(*ops)和struct usb_ep *ep0。

· struct usb_gadget_driver 其中的(*bind)綁定復(fù)用設(shè)備驅(qū)動(dòng),(*setup)完成USB枚舉操作。

· struct usb_compostie_driver 其中的(*bind)綁定比如android復(fù)用設(shè)備驅(qū)動(dòng)。

· struct usb_request USB數(shù)據(jù)請求包,類似urb。

· struct usb_configuration 就是這個(gè)gadget設(shè)備具有的配置,其中的struct usb_function *interface[]數(shù)組記錄著它所擁有的USB接口/功能/驅(qū)動(dòng)。

· struct usb_function 其中的(*bind)綁定相關(guān)的USB接口,(*setup)完成USB枚舉操作。

整體框架可概括為,(mv_gadget為gadget控制器的數(shù)據(jù))

6. USB Mass Storage

全世界只有一個(gè)Linux U盤驅(qū)動(dòng),位于./drivers/usb/storage/usb.c,偽代碼如下,這里需要注意的是,在進(jìn)行U盤驅(qū)動(dòng)的初始化probe之前,USB core和hub已經(jīng)對這個(gè)U盤做了兩大工作,即

1) 完成了USB設(shè)備的枚舉,此時(shí)U盤已經(jīng)進(jìn)入configured狀態(tài),U盤數(shù)據(jù)存放在struct usb_interface。

2) 完成了USB總線上設(shè)備和驅(qū)動(dòng)的匹配,這時(shí)總線上已經(jīng)找到了接口對應(yīng)的驅(qū)動(dòng)即U盤驅(qū)動(dòng)。

· 土黃色部分由SCSI子系統(tǒng)封裝實(shí)現(xiàn)最終的U盤驅(qū)動(dòng)注冊。

· usb_stor_scan_thread 掃描U盤的線程,等待5秒,如果5秒內(nèi)不拔出就由SCSI進(jìn)行全盤掃描,

· usb_stor_contro_thread 一個(gè)核心的線程

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉