第三章 精進式容錯系統設計
3.3 控制單元設計
本節將對於控制單元內各部份的硬體架構的設計做詳細的介紹。然而,在實現下列 各相關硬體架構時,必須確認於同一級計算之兩個運算元,是否在同一時脈到達該計算 單元。若因兩運算元計算路徑不同,而造成無法同時到達時,該運算會出現非預期之計 算結果,這是在撰寫硬體描述語言上需特別注意的地方。
3.3.1 控制單元架構
依照 3-1 節中所整理出之定翼飛行器之穩定姿態保持比例加積分控制律數學式,吾 人所設計之控制單元之運算架構如下圖3-5。
圖 3-5:控制單元運算架構
由架構中可清楚的了解,欲實現此控制運算架構,吾人須先完成四則運算單元、積 分器以及高通濾波器等元件。其中在四則運算單元的設計上,考量到整個控制器架構的 運算精度以及輸入輸出數據的適用範圍之問題,本論文採用符合IEEE754 標準的浮點運 算器。
此外,由於在硬體架構中,當系統初始時,各運算級的資料初始值均為不定值x,以 不定值運算之結果,自然會造成不定值之輸出,這並非吾人所期之結果。因此,在設計 時必須確認由資料輸入至第一筆正確資料輸出之關係。在本控制單元中,吾人設計了一 個First_out 旗標。在控制單元初始化時,該旗標之輸出值為“0”,而當第一筆正確資料輸 出時,該旗標之輸出值方同步更改為“1”。吾人可藉由本旗標來避免下一級的運算判斷單 元因非預期之不定值輸出,造成判斷或計算上的錯誤。
以下,將逐一對各元件的設計方式做詳細的介紹。
13
3.3.2 浮點數處理單元
浮點數處理單元之主要功能為提供控制單元所傳遞的微程式碼運算元與運算子,進 行浮點數之四則運算(+, -, ×, ÷)以及定點整數-浮點數之間的轉換。本論文採用三階式的單 精度浮點處理單元架構[10][11][12],基本架構如圖 3-6 所示。
OPA OPB
Snan Qnan Inf
Pre_Normalize for Add/Sub Pre_Normalize for Mul/Div
Add/Sub Mul Div
Post_Normalize and Round Exceptions Unit
Result Ine
FPU OP
Register Register
圖 3-6:浮點數處理單元之基本架構
由圖可知,整體單元架構共由七個單元組成。茲將各單元之功能簡述如下:
(1) 前級加、減法正規化處理單元(Pre_Normalize for Add/Sub):調整浮點運算加、減 法的運算元的指數與假數部分。
(2) 前級乘、除法正規化處理單元(Pre_Normalize for Mul/Div):調整浮點運算乘、除 法的運算元的指數與假數部分。
(3) 加、減法器(Add/Sub):執行假數部分加、減運算。
(4) 乘法器(Mul):執行假數部分相乘運算。
14
(5) 除法器(Div):執行假數部分相除運算。
(6) 後級正規化處理單元(Post_Normalize and Round):檢查運算結果,若出現未正規 化情形,則執行結果正規化;同時依據進位(Round)模式調整運算結果。最後將 運算結果轉換成有效的單精度浮點運算模式。
(7) 例外處理單元(Exceptions Unit):前級處理不合法運算格式的例外情形。
3.3.3 積分器
由於以硬體直接實現控制器之即時輸出可達micro-sec 級,近似誤差相對較小,且在 硬體實現上,高階的近似運算除了會造成輸出延遲外,也需要使用更多的緩衝記憶區,
造成邏輯閘的消耗。考量以上原因,吾人所實現之數位積分器,決定採用尤拉一階近似 公式所轉換之近似積分器。
假設一方程式由時間n-1 積分至 n+1 之結果如下圖 3-7 中灰影部分所示。然而在某些 情況下,要精確的計算出該區域的面積,並不是件容易的事。此時,若在單位時間(ΔT)
中,Δu(n)的變化量在可容許之變動範圍內,則吾人可將 3-7 的陰影部分的積分面積,改 以圖3-8 中的灰階面積來近似,此種方式即為所謂的「尤拉法」。(Euler’s Method)[13]
圖 3-7:方程式積分結果
15
圖 3-8:方程式積分之尤拉法近似結果
換言之,吾人可將積分式
∫
u )(t dt近似為∑
u(n)xΔt。而若以數位系統而言,則可表 示為 。其中O(T)為系統目前之輸出,I(T)為系統目前之輸入值,而O(T-1)則為系統前一單位時間之輸出值。
1) -O(T T I(T)x O(T)= Δ +
而本系統以尤拉法實現之積分器架構如圖 3-9。
Input
FPU (Mul)
∆T
FPU
(Add) Output
BUFFER (TIME DELAY)
CLK RST
圖 3-9:積分器架構
16
3.3.4 高通濾波器
圖 3-10:高通濾波器架構
18