社区导航

 
查看: 1695|回复: 10

[求助] 28335无BIOS下的任务调度

[复制链接]

16

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-7 10:05:27 | 显示全部楼层 |阅读模式
我现在用28335完成以下几个任务:
1、用epwm产生14K的PWM波驱动IPM
2、有CAN通讯和485通讯
3、AD采样
4、2到3个周期性的查询任务
5、其它一些数据转换
请教各位不用BIOS的话这些任务应该怎么分配以保证每个任务的时间都比较精确?
我的想法是pwm用epwm1的中断产生,这个对时间要求最精确;两个通讯用定时查询的方法,这样的话也有比较严格的时间要求;AD采样可以用pwm来触发;周期性的查询任务时间要求也比较严格;数据转换放在上边几个任务都执行完之后的空闲时间里。对于定时查询和周期性的任务我想用cputimer0的定时中断来做,但是这样的话它的中断优先级比pwm的高,可能会使得PWM的中断不能及时响应,那么还有什么办法既能保证PWM的中断能严格响应而其它的周期性时间又能精确保证?如果两个通讯也用中断方式的话也会发生在通讯中断过程中有了PWM中断不能响应的情况,如果用中断嵌套的话PWM的中断频率很高,会不会发生通讯总被打断而无法连通的情况?请各位指点一二

此帖出自TI C2000论坛

回复

使用道具 举报

2495

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2015-4-7 12:05:22 | 显示全部楼层
楼主是做逆变的吗?
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!

回复 支持 反对

使用道具 举报

16

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-7 12:16:35 | 显示全部楼层
elvike 发表于 2015-4-7 12:05
楼主是做逆变的吗?

做电源的

回复 支持 反对

使用道具 举报

2495

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2015-4-7 13:07:41 | 显示全部楼层
我大概了解是PWM中断启动AD的SOC,是在CMP=PRD时产生SOC,这样采样的电感电流是在电流上升的中点。其他的我就不知道了。我其实这一块也挺困惑
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!

回复 支持 反对

使用道具 举报

16

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-4-7 13:29:28 | 显示全部楼层
elvike 发表于 2015-4-7 13:07
我大概了解是PWM中断启动AD的SOC,是在CMP=PRD时产生SOC,这样采样的电感电流是在电流上升的中点。其他的我就不知道了。我其实这一块也挺困惑

谢谢,你说的则这个我大概知道,但是PWM和其它任务之间的调度会不会产生冲突,不知道有没有比较好的大家通用的或已经证明比较可行的方法

回复 支持 反对

使用道具 举报

1086

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

荣誉会员勋章

发表于 2015-4-17 15:19:49 | 显示全部楼层
TI提供了一种软件调整优先级的解决办法,可以参考TI的例程试试。
电子工程师技术交流QQ群:12425841,专注于自动控制、数字电源等

回复 支持 反对

使用道具 举报

1万

TA的帖子

34

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-4-19 11:14:56 | 显示全部楼层
这个CPU是实时处理器,硬件上都有考虑的。楼主看看它的手册就自然明白了。

回复 支持 反对

使用道具 举报

19

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-20 22:44:32 | 显示全部楼层
个人建议:
1、本身PWM实际上就是一个定时器,可以用PWM中断作为一个定时基准时间,你的PWM的频率为14K,那么就以此为基准时间,在中断中设置时间变量,此变量作为任务查询的标志位,有点类似于时间片轮询的概念,但不全是
2、通讯可以采用中断完成,CAN和485通信分别有CAN通信中断和SCI中断,由于PWM中断的优先级比通信中断优先级高,所以不用干涉,但是要设置好通讯接收完成的标志位,在主循环中一直查询此标志位即可

回复 支持 反对

使用道具 举报

16

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-5-13 15:52:27 | 显示全部楼层
sure220 发表于 2015-4-20 22:44
个人建议:
1、本身PWM实际上就是一个定时器,可以用PWM中断作为一个定时基准时间,你的PWM的频率为14K,那么就以此为基准时间,在中断中设置时间变量,此变量作为任务查询的标志位,有点类似于时间片轮询的概念,但不全是
2、通讯可以采用中断完成,CAN和485通信分别有CAN通信中断和SCI中断,由于PWM中断的优先级比通信中断优先级高,所以不用干涉,但是要设置好通讯接收完成的标志位,在主循环中一直查询此标志位即可

谢谢,我现在采用的方法和你说的第一点一样,就是在PWM中断中进行计时,到时间则将相应标志置位,然后在主循环中根据这个标志位来执行相应程序。

关于通讯的话我还是想采用查询的方式,尽量不使用中断。PWM的中断优先级比通讯的都高,但是如果通讯已经进入中断之后PWM中断来了,这时候如果没有中断嵌套的话PWM还是得等,不知道这样对于PWM的执行影响有多大?你在实际应用中碰到过因此发生的问题吗,你一般都怎么处理的?

回复 支持 反对

使用道具 举报

19

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-5-13 22:28:42 | 显示全部楼层
DSP是没有中断嵌套的概念的,只会根据中断优先级来排序。根据中断优先级,PWM的中断优先级比SCI的优先级高,那么如果同时产生中断,CPU会优先响应PWM中断,而将SCI中断挂起,等PWM中断执行完毕后再执行SCI中断,因为通信对实时性要求不是很高,所以PWM中断和SCI中断是不冲突的。

回复 支持 反对

使用道具 举报

16

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-5-14 16:04:28 | 显示全部楼层
sure220 发表于 2015-5-13 22:28
DSP是没有中断嵌套的概念的,只会根据中断优先级来排序。根据中断优先级,PWM的中断优先级比SCI的优先级高,那么如果同时产生中断,CPU会优先响应PWM中断,而将SCI中断挂起,等PWM中断执行完毕后再执行SCI中断,因为通信对实时性要求不是很高,所以PWM中断和SCI中断是不冲突的。

好的,谢谢你,有问题再来请教

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-7-28 10:38 , Processed in 0.464131 second(s), 15 queries , Redis On.

快速回复 返回顶部 返回列表