基于TJA1080的FlexRay总线接口设计
时间:07-30
来源:互联网
点击:
硬件设计
TJA1080与C5509的连接是系统硬件连接的主要组成部分,如图3所示。使用C5509的缓冲串口(McBSP)连接TJA1080。缓冲串口是C5509的多通道串口连接设备。TJA1080的连接为异步串口(UART),这里使用DSP的缓冲串口模拟异步串口,实现与TJA1080的连接。TJA1080的其他输入/输出引脚使用C5509的通用I/O(GPIO)口控制,实现对TJA1080的各种状态的检测和控制。
图3 TJA1080与C5509的连接图
将缓冲串口的数据输入(DR)和帧同步输入(FSR)同时与UART的发送数据线相连,这是因为UART的串行数据线既有数据信息,又有帧信息。而此时UART的接收数据线与缓冲串口的数据输出线相连。
DSP使用缓冲串口内部的采样时钟,缓冲串口可以配置成接收和发送数据,UART的1位数据对应于缓冲串口的16位数据。软件必须将DSP要发送的1位数据扩展成需要发送的16位数据,同样也要将接收到的每16位数据压缩成1位数据。这就要求设置采样速率发生器产生一个内部串行时钟,是串行波特率的16倍。因为每个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 缓冲串口和异步串口数据传输时序
4 TJA1080与C5509的软件设计
C5509与TJA1080的数据通信流程如图5所示。系统初始化后,C5509判断当前是否有数据读写。数据读是通过判断是否有挂起的串口接收中断,该中断由TJA1080产生,一旦TJA1080收到总线数据帧,就发出该中断;数据写是通过判断上层程序是否有数据发送的软件中断,若有,则通过缓冲串口发送到TJA1080。无数据读写的情况下,C5509将定期检测TJA1080的收使能(RXEN)和错误输出(ERRN)引脚,以便确定 TJA1080是否正常工作;也可以根据需要,将TJA1080设置到低功耗状态。如果读取的数据的校验错误较多,则表明无线通信当前的信道噪声很大,或者TJA1080的总线被干扰出现紊乱。C5509通过I/O口设置总线保护使能(BGE)引脚为高,使得TJA1080停止向总线发送数据,从而避免在低信噪比情况下多次重复发送同样的数据,缩短无效通信时间。
图5 数据通信流程
5 总结
本文详细介绍了基于C5509和TJA1080的总线控制器连接设计方法。使用C5509的缓冲串口连接总线控制器TJA1080,实现FlexRay总线的数据收发;使用TJA1080模块的串口对数据操作。整个系统连接简单,实用性强。
TJA1080与C5509的连接是系统硬件连接的主要组成部分,如图3所示。使用C5509的缓冲串口(McBSP)连接TJA1080。缓冲串口是C5509的多通道串口连接设备。TJA1080的连接为异步串口(UART),这里使用DSP的缓冲串口模拟异步串口,实现与TJA1080的连接。TJA1080的其他输入/输出引脚使用C5509的通用I/O(GPIO)口控制,实现对TJA1080的各种状态的检测和控制。
图3 TJA1080与C5509的连接图
将缓冲串口的数据输入(DR)和帧同步输入(FSR)同时与UART的发送数据线相连,这是因为UART的串行数据线既有数据信息,又有帧信息。而此时UART的接收数据线与缓冲串口的数据输出线相连。
DSP使用缓冲串口内部的采样时钟,缓冲串口可以配置成接收和发送数据,UART的1位数据对应于缓冲串口的16位数据。软件必须将DSP要发送的1位数据扩展成需要发送的16位数据,同样也要将接收到的每16位数据压缩成1位数据。这就要求设置采样速率发生器产生一个内部串行时钟,是串行波特率的16倍。因为每个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 缓冲串口和异步串口数据传输时序
4 TJA1080与C5509的软件设计
C5509与TJA1080的数据通信流程如图5所示。系统初始化后,C5509判断当前是否有数据读写。数据读是通过判断是否有挂起的串口接收中断,该中断由TJA1080产生,一旦TJA1080收到总线数据帧,就发出该中断;数据写是通过判断上层程序是否有数据发送的软件中断,若有,则通过缓冲串口发送到TJA1080。无数据读写的情况下,C5509将定期检测TJA1080的收使能(RXEN)和错误输出(ERRN)引脚,以便确定 TJA1080是否正常工作;也可以根据需要,将TJA1080设置到低功耗状态。如果读取的数据的校验错误较多,则表明无线通信当前的信道噪声很大,或者TJA1080的总线被干扰出现紊乱。C5509通过I/O口设置总线保护使能(BGE)引脚为高,使得TJA1080停止向总线发送数据,从而避免在低信噪比情况下多次重复发送同样的数据,缩短无效通信时间。
图5 数据通信流程
5 总结
本文详细介绍了基于C5509和TJA1080的总线控制器连接设计方法。使用C5509的缓冲串口连接总线控制器TJA1080,实现FlexRay总线的数据收发;使用TJA1080模块的串口对数据操作。整个系统连接简单,实用性强。
汽车电子 总线 电子 DSP 恩智浦 半导体 NXP CAN总线 滤波器 ADC DAC 传感器 相关文章:
- 三大招帮你实现CAN总线节点设计的可靠性(01-10)
- 恒忆、Ramtron和Everspin对下一代NVM趋势各执一词,谁将胜出?(12-14)
- 基于CAN总线的EPS通信系统研究(05-08)
- 基于OpenTCP的嵌入式以太网模块设计(04-22)
- 射频nRF9E5与无线耳机系统设计(06-08)
- 提高RS-485网络可靠性的若干措施(06-25)