刘 明
(中国航空计算技术研究所 第18研究室,陕西 西安 710119)
基于DSPI数据传输的电压启动软件设计与实现
刘 明
(中国航空计算技术研究所 第18研究室,陕西 西安 710119)
研究了基于DSPI发送控制数据控制燃油芯片电压的软件设计与实现中的关键技术,包括采用的数据结构、DSPI驱动、DSPI和燃油芯片的交互方式以及控制数据的功能分组与交互流程。最终给出了电压控制过程示意图,同时在喷油软件中加载本软件,实验结果表明,喷嘴能正常工作。
DSPI驱动;控制数据;交互方式;电压控制
燃油芯片是发动机自动控制单元中控制电路的核心控制部分,其主要负责采集控制单元中的微控制器发出的信号和控制芯片的工作状态,控制发动机中油缸的喷油量、喷油时间、喷油定时和喷油效率等参数,使发动机处于最佳状态下工作。燃油芯片在未启动工作时电压是24 V,通过控制数据的设置使其电压达到50 V之后才能够启动喷油工作,完成喷油任务。通过DSPI[1-2]以一定的格式和方式向燃油芯片发送对应的控制数据,可使燃油芯片保持稳定的50 V电压,为燃油芯片正常喷油工作提供稳定电压供给。
DSPI发送给燃油芯片的数据共64个,这些数据按照功能不同分组,顺序执行,主要完成燃油芯片的状态检测,初始化,写寄存器和维持工作电压等功能。将所有数据相关信息存储在结构体A中,达到数据状态可控。在发送前从对应结构体中提取信息组织数据,数据存储结构体如下:A[0]为本次待发送数据的数据个数;A[1]为待发送数据的命令队列;A[2]为待发送数据的数据队列;A[3]为返回数据存放队列;A[4]为对接收数据进行处理的函数入口地址;A[5]为是否对接收数据进行处理的标志,0表示无需做进一步处理,1表示需要处理。
在发送数据时,根据数据功能组织命令字段和数据字段组装,形成待发送数据队列使用DSPI发送,并将燃油芯片处理后返回的数据记录在对应发送数据的结构字段A[3]中。
DSPI包括发送串口和接收串口,能够与芯片设备进行数据交互[3]。通过DSPI向燃油芯片发送命令数据,可完成燃油控制芯片的启动、初始化和喷油控制工作等功能。DSPI有3个基本操作配置模式:(1)串行外设接口(SPI)模式,此时DSPI工作在标准的SPI或队列式SPI模式下。(2)串行解串接口(DSI)模式,此时DSPI用于eTPU或eMIOS模块解串行输出。(3)组合串行接口(CSI)模式,此时DSPI工作在以上两种配置的混合状态下。
本文采用SPI方式进行高速数据传输,图1所示为DSPI和燃油芯片连接图。该部分负责将串口的数据串并转换后进行译码和相应的处理,经过特定的处理后与其他控制信号产生相应的输出数据,再转换为串行数据输出给DSPI,实现与燃油芯片的数据交互,串口时钟频率为2 MHz。
图1 DSPI和燃油芯片连接图
其中TX FIFO占空间32位,包括命令字段和数据字段;RX FIFO占空间16位,没有命令字段。在发送数据前要先从结构体A中取出命令字段和数据字段组装待发送数据,发送完成后要将接收的数据存储在A[3]中。
图2 DSPI驱动流程图
图2所示为DSPI驱动流程图,主要将发送队列的数据发送到燃油芯片,并接收来自燃油芯片的返回值,是底层数据传送的通道。在数据传输过程中主要使用的DSPI寄存器包括DSPIx_PUSHR,DSPIx_POPR,TX FIFO和RX FIFO。其中DSPIx_PUSHR提供向TX FIFO写数据的机制,写入此寄存器中的数据都会被写入TX FIFO,不会丢失;DSPIx_POPR提供从RX FIFO读数据的机制。写入TX FIFO中的数据由命令字段和数据字段组成,从RX FIFO中读取的数据没有命令字段,只有数据字段。发送缓冲FIFO有4级深度,每次可最多预先装载4个数据。
3.1 数据传输软件流程
设置燃油芯片电压的数据有64个,不同数据功能不同,数据不同组合代表不同功能,根据数据对燃油芯片设置的功能不同,将数据分为不同阶段,其阶段流程图如图3所示。燃油芯片电压启动数据被划分为4个阶段数据,分别是状态检测、燃油芯片初始化、写燃油芯片寄存器和电压保持。
图3 电压启动阶段流程图
状态检测:此部分数据主要检测DSPI和燃油芯片之间数据是否能够正常发送以及芯片和硬件电路是否能够正常工作。此部分数据可在任意地方发送用于检测,一般放在程序开始处。
燃油芯片初始化:CPU通过DSPI向燃油芯片发送数据,若芯片准备好且无异常,则回复数据命令表示可以工作。
写燃油芯片寄存器:初始化完成后,ETPU控制喷油汽缸选择通道就设置完成,此时DSPI模块通过GPIO95引脚向燃油芯片的内部寄存器写入初值,如BOOST采样信号的电压值、喷油信号电流采样的初始值等。在初值写入过程中,燃油芯片对应管脚会有PWM波形输出,此时电压从24 V逐渐升高到50 V。
电压保持:寄存器配置完成后,CPU通过DSPI向燃油芯片发送正常工作序列,循环发送,设置电压一直保持在50 V,此时配合曲轴,凸轮和喷油通道等可正常驱动喷嘴工作。
以上4个部分的数据都是不同数据块的组合,一个数据块对应一个结构体A。每个数据块的发送流程如图3所示。在发送前首先要查找当前设置数据对应的结构体A,从中取出命令字段和数据字段组织成待发送数据队列,DSPI中的发送FIFO有4级深度,所以每次可至多发送4个数据[4]。在DSPI发给燃油芯片的数据中,数据组合有3种方式:两个数据连续发送、3个数据连续发送和4个数据连续发送[5]。数据队列组织好后便可调用DSPI驱动发送数据给燃油芯片并接收返回数据[6];返回的数据中没有命令字段,所以要从DSPI的接收FIFO中解析出数据记录在A[3]中。每个数据块发送完成后均要查找A[5],看是否需要对接收数据进行处理,若标志为1则直接转入A[4]中记录的数据处理函数中,根据对接收数据的处理修改相应标志或对下一步操作产生影响;接收数据处理完成后就可继续下一数据块的发送[7]。由图3可知,只要未停机,工作电压保持部分的数据是循环发送的。数据发送流程如图4所示,从图中可以看出,通过DSPI可完成从CPU向燃油芯片的数据发送和接收,循环发送直至接收到停机命令。
图4 数据发送流程图
在本程序中,在电压升高到50 V时,循环发送电压保持数据的初期电压不稳定,在循环发送数据中有一组数据用来检测电压是否已经达到稳态,此组数据有对应的返回值处理函数。数据发送到燃油芯片后,其对应的返回值会被转入处理函数,进行变换提取关键信息并根据变换结果判断电压状态是否稳定,若电压已经稳定则设置对应状态信息,同时此组数据将不再发送。
3.2 数据处理
在数据发送接收时,会将数据组成发送队列和接收队列,如图5所示。发送队列由命令字段和数据字段组成,命令字段中包含数据的起始和结束信息以及发送接口信息;接收队列中则无命令字段,只有数据字段,因接收数据与发送数据相互对应,所以将其数据字段按照发送顺序依次存入对应发送结构中。在对燃油芯片发送数据过程中,通过示波器查看燃油芯片电压管脚,可看出电压变化过程。
图5 发送接收数据队列格式
图6 燃油芯片电压变化示意图
从图6中可看出,在发送初始化数据时电压无变化,开始发送写寄存器数据后电压开始上升,直到达到50 V,之后循环发送电压保持数据使电压一直保持在50 V。
电压达到50 V是喷油正常工作的基础,将此软件加载在喷油驱动程序中,喷嘴能够正常喷油,说明此软件能够有效和可靠地控制燃油芯片电压。
燃油芯片电压达到50 V是保证喷油工作顺利进行的基础条件,为喷油提供稳定的电压和电流支持。本文研究了采用DSPI进行数据传输设置燃油芯片电压启动和保持的软件,分析了数据结构、软件流程等关键技术,并通过采集电压启动和保持过程示意图验证了软件的有效性,将此部分软件加载入喷油系统中,喷嘴工作状态良好,进一步验证了软件的可靠性。
[1] 龚光华,宫辉,安鹏.MPC5554/5553微处理器揭秘[M].北京:北京航空航天大学出版社,2010.
[2] 孔令荣.基于SPI接口的温度测量系统[J].电子科技,2013,26(2):79-82.
[3] 辛晓宁,孙文强.全功能SPI接口的设计与实现[J].电子设计工程,2012(23):153-156.
[4] 李明磊,潘文亮.基于SPI接口和FIFO缓冲器的大容量高速实时数据存储方案[J].海洋技术,2010(2):30-32.
[5] 权建军.虚拟SPI在XFS4240与MCS51通信中的应用[J].单片机与嵌入式系统应用,2010(6):66-67,70.
[6] 陈耿.一种实用的多通道SPI接口设计[J].舰船电子工程,2013(4):98-101
[7] 杨镇首,李军.基于SPI 接口的多机扩展和通信方法[J],应用技术,2011(2):39-42.
[8] 王华斌,孟立凡,谷宗冉,等.基于SPI总线的无线数据传输系统设计[J].电子科技,2009(12):17-19.
Design and Implementation of Voltage Starting Software Based on DSPI Data Transfer
LIU Ming
(Eighteenth Laboratory,Aeronautical Computing Technique Research Institute,Xi’an 710119,China)
This paper studies the key technologies of the design and implementation of the software controlling fuel chip voltage based DSPC data transfer and control.The technologies cover data structure,DSPI drive,interaction between DSPI and the fuel chip,and function classification and interaction of control data.Finally,the voltage diagram is collected,and software is loaded in the injection software.Experiments show that the injection can work normally.
DSPI drive;control data;interaction;voltage control
2014- 09- 09
刘明(1983—),男,硕士,工程师。研究方向:计算机软件。E-mail:xiangirl2005@126.com
10.16180/j.cnki.issn1007-7820.2015.04.012
TN919.3+1;TP368.1
A
1007-7820(2015)04-043-04