基于串行外设接口(SPI)的CAN总线隔离扩展设计

时间:2020-10-06 14:05:16 理工毕业论文 我要投稿

基于串行外设接口(SPI)的CAN总线隔离扩展设计

摘要:介绍了利用SPI口实现CAN总线隔离扩展的一种通信控制系统,详细叙述了此通信控制系统中主从通信模块的硬件设计控制,软件设计流程及实现方法。

关键词: CAN总线 SPI口 XINT1中断

一、引言

CAN总线是一种有效支持分布式控制和实时控制的串行数据通信协议,它是一种多主总线,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,因而通信方式灵活;CAN可以点对点、一点对多点(成组)及全局广播等几种方式传送和接收数据 ;CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲突仲裁时间,在重负荷下表现出良好的性能。

CAN上的节点数实际可达110个,通信介质可以是双绞线、同轴电缆或光导纤维,直接通信距离最远可达10km(传输速率为5kbps);最高通信速率可达1Mbps(传输距离为40m)。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,CAN数据链路层采用短帧结构,每一帧为8个字节,易于纠错。可满足通常工业领域中控制命令,工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。

CAN总线具有较强的纠错能力,每帧信息都有CRC校验及其它检错措施,有效地降低了数据的错误率。CAN节点在错误严重的情况下,具有自动关闭的功能,使总线上其它节点不受影响。支持差分收发,因而适合高干扰环境。

我们设计的一种CAN总线主从通信控制系统如图1所示,该控制系统采用内外两层隔离控制形式,主控台向主CAN网络发送指令和数据,通过主从通信模块与从CAN网络中的节点通信,对分系统控制单位进行数据采集和控制。此系统使CAN总线的节点数增加了n倍;CAN总线的传输速率和通信距离大幅度的提高;抗干扰能力也大幅度的.增强。

本文讨论的是CAN总线主从通信控制系统中主从通信模块的硬件、软件设计及实现方法。主从通信模块实现了主控台和从控制单元之间CAN网络数据通信的隔离扩展,对通信数据处理、传输和CAN网络控制有一定的借鉴作用。

二、硬件设计

主从通信模块控制原理框图如图2所示,核心芯片是TI公司TMS320C2000系列的适合于数字控制的一种DSP。它的单个芯片内包含了10位ADC转换器、片内flash程序存储器、事件管理器、数字输入输出I/O口等。为了便于与各种外围设备进行通信,DSP还提供了一些接口:CAN接口、串行外设接口(SPI)、串行通信接口(SCI)等。其中,SPI接口是工业标准的同步串行接口,是一种全双工、三线通信的系统。它允许DSP与各种外围设备以串行方式(可配置成1~16位数据同时、同步地被发送和接收)进行通信。在SPI接口中,数据的传输需要1个时钟信号和两条数据线。SPI可工作在主模式或从模式下。在主模式下,每一位数据的发送/接收需要1次时钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收。

三、SPI的工作原理

1)SPI的信号说明

如图2通信控制部分原理图,两片DSP芯片的SPI使用4条线直接接口:串行时钟线(SPICLK)、主片输入/从片输出数据线SPISOMI、主片输出/从片输入数据线SPISIMO和低电平有效的从片选择线SPISTE。

SPICLK是主片的时钟线,为MISO数据的发送和接收提供同步时钟信号。每一位数据的传输都需要1次时钟作用,因而发送或接收1个字节的数据需要1~16个时钟的作用。主片的时钟是通过主片的硬件设置的,并和从片的SPICLK相连。