利用TJA1080的FlexRay总线接口设计

网友投稿 258 2022-10-30

利用TJA1080的FlexRay总线接口设计

关键词  FlexRay 总线  TJA1080  C5509

引言

1  FlexRay总线及其控制器

TJA1080FlexRay总线是一种全新的总线系统。其主要特性有:

①  支持双通信通道,每个通道的速度均达到10 Mbps。与CAN协议相比,可用的带宽提高了10~40倍。  ②  总线数据的访问是基于同步时基的。该时基通过协议自动建立和同步,并提供给应用层。时基的精确度介于0.5 μs和10 μs之间。由于采用同步时基,消息在通信周期中拥有固定位置,接收器已经提前知道了消息到达的时间,因此可以可靠、准时地传送安全应用相关的信息。  ③  FlexRay总线提供消息冗余传输和非冗余传输两种选择,系统可以进行优化,以提高可用性或吞吐量。用户无需调整现有节点中的软件就可以扩展整个系统;同时,支持总线或星型拓扑结构。FlexRay总线提供了大量配置参数(如通信周期的持续时间、消息长度等),可以支持对系统进行调整,以满足不同应用场合的需求。  ④  FlexRay总线在重负载下可以关闭部分节点,使其仅接收数据而不发送数据,减少数据重发次数,使得总线负载很快下降。

FlexRay总线的这些特性使其可以替代CAN总线,适合车载骨干网络、分布式控制系统以及安全系统等应用场合。目前,已有多家公司生产FlexRay总线控制器。本文选用恩智浦半导体公司的TJA1080总线控制器,介绍其内部结构以及与DSP的软硬件连接方法。

TJA1080总线控制器的内部结构如图1所示。从图中可以看出,TJA1080总线控制器主要由状态机、信号路由器、输入/输出管理模块、收发模块以及发送器等组成。

TJA1080的温度检测模块用于检测设备温度,超过一定温度将自动关闭总线收发。唤醒模块负责将处于SLEEP状态的总线节点唤醒,但超过一定时间仍无数据收发后重新进入SLEEP状态,从而降低整个系统功耗。总线失效检测器负责检测整个总线的状态,当发现总线负载较重时,将自动关闭发送器,此时该节点只能接收数据而不能发送数据,这样总线上的数据帧将很快被相应节点接收,迅速减轻总线负载。低功耗收发模块负责低功耗工作模式下数据的收发,采用减少数据重发机制,虽然降低了数据安全性,但同时也降低了整个系统功耗;配合温度检测模块,可以从软件上实现降低总线温度。

主机对TJA1080的管理主要是通过输入/输出管理模块进行数据的收发操作,下面结合DSP介绍接收数据的软硬件实现方法。

2  系统硬件结构

3  TJA1080与C5509的硬件设计

将缓冲串口的数据输入(DR)和帧同步输入(FSR)同时与UART的发送数据线相连,这是因为UART的串行数据线既有数据信息,又有帧信息。而此时UART的接收数据线与缓冲串口的数据输出线相连。

为了以8N1格式(8个数据位,没有奇偶校验位,1位停止位)给UART发送1位数据,发送器应该分为两个部分: 第一部分包含9个16位的字,是起始位和8个数据位;第二部分包含2个8位的字,是停止位。其他UART的格式可以通过调整帧字的数量来实现。当以16位数据发送UART时,UART的“1”被编码为0xffff,“0”被编码为0x0000。停止位编码为8位字,以便调整为1.5位停止位,以适应可能需要的其他UART格式设置。数据传输的时序如图4所示。

4  TJA1080与C5509的软件设计

5  总结

本文详细介绍了基于C5509和TJA1080的总线控制器连接设计方法。使用C5509的缓冲串口连接总线控制器TJA1080,实现FlexRay总线的数据收发;使用TJA1080模块的串口对数据操作。整个系统连接简单,实用性强。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker:CentOS7 更换 pull源,轻松玩转Docker
下一篇:SpringBoot中@ConfigurationProperties实现配置自动绑定的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~