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

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

    关注

    2578

    文章

    55851

    浏览量

    795597
  • 测试
    +关注

    关注

    9

    文章

    6516

    浏览量

    131796
  • 仿真
    +关注

    关注

    55

    文章

    4569

    浏览量

    138834

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    I2C总线-通信线缆长度的影响及改进措施

    通信,比如说超过2米,这个时候对硬件就有特殊的要求了。 很多的文章说,I2C总线的线缆长度不要超过50cm,这个我觉得相对比较保守,我们做的测试是在实验室里,只要硬件参数合适,是能做
    发表于 01-21 06:03

    I2C 为什么只要两根线就能搞定通信?

    到目前为止,我们已经讨论了SPI通信和UART通信的基础知识,现在让我们讨论本系列的最后一个协议,即集成电路间协议(I2C)。如果您曾经构建过使用OLED显示器、气压传感器或陀螺仪/加速度计模块
    的头像 发表于 01-04 09:14 2198次阅读
    <b class='flag-5'>I2C</b> 为什么只要两根线就能搞定通信?

    探索PCF8584:I2C总线控制器的卓越之选

    以作为标准高速并行总线串行I2C总线之间的接口设备,兼容8049、8051、6800、68000和Z80多种并行
    的头像 发表于 12-28 15:40 875次阅读

    P82B715:I2C总线扩展的得力助手

    )的P82B715,一款专门用于缓冲高电容I2C总线系统的器件,看看它是如何解决这些问题的。 文件下载: p82b715.pdf 1. 器件概述 P82B715是一款支持通过I²C
    的头像 发表于 12-26 10:20 1895次阅读

    AS32X601的I2C模块操作EEPROM详解

    国科安芯推出的AS32X601系列MCU芯片内置的I2C模块提供了符合工业标准的两线串行制接口,可用于MCU和外部I2C设备的通讯。I2C总线
    的头像 发表于 12-21 21:39 1785次阅读
    AS32X601的<b class='flag-5'>I2C</b>模块操作EEPROM详解

    I2C的优点介绍

    简单性和线路效率: I2C 仅使用两条线路(SDA(串行数据线)和 SCL(串行时钟线))提供简单而高效的通信解决方案,而与总线上的设备数量无关。这种简单性降低了电路设计的复杂性,最
    发表于 11-27 07:49

    I2C的缺点介绍

    上升时间变慢和潜在的信号衰减。对于长距离通信,其他协议,如 UART(通用异步接收器/发送器)或 SPI串行外设接口)可能更合适。 速度限制: 虽然 I2C 支持不同的速度模式,但其
    发表于 11-27 06:10

    UARTSPII2C 实战对比:哪个更适合你的项目?

    在嵌入式开发中,设备之间的通信是绕不开的话题。常见的三种总线接口——UARTSPII2C——各有优缺点。不同项目需求决定了选择哪一种协议最合适。本文结合实战经验,逐项对比三者,并附
    的头像 发表于 11-24 19:04 1799次阅读
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b> 实战对比:哪个更适合你的项目?

    SPII2CUART三种串行总线的区别与对比

    1)概念定义 SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线)
    发表于 11-20 07:19

    SPII2CI2S、UART:通信协议解释

            在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。为什么都叫
    的头像 发表于 11-18 10:53 820次阅读

    SPII2CI2S、UART:通信协议对比表

    在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。很多初学者容易混淆:为什么都叫
    的头像 发表于 11-17 10:53 2294次阅读
    <b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2</b>S、<b class='flag-5'>UART</b>:通信协议对比表

    Diodes公司推出高性能I2C/SPI总线至双通道UART网桥PI7C9X762Q

    Diodes 公司(Diodes)(Nasdaq:DIOD)宣布推出PI7C9X762Q,这是一款符合汽车标准*的高性能 I2C/SPI 总线至双通道
    的头像 发表于 10-17 17:51 2334次阅读

    串行通信相关的基础知识

    串行通信是电子设备中数据交换的基石。最常见的串行通信协议有UARTSPII2C
    的头像 发表于 10-15 10:53 2257次阅读
    <b class='flag-5'>串行</b>通信相关的基础知识

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议中,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同一时刻,数据单向
    的头像 发表于 08-21 15:10 4063次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    第十八章 I2C通信测试

    本章介绍了I2C协议,其物理层用SDA和SCL双线,支持多设备:协议层含起始/停止信号、应答机制。还讲解W55MH32的I2C外设及初始化,并进行了通信测试代码的分析。
    的头像 发表于 06-19 17:07 1579次阅读
    第十八章 <b class='flag-5'>I2C</b>通信<b class='flag-5'>测试</b>