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