阅读以下关于嵌入式系统软件设计方面的叙述,回答问题1至问题3。 某公司承担了一项嵌入式系统软件开发项目。该项目主要用于车载电子系统中监视发动机及燃油系统等系统工作状况,并通过综合仪表显示给驾驶员。经过多次与用户沟通,形成以下技术要求: (1)本

admin2009-03-25  26

问题 阅读以下关于嵌入式系统软件设计方面的叙述,回答问题1至问题3。
   某公司承担了一项嵌入式系统软件开发项目。该项目主要用于车载电子系统中监视发动机及燃油系统等系统工作状况,并通过综合仪表显示给驾驶员。经过多次与用户沟通,形成以下技术要求:
   (1)本项目的硬件平台由主处理机模块和多种接口模块组成,底板采用标准VME总线(硬件结构图如图3-1所示),具体硬件模块配置如下。
                                  
   ①主处理机模块(CPM)采用PowerPC755,主频266MHz,配有SDRAM存储器和FLASH存储器;提供一个定时/计数器;支持16级中断和二级cache。
   ②输入输出模块(IOC)支持16路RS422接口信号,传输速率不低于115.2kbps,IOC模块与CPM模块的数据交换采用64KByte双端口存储器。
   ③离散量接口模块(DAM)支持64路开关型离散量输入输出接口;2路频率量输入;12位A/D转换器和12位:D/A转换器。
   ④图形处理模块(GPM)用于显示图形,支持OpenGL标准接口软件。
   ⑤MBI模块主要提供1553B外总线接口,PSM为电源支持模块。
   (2)本项目软件主要工作在CPM模块中,完成对外部设备的数据采集、分析和相应的控制,将监视结果以图形方式显示给驾驶员。该系统的软件主要包括外部接口驱动软件、VME数据传输软件、处理软件、图形显示和外总线(1553B)数据交换软件。要求数据的采集必须确保每帧数据无丢失,并在本帧内完成数据的处理工作,本帧信息显示给驾驶员的时刻最晚不能超过下帧。详细的技术要求如下。
   ①16路RS422接口主要完成对汽车燃油系统、动力系统和驾驶员命令的数据采集与控制。RS422数据传输格式将以32Byte为基本数据块,分别以20ms、40ms、60ms和1s四个不同周期交换数据。
   ②64路离散量数据主要监控发动机工作状态,要求每10ms采集一次,并在下一个10ms周期内将发动机状况显示到驾驶员座舱。
   ③多路模拟量数据主要采集发动机转速、油量及汽车的其他数据,为驾驶员监控汽车状态提供必要的量化数据。模拟量数据的刷新频率为1s。
   ④外总线(1553B)主要完成该系统与汽车其他电子系统的数据交换。
                                  
   公司将本项目交给项目主管李工实施,要求李工按技术要求完成本项目的软件设计工作,公司根据合同关于“数据的采集必须确保每帧数据无丢失,并在本帧内完成数据的处理工作,本帧信息显示给驾驶员的时刻最晚不能超过下帧”的要求,提醒李工设计中重点考虑整个系统的实时性问题。李工完成设计后,提交公司评审,会上就李工设计中存在的缺陷展开了激烈讨论,最终达成一致。

选项

答案(1)从本题(2)中的技术要求①的描述可以看出,RS422的数据是按32Byte为基本数据块进行传输的,这说明数据块应是连续发送的。 实时性:李工提出的在:IOC接收到一个字节后就发送给CPM模块,这不但影响了IOC的实时性,同时也影响了CPM的实时性。 负载平衡分配:从命题上可以看出IOC是智能设备,可以独立完成RS422的数据采集,按李工设计方法,IOC的处理能力没有充分发挥,而加大了CPM模块负载量,使得两模块的负载不平衡。 实现算法:基于前两个设计缺陷的存在,使得实现算法上软件的功能模块设计不完整、增大了CPM模块上的软件设计复杂度、没有有效地利用硬件资源。 (2)IOC和CPM之间的数据交换设计办法如下。 ①将IOC和CPM两模块的任务负载量划分均衡,具体使IOC按每个RS422通道的32Byte为基本数据块进行接收,一次统一提交给CPM模块。 ②在IOC模块中为每个通道设计1~2个32Byte缓冲区。IOC在接到一个字节后,将数据放入每个32Byte缓冲区,当一个完整的数据块接收完成后,一次性地将数据发送给CPM模块。 ③IOC的软件可以使用中断方式或查询方式进行数据接收,一旦数据块的头字节到达后,使用查询方式连续将32个字节接收完成。 ④CPM模块的通道采集程序可一次性读取完成的数据块,这样就降低了CPM的数据采集负载。

解析 从本题给出的命题内容可以看出,此题是一种嵌入式软件设计课题,主要考查考生对嵌入式软件设计(尤其是实时软件设计)中的基本方法掌握程度,能否正确地根据用户需求,理解技术要求,完成一种满足实际命题要求的软件设计。本题主要考查考生对以下实时系统基本技术知识的掌握。
   (1)因为嵌入式实时系统与实际应用要求结合性很高,为了满足系统总的要求,设计软件时,应充分考虑硬件平台的配置和系统的实际技术特点,掌握好这一点尤其重要。
   (2)实时系统必须保证在规定的时间范围内完成预先规定处理工作。而本题给出的多个数据采样、处理时间要求,是嵌入式实时系统设计中主要面临的设计问题。对仅有一个处理器而言,如何安排好多个任务协调处理的顺序,即任务的优先顺序,是考查考生综合设计能力最有效的方法。
   (3)本题给出的硬件平台结构根据系统的处理量,按功能划分成了多个处理单元,考生应从题中可以隐含看出。那么,在软件设计中应充分发挥本题所给出的条件,学会使用负载平衡方法分配每个处理机所承担的任务,达到各个处理单元的负载基本相同,以增强系统的实时性。
   问题1分析:本问题主要考查考生对本题的理解能力和具体设计中如何充分发挥各自处理单元的能力。设计时应重点考虑.IOC处理模块和主处理模块问的任务接口功能的划分问题。李工给出的方案不是不可行,只能说是不是最优方法。李工设计方案中的缺陷主要体现在如下两个方面:其一是系统实时性不是太好;其二是IOC和CPM工作负载不平衡,如果CPM能够有充分的处理能力(速度极快),完全可以按每个字节接收16路RS422数据,那么IOC就可以不用智能模块设计了,这样也可降低成本。但是,考生应清楚,这样的设计要求CPM要不断响应IOC模块的数据到达请求,势必使CPM要消耗大量的时间处理此事务,而根据本题给出的技术说明“RS422数据传输格式将以32Byte为基本数据块”,因此,李工的设计方法是不可取的。只有CPM模块按每帧32Byte一次接收完成,才可以大大降低CPM模块任务负载,确保CPM的大部分时间处理自己的工作。
   如果考生能充分理解此题,问题1的第二问将会迎刃而解。
   问题2分析:本问题主要考查考生针对本题提出的不同周期任务的周期要求,在采用操作系统情况下,如何设计CPM中不同任务的工作时序。这里主要考查考生对操作系统的掌握程度,理解操作系统中任务调度的抢占式优先级调度的基本原理,并根据具体任务的时间关系,画出任务的优先级分配图。这也是考核考生对实时系统的基础知识。
   问题3分析:本问题主要考查考生的实际经验,如果考生从事过此类课题的开发工作,应该理解驱动程序的设计方法,中断方式和查询方式是数据采集常用的方法之一,这要根据具体系统的技术要求,进行综合考虑。如果考生掌握了两者之间的差别,应该能够分析出本问题的优缺点。
转载请注明原文地址:https://kaotiyun.com/show/U4QZ777K
0

最新回复(0)