0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANoe对SPI、UART和I2C等串行总线的同步仿真与测试

Vector维克多 来源:Vector维克多 作者:Vector China 2021-09-02 18:17 次阅读

在ECU和传感器系统中,除去各种汽车总线以及智能传感器之间的PSI5和SENT协议之外,在短距离和低成本通信场景中还会广泛使用SPI、UARTRS232RS485RS422I2C等通用串行总线。在HIL系统中,如果被测对象涉及上述串行总线,则需要测试设备能够同时支持对应接口,实现测试、仿真及分析。在CANoe为平台的HIL系统中,I/O板卡VT2710同时支持PSI5/SENT以及上述串行总线协议,为构建经济型测试系统提供便利。

SPI简述与测试解决方案

SPI(Serial Peripheral Interface Bus,串行外设接口)常用于芯片之间通讯,没有具体标准威廉希尔官方网站 规范,各厂家的实际方案可能存在一定差异性,如线束拓扑常见形式有四线SPI、三线SPI和isoSPI等,时序操作模式以及具体指令集定义等均需结合实际芯片手册进行开发和配置。最常见的SPI通讯需要4根线,可进行全双工通讯。

当采用单主机多从机的通讯拓扑时,SCLK、MOSI、MISO均为1根线由主机并联至各从机,而CS片选信号线的数量,需要与从机数量对应。时序模式如图2。

SPI除了引脚定义、时序操作、指令集多样以外,对于通讯速率、电平范围也无明确定义,需根据通讯芯片进行匹配。ECU中通常将SPI用于MCU与外设芯片之间的通讯,如EEPROM看门狗等;在BMS领域的主从板菊花链通讯中,也通过SPI与外置通讯芯片进行交互(如MaximAnalog Devices、NXP等)。

CANoe/VT2710对SPI的支持情况:

每块VT2710可以提供2个独立通道的四线SPI通讯,最多支持5路片选;

SPI通讯电压范围支持0~6V,可进行星型或菊花链连接;

仿真SPI主机时最高支持10Mbps速率,仿真SPI从机时最高支持6Mbps速率。

SPI通讯指令集开发实现方式有3种:

用户自定义信号帧:CANoe内置清晰且便于使用的图形配置界面,用户可自由添加信号定义,实现SPI通讯“数据库”的制作。

原始通信帧:直接通过CAPL编程方式实现通讯指令集开发,CANoe提供MISO和MOSI读写队列函数,将需要发送的数据写进VT2710缓存队列,用于灵活和快速的通讯交互。

FPGA封装高速帧:当通讯过程中需要微秒或纳秒级的数据响应,并且需要动态结合前帧指令进行判断并响应时,可以使用FPGA编程进行SPI指令集开发。VT2710默认集成可自编程的FPGA芯片,用户可选VHDL语言或Intel DSP Builder Advanced Blockset Builder进行FPGA开发。

UART简述与测试解决方案

UART(Universal Asynchronous Receiver

/Transmitter,通用异步收发传输器)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。UART通讯需要2根线:TX发送数据,RX接收数据。UART在汽车行业内用于座舱和触摸信号等附属设备的交互,还可扩展为LIN通讯接口使用。

UART帧以一个起始位(逻辑0)开始, 然后是7~9个数据位,由一个可选的奇偶校验位以及一个或两个停止位(逻辑1)完成,该位同时用于接收节点的同步。

CANoe/VT2710对UART的支持情况:

每块VT2710可以提供2个独立通道的UART通讯;

可以自定义电平,也可使用RS232、RS485、RS422等电平逻辑进行通讯;

自定义内部电平支持最高6V,通讯速率最高支持1Mbps;

用户可通过系统变量、CAPL函数或FPGA编程方式实现UART通讯。

RS232、RS485和RS422简述

与测试解决方案

RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准。由于RS232标准未对编码方式、帧的构成方式、传输顺序、错误检测机制做出规定,一般会使用UART的字符格式和传输比特率设置,当然也可由用户自定义协议。不同于TTL电平,RS232规定逻辑“1”的电平为-15V~-3 V,逻辑“0”的电平为+3V~+15V。

RS485(现称EIA-485)是TIA及EIA联合发布的物理层标准,在干扰环境下进行长距离的高效通信,支持在一个网络上有多个接收器的总线拓扑,适用于环境耐久等试验环境。RS485是双线、半双工、差分电压信号通讯,通讯速率上限随线束长度而定,一般10米时最高35Mbit/s,1200米时最高100kbit/s。

RS422(现称EIA-422)同样是TIA及EIA联合发布的物理层标准,旨在提供更高速度、更好的抗噪性和更长电缆长度的标准。传输数据速率可以高达10Mbit/s,在较低的速率下可在长达1500米的电缆上发送数据。RS422采用4线、全双工、差分电压信号通讯。RS422只能有1个发送端,多个接收端,因此其全双工是主从节点之间的点对多点双向通讯。由于RS485/422未定义具体的上层协议,实际使用中常会使用UART、Modbus、Profibus协议。RS232、RS485、RS422在汽车行业中用于GNSS数据传输、车机与附属部件交互数据,以及测试时控制电源、环境舱等设备的场景。

CANoe/VT2710对RS232、RS485和RS422的支持情况:

每块VT2710可提供2路RS232,2路RS485/RS422(复用二选一);

编码方式均默认提供UART编码;

用户可通过系统变量、CAPL函数或FPGA编程方式实现对应通讯。

I2C简述与测试解决方案

I2C Bus(Inter-Integrated Circuit Bus,内部集成电路总线)是一种同步、多主从、分组交换、单端的串行通讯总线,主要用于短距离、板内通讯中将低速的外部芯片连接至CPU/MCU。I²C使用2条双向开漏(Open-Drain)通讯线:SDA(Serial Data Line)用于传输数据,SCL(Serial Clock Line)用于控制通讯过程,需上拉电阻,常用电平为+5V或+3.3V。常见通讯速率有标准模式100kbit/s和快速模式400kbit/s。新一代I²C总线可以支持快速模式400 kbit/s、更快速模式1 Mbit/s、高速模式3.4 Mbit/s和 超快速模式5 Mbit/s。I²C 通信始终按照以下流程进行:

Master主机在总线上产生一个启动条件;

Master主机发送Slave从机地址和读/写位请求,对应的Slave从机产生ACK应答(低电平),Master主机根据读/写位切换为发送方或接收方模式;

数据在Master主机和被寻址的Slave从机之间按字节进行数据传输,相应的接收方通过 ACK 进行应答(低电平);

Master主机在总线上产生一个停止条件。

此外,主机可以发起另一个启动条件而非停止条件,从而立即启动新的数据传输。此过程称为重复启动。I²C在汽车领域常用于MCU与EEPROM、GPIO芯片等集成电路通讯,也会用于触摸指令传输、摄像头光圈/曝光度控制等交互。

图9:I²C通讯过程数据结构示意图

CANoe/VT2710对I²C的支持情况:

每块VT2710支持最多2路I²C总线,可以仿真Master主机或Slave从机;

支持100kb/s、400kb/s、1Mb/s三种典型速率,最低可配置为50kb/s,最高可配置为1.6Mb/s;

高电平电压(0~6V)、上拉电阻(4.7kΩ)是否接入均可配置。

在Sensor Protocol Configuration窗口,可以添加所需I²C总线通道,对于Slave从机可以配置其寻址长度、Slave从机地址、是否对供应商ID等信息进行响应等,对于I²C报文可以配置其读/写长度,以及具体信号的Layout及序列化规则,方便直接通过系统变量进行数据读/写。与其他串行总线一样,除直接通过系统变量进行操作外,也可通过CAPL操作原始帧、FPGA编程开发指令集等方式进行应用。

CANoe为I²C的应用提供1主2从的示例工程,利用VT2710的两个通道分别仿真主、从,用户可以基于该示例工程进行修改,创建符合自身使用场景的项目工程。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2550

    文章

    51047

    浏览量

    753165
  • 测试
    +关注

    关注

    8

    文章

    5283

    浏览量

    126610
  • 仿真
    +关注

    关注

    50

    文章

    4073

    浏览量

    133559

原文标题:CANoe对SPI、UART和I2C等串行总线的同步仿真与测试

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    为什么嵌入式调试经常用UART,却很少用SPII2C或USRT?

    在嵌入式调试中经常使用 UART(通用异步收发传输器)而较少使用 SPI串行外设接口)、I2C(集成电路总线)或 USRT(通用
    的头像 发表于 12-18 09:58 225次阅读
    为什么嵌入式调试经常用<b class='flag-5'>UART</b>,却很少用<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>或USRT?

    BTB扩展接口:LCD、Camera、UARTI2C|详解篇

    今天我们来学习的是BTB扩展接口的LCD、Camera、UARTI2C详解,特别分享Air201硬件BTB扩展接口相关内容。
    的头像 发表于 11-30 09:39 302次阅读
    BTB扩展接口:LCD、Camera、<b class='flag-5'>UART</b>、<b class='flag-5'>I2C</b><b class='flag-5'>等</b>|详解篇

    详解I2C总线SPI总线的区别

    I2C(Inter-Integrated Circuit)表示集成电路互连,是一种用于线路板内部芯片之间通信的总线
    的头像 发表于 10-16 15:16 3998次阅读
    详解<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>与<b class='flag-5'>SPI</b><b class='flag-5'>总线</b>的区别

    了解I2C总线

    电子发烧友网站提供《了解I2C总线.pdf》资料免费下载
    发表于 10-08 11:13 2次下载
    了解<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>

    DHT11用的是SPI还是I2C

    DHT11并不使用SPII2C通信协议,而是采用单总线(1-Wire)协议进行通信 。单总线协议是由美国DALLAS达尔斯公司推出的外围串行
    的头像 发表于 09-04 09:11 1084次阅读

    I2CUART子系统设计

    电子发烧友网站提供《I2CUART子系统设计.pdf》资料免费下载
    发表于 08-28 10:27 2次下载
    <b class='flag-5'>I2C</b>转<b class='flag-5'>UART</b>子系统设计

    UARTI2C桥接器

    电子发烧友网站提供《UARTI2C桥接器.pdf》资料免费下载
    发表于 08-28 09:24 1次下载
    <b class='flag-5'>UART</b>转<b class='flag-5'>I2C</b>桥接器

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit)通信协议是由飞利浦公司(现为恩智浦半导体)开发的一种简单、双向二线制同步串行总线协议。自1982年发布以来,
    的头像 发表于 07-25 18:06 1441次阅读

    I2C总线协议的工作原理和寻址格式

    I2C(Inter-Integrated Circuit)总线协议,即集成电路总线协议,是一种用于连接微控制器及其外围设备的串行总线协议。
    的头像 发表于 05-27 15:47 1734次阅读

    I2CSPIUART的通信过程还可以这样理解

    到目前为止,I2CSPIUART仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以GIF动图展示。一、II
    的头像 发表于 05-23 08:10 7141次阅读
    <b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的通信过程还可以这样理解

    SPII2C通信协议:应用与区别

    本文深入解析了SPII2C这两种通信协议的特点、工作原理和应用场景。SPI适用于高速数据传输,常用于存储器芯片和显示器驱动领域;I2C
    的头像 发表于 04-22 16:45 1812次阅读

    逼真动画展示I2CSPIUART的通信过程

    到目前为止,I2CSPIUART仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以GIF动图展示。
    的头像 发表于 04-12 08:27 980次阅读
    逼真动画展示<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的通信过程

    总结usart、uarti2cspi区别及相关知识

    USART、UARTI2CSPI是四种不同的串行通信协议,它们各自具有独特的特点和应用领域
    的头像 发表于 04-10 09:47 1767次阅读
    总结usart、<b class='flag-5'>uart</b>、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b>区别及相关知识

    蓝牙串口通讯总线——I2C/SPI/UART

    Sensor、Touch、蓝牙模块、WIFI模块也都兼容这三种通信协议的1种以上。那么这三条通信总线有什么区别呢?工业物联网无线通信专业厂商为您一一细说—— I2C:半双工、同步
    的头像 发表于 01-22 09:41 1629次阅读
    蓝牙串口通讯<b class='flag-5'>总线</b>——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/<b class='flag-5'>UART</b>

    i2c接口和spi接口区别

    I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)都是用于设备间通信的串行接口标准。它们在很多方面有着相似之处,但也有一些
    的头像 发表于 12-25 15:02 4005次阅读