日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HDI硬件設(shè)備接口介紹

OpenAtom OpenHarmony ? 來(lái)源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-06-02 11:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HDF 驅(qū)動(dòng)框架是 OpenAtom OpenHarmony(簡(jiǎn)稱“OpenHarmony”)系統(tǒng)硬件生態(tài)開(kāi)放的基礎(chǔ),為驅(qū)動(dòng)開(kāi)發(fā)者提供了驅(qū)動(dòng)加載、驅(qū)動(dòng)服務(wù)管理和驅(qū)動(dòng)消息機(jī)制等驅(qū)動(dòng)框架能力,同時(shí)還為開(kāi)發(fā)者提供了規(guī)范的HDI硬件設(shè)備接口,讓開(kāi)發(fā)者能屏蔽南向設(shè)備差異,提供更好的硬件。本文將為大家?guī)?lái) HDI 硬件設(shè)備接口的介紹。

327e0238-e1b8-11ec-ba43-dac502259ad0.png

圖1 HDF驅(qū)動(dòng)框架

一、HDI介紹

HDI(Hardware Device Interface,硬件設(shè)備接口)是 HDF 驅(qū)動(dòng)框架為開(kāi)發(fā)者提供的硬件規(guī)范化描述性接口。在 OpenHarmony 分層結(jié)構(gòu)中,HDI 位于 “基礎(chǔ)系統(tǒng)服務(wù)層”和“設(shè)備抽象層(DAL)”之間。硬件設(shè)備通過(guò) DAL 抽象化,并基于 IDL(Interface Description Language)接口描述語(yǔ)言描述后,為上層應(yīng)用或服務(wù)提供了規(guī)范的硬件設(shè)備接口。

32a4b0c2-e1b8-11ec-ba43-dac502259ad0.png

圖2 OpenHarmony 分層結(jié)構(gòu)

HDI 支持“IPC 模式”及“直通模式”兩種調(diào)用方式。其中,IPC 模式即跨進(jìn)程通信模式,基于 binder 機(jī)制實(shí)現(xiàn),調(diào)用端通過(guò) Proxy 代理庫(kù)調(diào)用 HDI 接口,具備良好的解耦性和安全性,是標(biāo)準(zhǔn)系統(tǒng)的默認(rèn)部署方式。直通模式,將 HDI 實(shí)現(xiàn)為共享庫(kù),調(diào)用端使用 dlopen 加載 HDI 實(shí)現(xiàn)庫(kù)并直接調(diào)用 HDI 接口,是小型系統(tǒng)的默認(rèn)部署方式,同時(shí)還適用于對(duì)性能有特殊需求的標(biāo)準(zhǔn)系統(tǒng)模塊。

32d2f680-e1b8-11ec-ba43-dac502259ad0.jpg

圖3 兩種調(diào)用方式

HDI 硬件設(shè)備接口的優(yōu)點(diǎn)用一句話總結(jié)就是:為硬件的接入提供了統(tǒng)一的實(shí)現(xiàn)通路。屏蔽了硬件接口的具體實(shí)現(xiàn),實(shí)現(xiàn)系統(tǒng)軟件與硬件的架構(gòu)解耦。讓開(kāi)發(fā)者專注于硬件接口的使用,從而簡(jiǎn)化開(kāi)發(fā)過(guò)程,提升開(kāi)發(fā)效率。

二、HDI實(shí)現(xiàn)

通過(guò)上文的介紹,相信很多小伙伴會(huì)有疑問(wèn),HDI 接口是怎么實(shí)現(xiàn)的呢?下面我們將為你介紹 IPC 模式下基于 C/S(Client-Server 客戶端與服務(wù)端)結(jié)構(gòu)的 HDI 接口實(shí)現(xiàn)。

2.1 IDL接口描述語(yǔ)言

為方便后文的理解,我們先簡(jiǎn)單了解一下 IDL 接口描述語(yǔ)言。

IDL(Interface Description Language)是一類用來(lái)描述接口的語(yǔ)言,通過(guò)一種中立的方式來(lái)定義客戶端與服務(wù)端均認(rèn)可的編程接口,可以實(shí)現(xiàn)在二者間的跨進(jìn)程通信(IPC)??邕M(jìn)程通信意味著可以在一個(gè)進(jìn)程訪問(wèn)另一個(gè)進(jìn)程的數(shù)據(jù),或調(diào)用另一個(gè)進(jìn)程的方法。通常把應(yīng)用接口提供方(供調(diào)用)稱為服務(wù)端,調(diào)用方稱為客戶端。

IDL 先把需要傳遞的對(duì)象分解成操作系統(tǒng)能夠理解的基本類型,然后根據(jù)接口聲明編譯,生成 IPC/RPC代理(Proxy)和樁(Stub)的 C/C++ 代碼,從而為調(diào)用者提供一致的接口和調(diào)用方式。

33023dd2-e1b8-11ec-ba43-dac502259ad0.png

圖4 IDL IPC模式通信模型

2.2 基于IDL語(yǔ)言實(shí)現(xiàn)HDI接口

首先,使用 IDL 語(yǔ)法描述 HDI 接口并保存為.idl文件,然后編寫(xiě) .idl 文件的編譯腳本 BUILD.gn 文件,最后編譯 .idl 文件即可。下面我們將為大家演示電源子系統(tǒng)的 HDI 接口的實(shí)現(xiàn)過(guò)程。

(1)使用IDL語(yǔ)法編寫(xiě) .idl 文件

● 定義電源接口 IPowerInterface.idl


package ohos.hdi.power.v1_0;import ohos.hdi.power.v1_0.IPowerHdiCallback;import ohos.hdi.power.v1_0.PowerTypes;
interface IPowerInterface {    RegisterCallback([in] IPowerHdiCallback ipowerHdiCallback);    StartSuspend();    StopSuspend();    ForceSuspend();    SuspendBlock([in] String name);    SuspendUnblock([in] String name);    PowerDump([out] String info);}

● 如果需要從服務(wù)端回調(diào),可以定義 callback 接口類 IPowerHdiCallback.idl


package ohos.hdi.power.v1_0;
[callback] interface IPowerHdiCallback {    OnSuspend();    OnWakeup();}

● 如果 interface 中用到了自定義數(shù)據(jù)類型,將自定義類型定義到 powerTypes.idl


package ohos.hdi.power.v1_0;
enum PowerHdfCmd {    CMD_REGISTER_CALLBCK = 0,    CMD_START_SUSPEND,    CMD_STOP_SUSPEND,    CMD_FORCE_SUSPEND,    CMD_SUSPEND_BLOCK,    CMD_SUSPEND_UNBLOCK,    CMD_DUMP,};
enum PowerHdfCallbackCmd {    CMD_ON_SUSPEND = 0,    CMD_ON_WAKEUP,};
enum PowerHdfState {    AWAKE = 0,    INACTIVE,    SLEEP,};

(2)編寫(xiě) .idl 文件的編譯腳本 BUILD.gn


import("//drivers/adapter/uhdf2/hdi.gni")if (defined(ohos_lite)) {  group("libpower_proxy_1.0") {    deps = []    public_configs = []  }} else {  hdi("power") {    module_name = "power_interface_service"
    sources = [      "IPowerHdiCallback.idl",      "IPowerInterface.idl",      "PowerTypes.idl",    ]
    language = "cpp"     subsystem_name = "hdf"     part_name = "power_device_driver"   }}

(3)編譯 .idl文件

使用編譯工具 hdi-gen 編譯 IDL 文件,IDL 文件在編譯過(guò)程中轉(zhuǎn)換為 C/C++ 語(yǔ)言的函數(shù)接口聲明、客戶端與服務(wù)端 IPC 相關(guān)過(guò)程代碼,開(kāi)發(fā)者只需要基于生成的 power.h 函數(shù)接口實(shí)現(xiàn)具體服務(wù)功能即可。

編譯后生成代碼在 out/product/gen/drivers/interface/power 中,接口代碼如下:


namespace OHOS {namespace HDI {namespace Power {namespace V1_0 {using namespace OHOS; enum {    CMD_POWER_INTERFACE_REGISTER_CALLBACK,    CMD_POWER_INTERFACE_START_SUSPEND,    CMD_POWER_INTERFACE_STOP_SUSPEND,    CMD_POWER_INTERFACE_FORCE_SUSPEND,    CMD_POWER_INTERFACE_SUSPEND_BLOCK,    CMD_POWER_INTERFACE_SUSPEND_UNBLOCK,    CMD_POWER_INTERFACE_POWER_DUMP,    CMD_POWER_INTERFACE_GET_VERSION,}; class IPowerInterface : public IRemoteBroker {public:    DECLARE_INTERFACE_DESCRIPTOR(u"ohos.hdi.power.v1_0.IPowerInterface");    virtual ~IPowerInterface() = default;    static sptr Get();    static sptr GetInstance(const std::string& serviceName);    virtual int32_t RegisterCallback(const sptr& ipowerHdiCallback) = 0;    virtual int32_t StartSuspend() = 0;    virtual int32_t StopSuspend() = 0;    virtual int32_t ForceSuspend() = 0;    virtual int32_t SuspendBlock(const std::string& name) = 0;    virtual int32_t SuspendUnblock(const std::string& name) = 0;    virtual int32_t PowerDump(std::string& info) = 0;    virtual int32_t GetVersion(uint32_t& majorVer, uint32_t& minorVer) = 0;};} // V1_0} // Power} // HDI}//OHOS

(4)實(shí)現(xiàn)HDI接口

● 實(shí)現(xiàn) UHDF Driver,用于將 HDI 實(shí)現(xiàn)加載為獨(dú)立進(jìn)程,并基于 HDF 驅(qū)動(dòng)框架發(fā)布設(shè)備服務(wù)。


static int32_t PowerInterfaceDriverDispatch(struct HdfDeviceIoClient *client, int cmdId, struct HdfSBuf *data,    struct HdfSBuf *reply){   ......
    return hdfPowerInterfaceHost->service->OnRemoteRequest(cmdId, *dataParcel, *replyParcel, option); // 將接口調(diào)用轉(zhuǎn)發(fā)到stub實(shí)現(xiàn)}
static int HdfPowerInterfaceDriverBind(struct HdfDeviceObject *deviceObject){    ......    hdfPowerInterfaceHost->ioservice.Dispatch = PowerInterfaceDriverDispatch;    hdfPowerInterfaceHost->ioservice.Open = NULL;    hdfPowerInterfaceHost->ioservice.Release = NULL;    hdfPowerInterfaceHost->service = new PowerInterfaceImpl();
    deviceObject->service = &hdfPowerInterfaceHost->ioservice;    return HDF_SUCCESS;}
......
struct HdfDriverEntry g_powerinterfaceDriverEntry = {    .moduleVersion = 1,    .moduleName = "power_interface_service",    .Bind = HdfPowerInterfaceDriverBind,    .Init = HdfPowerInterfaceDriverInit,    .Release = HdfPowerInterfaceDriverRelease,};

● 實(shí)現(xiàn) HDI 接口


#include "v1_0/power_interface_stub.h"
/* 繼承PowerInterfaceStub并實(shí)現(xiàn)IPowerInterface 中的接口*/class PowerInterfaceImpl : public PowerInterfaceStub {public:    virtual ~PowerInterfaceImpl() {}    int32_t RegisterCallback(const sptr& ipowerHdiCallback) override;    int32_t StartSuspend() override;    int32_t StopSuspend() override;    int32_t ForceSuspend() override;    int32_t SuspendBlock(const std::string& name) override;    int32_t SuspendUnblock(const std::string& name) override;    int32_t PowerDump(std::string& info) override;};
// 在cpp中對(duì)相關(guān)接口進(jìn)行實(shí)現(xiàn),其中調(diào)用了內(nèi)核相關(guān)接口,實(shí)現(xiàn)了具體功能
int32_t PowerInterfaceImpl::StopSuspend(){    suspendRetry_ = false;
    return HDF_SUCCESS;}
int32_t PowerInterfaceImpl::ForceSuspend(){    suspendRetry_ = false;
    NotifyCallback(CMD_ON_SUSPEND);    DoSuspend();    NotifyCallback(CMD_ON_WAKEUP);    return HDF_SUCCESS;}
int32_t PowerInterfaceImpl::SuspendBlock(const std::string& name){    std::lock_guard<std::mutex> lock(mutex_);    if (name.empty()) {        return HDF_ERR_INVALID_PARAM;    }    UniqueFd fd(TEMP_FAILURE_RETRY(open(LOCK_PATH, O_RDWR | O_CLOEXEC)));    bool ret = SaveStringToFd(fd, name);    if (!ret) {        return HDF_FAILURE;    }    return HDF_SUCCESS;}

三、HDI使用

通過(guò)上文的介紹,相信大家已經(jīng)對(duì) HDI 有了一定的了解,下面我們將為大家介紹 HDI 的使用,在直通模式下,對(duì) HDI 接口調(diào)用為同一進(jìn)程空間函數(shù)調(diào)用,過(guò)程較為直接,這里我們重點(diǎn)闡述 IPC 模式下的調(diào)用原理,然后通過(guò) CPP 語(yǔ)言來(lái)展示電源子系統(tǒng) HDI 的調(diào)用。

3.1 調(diào)用原理

在 IPC 模式下,當(dāng)系統(tǒng)服務(wù)調(diào)用 HDI 接口時(shí),通過(guò) proxy 庫(kù)將函數(shù)調(diào)用轉(zhuǎn)換為 IPC 請(qǐng)求,將接口調(diào)用的參數(shù)進(jìn)行序列化;IPC 請(qǐng)求通過(guò) IPC 框架發(fā)送到服務(wù)端,請(qǐng)求將被 stub 庫(kù)先處理,然后對(duì)接口調(diào)用的參數(shù)進(jìn)行反序列化,再轉(zhuǎn)換成對(duì)服務(wù)實(shí)現(xiàn)的函數(shù)調(diào)用,從而實(shí)現(xiàn)接口調(diào)用過(guò)程。

332891e4-e1b8-11ec-ba43-dac502259ad0.png

圖5 HDI調(diào)用過(guò)程

3.2 基于CPP語(yǔ)言的使用

上文已經(jīng)編譯生成了電源子系統(tǒng)的 HDI 接口,下面我們來(lái)看看如何使用 CPP 語(yǔ)言來(lái)調(diào)用 HDI 接口吧。

(1)客戶端在BUILD.gn中增加依賴://drivers/interface/foo/v1.0:libfoo_proxy_1.0"


ohos_executable("call_foo_hdi") {sources = ["src/call_foo_hdi.cpp",]deps = ["http://drivers/interface/foo/v1.0:libfoo_proxy_1.0",]external_deps = ["hiviewdfx_hilog_native:libhilog","ipc:ipc_core","utils_base:utils",]part_name = "bar"subsystem_name = "bar_subsystem"}

(2)在實(shí)現(xiàn)電源子系統(tǒng)的代碼中調(diào)用 HDI 接口,代碼如下:


 #include "v1_0/power_interface.h" //包含Power HDI接口頭文件 using namespace OHOS::V1_0; //使用HDI接口命名空間 namespace OHOS { namespace PowerMgr { sptr powerInterface = nullptr; SystemSuspendController::SystemSuspendController() {     sptr g_callback = new PowerHdiCallbackImpl();     powerInterface = IPowerInterface::Get(); //調(diào)用接口實(shí)例化接口獲取客戶端實(shí)例     if (powerInterface == nullptr) {         POWER_HILOGE(COMP_SVC, "The hdf interface is null");         return;     }     powerInterface->RegisterCallback(g_callback); // 調(diào)用HDI接口注冊(cè)電源事件回調(diào)}

四、結(jié)語(yǔ)

以上就是本文全部?jī)?nèi)容,我們?cè)谶@里簡(jiǎn)單介紹了HDI接口的實(shí)現(xiàn)思路及使用,對(duì)于廣大南向開(kāi)發(fā)者,我們還在社區(qū)提供了詳細(xì)的HDI接口實(shí)現(xiàn)指導(dǎo),歡迎大家在gitee社區(qū)參與更多討論。

社區(qū)鏈接:

https://gitee.com/openharmony/drivers_interface

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9603

    瀏覽量

    157678
  • HDI
    HDI
    +關(guān)注

    關(guān)注

    7

    文章

    227

    瀏覽量

    22812

原文標(biāo)題:OpenHarmony 3.1 Release版本關(guān)鍵特性解析——HDI硬件設(shè)備接口介紹

文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Microchip ATSHA204A:高安全性硬件認(rèn)證設(shè)備的深度解析

    的一員,是一款高安全性硬件認(rèn)證設(shè)備,為眾多應(yīng)用場(chǎng)景提供了強(qiáng)大的安全保障。本文將深入剖析ATSHA204A的特點(diǎn)、應(yīng)用、組織架構(gòu)、安全特性、I/O接口、電氣特性以及安全命令等方面,幫助電子工程師更好地了解
    的頭像 發(fā)表于 04-06 14:55 ?731次閱讀

    深入解析USB - SDP - CABLEZ:開(kāi)啟硬件評(píng)估新體驗(yàn)

    深入解析USB - SDP - CABLEZ:開(kāi)啟硬件評(píng)估新體驗(yàn) 在開(kāi)發(fā)電子產(chǎn)品時(shí),便捷高效的評(píng)估工具是必不可少的。今天就來(lái)詳細(xì)介紹一款來(lái)自ADI(Analog Devices)的USB - SDP
    的頭像 發(fā)表于 04-04 13:10 ?684次閱讀

    如何設(shè)置HDI PCB布局?

    積和優(yōu)異的電氣性能,廣泛應(yīng)用于智能手機(jī)、平板電腦、可穿戴設(shè)備及高端服務(wù)器等領(lǐng)域。合理設(shè)置HDI PCB布局,對(duì)于確保電路性能、提升生產(chǎn)效率及降低成本具有至關(guān)重要的作用。以下將從設(shè)計(jì)準(zhǔn)備、層疊結(jié)構(gòu)規(guī)劃、元件布局、布線策略及設(shè)計(jì)驗(yàn)證幾個(gè)方面,詳細(xì)
    的頭像 發(fā)表于 03-30 17:01 ?1010次閱讀
    如何設(shè)置<b class='flag-5'>HDI</b> PCB布局?

    納芯微磁編碼器 SPI 接口硬件接線設(shè)計(jì)

    ? 納芯微磁編碼器 SPI接口硬件接線設(shè)計(jì)與工程實(shí)現(xiàn) 納芯微(含原麥歌恩MagnTek)磁編碼器(MT68xx/NSM301x系列)的SPI接口是直播云臺(tái)、伺服電機(jī)、機(jī)器人關(guān)節(jié)等高精度閉環(huán)系統(tǒng)的核心
    的頭像 發(fā)表于 03-26 14:18 ?764次閱讀

    適配MiSTer FPGA平臺(tái)的開(kāi)源MIDI接口介紹

    玩 MiSTer FPGA 平臺(tái)想拓展 MIDI 功能,卻沒(méi)有專用適配接口?外接 MIDI 設(shè)備擔(dān)心浪涌損壞核心板,無(wú)隔離保護(hù)不敢輕易連接?接口數(shù)量少,滿足不了多 MIDI 設(shè)備同時(shí)連
    的頭像 發(fā)表于 03-13 14:25 ?500次閱讀

    HDI線路板的應(yīng)用領(lǐng)域:從通信到軍事設(shè)備

    HDI線路板憑借高密度、高可靠性的特點(diǎn),廣泛應(yīng)用于通信、軍事設(shè)備、消費(fèi)電子、汽車(chē)電子及航空航天等領(lǐng)域。以下是具體應(yīng)用場(chǎng)景: 通信設(shè)備 HDI板用于5G基站、路由器、交換機(jī)等,支持高頻信
    的頭像 發(fā)表于 12-16 16:05 ?1881次閱讀

    GPIO接口介紹

    存放數(shù)據(jù)的“通用I/O端口數(shù)據(jù)寄存器”。數(shù)據(jù)寄存器的每一位是和GPIO的硬件引腳對(duì)應(yīng)的,而數(shù)據(jù)的傳遞方向是通過(guò)控制寄存器設(shè)置的,通過(guò)控制寄存器可以設(shè)置每一位引腳的數(shù)據(jù)流向。 用戶可以通過(guò)GPIO口
    發(fā)表于 11-20 08:12

    豐富的接口各對(duì)應(yīng)連接什么設(shè)備?

    一、USB系列接口:最常用的“萬(wàn)能接口”? ? USB接口是筆記本最基礎(chǔ)也最常用的接口,根據(jù)版本和形態(tài)可分為多種,適配設(shè)備覆蓋日常辦公、娛樂(lè)
    的頭像 發(fā)表于 11-07 17:20 ?1964次閱讀

    NICE接口介紹

    一、NICE接口簡(jiǎn)介 在開(kāi)發(fā)過(guò)程中,為了提高特定領(lǐng)域的性能,同時(shí)降低功耗,可以考慮利用定制的硬件協(xié)同單元,蜂鳥(niǎo)E203內(nèi)核支持用戶創(chuàng)建自定義指令,主處理器與協(xié)處理器通過(guò)NICE(Nuclei
    發(fā)表于 11-05 09:52

    USB 接口無(wú)法識(shí)別外接設(shè)備怎么辦??

    可能是設(shè)置被誤改。今天,我們就從硬件排查到系統(tǒng)修復(fù)入手,拆解不同場(chǎng)景下的解決方案,讓大家遇到這種情況時(shí)不用送修,自己在家就能搞定! ? 一、搞清楚USB 接口不識(shí)別的兩大根本原因,不是接口壞了就是里面線路沒(méi)通? USB
    的頭像 發(fā)表于 09-17 16:28 ?6463次閱讀
    USB <b class='flag-5'>接口</b>無(wú)法識(shí)別外接<b class='flag-5'>設(shè)備</b>怎么辦??

    HDI盲埋孔PCB階數(shù)區(qū)分方法解析

    HDI盲埋孔PCB的階數(shù)是區(qū)分其結(jié)構(gòu)復(fù)雜度的關(guān)鍵指標(biāo),主要通過(guò)增層次數(shù)、鉆孔工藝及連接層數(shù)來(lái)綜合判斷,具體區(qū)分方法如下: 一、基于增層次數(shù)的階數(shù)定義 HDI板結(jié)構(gòu)通常以“a+N+a”或
    的頭像 發(fā)表于 08-05 10:34 ?4983次閱讀
    <b class='flag-5'>HDI</b>盲埋孔PCB階數(shù)區(qū)分方法解析

    【Banana Pi BPI-RV2開(kāi)發(fā)板試用體驗(yàn)】開(kāi)箱+硬件介紹

    本文介紹一下基于矽昌通信SF21H8898的開(kāi)發(fā)板Banana Pi BPI-RV2硬件。 首先來(lái)看下它的外包裝。包裝還是紙盒,圖案是BPI一貫的設(shè)計(jì)風(fēng)格 包裝里面只有一個(gè)開(kāi)發(fā)板,用防靜電袋子包裝
    發(fā)表于 07-29 23:47

    飛凌嵌入式ElfBoard ELF 1板卡-LCD硬件原理介紹

    。ELF 1開(kāi)發(fā)板用的是并行傳輸方式,驅(qū)動(dòng)板主控芯片輸出的TTL數(shù)據(jù)信號(hào),經(jīng)電纜線直接傳送到LCD液晶面板的輸入接口。一、硬件原理的介紹由于ELF 1開(kāi)發(fā)板使用的是LCD RGB TTL并行傳輸
    發(fā)表于 06-07 10:56

    眾陽(yáng)電路HDI剛?cè)岚?b class='flag-5'>介紹(一)

    隨著電子產(chǎn)品向輕薄短小、高性能及多功能化方向發(fā)展,作為電子產(chǎn)品元器件支撐體的印制線路板(PCB)也需要向布線高密度化、輕薄化方向發(fā)展。高密度布線、高接點(diǎn)數(shù)的高密度互連(HDI)技術(shù)和可實(shí)現(xiàn)立體三維
    的頭像 發(fā)表于 06-02 19:38 ?1069次閱讀
    眾陽(yáng)電路<b class='flag-5'>HDI</b>剛?cè)岚?b class='flag-5'>介紹</b>(一)
    虞城县| 彭阳县| 福建省| 天镇县| 曲靖市| 稷山县| 鄂州市| 右玉县| 昆明市| 赤城县| 东阳市| 鹤山市| 宁陵县| 韶山市| 湖南省| 黄平县| 多伦县| 丹东市| 江陵县| 无棣县| 漠河县| 绥芬河市| 三明市| 盐池县| 泸溪县| 阿巴嘎旗| 西充县| 梨树县| 新建县| 忻城县| 灵丘县| 淳安县| 嵩明县| 涿鹿县| 西青区| 苏尼特左旗| 南投县| 临朐县| 岳西县| 新营市| 上高县|