一种基于SPI的数据交换方法研究

时间:2023-10-07 12:28:02 来源:网友投稿

许亚星,徐 楠,门 茜,贾雪航

(中国航空计算技术研究所,陕西 西安710065)

PowerPC芯片以其优异的性能在工业控制领域逐渐得到广泛的应用,DSP芯片具有良好的运算性能,配合PowerPC芯片,可以大大提升系统的整体性能。PowerPC作为主控芯片、DSP作为对外接口扩展芯片时,两芯片间的数据交换是影响整个系统性能的瓶颈。本文在两芯片间原有的RS422总线数据交换外,增加设计了SPI总线,用来交换429数据,降低了422的总线负载,同时提高了系统数据交换的总量和速率。

PowerPC芯片作为主控芯片,负责数据处理和控制率实现,芯片上行通过1394总线进行数据上传和指令接收,下行通过DSP芯片对外进行422总线、429总线、离散量、模拟量等的数据采集和总线通信。PowerPC芯片和DSP芯片之间通过422总线和SPI总线进行数据交换。系统架构如图1所示。

图1 系统架构

图1中,DSP芯片采集离散量、模拟量、422数据,经过处理后通过422总线发送给PowerPC芯片,PowerPC芯片经过逻辑处理后,将处理结果通过1394总线上传显示。由于所有数据都通过422交换时,422总线负载过大,数据量受到限制,因此429总线数据单独通过SPI总线进行交换,DSP芯片接收到429数据后,通过SPI总线传输给PowerPC,同时PowerPC将需要发送的429数据通过SPI总线传输给DSP,由DSP实现对外发送。

SPI总线由摩托罗拉公司提出,是一种全双工同步串行通信总线,通信速率可以由时钟信号进行配置,通信双方采用主从方式进行通信。SPI总线由四根信号线组成,分别为:CS-片选信号、CLK-时钟信号、MOSI-主输出从输入信号、MISO-主输入从输出信号[1]。SPI总线支持一主多从通信,通信架构如图2所示。

图2 SPI主从通信架构

SPI总线的MOSI和MISO两个数据寄存器,由双向移位寄存器实现。即当产生CS和CLK信号时,在一个时钟周期内,会同时完成主设备向从设备发送一位数据和从设备向主设备发送一位数据[2],主从设备通过移位寄存器交换数据的形式如图3所示。

图3 基于移位寄存器的SPI数据交换

本文所研究系统的SPI总线是为了减小RS422数据的总线负载而增加设计,主要传输的是429总线数据,其中PowerPC是SPI传输的主设备,DSP是从设备。分别在PowerPC和DSP软件中创建若干结构体数组,用来存放各自需要接收和发送的429数据。由于SPI总线是内存交换的同步传输方式,主从方创建的接收发送结构体大小应相同,有效数据长度如果小于结构体长度,可以用备份字补齐。

PowerPC作为主设备,运行周期任务:进行SPI数据的收发;
DSP作为从设备,运行周期任务:进行429数据的收发,同时以中断方式配合响应PowerPC进行SPI数据的收发。为了确保SPI数据传输的正确性,对传输的数据包设置包头和校验和,接收数据后,需要进行解包操作,只有当解包正确时,才将接收数据包中的数据段读出[3]。

进行数据收发时,PowerPC和DSP首先将需要发送的429数据放进发送缓冲区中,然后进行SPI的数据收发。因为SPI是内存交换的同步传输方式,进行数据发送的同时进行了数据接收,PowerPC和DSP在SPI传输的时候将接收的数据首先放入接收环形缓冲区中,然后进行解包操作。

进行解包时,首先在环形缓冲区中寻找包头,找到包头后按照固定的长度去读校验和。当接收方算出的校验和与去读的校验和一致时,将中间的数据段读出放入429接收数组区。

DSP以中断方式接收SPI数据时,为了确保数据传输的同步性,在接收中断里应进行尽量简单的操作,只进行SPI数据的接收和发送操作,而填包、解包、取数等操作则放在周期任务中进行[4]。当有多路429数据需要交换时,在PowerPC主任务周期内,以1 ms为单位进行传输,即每1 ms传输一路429数据,在一个任务周期内,可以将多路429数据传输交换完成。进行数据交换时,PowerPC和DSP的软件设计分别如图4和图5所示。

图4 PowerPC软件流程 图5 DSP软件流程

按照如上设计进行硬件和软件实现后,经过试验,在PowerPC端能够接收到DSP发送的多路429数据,同时在DSP端也能够接收到PowerPC发送的429数据。

本文通过设计一种SPI数据交换方法,实现了两芯片间的429数据传输交换,减小了422总线负载,提高了系统数据交换速率,进一步提高了系统性能。

猜你喜欢主从寄存器总线Antarctica"s pretty pink snow疯狂英语·新悦读(2020年6期)2020-06-28Lite寄存器模型的设计与实现计算机应用(2020年5期)2020-06-07二进制翻译中动静结合的寄存器分配优化方法计算机研究与发展(2019年4期)2019-04-18基于ACS880变频器XD2D主从功能的采煤机牵引调速系统设计煤矿机电(2019年2期)2019-04-17一种基于CAN总线的误码测试方法电子制作(2018年11期)2018-08-04移位寄存器及算术运算应用电子技术与软件工程(2018年1期)2018-03-22基于飞行试验数据的仿真模型主从一体化检验探测与控制学报(2015年4期)2015-12-15CAN总线并发通信时下位机应用软件设计空间控制技术与应用(2015年2期)2015-06-05基于CAN总线的水下通信系统设计舰船科学技术(2015年8期)2015-02-27宝马F02车总线系统汽车维护与修理(2014年10期)2014-02-28

推荐访问:数据交换 方法 研究

版权所有:天海范文网 2010-2024 未经授权禁止复制或建立镜像[天海范文网]所有资源完全免费共享

Powered by 天海范文网 © All Rights Reserved.。鲁ICP备10209932号