七、典型应用
上面显示了独立的CAN收发器,而下面则显示了多个iND83081可以共享同一个CAN收发器的应用场景。通过这些连接,iND83081可以实现对多个LED的驱动和控制,同时与外部MCU进行通信 。
八、ELINS接口
1.ELINS简介
ELINS是一种从接口,其数据格式基于UART,即通用异步接收器和发送器。该接口以半双工模式工作,支持的最大波特率为1Mbps。TX和RX引脚成对内部连接,任何一个引脚都可以用于连接iND83081设备到通信网络。这种方法便于复杂的PCB布局和线路路由。接口提供可编程去抖滤波器,用于滤除RX数据的毛刺。RX从0到1和从1到0的去抖动阈值可以分别配置。MCU充当通信主控,可以通过ELINS私有协议写入和读取寄存器,访问iND83081的地址空间。
如果iND83081设备和主控位于不同的板子上,建议在板子之间使用CAN物理层。这有助于防止电缆短路到电池或地线,并提升电磁兼容性表现。否则,TX和RX引脚应直接连接,同时需要外部上拉电阻。
ELINS支持带同步字段的时钟频率校准。所有iND83081设备在每个ELINS通信帧中进行同步,以确保良好的同步和稳健的通信。校准后,系统时钟精度将低于0.25%。
ELINS的初始波特率为550kbps,发送初始化命令后会切换到1Mbps。波特率设置在使用REQ_ELINS_RSTN寄存器进行ELINS复位后不会重置。
2.ELINS的特点
半双工通信(与UART兼容)
单主控(MCU)/多从设备(iND83081)架构
CAN物理层支持
MCU与iND83081之间的CAN PHY具有抗电磁干扰能力
iND83081设备之间采用5V I/O
波特率选择:1M/500k/250k/125k/62.5k/31.25k bps
交易帧类型:广播写入、单设备写入、单设备读取
数据完整性通过CRC16完全保护
CMD字段采用2位奇偶校验位
支持带同步字段的时钟频率校准
校准后的时钟精度(参考MCU):±0.25%
3.ELINS字节格式
在ELINS中,除了中断字段外,每个字节字段都按照图中所示的字节字段传输。它以一种起始位、八个数据位、一种停止位和无校验(8N1)方式操作。数据的最低有效位(LSB)首先发送,最高有效位(MSB)最后发送。起始位编码为值为零的位(显性),停止位编码为值为一的位(隐性)。下图展示了数据字节8'hA5的波形。
ELINS波特率基于系统时钟,可以通过寄存器ELINS.PRESCL配置为所需的波特率(1Mbps/500kbps/250kbps/125kbps/62.5kbps/31.25kbps)。主控设备可以通过广播写入命令更改该寄存器以调整波特率。单次写入命令无法访问此寄存器。
4.ELINS通信协议
ELINS接口作为从设备,由MCU控制是否发起通信事务。共有三种命令帧类型:广播写入、单设备写入和单设备读取。广播写入通信没有响应帧。单设备写入通信在ELINS.ACKENA设置为1时会有响应帧。
(1)广播写入
主命令:中断字段 + 同步字段 + CMD 字段 + DEVID 字段 + REG ADDR + N 数据字节 + CRC16(2Bytes)。命令帧广播通信网络上的所有设备,没有响应帧。
(2)单设备写入
主控命令:中断字段 + 同步字段 + 命令字段 + 设备ID字段 + 寄存器地址 + N个数据字节 + CRC16(2字节)。
从设备响应:确认(可选)。 当ACKENA设置为高电平并且成功完成单设备写入(没有CRC校验和奇偶校验错误)时,被寻址的设备会向MCU发送确认信号。"ACK"是一个单字节,其值等于{3'b011, DEVID[4:0]}。寄存器ELINS.ACKENA只能通过广播写入来设置。
(3)单设备读取
主控命令:中断字段 + 同步字段 + 命令字段 + 设备ID字段 + 寄存器地址 + CRC16(2字节)。
从设备响应:N个数据字节 + CRC16(2字节)。
5.ELINS字段格式
ELINS帧包括以下字节字段:
➢ 中断字段
➢ 同步字段
➢ 命令字段
➢ 设备ID字段
➢ 起始寄存器地址字段(REGADDR)
➢ 循环冗余校验字段(CRC)
➢ N个数据字段(N=1、2、3、4、12、16、25或32)
➢ 确认字段(ACK)
(1)中断字段
中断字段用于表示新帧的开始。它始终由主设备生成,应该至少为9.5个标称位时间的显性值,后跟一个中断定界符。中断定界符应至少为一个标称位时间长。
(2)同步字段
同步字段是一个字节字段,数据值为0x55。它用于校准系统时钟,并使所有设备在同步系统中保持同步。ELINS始终能够检测到中断/同步字段序列。
(3)命令字段
命令字段由奇偶字段(bit7~bit6), 数据长度字段(bit5~bit3) 和命令代码字段(bit2~bit0)组成,详细描述如下表所示:
(4) DEVID 和 REGADDR 字段
DEVID位表示5位设备ID,这意味着在一个主控和多从设备通信网络中最多支持32个iND83081设备。广播写入不关心设备ID,可以访问所有设备的地址空间。
REGADDR位是一个11位的起始寄存器地址,可以访问2048个地址空间。起始地址是一个基地址,从这里可以通过主控连续写入或读取最多32个连续的寄存器位置。当多字节通信地址超过地址0x7FF时,寄存器地址将循环回到地址0x000继续增加。
(5)CRC字段
CRC字段由CRCL(CRC低字节)和CRCH(CRC高字节)组成。除了中断字段和同步字段中的数据外,接收帧数据的CRC校验采用CRC-16-IBM算法进行计算。当读取或写入命令发生CRC错误时,会设置一个CHK标志。在读取响应期间,被寻址的设备还需要计算CRC数据,这样主控可以检查读取数据的完整性。
(6)数据字段
DATA_LENGTH字段位于CMD字段中,决定了要传输的数据字节数。
(7)ACK字段
如果ACKENA位为“1”,则在成功完成单设备写入后,被寻址的设备需要发送一个ACK字节作为响应。ACK字节的高三位为"011",低五位为设备ID。因此,主控可以根据ACK字节确定哪个设备发出了确认。
6.ELINS 最小传输等待时间
在单设备写入命令中,如果包含确认字节,或者在单设备读取中,应设置最小传输等待时间,单位为位周期。等待时间至少为0.5位长度,并且由以下两者中的较大者确定:
-
(TWC_MIN + 0.5)位长度,其中TWC_MIN是传输等待时间的最小值。
-
准备读取数据的时间(写入确认数据字节或读取响应数据字节)。
最小传输等待时间在以下情况下是必需的:
-
单设备写入命令与写入确认(ACKENA = 1)之间。
-
单设备读取命令与读取响应之间。
7.ELINS物理层
如果iND83081设备和MCU位于同一块板上,TX和RX引脚应直接连接,同时需要一个上拉电阻和TX和RX引脚之间的连接拓扑结构。TX引脚应通过开漏缓冲器驱动,符合单主控多从设备的系统结构。设备上电时,TX和RX引脚的非活动状态为高电平。
如果iND83081设备和MCU位于不同的板上,TX和RX引脚之间应使用CAN物理层。这有助于防止电缆短路到电池或地面,并提高抗干扰能力。ELINS接口需要提供半双工协议以兼容CAN收发器。