引 言
大规模集成电路和电子芯片的发展,使得车载电子设备的应用越来越广泛。车载电子设备不再仅仅局限于简单的数据采集和机械控制,已经发展到语音和图像、电子识别、远程无线控制、自动驾驶和智能交通的数据交互。车载电子设备之间的数据交互越来越复杂,早期采用的单一CAN总线很快被多CAN总线机制取代,但仍然不能满足电子设备之间的通信要求,更高通信速度和更高通信安全的车内总线成为汽车电子的迫切需求。FlexRayr总线是最近推出的一种先进高速串行同步和异步通信系统,具有故障容限,可提供500 kbps~10 Mbps的确定数据传输速率和24位CRC(循环冗余)校验码。其通信速度和安全机制均满足目前车内电子设备的需求。
本文介绍一种在数字信号处理器 C6202 上实现 FlexRay总线 的方法。FlexRay总线控制器选用英飞凌公司(Infineon Technology Inc.)的CIC310。CIC310采集总线上各个节点的通信数据,并对总线负载和总线容量进行检测和控制。DSP将各个节点数据进行处理,由于采用C62系列DSP,可以实现语音和图像信号处理的复杂算法。
1 FlexRay总线及其控制器CIC310
FlexRay总线规范的第2版(V2.1版)是一种全新的总线系统,提供了传统总线通信协议所不具有的一些特性。FlexRay总线支持2×10 Mbps的数据速率,与CAN协议相比,可用的带宽提高了10~40倍。除了支持高数据速率外,FlexRay总线也可以工作在较低的数据速率。速度低于1 Mbps时,允许支持传输总线结构;速度在1 Mbps以上时,不同的节点利用主动星型耦合器以点到点方式进行连接。在数据通信方式上,FlexRay总线同时支持分布式控制系统,并可补充CAN、LIN和面向媒体应用的MOST光学数据总线等主要车内网络标准。
FlexRay总线提供消息冗余传输或非冗余传输两种选择,系统可以进行优化,以提高可用性或吞吐量。用户无需调整现有节点中的软件就可以扩展整个系统;同时,支持总线或星型拓扑结构。FlexRay总线提供了大量配置参数,可以支持对系统进行调整,如通信周期的持续时间、消息长度等,以满足不同应用场合的需求。FlexRay总线在重负载下可以关闭部分节点,使其仅接收数据而不发送数据,减少数据重发次数,使得总线负载很快减轻。目前已有多家公司生产FlexRay总线控制器,例如恩智浦(NXP)半导体公司的TJAl080总线控制器、Freescale公司的MFR4200总线控制器等,这些总线控制器和外部数据接口均采用串口方式。而英飞凌公司的FlexRay总线控制器CIC310与外部设备以并口方式连接,具有较高的数据传输速率。
CIC310总线控制器的内部结构如图1所示。从图中可以看出,CIC310总线控制器主要由E—Ray模块、DMA模块、时钟管理模块、中断模块、内存、数据处理和校验模块,以及数据接口模块等组成。
点击看原图
CIC310和总线接口有2个独立的收发通道,每个通道的数据传输速度可达10 Mbps。片内E—Ray模块主要负责总线数据的收发、总线和DMA模块的数据交互、向外设产生各种中断,以及实现数据读/写时钟的管理等。E—Ray模块一般经过数据滤波器,将一些广播帧和总线上其他用户的数据帧滤除后,将本用户的数据帧传输到CIC310片内的DMA模块,由DMA模块进行数据处理和数据校验(可以采用事先设定的数据系数进行处理)。处理后的数据可以通过3种接口方式传输到CPU,分别为SSC(Synchronous Serial Channel,同步串口通道)方式、MLI(Micro—Link Interface,微连接口)方式和XMU(De—multiplexer 8/16 bit Parallel Interface,非复用的8/16位并行接口)方式。其中SSC为一般的串口连接方式,具有连接简单和连接线少的特点,但数据传输速率较低;MLI接口方式为专用接口方式,一般可以和专用车载控制器连接,但通用控制芯片一般不能直接和MLI接口连接;XMU接口方式为并口连接方式,数据传输速度比串口方式快很多,但连接线较多。本文采用XMU接口方式和DSP进行连接,提高数据传输速率。
2 系统总体结构
系统总体结构由C6202、CIC310、AD/DA转换器以及Flash组成。其总体连接如图2所示。图中,C6202是核心控制单元;A/D转换器用于采集模拟信号,并转变成数字信号;D/A转换器将数字信号转换成模拟信号;Flash保存DSP所需要的程序,供DSP上电调用。此外,使用DSP的HPI接口连接到PC机,这样所有的总线数据均可以通过PC机存储和显示,PC机的数据也可以通过C6202发送到总线上。
www.55dianzi.com
点击看原图
A/D转换器负责采集电子设备的数据,例如温度传感器数据、颜色传感器数据、语音信号、图像信号或者其他信号。 C6202 对这些数据处理后,将处理后的结果根据不同的情况通过CIC310发送到总线上的其他节点。相反,C6202通过CIC310读取总线上其他节点发送的数据帧,C6202对这些数据帧进行处理,将结果发送到D/A转换器,可以实现对本节点电子设备状态的控制。
CIC310和C6202之间采用EMIF接口实现。CIC310可以配置成8位、16位或者32位的数据接口方式,但CIC310只有16根数据总线,配置成32位接口方式需要2次数据读/写才能完成一个数据的传输。为了加快读/写速度,将CIC310配置成16位数据接口后,每个DSP芯片使用不同的片选信号就可以控制2个CIC3lO。而CIC310具有2个独立的收发通道,分别连接到总线A和总线B,这里一个DSP芯片就相当于可以控制4个总线收发器。CIC310和总线之间必须加上总线驱动器BD(BusDriver),隔离总线电压和浪涌电流,避免损坏CIC310。C6202与2片CIC310的硬件连接如图3所示。使用C6202的EMIF接口连接CIC310,EMIF、接口是DSP的外部存储器接口(External Memory Interface),可以方便地与外部Flash、异步SRAM等设备连接。本系统的CIC310控制器模块 FlexRay总线 协议,其最高数据传输速率为10 Mbps,C6202的EMIFS接口适合满足其速度要求。
CIC310和C6202的EMIF连接,CIC310作为C6202的外部16位从异步设备。由于C6202的内部数据总线宽度为32位,而CIC310的数据总线宽度为16位。为此,将每个32位数据分成2个16位数据传输。当CIC310有数据上传时,使用PO.0引脚发送中断信号到C6202的外部中断引脚Ext_INT4,C6202根据当前自身的工作情况来处理和CIC310的通信;C6202也可以使用通用GPl0引脚控制CIC3lO的复位信号PORST,当连续多次未收到CIC310的响应信号时,C6202可以软件复位CIC310,从而避免通信的互锁现象。
3 ClC310和C6202的软件设计
C6202和CIC310的数据通信流程如图4所示。系统初始化后,C6202判断当前是否有数据读/写。数据读操作是通过判断是否有挂起的外部中断,该中断由CIC310产生,CIC310收到总线数据和广播帧后,首先滤除非本地数据帧和不必传输的广播帧,如果存在需要上报的广播帧或者本地数据帧都将发出该中断到C6202;数据写操作是通过判断上层程序是否有数据发的软件中断,如果有则通过EMIF接口发送到CIC310。无数据读/写情况下,C6202将定期检测CIC310,以便确定总线负载容量,以及CIC310是否正常工作。也可以根据需要,将CIC310设置到低功耗或者旁通BYPASS状态。如果读取的数据的校验错误较多,表明总线上当前的信道噪声很大或者CIC310的总线被干扰出现紊乱,C6202通过I/0口设置总线保护使能,也就是使CIC310的BGEB引脚为高。这样CIC310就停止向总线发送一切数据,避免在低信噪比情况下多次重复发送同样的数据,缩短无效通信时间。等待总线负载下降后,DSP重新将BGEB引脚设置为低,恢复该节点的CIC310,进入正常数据收发状态。
点击看原图
结 语
本文详细介绍了基于C6202和CIC310的总线控制器连接设计方法,使用C6202的EMIF接口连接总线控制器CIC310,实现FlexRay总线的数据收发。使用CIC310模块的并口对数据操作,整个系统连接简单,实用性强。
本文关键字:暂无联系方式DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术