您的位置 首页 观点

根据MPC5554的周期数据传输关键技术

摘要:针对周期数据传输涉及的数据如何传输和周期任务调度,主要研究SPI和EDMA结合的数据传输方法,并利用时钟中断及查询进行周期任务调度的方法。采用的数据传输方法和调度方法能完成大量数据传输,避免CP

摘要:针对周期数据传输触及的数据怎么传输和周期使命调度,首要研讨SPI和EDMA结合的数据传输办法,并运用时钟中止及查询进行周期使命调度的办法。选用的数据传输办法和调度办法能完结很多数据传输,防止CPU耗费,确保数据传输实时性。且终究经过一个示例阐明,数据传输的进程并对各项技能优缺点进行了剖析与评论。

关键词 周期使命;数据传输;时钟中止查询

MPC5554是轿车操控器中常用的一款芯片,其集成了DSPI和EDMA等很多模块。DSPI可与外部模块进行高速通讯,但传输进程占用很多CPU资源,影响其他使命的履行。本文首要研讨了在MPC5554芯片上,SPI和EDMA合作进行数据传输的办法,该办法在确保SPI高速、实时、高吞吐通讯的前提下,又解放了CPU,整个通讯进程根本无需CPU参加,这样CPU就能够给其他使命分配更多的资源,然后大幅进步体系功能。文中给出了SPI和 EDMA之间与外设的衔接办法。一起在轿车操控器中,数据传输经过多个周期传输使命进行,相同周期传输使命具有相同的优先级,不同周期使命的调度机遇和调度周期不同,本文规划完结了选用时钟中止和查询办法进行周期传输使命调度的办法,给出了算法进程,并举例对算法运用进行了阐明。此办法已被运用在轿车操控器中,且体系运转安稳。

1 SPI与EDMA结合的数据传输办法

运用DSPI(串行/解串外围设备接口)模块的最简略的办法是将其装备为契合工业规范的SPI(串行外设接口)形式,是高速数据传输的抱负挑选。但SPI在与外设进行通讯时,会占用较多的CPU资源,选用EDMA中止办法可在处理器最小程度的参加下,满意大数据量通讯要求。本文将SPI和 EDMA结合进行数据传输,该办法在确保SPI高速、实时的前提下,整个进程无需CPU参加,CPU能够并行履行其他使命。

1.1 与外部设备的衔接办法

图1所示为DSPI和EDMA与燃油芯片的衔接办法。经过EDMA将很多数据从内存传送到SPI缓冲区,再经过SPI装备将数据发送到燃油芯片;反之,燃油芯片将通讯数据发送给SPI缓冲区,再经过EDMA将数据传送到内存中。EDMA传输首要经过TCD通道完结,发送和接纳选用不同的 TCD通道。

a.jpg

1.2 SPI和EDMA装备

在MPC5554中有DSPIA,DSPIB,DSP%&&&&&%和DSPID,在此只运用DSPIA。其发送和接纳缓冲均运用FIFO完结。 EDMA的TCD发送通道向DSPIA发送缓冲区发送数据,TCD接纳通道从DS PIA接纳缓冲区接纳数据。DSPI的发送缓冲FIFO有4级深度,复位后,发送缓冲的FIFO产生EDMA恳求以要求填充数据。当EDMA和DSPI被设置为一起操作后,EDMA将从其传输操控描绘块界说的行列中开端读取数据填充SPI发送缓冲。发送缓冲中只需有待发送数据就会马上传送到移位寄存器中被发送。接纳缓冲FIFO也有4级深度,确保即便有推迟产生数据也能正常发送接纳。

2 数据周期传输使命调度算法

本文首要研讨多个周期性的数据传输使命的调度办法,仅考虑调度机遇和调度周期,不考虑使命优先级和使命抢占等其他要素。不同的周期使命一般均选用不同的调度机遇和调度周期,规划选用时钟中止和查询办法的周期数据传输使命调度算法,使得每个周期使命能依照使命自身的调度机遇和调度周期进行实时调度,不受其他周期使命搅扰。算法进程如下:

(1)获取每个周期使命的调度周期和调度机遇,并求取这些时刻值的最大公约数pnum。

(2)求取每个周期使命的调度周期和调度机遇相对于pnum的倍数,并将周期使命进口和这些倍数存储在如图2所示的Struct数据结构中。

b.jpg

将每个周期使命的struct:信息次序存储在缓冲区中。

(3)设置时钟中止的时问值为pnum。

(4)在时钟中止触发后,对缓冲区中的每一个周期使命信息依照次序进行查询。查询进程中对字段At_turn进行判别,若At_turn=0,则进入*function指定的周期使命进口履行周期使命,一起将At_period写入At_turn字段,不然At_turn减1。对一个周期使命处理完结后再进行下一个周期使命的查询和处理。伪代码如图3所示。

c.jpg

3 运用

在某选用MPC5554芯片的轿车操控器中,经过本文办法向燃油芯片继续发送数据,使得燃油芯片坚持正常作业状况。在此轿车操控器中有4个数据传输周期使命,每个周期使命的调度机遇和调度周期如表1所示。

d.jpg

4个使命的调度机遇和调度周期时刻的最大公约数为5 ms,设置时钟中止周期为5 ms,将每个周期使命的调度机遇和调度周期与5 ms的倍数联系存储在各自使命结构中并写入缓冲区中,缓冲中的使命信息存储如下:

{

周期使命1进口,4,0;

周期使命2进口,6,1;

周期使命3进口,2,2;

周期使命4进口,4,3;

}

程序运转进程中,经过查询缓冲区中的使命信息,当使命的At_turn值到达0时,表明应该履行对应使命,一起将At_period值写入At_turn,重新开端调度周期的计数。

在使命履行进程中,选用SPI和EDMA合作的办法进行数据传输。发送选用EDMA的TCD32通道,接纳选用EDMA的TCD33通道。DSPIA和EDMA发送接纳通道地址装备如图4所示,其他长度、形式等装备信息与发送进程相关。

e.jpg

在时钟中止触发后,以上周期传输使命部分履行情况如表2所示。

f.jpg

4 结束语

选用本文周期传输使命调度的算法与SPI及EDMA结合的办法进行数据传输可满意很多高速数据实时传输,且不影响CPU履行其他使命,算法易于完结、核算量少,选用的数据结构和软件结构易于修正和扩展,使命调度办法灵敏、适用面广、可运用于其他周期使命的调度。但算法也存在必定的局限性,例如一次传输数据量遭到sPI缓冲区深度的约束;周期传输使命的调度周期和调度机遇各数据之间倍数联系越显着,则算法功率越高;若倍数联系不显着,最大公约数较小,则时钟中止会较频频的触发,且查询操作运转次数会添加,影响算法运转功率;存储周期使命信息也会占用必定的存储空间,后期可完善算法削减信息存储和查询操作,然后进一步进步资源运用率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/296761.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部