当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:针对周期数据传输涉及的数据如何传输和周期任务调度,主要研究SPI和EDMA结合的数据传输方法,并利用时钟中断及查询进行周期任务调度的方法。采用的数据传输方法和调度方法能完成大量数据传输,避免CPU消耗,保

摘要:针对周期数据传输涉及的数据如何传输和周期任务调度,主要研究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通道。

1.2 SPI和EDMA配置

在MPC5554中有DSPIA,DSPIB,DSPIC和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数据结构中。

将每个周期任务的struct:信息顺序存储在缓冲区中。

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

(4)在时钟中断触发后,对缓冲区中的每一个周期任务信息按照顺序进行查询。查询过程中对字段At_turn进行判断,若At_turn=0,则进入*function指定的周期任务入口执行周期任务,同时将At_period写入At_turn字段,否则At_turn减1。对一个周期任务处理完成后再进行下一个周期任务的查询和处理。伪代码如图3所示。

3 应用

在某采用MPC5554芯片的汽车控制器中,通过本文方法向燃油芯片持续发送数据,使得燃油芯片保持正常工作状态。在此汽车控制器中有4个数据传输周期任务,每个周期任务的调度时机和调度周期如表1所示。

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所示,其他长度、模式等配置信息与发送过程相关。

在时钟中断触发后,以上周期传输任务部分执行情况如表2所示。

4 结束语

采用本文周期传输任务调度的算法与SPI及EDMA结合的方式进行数据传输可满足大量高速数据实时传输,且不影响CPU执行其他任务,算法易于实现、计算量少,采用的数据结构和软件结构易于修改和扩展,任务调度方式灵活、适用面广、可应用于其他周期任务的调度。但算法也存在一定的局限性,例如一次传输数据量受到sPI缓冲区深度的限制;周期传输任务的调度周期和调度时机各数据之间倍数关系越明显,则算法效率越高;若倍数关系不明显,最大公约数较小,则时钟中断会较频繁的触发,且查询操作运行次数会增加,影响算法运行效率;存储周期任务信息也会占用一定的存储空间,后期可完善算法减少信息存储和查询操作,从而进一步提高资源利用率。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

5月11日消息,Arrow Lake、Lunar Lake还没有发布,Intel再下一代处理器Panther Lake的消息就传出来了,CPU方面没啥惊喜,GPU又一次要飞跃。

关键字: GPU CPU 芯片

Optiver通过包括EPYC CPU、Solarflare以太网适配器、Virtex FPGA和Alveo加速卡在内的高性能AMD解决方案搭建其业务基础

关键字: CPU 数据中心 以太网

加利福尼亚州圣克拉拉市—2024年4月30日―AMD(NASDAQ: AMD)今日公布2024年第一季度营业额达55亿美元,毛利率为47%,经营收入3600万美元,净收入1.23亿美元,摊薄后每股收益为0.07美元。基于...

关键字: 嵌入式 PC 人工智能

利用LogiCoA™微控制器,以更低功耗实现与全数字控制电源同等的功能

关键字: 微控制器 电源 CPU

2024年4月18日,国民技术第四代可信计算芯片NS350 v32/v33系列产品正式发布并开始量产供货。NS350 v32/v33是一款高安全、高性能、超值可信密码模块2.0 (TCM 2.0)安全芯片,适用于PC、服...

关键字: PC 服务器平台 嵌入式系统

2024年4月18日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 很荣幸地宣布与Edge Impulse建立新的全球合作关系。Edge Im...

关键字: 机器学习 MCU CPU

无论您是在研究如何使用 10GigE 还是寻求所需考虑事项的建议,本文均提供有实践,帮助确保单相机 10GigE 视觉系统设置顺利并拥有良好性能。 我们列出了主机系统配置、布线和相机设置的实践。

关键字: 视觉系统 CPU 存储器

Apr. 16, 2024 ---- NVIDIA新一代平台Blackwell,包含B系列GPU及整合NVIDIA自家Grace Arm CPU的GB200等。TrendForce集邦咨询指出,GB200的前一代为GH2...

关键字: CPU GPU

随着科技的飞速发展,电子设备间的连接与数据传输变得越来越重要。Type-C转接头作为连接各种设备的桥梁,其性能与标准也不断升级。本文将详细探讨Type-C转接头2.0与3.1之间的区别,帮助读者更好地理解和选择适合自己的...

关键字: 电子设备 数据传输 Type-C

人工智能是集合众多方向的综合性学科,在诸多应用领域均取得了显著成果[1]。随着航空领域人工智能技术研究的不断深入,面向开放式机载智能交互场景,人工智能的应用可解决诸多问题。例如智能感知、辅助决策等,可利用人工智能算法对多...

关键字: 人工智能 PCIe CPU
关闭
关闭