一种spi总线与can总线协议转换电路及方法

文档序号:9455924阅读:4438来源:国知局
一种spi总线与can总线协议转换电路及方法
【技术领域】
[0001]本发明涉及一种SPI总线与CAN总线协议转换电路,还涉及一种SPI总线与CAN总线协议转换方法,属于总线转换技术领域。
【背景技术】
[0002]随着工业现代化的程度越来越高,现场总线技术在工业控制领域起着越来越重要的作用。然而,为了使工业控制组网变得更加灵活,同一个网络中有时会需要多种不同的总线,使得不同总线协议之间的转换成为工业控制领域中一项关键技术。而SPI总线是嵌入式系统应用中非常广泛的接口标准,许多器件厂家都使用该标准,主要原因是SPI总线使用处理器引脚少,传输速度快,同一 SPI总线上可挂接多个SPI接口等。在一些嵌入式单片微型计算机应用系统中,在可用极少引脚的前提下,利用SPI总线与CAN总线转换方法是一种既经济又方便的接口扩展方法。
[0003]目前,研究SPI总线与CAN总线的转换方法有很多,但都是需要专用CPU进行SPI协议与CAN总线协议控制转换,一般均采用多个芯片模块化实现,类似于工控机处理方式,存在电路体积大,成本尚,应用不灵活的缺点。

【发明内容】

[0004]本发明的目的在于克服现有技术中的不足,提供一种SPI总线与CAN总线协议转换电路,解决现有技术中SPI总线与CAN总线转换需要多个芯片模块化组装实现,导致电路体积大、可靠性低、扩展不灵活等问题。
[0005]为解决上述技术问题,本发明所采用的技术方案是:一种SPI总线与CAN总线协议转换电路,包括SPI模块、CAN模块、实现SPI数据与CAN总线数据透明转换的协议转换单元以及对SPI模块与CAN模块进行初始化管理的逻辑控制管理单元;
所述SPI模块包括SPI移位控制单元、连接在SPI移位控制单元输出端的发送FIFO和连接在SPI移位控制单元输入端的接收FIFO,所述CAN模块包括CAN逻辑控制单元、连接在CAN逻辑控制单元输入端的发送缓冲器和连接在CAN逻辑控制单元输出端的接收缓冲器;将SPI数据转换为CAN总线数据时,协议转换单元从SPI模块的发送FIFO中读出数据,依据地址信息分别转换为CAN总线帧信息、ID识别码、数据,并存入CAN模块的发送缓冲器中,最终通过CAN逻辑控制单元从TX端口发送CAN报文信息;
将CAN总线数据转换为SPI数据传输时,协议转换单元从CAN模块的接收缓冲器中读出CAN总线数据,并将CAN总线的帧信息、ID识别码、数据依次存入SPI模块的接收FIFO中,协议转换单元对接收FIFO读写信号、地址、数据进行管理,依据SPI数据格式将CAN总线数据转换为串行数据,并在SPI模块时钟SCK、片选SCS信号有效时从串行数据输出端口SDO发送数据。
[0006]本发明的另一目的在于提供一种SPI总线与CAN总线协议转换方法,包括如下步骤:步骤一:通过SPI模块对串行输入数据进行解码,根据相应的地址、数据进行管理,配置CAN模块寄存器,并对电路内部SPI模块的FIFO地址、数据、读写信号进行控制管理;步骤二:当SPI模块的SDI端口有串行数据输入时,每位数据在串行时钟SCK的上升沿被采样,并进行串行移位转换,将串行数据解码成并行数据,依据解码的地址ADDR将需要传输的数据存入发送FIFO中,并通知CAN模块有数据需要转换传输;
步骤三:CAN模块接收到指令后,从SPI模块的发送FIFO中读出数据,并送入CAN模块的发送缓冲器,依据CAN逻辑控制单元的CAN协议控制逻辑从TX端口发送CAN数据;步骤四:当CAN模块的RX端口接收到CAN数据后,CAN逻辑控制单元首先将CAN数据解码,依据CAN协议将CAN帧信息、ID识别码、数据存入接收缓冲器,并通知SPI模块有CAN数据需要转换传输;SPI模块接收到指令后,从CAN模块的接收缓冲器读出CAN数据,并存入SPI模块的接收FIFO中,依据SPI协议从串行数据输出端口 SDO发送CAN数据。
[0007]所述SDI端口输入的串行数据共有16位,其中8位数据DATA,8位地址ADDR。
[0008]步骤四中当CAN模块的RX端口接收到CAN数据后,通过内部的验收滤波器、位时序逻辑和位流处理器,将接收到的CAN数据进行转换后存入CAN模块的接收缓冲器中。
[0009]与现有技术相比,本发明所达到的有益效果是:
本发明提供的SPI总线与CAN总线协议转换电路是一个集SPI总线接口、CAN总线接口的专用单片集成电路,不需专用的CPU进行控制,按照SPI协议与CAN总线协议自动进行协议转换,控制简单,可靠性高;另外具有电路接口少的优点,只含有SPI与CAN总线的标准接口,既可满足工业控制中不同协议间的转换,也可应用于带有SPI总线与CAN总线的接口扩展领域。
【附图说明】
[0010]图1是本发明提供的SPI总线与CAN总线协议转换电路。
[0011]图2是SPI模块传输数据格式。
【具体实施方式】
[0012]下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0013]如图1所示,SPI总线与CAN总线协议转换电路包括逻辑控制管理单元、SPI模块、CAN模块和协议转换单元。SPI模块包括SPI移位控制单元、连接在SPI移位控制单元输出端的发送FIFO和连接在SPI移位控制单元输入端的接收FIFO。CAN模块包括CAN逻辑控制单元、连接在CAN逻辑控制单元输入端的发送缓冲器和连接在CAN逻辑控制单元输出端的接收缓冲器。
[0014]下面对SPI总线与CAN总线协议转换电路中各部分的工作原理作进一步详细描述,具体如下:
(I)逻辑控制管理单元
逻辑控制管理单元主要对SPI模块与CAN模块进行初始化管理,通过SPI模块对串行输入数据进行解码,根据相应的地址、数据进行管理,配置CAN模块寄存器,并对电路内部SPI模块的FIFO地址、数据、读写信号进行控制管理。
[0015](2) SPI 模块
SPI模块主要对SPI发送、接收数据进行编解码移位控制,总共有四个端口:
SCS:片选信号输入,低有效。
[0016]SCK:串行时钟。
[0017]SD1:串行数据输入。
[0018]SD0:串行数据输出。
[0019]SDI输入数据共有16位,其中8位数据DATA,8位地址ADDR,数据格式如图2所示。当SDI端口有串行数据输入时,每位数据在SCK的上
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1