主机如何确定IIC总线上的器件的地址?

IIC上的每个器件都要一个地址寄存器来确定自己的地址吗?

IIC上的每个器件是否都要一个地址寄存器来确定自己的地址:很多器件都是通过硬件来确定地址的。
  有的在出厂时地址就设置好了,用户不可以更改,有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制地址的引脚),此类较多;还有的有地址寄存器。

"如果主机向从机发送地址,从机怎么知道这个地址就是主机的,这个地址是怎么计算出来的"
严格讲,主机不是向从机发送地址,而是主机往总线上发送地址(这个地址是某个从机的,而不是主机的,所以不存在“从机怎么知道这个地址就是主机的”的问题),所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向主机发出一个响应信号。主机收到响应信号后,开始向总线上发送数据,与这个从机的通讯就建立起来了。如果主机没有收到响应信号,则表示寻址失败。

“比如IIC总线上接了两块单片机,一块是主机,另一块是从机,如何定义从机的这个地址”
如果是带IIC的单片机,会有地址寄存器,寄存器里的值即为它作为从机时的地址。
以ATmega48为例,有TWI从机地址寄存器—TWAR,先要确定工作模式(主机模式或从机模式),若工作在从机模式,,TWI将根据这个地址进行响应。
如果是不带IIC的单片机,没有地址寄存器。所以一般不用做从机。以AT89C51为例,用它的普通IO口模拟IIC时序时,一般都是用作主机。特殊情况下51用作从机时,可以通过扫描总线的方式,若发现总线上出现某个地址信号便响应(严格来说,这种方式只是在IIC基础上用户自定义的通信方式)。

最常见的情况,如前面所说,主从器件的角色是确定的,也就是说从机一直工作在从机模式。它的地址确定方法我已经说过了。不同的器件定义地址的方式是不同的,有的是软件定义,有的是硬件定义。你找个数据手册看看就明白了,纸上谈兵很难说清楚。

  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
IIC总线的FPGA实现是指使用FPGA芯片来实现IIC总线通信协议的功能。FPGA是一种可编程逻辑器件,可以根据需要进行配置和重新编程,因此可以用来实现各种数字电路和通信协议。在实现IIC总线时,FPGA可以通过配置其内部逻辑电路来模拟IIC总线的时序和通信协议。 具体实现IIC总线的FPGA设计需要考虑以下几个方面: 1. 配置FPGA的IO引脚:需要将FPGA的IO引脚连接到IIC总线的SDA和SCL信号线上,以实现数据和时钟的传输。 2. 实现IIC总线的时序:根据IIC总线的时序要求,FPGA需要在适当的时机产生时钟信号和数据信号的变化,以实现数据的传输和通信的控制。 3. 实现IIC总线的协议:FPGA需要根据IIC总线的协议规范,实现主机从机之间的数据传输和通信控制。这包括发送起始信号、地址和数据的传输、接收应答信号等操作。 4. 实现主机从机的功能:FPGA可以实现主机从机的功能,可以作为主机发送数据或作为从机接收数据,也可以同时兼具主机从机的功能。 总的来说,通过配置FPGA的内部逻辑电路,可以实现IIC总线的时序和通信协议,从而实现IIC总线的功能。具体的实现方式和细节可以根据具体的应用需求和FPGA芯片的特性来确定。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [FPGA实现IIC协议(二)----IIC总线的FPGA实现(单次读写驱动)](https://blog.csdn.net/wuzhikaidetb/article/details/120752864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [IIC总线的FPGA实现](https://blog.csdn.net/qq_43416206/article/details/129678657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值