协议
设备
在 fuchsia.hardware.i2c/i2c.fidl 中定义
名称
获取此 I2C 设备的名称。如果名称未指定或为空字符串,则返回 ZX_ERR_NOT_SUPPORTED。
请求
<空>
回复
名称 | 类型 |
---|---|
payload |
Device_GetName_Result
|
转印
向特定的 I2C 设备发出一个或多个事务。
每个 Transaction
都按照它在 transactions
中出现的顺序执行。读取传输的数据(如果有)会通过 read_data
返回,其中 transactions
中的每项读取传输都有一个对应的条目。事务处理会一直持续,直到所有传输已完成、发生错误,或目标发出 NACK 以响应写入传输。
可能的错误值包括:ZX_ERR_INVALID_ARGS:transactions
没有任何元素、没有为 Transaction
指定 data_transfer
,或者存在长度为零的 DataTransfer
。
ZX_ERR_OUT_OF_RANGE:DataTransfer
过大,无法由此 I2C 控制器处理。
ZX_ERR_IO_NOT_PRESENT:设备未响应其 I2C 地址。ZX_ERR_IO_REFUSED:设备在写入传输结束前发出 NACK。
请求
名称 | 类型 |
---|---|
transactions |
vector<Transaction>[256]
|
回复
名称 | 类型 |
---|---|
payload |
Device_Transfer_Result
|
结构
设备获取名称响应
在 fuchsia.hardware.i2c/i2c.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
name |
string[64]
|
无默认值 |
设备传输响应
在 fuchsia.hardware.i2c/i2c.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
read_data |
vector<vector<uint8>>[256]
|
无默认值 |
表格
交易
在 fuchsia.hardware.i2c/i2c.fidl 中定义
data_transfer
是强制性的,用于指定此事务是具有读取还是写入传输(见上文)。stop
是可选的,用于指定此事务是由停止条件(如果为 true)还是通过重复开始(如果为 false 或未指定)终止。如果此事务是列表中的最后一个事务,则无论 stop
的值为何,都会生成停止条件。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
data_transfer |
DataTransfer
|
|
2 |
stop |
bool
|
联合
DataTransfer 灵活
在 fuchsia.hardware.i2c/i2c.fidl 中定义
如果设置了 read_size
:这是读取转移作业,系统将从目标读取 read_size
字节。如果设置了 write_data
:这是一次写入传输,且 write_data
将会被写入目标。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
read_size |
uint32
|
|
2 |
write_data |
vector<uint8>[32768]
|
Device_GetName_Result 严格
在 fuchsia.hardware.i2c/i2c.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_GetName_Response
|
|
2 |
err |
zx/Status
|
Device_Transfer_Result 严格
在 fuchsia.hardware.i2c/i2c.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_Transfer_Response
|
|
2 |
err |
zx/Status
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_COUNT_TRANSACTIONS 次 |
256
|
uint32 |
在调用 |
MAX_I2C_NAME_LEN |
64
|
uint32 |
I2C 通道名称的最大长度。 添加数量:11
|
MAX_TRANSFER_SIZE |
32768
|
uint32 |
使用大传输或大量事务时,客户端应了解通道消息的大小上限。有可能会生成所用值小于以下限制的消息,但对于通道来说仍然过大。 在单个 |
别名
名称 | 值 | 说明 |
---|---|---|
读取数据 |
vector [MAX_TRANSFER_SIZE ] |
用于从读取传输返回数据。 |
服务
服务
在 fuchsia.hardware.i2c/i2c.fidl 中定义
名称 | 类型 | 传输 |
---|---|---|
设备 |
fuchsia.hardware.i2c/Device
|
频道 |