閱讀以下關(guān)于嵌入式系統(tǒng)軟件設(shè)計(jì)方面的敘述,在答題紙上回答問(wèn)題1 至問(wèn)題3。
某公司承擔(dān)了一項(xiàng)嵌入式系統(tǒng)軟件開(kāi)發(fā)項(xiàng)目。該項(xiàng)目主要用于車載電子系統(tǒng)中監(jiān)視發(fā)動(dòng)機(jī)及燃油系統(tǒng)等系統(tǒng)工作狀況,并通過(guò)綜合儀表顯示給駕駛員。經(jīng)過(guò)多次與用戶溝通,形成以下技術(shù)要求:
(1)本項(xiàng)目的硬件平臺(tái)由主處理機(jī)模塊和多種接口模塊組成,底板采用標(biāo)準(zhǔn)VME總線(硬件結(jié)構(gòu)圖見(jiàn)圖3-1),具體硬件模塊配置如下:
① 主處理機(jī)模塊(CPM)采用PowerPC755,主頻266MHz,配有SDRAM存儲(chǔ)器和FLASH 存儲(chǔ)器;提供一個(gè)定時(shí)/計(jì)數(shù)器;支持16級(jí)中斷和二級(jí)cache;
② 輸入輸出模塊(IOC)支持16路RS422接口信號(hào),傳輸速率不低于115.2kbps,IOC 模塊與CPM模塊的數(shù)據(jù)交換采用64KByte雙端口存儲(chǔ)器;
③ 離散量接口模塊(DAM)支持64路開(kāi)關(guān)型離散量輸入輸出接口;2路頻率量輸入;12位A/D 轉(zhuǎn)換器和12位D/A 轉(zhuǎn)換器;
④ 圖形處理模塊(GPM)用于顯示圖形,支持OpenGL標(biāo)準(zhǔn)接口軟件;
⑤ MBI模塊主要提供1553B 外總線接口,PSM為電源支持模塊。
(2)本項(xiàng)目軟件主要工作在CPM模塊中,完成對(duì)外部設(shè)備的數(shù)據(jù)采集、分析和相應(yīng)的控制,將監(jiān)視結(jié)果以圖形方式顯示給駕駛員。該系統(tǒng)的軟件主要包括外部接口驅(qū)動(dòng)軟件、VME數(shù)據(jù)傳輸軟件、處理軟件、圖形顯示和外總線(1553B)數(shù)據(jù)交換軟件。要求數(shù)據(jù)的采集必須確保每幀數(shù)據(jù)無(wú)丟失,并在本幀內(nèi)完成數(shù)據(jù)的處理工作,本幀信息顯示給駕駛員的時(shí)刻最晚不能超過(guò)下幀。詳細(xì)的技術(shù)要求如下:
① 16 路 RS422 接口主要完成對(duì)汽車燃油系統(tǒng)、動(dòng)力系統(tǒng)和駕駛員命令的數(shù)據(jù)采集與控制。RS422數(shù)據(jù)傳輸格式將以32Byte為基本數(shù)據(jù)塊,分別以20ms、40ms、60ms、1s四個(gè)不同周期交換數(shù)據(jù);
② 64路離散量數(shù)據(jù)主要監(jiān)控發(fā)動(dòng)機(jī)工作狀態(tài),要求每10ms采集一次,并在下一個(gè)10ms周期內(nèi)將發(fā)動(dòng)機(jī)狀況顯示到駕駛員座艙;
③ 多路模擬量數(shù)據(jù)主要采集發(fā)動(dòng)機(jī)轉(zhuǎn)速、油量以及汽車的其他數(shù)據(jù),為駕駛員監(jiān)控;
汽車狀態(tài)提供必要的量化數(shù)據(jù)。模擬量數(shù)據(jù)的刷新頻率為1s;
④ 外總線(1553B)主要完成該系統(tǒng)與汽車其他電子系統(tǒng)的數(shù)據(jù)交換。
公司將本項(xiàng)目交給項(xiàng)目主管李工實(shí)施,要求李工按技術(shù)要求完成本項(xiàng)目的軟件設(shè)計(jì)工作,公司根據(jù)合同關(guān)于“數(shù)據(jù)的采集必須確保每幀數(shù)據(jù)無(wú)丟失,并在本幀內(nèi)完成數(shù)據(jù)的處理工作,
本幀信息顯示給駕駛員的時(shí)刻最晚不能超過(guò)下幀”的要求,提醒李工設(shè)計(jì)中重點(diǎn)考慮整個(gè)系統(tǒng)的實(shí)時(shí)性問(wèn)題。李工完成設(shè)計(jì)后,提交公司評(píng)審,會(huì)上就李工設(shè)計(jì)中存在的缺陷展開(kāi)了激烈討論,最終達(dá)成一致。
【問(wèn)題1】(12 分)
李工在設(shè)計(jì)IOC模塊軟件時(shí)指出:為了使CPM模塊能夠及時(shí)處理RS422數(shù)據(jù),在IOC 與 CPM 間的雙端口存儲(chǔ)器中為每個(gè) 422 通道設(shè)計(jì)一級(jí)緩沖,當(dāng)某通道接收一個(gè)字節(jié)時(shí),就將數(shù)據(jù)放入緩沖,由 CPM 接收(其結(jié)構(gòu)見(jiàn)圖 3-2)。這樣的好處在于每當(dāng)有數(shù)據(jù)輸入時(shí),CPM模塊可立即讀取,而增大雙口緩沖的目的是在CPM來(lái)不及處理時(shí)可防止數(shù)據(jù)的丟失。同時(shí),IOC 中的程序相對(duì)簡(jiǎn)單、實(shí)時(shí)性好、可以不考慮422通道的數(shù)據(jù)傳輸周期,只要按查詢方式對(duì)16路422輸入進(jìn)行查詢讀取即可。
會(huì)上,王工提出了強(qiáng)烈的反對(duì)意見(jiàn),認(rèn)為這種設(shè)計(jì)方法絕對(duì)不可取,這種方法只考慮了軟件的簡(jiǎn)單與便利,而沒(méi)有針對(duì)軟件特點(diǎn)考慮問(wèn)題,在設(shè)計(jì)中對(duì)實(shí)時(shí)性、負(fù)載平衡分配以及實(shí)現(xiàn)算法上均存在缺陷,必須改進(jìn)。
(1)你認(rèn)為李工的設(shè)計(jì)在實(shí)時(shí)性、負(fù)載平衡分配和實(shí)現(xiàn)算法上存在怎樣的缺陷?詳細(xì)說(shuō)明理由。
(2)請(qǐng)給出IOC 模塊和CPM模塊之間雙口存儲(chǔ)器數(shù)據(jù)交換方法。
【問(wèn)題2】(7 分)
如果 CPM 模塊中采用了嵌入式實(shí)時(shí)操作系統(tǒng),請(qǐng)根據(jù)本項(xiàng)目的需求,用 300 字以內(nèi)的文字說(shuō)明 CPM 模塊中數(shù)據(jù)采集任務(wù)應(yīng)如何劃分?系統(tǒng)對(duì)任務(wù)調(diào)度的最小調(diào)度周期如何計(jì)算?各個(gè)任務(wù)周期及優(yōu)先級(jí)如何定義?
【問(wèn)題3】(6 分)
請(qǐng)用150 字以內(nèi)的文字說(shuō)明針對(duì) IOC 模塊的多路 RS422 接口的數(shù)據(jù)采集,其驅(qū)動(dòng)程序使用中斷方式或查詢方式的主要差別是什么?主要優(yōu)缺點(diǎn)有哪些?