###### tags: `ECU` `AD` # ECU_AD量測手法 關於AD轉換的測試手法 Freescale 的這顆MCU, AD轉換的解析為12bit, 最大解析值為4095 所以分為3個步驟來測試: ### 第1步: VB程式先讀取D/A設定值, 然後經由測試器輸出電壓, ECU擷取電壓轉換為A/D值, 比對兩者是否一致 | VB_PRG | 測試器 —> | ECU | | -------- | -------- | -------- | | D/A值 | 電壓 | A/D值 | ```sequence Note left of VB: VB開始驗證 -> Note over VB: 取值D/A設定值 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note over ECU: A/D取得 Note right of ECU: ECU取得電壓值 Note right of ECU: ECU取樣機能驗證 ECU-->VB: ECU傳回A/D轉換值 Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` ```sequence Note left of VB: VB開始驗證 -> Note over VB: 取值D/A設定值 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note over ECU: A/D取得 Note right of ECU: ECU取得電壓值 Note right of ECU: ECU取樣機能驗證 ECU-->VB: ECU傳回A/D轉換值 Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` 確認ECU的 A/D 取樣的機能是正確的。 ### 第2步: VB程式先讀取D/A設定值, 然後經由測試器輸出電壓, ECU擷取電壓轉換為A/D值, 再轉換為溫度,比對兩者是否一致 | VB_PRG | 測試器 —> | ECU | | -------- | -------- | -------- | | 溫度值 ->B_Const計算 | 電壓 | A/D值 —>溫度  | ```sequence Note left of VB: VB開始驗證 -> Note over VB: 讀取 [ 溫度 ] 設定值 Note over VB: B定數求阻抗&分壓 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note right of ECU: ECU取得電壓值 Note right of ECU: ECU電壓值查表轉溫度 ECU-->VB: ECU傳回 [溫度] Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` **確認ECU的 A/D 查表轉換[溫度]的機能是正確的。** ### 第3步: VB程式先讀取[D/A設定值], 然後經由測試器輸出電壓, ECU擷取電壓轉換為A/D值, 再轉換為[壓力],比對兩者是否一致 | VB_PRG | 測試器 —> | ECU | | -------- | -------- | -------- | | 壓力值 ->斜率轉換 | 電壓 | A/D值 —>壓力  | ```sequence Note left of VB: VB開始驗證 -> Note over VB: 讀取 [ 壓力 ] 設定值 Note over VB: 壓力to電壓斜率轉換 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note right of ECU: ECU取得電壓值 Note right of ECU: 電壓to壓力斜率轉換 ECU-->VB: ECU傳回 [壓力] Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` **確認ECU的 A/D 轉換 [壓力值]的機能是正確的。** --- # AD変換に関するテスト手法 FreescaleのこのMCUでは,AD変換の解析は12bit,最大解析値は4095である 3つのステップに分けてテストします ## ステップ1: VBプログラムはD / A設定値を読み込み、テスタを介して電圧を出力し、ECUは電圧を取り、両者が一致するかどうかを比較する | VB_PRG | 測試器 —> | ECU | | -------- | -------- | -------- | | D/A值 | 電壓 | A/D值 | ```sequence Note left of VB: VB開始驗證 -> Note over VB: 取值D/A設定值 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note right of ECU: ECU取得電壓值 Note right of ECU: ECU取樣機能驗證 ECU-->VB: ECU傳回A/D轉換值 Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` ECUのA / Dサンプリングの機能が正しいことを確認する。 ## ステップ2: VBプログラムはD / A設定値を読み込み、テスタを介して電圧を出力し、ECUは電圧を取り込みA / D値に変換し、さらに温度に変換して両者が一致するかどうかを調べる | VB_PRG | 測試器 —> | ECU | | -------- | -------- | -------- | | 溫度值 ->B_Const計算 | 電壓 | A/D值 —>溫度  | ```sequence Note left of VB: VB開始驗證 -> Note over VB: 讀取 [ 溫度 ] 設定值 Note over VB: B定數求阻抗&分壓 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note right of ECU: ECU取得電壓值 Note right of ECU: ECU電壓值查表轉溫度 ECU-->VB: ECU傳回 [溫度] Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` ECUのA / Dルックアップテーブル[温度]の機能が正しいことを確認する ## ステップ3: VBプログラムは最初に[D / A設定値]を読み込み、それからテスタを介して電圧を出力し、ECUは電圧を取り、A / D値に変換し、更に[圧力]に変換し、両者が一致するかどうかを比較する | VB_PRG | 測試器 —> | ECU | | -------- | -------- | -------- | | 壓力值 ->斜率轉換 | 電壓 | A/D值 —>壓力  | ```sequence Note left of VB: VB開始驗證 -> Note over VB: 讀取 [ 壓力 ] 設定值 Note over VB: 壓力to電壓斜率轉換 VB->Tester: 設定電壓 Note over Tester: 經由MCP4728 Tester->ECU: 送出電壓 Note over VB,ECU: Delay Note over ECU: 取值, 累加, 平圴 Note right of ECU: ECU取得電壓值 Note right of ECU: 電壓to壓力斜率轉換 ECU-->VB: ECU傳回 [壓力] Note over VB: 比對是否正確 Note left of VB: VB完成驗證 <- ``` ECUのA / D変換[圧力値]の機能が正しいことを確認する