现如今,随着汽车电子的发展,串行通信在ECU上也被广泛应用,我们常见的串行通信有:RS485、RS232、PSI5、SPI等,每一种串行通信都有其自身的特点。本文主要就基于VT2710实现SPI仿真进行相关的介绍。
VT2710介绍
VT2710是Vector 旗下的一款串行通信板卡。VT2710 提供一套测试ECU或传感器串行通信通道所需的接口。该模块可用于模拟总线通道上传感器和ECU的行为。此外,还可以监控串行总线上的通信。VT2710可用于控制试验台上的外围设备。
如下图所示,VT2710模块可以同时处理两组串行接口,包括汽车传感器相关的PSI5和SENT接口。以及支持通用型数字接口,SPI,I2C,UART,RS232,RS422,RS485或LVDS等诸多通信协议。下面,将就基于VT2710实现SPI仿真的方式展开讲解。
图1-VT2710串行通信卡 图1-VT2710串行通信卡
SPI
SPI,是串行外设接口“Serial Peripheral Interface”的简写,这是一种全双工同步串行的通信协议。
图2-SPI多从机模式
SPI通信原理其实很简单,要需要至少4根线,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)和CS/SS(片选)。
MISO( Master Input Slave Output):主设备数据输入,从设备数据输出;
MOSI(Master Output Slave Input):主设备数据输出,从设备数据输入;
SCLK(Serial Clock):时钟信号,由主设备产生;
CS/SS(Chip Select/Slave Select):片选线,用于多从机时主设备与从设备进行选择。当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号,(大多数是将电平拉低),表示选中该从设,主芯片对此从芯片的操作才有效。
图3-通信过程
首先,主设备发起片选信号,将CS/SS拉低(一般情况),启动通信。然后,主设备通过发送时钟信号,来告诉从设备进行发数据或者读数据的操作。值得关注的是,通信过程中有四种数据采样的模式,由极性(CPOL)和相位(CPHA)来决定,CPOL为“0”则代表时钟信号空闲时为低电平,为“1”则空闲时为高电平,相位的“0”、“1”则分别代表在第一个跳变沿传输数据和在第二个跳变沿传输数据。以上极性和相位排列组合为以下四种模式:
- CPOL=0,CPHA=0:空闲时低电平,第一个跳变沿发数据
- CPOL=0,CPHA=1:空闲时低电平,第二个跳变沿发数据
- CPOL=1,CPHA=0:空闲时高电平,第一个跳变沿发数据
- CPOL=1,CPHA=1:空闲时高电平,第二个跳变沿发数据
主设备发送片选信号选中从设备,并且发送时钟信号后。紧接着主机(Master)将要发送的数据经MOSI信号线发送给从机(Slave),从机也将数据经MISO信号线返回给主机。SPI通信协议还具有高速传输、简单灵活、支持和多从设备的连接,具有较高的灵活性、双向通信、低功耗的特点。
以上就是SPI的基本通信原理,下面介绍一下上位机软件配置。
在上位机软件—CANoe中,有一个SPI Basic的示例工程。在File→Sample Configurations下的SPI Basic工程中,可以实现SPI基础的传输接收等基本通信。下面简单介绍一下该工程的使用和配置。工程位置如下图所示。
图5-SPI Basic工程
首先,将Master和Slave的MISO、MOSI、CS、SCLK对应连接。打开示例工程,确认通道是否匹配好。启动工程,在对应的输入窗口下输入数据即可完成收发。
图6-SPI Basic工程实例
关于SPI的配置都在Hardware窗口下的Protocol Configuration Sensors模块下。
图7-SPI 配置icon
Master配置:
1)Clock polarity when idle:指空闲时的SCLK极性
2)Clock frequency:指时钟频率
3) Wait after CS active : 主机通过CS选中从机后的等待时间
4)Wait before CS inactive : CS片选在待命状态下的等待时间
图8-Master配置窗口
Slave配置:
1)General Setting:此模式选择项包含Low Active和High Active,Low Active用于一般复杂度的通信需求,High Active用于高复杂度的通信需求。
2)Clock Setting:极性和相位选项,CPOL为极性,CPHA是相位。
图9-Slave配置窗口
至此,就是我们在上位机软件中的示例工程以及对Master和Slave的一个基本的配置。
SPI多从机模式的配置:
保证主机、从机连接没有问题,在上位机软件CANoe的Hardware窗口下的Protocol Configuration Sensors模块下,右击Master→Add Slave,具体参数的配置参照上文即可。值得关注的是,每块VT2710可以提供2个独立通道的四线SPI通讯,最多支持5路片选,两个通道至多可支持10个从机。
图10-Slave添加 图11-Slave
菊花链
在一个主机和多个从机的SPI 系统中,通常采用专门的片选信号来寻址从机。随着从机数量不断增加,片选线也随之增多。 这种情况将给电路板带来很大的挑战。这时候,使用菊花链的连接方式是更好的选择。
菊花链,顾名思义,这种连接方式就像是花环,进行通信的过程中,在设备信号以串行的方式从一个设备依次传到下一个设备,不断循环直到数据到达目标设备的方式被称为菊花链。在菊花链的SPI系统中,只采用一个SS (或者CS) 信号,所有从机接收同一个时钟信号。只有链上的第一个从机(SLAVE 1) 从微控制器直接接收命令。其他所有从机都从链上前一个从机的输出引脚获得其数据。要保证菊花链正常工作,每一个从机就必须能在给定的命令周期读入命令,而在下一个命令周期从数据输出引脚输出同样的命令。
图10为菊花链连接方式。在菊花链模式下,各个从机一个接一个地连接起来。主机通过所有连接的从机传输数据。为此,主机的MOSI输出连接到第一个从机的MOSI输入,下一个从机的MISO再连接到下一个从机的MISO,以此类推。最后一个从机的MISO输出再次连接回主机。所有从机的芯片选择信号在这里相互连接。采用菊花链的连接方式,优点在于节约空间,释放总线压力。缺点就是因为是信号串行传输,所以一旦数据链路中的某设备发生故障的时候,它下面优先级较低的设备就不可能得到服务了。
图12-菊花链的连接方式
BMS系统中菊花链实例
目前,国内的BMS设备主要分为两种。第一种是以分布式架构为主,BMS分为主板和从板,主从板上都有微型的控制器,用作收集从板采集到的电池电压和温度数据 ,通过CAN总线传给主板。第二种是采用菊花链技术的BMS集中式架构。这种架构只在BMS主板上保留微控制器,原本的从板改成单纯围绕AFE芯片功能的小板,AFE采集的信息通过差分隔离信号的方式直接传送给主板。主板完成BMS主要的保护和电池管理功能。
图13-传统方式到菊花链的演变
BMS的主板上的微控制器连接SPI串行通信接口,通过通信转换芯片将信号转换为差分信号。主板以差分信号的形式与第一个从板进行通信,差分信号从第一个从板出来后,依次进入后序的从板,这样主板最终得以与所有从板通信。菊花链在BMS系统中就是作为这样一个主、从板之间的桥梁而存在。菊花链的仿真可以基于 VT的 FPGA板卡实现, 通过Simulink构建菊花链仿真模型并运行在FPGA板卡中,从而实现用菊花链的方式完成主板从、板之间通信的功能。
总结
VT2710是一款为ECU和N个数字传感器提供硬件接口的功能型板卡。希望通过本文的介绍,大家对VT2710串行通信板卡和SPI通信协议有了更深入的了解。如果您对VT2710板卡亦或是SPI通信协议或者想要了解更多相关内容,欢迎咨询北汇信息,感谢观看!
北汇信息作为Vector中国的合作伙伴,始终专注于汽车电子领域的新技术和新产品,为整车厂和零部件企业提供完整的研发、测试解决方案,为工程师在汽车领域提供“趁手装备”!我们不仅提供相应的工具和技术支持服务及培训,还针对不同的应用提供相应的解决方案,助力中国客户的研发效率提升。欢迎联系北汇信息,我们将根据不同需求为您提供针对性的高效、灵活、稳定的解决方案!
翻译
搜索
复制
<iframe></iframe> 标签:仿真,通信,菊花链,SPI,从机,VT2710,设备 From: https://www.cnblogs.com/polelink/p/17791263.html