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