李工在设计IOC模块软件时指出:为了使CPM模块能够及时处理RS422数据,在IOC与CPM间的双端口存储器中为每个422通道设计一级缓冲,当某通道接收一个字节时,就将数据放入缓冲,由CPM接收(其结构如图3-2所示)。这样的好处在于每当有数据输入时,CP

admin2009-03-25  59

问题 李工在设计IOC模块软件时指出:为了使CPM模块能够及时处理RS422数据,在IOC与CPM间的双端口存储器中为每个422通道设计一级缓冲,当某通道接收一个字节时,就将数据放入缓冲,由CPM接收(其结构如图3-2所示)。这样的好处在于每当有数据输入时,CPM模块可立即读取,而增大双口缓冲的目的是在CPM来不及处理时可防止数据的丢失。同时,IOC中的程序相对简单、实时性好、可以不考虑422通道的数据传输周期,只要按查询方式对16路422输入进行查询读取即可。
   会上,王工提出了强烈的反对意见,认为这种设计方法绝对不可取,这种方法只考虑了软件的简单与便利,而没有针对软件特点考虑问题,在设计中对实时性、负载平衡分配及实现算法上均存在缺陷,必须改进。
   (1)你认为李工的设计在实时性、负载平衡分配和实现算法上存在怎样的缺陷?详细说明理由。
   (2)请给出IOC模块和CPM模块之间双口存储器数据交换方法。
如果CPM模块中采用了嵌入式实时操作系统,请根据本项目的需求,用300字以内的文字说明CPM模块中数据采集任务应如何划分?系统对任务调度的最小调度周期如何计算?各个任务周期及优先级如何定义?

选项

答案(1)根据本题(2)中对数据采集的技术要求,按照采集任务周期划分,CPM模块中的软件应划分成:一个10ms任务、一个20ms任务、一个40ms任务、一个60ms任务、两个1s任务和一个非周期任务。其中: 10ms任务主要负责64路离散量数据的采集、处理和显示; 20ms任务主要负责具有20ms数据交换周期的RS422通道的数据采集; 40ms任务主要负责具有40ms数据交换周期的RS422通道的数据采集; 60ms任务主要负责具有60ms数据交换周期的RS422通道的数据采集; 1s任务有两个。一个任务主要负责具有1s数据交换周期的RS422通道的数据采集,另一个任务主要负责多路模拟量数据采集; 非周期任务主要负责该系统与汽车其他电子系统的数据交换。 (2)系统对任务调度的最小调度周期应为所有任务周期的最大公约数,即10ms、20ms、40ms、60ms、1s的最大公约数是10ms。 (3)根据实时系统常用的小周期任务优先调度的算法,CPM上7个任务的优先级顺序应为: 非周期任务<1s任务1=1s任务2<60ms任务<40ms任务<20ms任务<10ms任务(优先级最低)—————————→(优先级最高)

解析
转载请注明原文地址:https://kaotiyun.com/show/F4QZ777K
0

最新回复(0)