首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韦东山嵌入式

    Linux系统驱动之I2C协议

    I2C协议 参考资料: i2c_spec.pdf 1. 下图:白色背景表示"主→从",灰色背景表示"从→主" 3.3 I2C信号 I2C协议中数据传输的单位是字节,也就是8位。但是要用到9个时钟:前面8个时钟用来传输8数据,第9个时钟用来传输回应信号。 响应信号(ACK):接收器在接收到8位数据后,在第9个时钟周期,拉低SDA SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化 I2C协议信号如下: 3.4 协议细节 如何在SDA上实现双向传输? 当它就绪后,就可以不再驱动三极管,这是上拉电阻把SCL变为高电平,其他设备就可以继续使用I2C总线了。 对于IIC协议它只能规定怎么传输数据,数据是什么含义由从设备决定。

    3.8K20编辑于 2021-12-08
  • 来自专栏Skemaloop

    协议驱动开发漫谈(一)

    协议驱动开发漫谈(一) 在前面的文章中,我们都把注意力关注在了具体的工具使用上,没有从方法论和必要性上讨论过协议驱动开发(Schema Driven Development)这种开发模式。 更严重的问题是由于接口定义不是强类型的,我们无法添加协议校验,也就无从得知一个接口的修改会不会导致服务不可用,为服务的快速上线增加了难度和风险。 Restful无法提供RPC接口。 我们的方案 我们通过引入SDD(即协议驱动开发)来解决以上提到的问题。

    84860编辑于 2022-04-04
  • 来自专栏韦东山嵌入式

    Linux系统驱动之SMBus协议

    必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git 视频观看 百问网驱动大全 SMBus是基于I2C协议的,SMBus要求更严格,SMBus是I2C协议的子集。 SMBus有哪些更严格的要求?跟一般的I2C协议有哪些差别? I2C协议:没有强制要求必须发出回应信号 SMBus:强制要求必须发出回应信号,这样对方才知道该设备的状态:busy,failed,或是被移除了 SMBus协议明确了数据的传输格式 I2C协议:它只定义了怎么传输数据 SMBus协议分析 对于I2C协议,它只定义了怎么传输数据,但是并没有定义数据的格式,这完全由设备来定义。 对于SMBus协议,它定义了几种数据格式。 注意: 下面文档中的Functionality flag是Linux的某个I2C控制器驱动所支持的功能。

    3.2K20编辑于 2021-12-08
  • 来自专栏linux驱动个人学习

    蓝牙协议分析(2)_协议架构

    前言 本文是蓝牙协议分析的第二篇文章,在“蓝牙协议分析(1)_基本概念”的基础上,从整体架构的角度,了解蓝牙协议的组成,以便加深对蓝牙的理解。 2. 蓝牙协议分为四个层次:物理层(Physical Layer)、逻辑层(Logical Layer)、L2CAP Layer和应用层(APP Layer)。 L2CAP层,L2CAP是逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol)的缩写,负责管理逻辑层提供的逻辑链路。 基于该协议,不同Application可共享同一个逻辑链路。类似TCP/IP中端口(port)的概念。 APP层,理解蓝牙协议中的应用层,基于L2CAP提供的channel,实现各种各样的应用功能。 2.3 L2CAP Channels L2CAP是Logical Link Control and Adaptation Protocol(逻辑链路控制和适配协议)的缩写,蓝牙协议到这个层次的时候,就清爽多了

    4.1K12发布于 2021-10-18
  • 来自专栏嵌入式项目开发

    Linux驱动开发-编写NEC红外线协议解码驱动

    NEC协议是众多红外线协议中的一种,以前广泛用在电视机,投影仪设备里,很早之前经常说的万能电视遥控器就是NEC协议的。 当前文章就介绍如何在Linux下通过红外线接收模块,编写一个NEC协议的红外线解码驱动,解析遥控器传输过来的各种控制指令,完成对应的动作响应;驱动里用到了外部中断接收数据,通过定时器计算间隔时间完成解码 NEC协议的特点如下: 单个码一共分为5各部分(没有算重复码): 引导码+用户码+用户反码+按键码+按键反码 对于接收方_引导码: 9ms的低电平+4.5ms的高电平。 驱动安装后,解码的效果: 3. 案例代码 驱动代码思路: 采用外部中断接收NEC的数据,在工作队列里完成协议解析,最终通过printk打印出来。 ,NULL); printk("驱动测试: 驱动卸载成功\n"); } module_init(tiny4412_hello_module_init); /*驱动入口--安装驱动的时候执行

    1.9K30编辑于 2022-04-08
  • 来自专栏魔王卷子的专栏

    Elasticsearch(2)PHP驱动

    ZQZ38Da" ["cluster_name"]=> string(13) "elasticsearch" ["cluster_uuid"]=> string(22) "FuPCyv2ZSimGYxAo_nLvpw lucene_version"]=> string(5) "6.3.0" } ["tagline"]=> string(20) "You Know, for Search" } 这样就表示我们的驱动已经安装并且连接完成了

    71110发布于 2019-05-28
  • 来自专栏捉虫大师

    聊聊dubbo协议2

    在《聊聊dubbo协议》中介绍了attachments在consumer和provider间的传递情况,有个疑问没有给出答案。 dubbo协议如何处理协议的兼容的? 从RmiProtocol类中能看到dubbo针对2.7.0、2.6.3两个边界进行了版本兼容 ? 版本信息从哪里来呢? [2.5.3, 2.6.3)版本中,dubbo版本与dubbo协议没有分开,都是用url上的dubbo参数,值是对应的版本号,取值范围是 >=2.0.0 && <=2.6.2 [2.6.3, 2.7.0 )版本,无法从provider注册的url上看出dubbo版本,dubbo协议版本是从url的dubbo参数获取,固定为2.0.2 2.7.0之后的版本,dubbo版本在provider的url release 参数上,dubbo协议版本在dubbo参数上,目前还是2.0.2 最后 通过这次分析知道了2.7.x的dubbo为什么provider不能带回隐式参数了,这应该是dubbo 2.7.x的一个bug。

    94021发布于 2021-03-03
  • 来自专栏猫头虎博客专区

    什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好?

    什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好? 通过阅读本文,您将能够清晰地了解A2A协议和MCP协议的区别,以及它们如何支持智能体协作、语言模型与外部系统的交互,以及在实际开发中如何选择更适合的协议来优化您的AI解决方案。 什么是A2A协议? A2A协议的技术原理 通信架构:A2A协议通常基于常见的Web标准技术,如HTTP和JSON-RPC,使智能体能够通过Web服务进行交互。 A2A协议的应用场景 A2A协议特别适用于需要多个智能体协同工作的场景,例如在智能制造、金融分析、客服机器人等行业中。通过A2A协议,多个智能体可以协调工作,共享信息并共同完成复杂任务。 A2A协议与MCP协议哪个更好? 选择哪个协议更好,取决于实际应用需求。

    2.9K10编辑于 2025-04-12
  • 来自专栏云计算linux

    Struts2 Property驱动和Model驱动

    Property驱动模式更加简单,无须再次实现ModelDriven接口,也减少了一个Model类,Struts.xml文件也不必配置modelDriven拦截器. 如果程序中已经存在了一个域对象或者需要重新定义这样一个域对象,那么就选择Model驱动模式。 如果需要输入的参数很少,3个以内,而且参数组合不能明显构成一个实体逻辑,可以考虑使用Property模式。

    21210编辑于 2024-12-13
  • 来自专栏c++与qt学习

    Oauth2协议

    Oauth2简介 第三方认证技术方案最主要是解决认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的接口协议。 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。 Oauth协议目前发展到2.0版本,1.0版本过于复杂,2.0版本已得到广泛应用。 参考:https://baike.baidu.com/item/oAuth/7153134? fr=aladdin Oauth 协议:https://tools.ietf.org/html/rfc6749 下边分析一个Oauth2认证的例子,网站使用微信认证的过程: 1.用户进入网站的登录页面 ,造成各种实现的兼容性和互操作性差 ​ 不是一个认证协议,本身并不能告诉你任何用户信息。 Oauth2RestTemplate会报错,这个报错信息会被Oauth2ClientContextFilter捕获并重定向到认证服务器 认证服务器通过Authorization Endpoint进行授权

    2.2K10编辑于 2021-12-07
  • 来自专栏Java架构师必看

    usb协议开发_基于事件驱动的架构

    今天说一说usb协议开发_基于事件驱动的架构,希望能够帮助大家进步!!! 1. 2. 3.2 USB设备端驱动 从上图可知,设备端驱动包含两部分: 1) 底层设备控制器驱动 2) 上层大容量存储类驱动 3.2.1 设备控制器驱动 USB设备控制器驱动主要实现 3.3 OTG驱动 OS_FS: 文件系统 USBD: USB核心 HCD: 主机控制器驱动 UDC: 设备端控制器驱动 OTG设备支持HNP和SRP协议。 从USB系统的角度来说,USB主机驱动主要包含: 1) USB核驱动 2) 主机控制器驱动 3) 集线器驱动 驱动的加载执行流程如下图所示:

    3K30编辑于 2022-06-15
  • 来自专栏python基础文章

    网络安全协议(2)

    2.CC体系一共包括3大部分 分别是:信息技术安全性评价通用准则,信息技术安全评价通用方法,通用准则识别协议。 (2)保护轮廓(PP)。PP是一种TOE类型的安全需求的独立强制性描述。PP是用户对安全需求的明确表述。 ---- 2.一般模型 为了消除不正当的压力对评估的影响,CEM定义了4个角色:发起者、开发者、评估者和评估权威机构。 发起者负责请求和支持评估,负责建立评估协议(即委任评估),并且保证评估者提供评估证据。开发者开发TOE,并且对于提供的评估所需的证据负责(即培训,设计信息)。 ---- 六.通用准则识别协议 通用准则识别协议(CCRA)列出了有CC认证授权的参与者(Participant),例如美国国家安全局、加拿大国家通信安全机构、芬兰国家财政部、希腊内政部等,之后详细叙述了这些机构的权利

    1.1K50编辑于 2023-10-15
  • 来自专栏悟空被FFmpeg玩

    驱动基础——字符设备2

    使用字符设备里的write 驱动代码 #include <linux/module.h> #include <linux/slab.h> #include <linux/kernel.h> #              res=cdev_add(&flash_cdev,dev,MAX_FLASH_ENV_MINORS);     if(res)         printk("<1> fuck2

    1.3K30发布于 2019-03-05
  • 来自专栏python3

    python实现onvif协议-2

    from suds.client import Client from suds.wsse import Security from suds_passworddigest.token import UsernameDigestToken url = 'file:///home/aphero/python/wsdl/media.wsdl' xadd='http://1.1.1.1/onvif/Media' client=Client(url,location=xadd) security = Security() token = UsernameDigestToken("admin", "12345") security.tokens.append(token) client.set_options(wsse=security) profiles=client.service.GetProfiles() for profile in profiles:     print profile._token,profile.Name     param={"StreamSetup":profile.Name,"ProfileToken":profile._token}     MediaUri=client.service.GetStreamUri(param)     print MediaUri.Uri

    2.1K20发布于 2020-01-03
  • 来自专栏大大刺猬

    主从连接协议(2)--GTID

    导读之前有讲MYSQL连接协议, 也有讲过主从连接协议. 并附有相关python测试代码. 但对于主从连接的时候, GTID获取还是借用的现有的, 也就是没有做解析. register_slave_on_masterdef register_slave(self):"""COM_FLAG: 1 (COM_REGISTER_SLAVE:21)server_id: 4host,user,password 0port: 2rpl_recovery_rank slave_uuid 算了bdata = b''if self.auto_position:"""COM_FLAG: 1 (COM_BINLOG_DUMP_GTID:30)binlog_flags: 2server_id self.bgtid)) + self.bgtidself.register_slave()else:"""COM_FLAG: 1 (COM_BINLOG_DUMP:18)binlog-pos: 4flags: 2server_id

    52510编辑于 2024-05-08
  • 来自专栏网络安全攻防

    UniswapV2协议解析

    文章前言 本篇文章主要对Uniswap V2协议的工作原理、项目构成、源码实现等部分进行详细解读。 协议简介 Uniswap V2是一个运行在以太坊区块链上的基于"恒定乘积"算法的"自动化流动性"协议,我们可以将其看做是一个建立在以太坊上的去中心化数字货币交易所(DEX),在该交易所上的所有交易(代币互换 协议特性 Uniswap V2是Uniswap V1的升级版本,它相比Uniswap V1主要有如下新特性: ERC-20 Pairs:Uniswap v1使用ETH作为过渡货币,每对都将ETH作为其资产之一 交易者: 流动性协议生态系统中有几类交易者: 投机者使用各种社区构建的工具和产品,利用从Uniswap协议中提取的流动性来交换代币 套利机器人通过比较不同平台的价格来寻求利润,虽然看起来很抽象,但这些机器人实际上有助于在更广阔的以太市场上均衡价格 交易都要缴纳与协议交易相同的统一费用,每一个对于提高价格的准确性和激励流动性都很重要。

    4.3K43发布于 2021-07-21
  • 来自专栏linux驱动个人学习

    I2S协议

    (二)I2S总线规范: I2S总线拥有三条数据信号线: 1、SCK: (continuous serial clock)  串行时钟:          对应数字音频的每一位数据,SCK都有1个脉冲。 SCK的频率=2×采样频率×采样位数。 2、WS: (word select)  字段(声道)选择:   用于切换左右声道的数据。WS的频率=采样频率。    I2S格式的信号无论有多少位有效数据,数据的最高位总是被最先传输(在WS变化(也就是一帧开始)后的第2个SCK脉冲处),因此最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。 当然,对I2S格式来说数据长度可以不同。 图2 I2S典型的接口时序 4、时序要求         在IIS总线中,任何设备都可以通过提供必需的时钟信号成为系统的主设备置,而从属设备通过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主设备和数据以及命令选择信号之间的传播延迟

    2.5K50发布于 2018-03-07
  • 来自专栏FPGA技术江湖

    FPGA零基础学习:UART协议驱动设计

    UART协议驱动设计 作者:郝旭帅 校对:陆辉 本篇实现基于叁芯智能科技的SANXIN -B01 FPGA开发板,以下为配套的教程,如有入手开发板,可以登录官方淘宝店购买,还有配套的学习视频。 为了解决上述的问题,我们规定了通信协议。 在UART通信协议中,我们规定: 1. 在不通信时,发送高电平。 2. 发送信息时,应该首先发送起始位(1bit、低电平)。 负责将tx_fifo中的数据按照UART的协议规定发送出去。 rx_ctrl模块:接收逻辑控制部分。负责将外部数据线上的数据按照UART协议规定解析出来,存储到tx_fifo中。 安装驱动 将开发板与电脑相连接,打开设备管理器。 在我们的开发板上,使用的USB <->UART的芯片就是CP2102,所以在此需要安装驱动。 打开04_串口驱动,安装CP210x_windows_drivers。 文件中有两个安装程序。

    1.2K30发布于 2020-12-30
  • 来自专栏FPGA技术江湖

    FPGA零基础学习:IIC协议驱动设计

    FPGA零基础学习:IIC协议驱动设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会 IIC协议驱动设计 作者:郝旭帅 校对:陆辉 本篇实现基于叁芯智能科技的SANXIN -B01 FPGA开发板,以下为配套的教程,如有入手开发板,可以登录官方淘宝店购买,还有配套的学习视频。 A0、A1、A2为用户可配置的芯片选择端。该管脚一般都连接电源或者地,在通信时,24LC64作为从机,主机在发送的命令中存在地址号,当地址号与A0、A1、A2管脚的电平相同时,该芯片视为被选中。 在有些兼容IIC协议接口的器件中,寻址范围较少,8bit足够表示,所以在设计时,设计出适合两种寻址方式的驱动。 SCL的实现采用计数器控制,根据规定好的频率,在合适的地方进行拉高或者拉低。 SDA根据协议和对应的脉冲进行发送对应的协议段。 架构设计和信号说明 本模块命名为iic_drive。 暂不连接的端口,在后续测试时,会有其他模块来控制或者读取。

    1.8K50发布于 2021-03-23
  • 来自专栏FPGA技术江湖

    FPGA零基础学习:IIC协议驱动设计

    IIC协议驱动设计 作者:郝旭帅 校对:陆辉 本篇实现基于叁芯智能科技的SANXIN -B01 FPGA开发板,以下为配套的教程,如有入手开发板,可以登录官方淘宝店购买,还有配套的学习视频。 A0、A1、A2为用户可配置的芯片选择端。该管脚一般都连接电源或者地,在通信时,24LC64作为从机,主机在发送的命令中存在地址号,当地址号与A0、A1、A2管脚的电平相同时,该芯片视为被选中。 在控制字节中,1010为EEPROM的标号;A2、A1、A0为主机发送的地址号,接收设备接收到此信息后,会与本身的A2、A1、A0相对比,相同时,视为被选中;最后1bit,0表示写入、1表示读出。 在有些兼容IIC协议接口的器件中,寻址范围较少,8bit足够表示,所以在设计时,设计出适合两种寻址方式的驱动。 SCL的实现采用计数器控制,根据规定好的频率,在合适的地方进行拉高或者拉低。 SDA根据协议和对应的脉冲进行发送对应的协议段。 架构设计和信号说明 本模块命名为iic_drive。 ? ? 暂不连接的端口,在后续测试时,会有其他模块来控制或者读取。

    81010发布于 2020-12-30
领券