π₯ Flash Reprogramming μ΄λ?
μλ² λλλ κ°λ°μ λ³΄ν΅ ECU(μ μ μ μ΄ μ₯μΉ)λ₯Ό κ°λ°μκ° μ½λ©μ ν΅ν΄ κ°λ°ν μννΈμ¨μ΄(νμ¨μ΄)λ₯Ό μ¬μ©ν΄ μνλ κΈ°λ₯μ νλλ‘ νλ κ²μ μλ―Ένλ€.
μ΄ λ, ECUμ μννΈμ¨μ΄λ₯Ό μ
λ°μ΄νΈ νλ κ³Όμ μ Flash Reprogramming μ΄λΌκ³ λΆλ₯Έλ€.
κ°λ° λ¨κ³ μ΄ν μμ° λ¨κ²μμλ μ€μλμ μμ νκ±°λ μλ‘μ΄ κΈ°λ₯μ μΆκ°νλ λ±μ μννΈμ¨μ΄ μ
λ°μ΄νΈκ° νμν κ²½μ°
Flash Reprogrammingμ ν΅ν΄ μννΈμ¨μ΄λ₯Ό μ
λ°μ΄νΈ ν μ μλ€.
μλμ°¨μ OBD-II ν¬νΈμ μ μ‘°μ¬λ³λ‘ μ¬μ©νλ νμ¨μ΄ μ
κ·Έλ μ΄λ μ₯λΉλ₯Ό μ°κ²°ν΄ Flash Memoryμ μννΈμ¨μ΄λ₯Ό μ
λ°μ΄νΈ νλ λ°©μμ μ¬μ©νλ€.
π₯ μ£Όμ κ΅¬μ± μμ
Flash Reprogramming κ³Όμ μ Flash Memory 곡κ°μ μλ‘μ΄ μννΈμ¨μ΄λ₯Ό κΈ°λ‘νμ¬ ECUμ κΈ°λ₯μ μ
λ°μ΄νΈνλ νλ‘μΈμ€μ΄λ€. μ£Όμ κ΅¬μ± μμλ μλμ κ°λ€.
Flash Memory 곡κ°μ μ¬μ©νλ μ΄μ λ Flash Memoryλ μ μμ΄ κΊΌμ Έλ κ³μ μ μ§λκΈ° λλ¬Έμ μννΈμ¨μ΄κ° κ³μ μ μ§λ μ μμΌλ©°, CPUμ μ§μ μ κ·Όμ΄ κ°λ₯ν 곡κ°μΌλ‘ μ½κΈ° μ°κΈ° μλκ° λΉ λ₯΄κΈ° λλ¬Έμ κΈ°λ³Έμ μΌλ‘ νμ¨μ΄(μννΈμ¨μ΄)λ
λμ€ν¬, λ©λͺ¨λ¦¬ 곡κ°μ΄ μλ Flash Memory 곡κ°μ μ μ₯λλ€.
Application Software
C, C++ λ±μ μΈμ΄λ‘ μμ±λ ECUμ μ¬λ¬κ°μ§ κΈ°λ₯ μνμ μν μννΈμ¨μ΄
PreLoader
μμ€ν
λΆν
μ κ°μ₯ λ¨Όμ μ€νλλ μννΈμ¨μ΄ λͺ¨λμ΄λ©° μ£Όλ‘ μλ 2κ°μ§ λμμ μννλ€.
- Application λλ FBL λΆν
κ²°μ
μμ€ν μ΄ λΆν λ λ μ΄λ€ μννΈμ¨μ΄ λͺ¨λμ μ€νν μ§ κ²°μ νλ€.
(β» μλ₯Ό λ€μ΄ μ λ°μ΄νΈκ° νμ -> Flash Bootloader, λμμ΄ νμ -> Application Software) - μ κ· μ
λ°μ΄νΈλ μμλ Application μ²λ¦¬
λ§μ½ μλ‘μ΄ μννΈμ¨μ΄ μ λ°μ΄νΈκ° μ€λΉλμ΄ μκ±°λ, νμ¬ μ€ν μ€μΈ Applicationμ΄ μμλ κ²½μ°, PreLoaderλ λ³΄ν΅ λΆνΈλ‘λ(FBL)λ‘λΆν° μμ€ν μ λΆν νμ¬ μλ‘μ΄ μννΈμ¨μ΄λ₯Ό λ‘λνκ±°λ, μμλ μννΈμ¨μ΄λ₯Ό λ체νλ€.
Primary Bootloader
μ£Όλ‘ μ λ°μ΄νΈλ νλ‘κ·Έλ¨μ Flash λ©λͺ¨λ¦¬μ μ°λ λ±μ μ λ°μ΄νΈ νλ‘μΈμ€μ κΈ°ν μλ λμμ μννλ€.
- μ
λ°μ΄νΈ μ²λ¦¬ 루ν΄
μλ‘μ΄ μννΈμ¨μ΄λ₯Ό Flash λ©λͺ¨λ¦¬μ μ°λ λ±μ μ λ°μ΄νΈ νλ‘μΈμ€λ₯Ό μ²λ¦¬ - λ΄λΆ 보μ μΈμ¦ μ μ°¨
보μμ κ°ννκΈ° μν΄ Flash Bootloaderλ μ λ°μ΄νΈ νλ‘μΈμ€μμ λ΄λΆ 보μ μΈμ¦ μ μ°¨λ₯Ό κ±°μ³ μΈλΆλ‘λΆν°μ λΆλ²μ μΈ μ λ°μ΄νΈλ₯Ό λ°©μ§νκ³ , μ€μλμ λ°©μ§νλ€. - λ°μ΄λ리μ μ ν©μ± λ° λμΌμ± κ²μ¬ (β
μ€μ)
μννΈμ¨μ΄κ° Flash λ©λͺ¨λ¦¬μ μ°μ¬μ§ ν, Flash Bootloaderλ μ°κΈ°κ° μλ£λμλμ§ νμΈνκΈ° μν΄ λ°μ΄λ리μ μ ν©μ± λ° λμΌμ±μ κ²μ¬νλ€. (β» μννΈμ¨μ΄κ° μ¬λ°λ₯΄κ² μ λ°μ΄νΈλμλμ§ νμΈ) - μ ν리μΌμ΄μ
μΌλ‘ μ μ΄ μ μ΄
λͺ¨λ μ λ°μ΄νΈμ κ²μ¬κ° μλ£λλ©΄, Flash Bootloaderλ μλ‘μ΄ μννΈμ¨μ΄λ‘ μ μ΄λ₯Ό λκ²¨μ£Όμ΄ μ ν리μΌμ΄μ μ΄ μ μμ μΌλ‘ μ€νλλλ‘ νλ€.
Secondary Bootloader
μΌλ°μ μΌλ‘ μ₯μ κ° λ°μν κ²½μ° μμ€ν
μ 볡ꡬνκ±°λ μμλ λΆλΆμ μμ νλ λ° μ¬μ©λλ©°
μ£Όλ‘ κΈ°λ³Έ λΆνΈλ‘λμ μ¬κ°ν μ€λ₯λ μμ μμλ§ νμ±νλλ©°, μ΄ κ²½μ°μλ§ μλνλ€.
Windowλ‘ μΉλ©΄ μΌμ’
μ λ°μ΄μ€μ€μ΄λ€.
π₯ Reprogramming Process
μμ νκ² μ λ°μ΄νΈ λκΈ° μν΄ μλ 3κ°μ§ λ¨κ³λ₯Ό κ±°μ³ μννΈμ¨μ΄λ₯Ό μ λ°μ΄νΈνλ€.
Pre Programming
리νλ‘κ·Έλλ° μΈμ
μ μ€μ νκ³ ECUμ μνλ₯Ό μ€λΉνλ©°, μ΄ λ¨κ³μμλ 보μ μ κΈμ ν΄μ νκ³ , μννΈμ¨μ΄ μ 보λ₯Ό μ½μ΄μ¨λ€. μΆκ°λ‘ ECUμ μ§λ¨ κΈ°λ₯μ λΉνμ±ννμ¬ μμ μ±μ ν보νλ κ³Όμ μ΄λ€.
(β» μΈμ
: λ κ° μ΄μμ μ₯μΉ κ°μ μΌμ΄λλ νΉμ κΈ°κ° λμμ ν΅μ νλ)
- Extended Diagnostic μΈμ
μ§μ
μμ² λ° TP λ©μμ§ μ μ‘
Flash Reprogrammingμ μμνκΈ° μ , λͺ¨λ ECUμκ² Extended Diagnostic μΈμ μ μ§μ νλλ‘ μμ²νκ³ ,
ν΄λΉ μΈμ μ μ μ§νμ¬ νλ‘κ·Έλλ° μΈμ μ΄ μμλκΈ° μ μ ν΅μ μ΄ μννκ² μ΄λ£¨μ΄μ§κ² νλ€.
(β» Extended Diagnostic μΈμ : ECUμ μ§λ¨ λκ΅¬κ° μ¬λ¬κ°μ§ μ 보 νλμ μν ν΅μ νλ) - μΈμ
λ³κ²½ μμ²
λ€νΈμν¬μ μ°κ²°λ λͺ¨λ ECUμ λν΄ Extended Diagnostic μΈμ μ μ§μ νλλ‘ μμ²νλ€. μ΄λ
TP λ©μμ§λ₯Ό μ¬μ©νμ¬ μΈμ μ μ μ§νμ¬, ν΅μ μ΄ μ€λ¨λκ±°λ μΈμ μ΄ λ§λ£λλ κ²μ λ°©μ§νλ€.
(β» TP λ©μμ§ : μΈμ μμ, μΈμ μ’ λ£ λ±μ μ§λ¨ λꡬμ ECUκ°μ μ£Όκ³ λ°λ κ°μ’ λ©μμ§) - OBD 보μ μ κΈ ν΄μ μμ²
νλ‘κ·Έλλ°μ μν OBD 보μ μ κΈμ ν΄μ μμ²μ 보λ΄μ΄ νλ‘κ·Έλλ° μμ μ κ°λ₯νκ² νλ€.
(β» OBD (Ontario Board Diagnostics) : μ°¨μ λ΄λΆμ λ΄μ₯λ μ§λ¨ μμ€ν μΌλ‘ μ¬λ¬ λ¬Έμ λ₯Ό λͺ¨λν°λ§) - νλ‘κ·Έλλ° μλ³ μ 보 μ½κΈ°
κ° ECUμ λν΄ νλ‘κ·Έλλ°μ νμν Part numberμ version ID λ±μ μλ³ μ 보λ₯Ό μ½μ΄μ νλ‘κ·Έλλ° νλ‘μΈμ€μ
μΌλΆλ‘ νμ©νλ€.
(β» Part number : μ νμ μΌλ ¨ λ²νΈλ λΆν λ²νΈ, Version ID : ECUμμ μ¬μ©μ€μΈ μννΈμ¨μ΄ λ²μ ) - ECUμ DTC μ€μ λΉνμ±ν μμ²
νλ‘κ·Έλλ° μ€μ λ°μν μ μλ μ€λ₯λ₯Ό λ°©μ§νκΈ° μν΄ λ€νΈμν¬μ μ°κ²°λ λͺ¨λ ECUμ DTC μ€μ μ λΉνμ±ννλ€.
(β» DTC (Diagnostic Trouble Code) : μλμ°¨μ μ§λ¨ μμ€ν μμ λ°μν λ¬Έμ λ₯Ό μλ³νλλ° μ¬μ©λλ μ½λ) - ECUμ non-diagnostic λ©μμ§ μ‘μμ λΉνμ±ν μμ²
νλ‘κ·Έλλ° μΈμ λμ ECUκ° λΉ μ§λ¨ λ©μμ§λ₯Ό μ‘μμ νμ§ μλλ‘ λΉνμ±ννλ€.
Server Programming
μλ²μμ μννΈμ¨μ΄ μ
λ°μ΄νΈλ₯Ό μμνκ³ , μ΄ κ³Όμ μμ 보μ μ κ·Όμ μ€μ νκ³ λ°μ΄ν°λ₯Ό μ
λ‘λνλ€.
μ΅μ’
μ
λ°μ΄νΈ ν ECUλ₯Ό μ¬μ€μ νμ¬ μλ‘μ΄ μννΈμ¨μ΄κ° μ μ©λ μ μλλ‘ νλ€.
- μΈμ
λ³κ²½ μμ²
νλ‘κ·Έλλ° μΈμ μ μ§μ νκΈ° μν΄ κ° λμ ECUμ μΈμ μ§μ μ μμ²
(β» νλ‘κ·Έλλ° μΈμ : ECUμ μννΈμ¨μ΄λ₯Ό μ°κ±°λ μ λ°μ΄νΈνλ ν΅μ νλ) - Security Access μμ² λ° κΆν μλ Ή
κ° λμ ECUμ λν΄ λ³΄μ μ‘μΈμ€λ₯Ό μμ²νκ³ κΆνμ μλ Ή - Tester μλ¦¬μΌ λλ² μ°κΈ° μμ²
μΆμ λ° κΈ°λ‘, 보μ μΈμ¦μ μν΄ νλ‘κ·Έλλ° κ³Όμ μμ Testerμ μλ¦¬μΌ λλ²λ₯Ό λμ ECUμ μ°κΈ° μν΄ μμ² - Programming Date μ°κΈ° μμ²
λμ ECUμ νλ‘κ·Έλλ° λ μ§λ₯Ό μ°κΈ° μν΄ μμ² - μ
λ°μ΄νΈν μμ μμ μμ²
λμ ECUμ λν΄ μ λ°μ΄νΈν μμμ μμ νκ³ μ΄κΈ°ννκΈ° μν΄ μμ² - μ
λ°μ΄νΈν data segment λ¨μλ‘ μ μ‘ μμ²
λμ ECUμ λν΄ μ λ°μ΄νΈν λ°μ΄ν°λ₯Ό segment λ¨μλ‘ μ μ‘νκΈ° μν΄ μμ² - λ€μ΄λ‘λλ data μ νμ± μ²΄ν¬
μ μ‘λ λ°μ΄ν°μ μ νμ±μ νμΈνκ³ κ²μ¦νκΈ° μν΄ λ€μ΄λ‘λλ λ°μ΄ν°λ₯Ό μ²΄ν¬ - ECU Reset:
νλ‘κ·Έλλ°μ΄ μλ£λλ©΄ λμ ECUλ₯Ό μ¬μ€μ νμ¬ μλ‘μ΄ μννΈμ¨μ΄κ° μ μ©λλλ‘ νλ€.
Post Programming
μ
λ°μ΄νΈ ν ECUμ μνλ₯Ό 볡ꡬνκ³ λ¦¬νλ‘κ·Έλλ° μΈμ
μ μ’
λ£νλ€.
μ΄ λ¨κ³μμλ 보μ μ€μ μ λ€μ νμ±ννκ³ , ECUλ₯Ό κΈ°λ³Έ μΈμ
μΌλ‘ 볡μνμ¬ μ μμ μΈ μλμ 보μ₯νλ€.
- μΈμ
λ³κ²½ μμ²
νλ‘κ·Έλλ°μ΄ μλ£λ ν, λμ ECUμ λν΄ Extended Diagnostic Sessionμ λ€μ μ§μ νκΈ° μν μμ²μ 보λΈλ€. - λ€νΈμν¬μ μ°κ²°λ λͺ¨λ ECU non-diagnostic λ©μμ§ μ‘μμ νμ±ν μμ²
νλ‘κ·Έλλ°μ΄ μλ£λκ³ μ μμ μΈ ν΅μ μ΄ μ¬κ°λ ν, λ€νΈμν¬μ μ°κ²°λ λͺ¨λ ECUμ λΉ μ§λ¨ λ©μμ§ μ‘μμ μ λ€μ
νμ±ννλ€. - λ€νΈμν¬μ μ°κ²°λ λͺ¨λ DTC setting On μμ²
νλ‘κ·Έλλ°μ΄ μλ£λ ν, λ€νΈμν¬μ μ°κ²°λ λͺ¨λ ECUμ DTC μ€μ μ λ€μ νμ±ννλ€. - μΈμ
λ³κ²½ μμ²
νλ‘κ·Έλλ°μ΄ μλ£λ ν, λ€νΈμν¬μ μ°κ²°λ λͺ¨λ ECUμ λν΄ Default Sessionμ μ§μ νκΈ° μν μμ²μ 보λΈλ€.
μ°Έμ‘°
https://blog.naver.com/mdstec_auto/222175529338
https://buildstorm.com/blog/automotive-bootloader-fbl/
https://m.blog.naver.com/suresofttech/221282372396
'embedded' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
CAN λ€νΈμν¬ λ§€λμ§λ¨ΌνΈ(NM) μ 리 (0) | 2024.03.21 |
---|---|
SOC(FPGA/ASIC) μ 리 (0) | 2024.03.12 |
AutoSAR μ 리 (0) | 2024.01.16 |
Simulink μ 리 (0) | 2024.01.11 |
MATLAB μ 리 (0) | 2024.01.08 |