λλΆλΆμ λΌλμ€λ μλ ACK κΈ°λ₯μΌλ‘ ꡬμ±λμ΄ μμ΅λλ€. μ¦, 무μ μ₯μΉλ μ ν¨ν IEEE802.15.4 ν¨ν·μ μμ ν λ ACK ν¨ν·μ μμ±ν©λλ€(ν¨ν·μ΄ 무μ μ₯μΉμμ κ°μ Έμ€κΈ° μ μ΄λΌλ). λλΆλΆμ κ²½μ° μ΄ κ΄νμ ν΄λ‘μΈ μ μμ΅λλ€.
λλλ‘ λΌλμ€λ ν¨ν·μ μμ νμ§λ§ MAC κ³μΈ΅μμ μ²λ¦¬λκΈ° μ μ μμ€λ©λλ€. μ
λ κ²½μ° λͺ¨λ λΌλμ€λ λ°μ μμκ² ACK ν¨ν·μ 보λ΄μ§λ§(μΌλͺ
"λͺ¨λ μνΈν¨, λ΄ MAC κ³μΈ΅μ΄ ν¨ν·μ μμ ν¨") μμ μλ ν¨ν·μ λ°μ§ λͺ»νμ΅λλ€.
λ³΄λΈ μ¬λμ MAC κ³μΈ΅μμ ν¨ν·μ΄ μμ λ° μ²λ¦¬λμλ€κ³ λ―ΏκΈ° λλ¬Έμ μ΄μν λμμ΄ λ°μν μ μμ΅λλ€.
νλμ¨μ΄ νλ μ μ¬μ μ‘μ μ μμ΄λ©° λ¬Έμ μμ΄ μ¬μ©ν μ μμ΅λλ€.
λ°λΌμ Auto ACKλ₯Ό μ ν μ¬νμΌλ‘ λ¨κ²¨λκ³ μννΈμ¨μ΄μμ ACK μλ΅μ ꡬνν κ²μ μ μν©λλ€. λ μμ μ μΈ L2λ₯Ό κ°λ κ² μΈμλ μλ ACK μΊ‘μ μ 곡νμ§ μλ λΌλμ€μ ACK κΈ°λ₯μ μλμΌλ‘ μΆκ°ν©λλ€.
λλΆλΆμ κ²½μ° μ΄ κ΄νμ ν΄λ‘μΈ μ μμ΅λλ€.
νμ€μ μΌλ‘ λ§ν΄μ, μ΄κ²μ΄ μΌλ§λ μμ£Ό μ€μ νΌν΄λ₯Ό μΌκΈ°ν©λκΉ? MCUμμ μ€μ λ‘ μμ νλ λμ λͺ νΌμΌνΈμ λ©μμ§κ° νμΈλ©λκΉ?
μμ μ λΌλμ€κ° TX λͺ¨λλ‘ μ νλ¨(#11256)
μ΄ κ²½μ°λ 곡μ μμ /μ μ‘ λ²νΌ κΆνμ΄ μλ λΌλμ€μλ§ ν΄λΉλ©λλ€. λ°λΌμ at86rf2xx ν΄λμ€μ μ₯μΉμλ§ μν₯μ λ―ΈμΉ©λλ€.
μ΄κ²μ μ΄μν νλμ μΌμΌν¬ μ μμ΅λλ€ ...
μ΄κ²μ΄ λ¬Έμ λ₯Ό μΌμΌν€λ λͺ κ°μ§ μκ° μμ΅λκΉ?
λ°λΌμ Auto ACKλ₯Ό μ ν μ¬νμΌλ‘ λ¨κ²¨λκ³ μννΈμ¨μ΄μμ ACK μλ΅μ ꡬνν κ²μ μ μν©λλ€.
μ΄μ λν μν₯μ λν μμΉκ° μμ΅λκΉ? νλμ ν¬κΈ°/RAM μ¬μ©λλΏλ§ μλλΌ MCUκ° λ μ€λ κΉ¨μ΄λμΌ νλ―λ‘ μ λ ₯ μ¬μ©λλ μμ΅λλ€. λν νλ μ μμ κ³Ό ACK νμμμ μ¬μ΄μ μκ°μ΄ μΌλ§λ κ±Έλ¦¬κ³ λΌλμ€κ° SPIλ₯Ό ν΅ν΄ μ°κ²°λ κ²½μ° μννΈμ¨μ΄μμ ACKλ₯Ό μ²λ¦¬νλ κ²μ΄ νμ€μ μ λκΉ?
λ μμ μ μΈ L2λ₯Ό κ°λ κ² μΈμλ
μ λ μ΄ μ£Όμ₯μ λν΄ μ½κ° νμμ μ λλ€(λ΄ μ견μμ μμ§ λͺ ννμ§ μμ κ²½μ°). L2 ackλ₯Ό μ²λ¦¬νλ κ²μ λΆλλ¬μ΄ μ€μκ° μ¬λ‘μ΄λ©°(κΈ°νμ λμΉλ©΄ μλΉμ€κ° μ νλ¨) μννΈμ¨μ΄μμ μ²λ¦¬νλ κ²μ RIOTμ μ€μκ° νλ.
μΌλΆ νΉμ MAC κ³μΈ΅μ λν μ격ν μꡬ μ¬νμΈ κ²½μ° μννΈμ¨μ΄ L2 ackμ μ κ²½ μ°μ§ μμ§λ§ μ¬κΈ° μ€λͺ μμλ μΈκΈλμ§ μμμ΅λλ€.
μλ νμΈμ @bergzand
νμ€μ μΌλ‘ λ§ν΄μ μ΄κ²μ΄ μΌλ§λ μμ£Ό μ€μ νΌν΄λ₯Ό μΌκΈ°ν©λκΉ? MCUμμ μ€μ λ‘ μμ νλ λμ λͺ νΌμΌνΈμ λ©μμ§κ° νμΈλ©λκΉ?
μμ κ³μΈ΅μ κ²½μ° ν° λ¬Έμ κ° μλλλ€(μΌλ°μ μΌλ‘ μ΅μ μ λ
Έλ ₯μ΄λΌκ³ μκ°νλ©΄).
κ·Έλ¬λ μΌλΆ MAC λ° νμ MAC κ³μΈ΅(OpenThread, TSCH)μμλ ACKλ₯Ό μ¬μ©νμ¬ μ΄μ μ 보λ₯Ό μ
λ°μ΄νΈν©λλ€.
μ΄ κ²½μ°λ 곡μ μμ /μ μ‘ λ²νΌ κΆνμ΄ μλ λΌλμ€μλ§ ν΄λΉλ©λλ€. λ°λΌμ at86rf2xx ν΄λμ€μ μ₯μΉμλ§ μν₯μ λ―ΈμΉ©λλ€.
μ§μ€. λλ μ΄κ²μ΄ μΌμ΄λ μ μλ μλ리μ€λ₯Ό μ§μ νκ³ μμ λΏμ λλ€.
μ΄κ²μ΄ λ¬Έμ λ₯Ό μΌμΌν€λ λͺ κ°μ§ μκ° μμ΅λκΉ?
MAC κ³μΈ΅μ μ¬μ©μμκ² μλͺ»λ μ 보λ₯Ό μ 곡νλ©΄(μ: λ©μ λ§ν¬ μ€μ ) λ§ν¬ νμ§μ μν₯μ λ―ΈμΉ μ μμ΅λλ€. RIOTμλ μμ§ κ·Έλ° κ²μ΄ μμ§λ§(μ΄λ₯Ό μ¬μ©νλ μ€νμ μ΄λ―Έ κΈ°λ₯μ ꡬννκ³ μμμ) μκ³ μμ΅λλ€.
μ΄μ λν μν₯μ λν μμΉκ° μμ΅λκΉ? νλμ ν¬κΈ°/RAM μ¬μ©λλΏ μλλΌ MCUκ° λ μ€λ κΉ¨μ΄λμΌ νλ―λ‘ μ λ ₯ μ¬μ©λλ μμ΅λλ€. λν νλ μ μμ κ³Ό ACK νμμμ μ¬μ΄μ μκ°μ΄ μΌλ§λ 걸리며 SPIλ₯Ό ν΅ν΄ λΌλμ€κ° μ°κ²°λ κ²½μ° μννΈμ¨μ΄μμ ACKλ₯Ό μ²λ¦¬νλ κ²μ΄ νμ€μ μ λκΉ?
λΆννλ. ꡬνλμ§ μμκΈ° λλ¬Έμ λΉκ΅ν μ«μκ° μμ΅λλ€. μλ ACKκ° μλ μΌλΆ ν μ€νΈ λΆκΈ°λ§ μμ§λ§ λ μμΈν ν μ€νΈνμ§λ μμμ΅λλ€.
μ λ μ΄ μ£Όμ₯μ λν΄ μ½κ° νμμ μ λλ€(λ΄ μ견μμ μμ§ λͺ ννμ§ μμ κ²½μ°). L2 ackμ μ²λ¦¬νλ κ²μ λΆλλ¬μ΄ μ€μκ° μ¬λ‘μ΄λ©°(κΈ°νμ λμΉλ©΄ μλΉμ€κ° μ νλ¨) μννΈμ¨μ΄μμ μ²λ¦¬νλ κ²μ RIOTμ μ€μκ° νλ.
μννΈμ¨μ΄ ACKκ° λ λμ νλ½μ 보μ΄λ κ²½ν₯μ΄ μλ€λ Tiny OSμ μ λ³΄κ° μμ΅λλ€(https://vs-git.informatik.uni-kl.de/engel/tinyos/blob/020c6a6d8cc542bf58ca6afb8b1bf24efbe381de/doc/txt/tep126.txt). κ±°μ§ κΈμ μ΄ μμ΅λλ€.
AFAIK IEEE802.15.4λ νλ μ μ½ μ‘°κ±΄μ λν΄ μ΄μΌκΈ°νμ§ μμ΅λλ€(μκ° μ΄κ³Ό κ°μ λν΄μλ§). ACK ν¨ν·μ΄ μ μκ°μ μ λ¬λμ§ μμΌλ©΄ μμ€λ κ²μΌλ‘ κ°μ£Όλ©λλ€. κ·Έλ¬λ μ΄μ μ λ§νλ―μ΄ OSκ° μννΈμ¨μ΄ ACKλ‘ μΌλ§λ μ μλνλμ§μ λν μ λ³΄κ° μμ΅λλ€. λͺ κ°μ§ λ²€μΉ λ§ν¬κ° μμΌλ©΄ ν₯λ―Έλ‘μΈ κ²μ
λλ€.
μΌλΆ νΉμ MAC κ³μΈ΅μ λν μ격ν μꡬ μ¬νμΈ κ²½μ° μννΈμ¨μ΄ L2 ackμ μ κ²½ μ°μ§ μμ§λ§ μ¬κΈ° μ€λͺ μμλ μΈκΈλμ§ μμμ΅λλ€.
μλ ACKλ₯Ό μ§μνμ§ μλ λΌλμ€μ νλμ¨μ΄ κ°μκΈ°μμ μ¬μ©ν μ μλ κΈ°λ₯μ λν΄ μννΈμ¨μ΄ ACKλ₯Ό ꡬνν΄μΌ ν©λλ€(μμ§ν Enhanced ACKλ₯Ό μ§μνλ λΌλμ€λ μμ§ λͺ»ν©λλ€).
λ¬Έμ λ μ΄κ²μ΄ κΈ°λ³Έ ꡬμ±μ λν΄ μ ν μ¬νμ
λκΉ μλλ©΄ νμ νλͺ©μ
λκΉ? μμ μ€λͺ
νλ―μ΄ μμ΄λμ΄λ Auto ACK μ§μμ μ κ±°νλ κ²μ΄ μλλΌ L2λ₯Ό λ μ μ§μνλ κ²μ
λλ€. μνλ κ²½μ° μλ ACKλ₯Ό νμ±νν μ μμ΅λλ€(μ΄κ²μ΄ λ΄κ° https://github.com/RIOT-OS/RIOT/pull/11473μ λΌλμ€ μΊ‘μ μΆκ°ν κ²μ μ μν μ΄μ μ
λλ€).
μ΄μ©λ©΄ λ΄κ° μ€μνμ§λ§ ν΄κ²°μ± μ κ°λ¨ν΄ 보μ λλ€.
μ¬μ΄λ λ Έλ: @jia200x κ° κ°μ‘°ν λ¬Έμ μ μ§λ©΄ν μ μ΄ μλ€λ μ¬μ€μ RIOTμ λΌλμ€ μλ¨μ MAC κ³μΈ΅μ΄ λλ½λ κ²κ³Ό κ΄λ ¨μ΄ μμ μ μμ΅λλ€. λν, μ μ λ ₯ μμ€ λΌλμ€λ₯Ό μ¬μ©νλ©΄ μ΄μ¨λ νΉμ μμ€μ 견λ μ μμ΅λλ€.
6TiSCHμ λν μννΈμ¨μ΄ ACKλ μΌλ§λ μ€μν©λκΉ? IIRC, OpenWSNμ μννΈμ¨μ΄ ACKλ₯Ό λΆλΆμ μΌλ‘ μ¬μ©νμ¬ μ΄μ κ°μ λ§ν¬ νμ§μ μΆμ ν©λλ€.
6TiSCHμ λν μννΈμ¨μ΄ ACKλ μΌλ§λ μ€μν©λκΉ? IIRC, OpenWSNμ μννΈμ¨μ΄ ACKλ₯Ό λΆλΆμ μΌλ‘ μ¬μ©νμ¬ μ΄μ κ°μ λ§ν¬ νμ§μ μΆμ ν©λλ€.
6TiSCHλ νλμ¨μ΄ ACKμ λν΄ λ§νμ§ μμ§λ§ νμ΄λ° μ 보λ₯Ό μ λ¬νλ €λ©΄ ν₯μλ ACKκ° νμν©λλ€. OpenWSNμμ μ΄κ²μ pkg μ체μμ μ²λ¦¬λ©λλ€.
*κ·Έλ¦¬κ³ λ΄κ° μλ νλμ¨μ΄μμλ Enhanced ACKλ₯Ό μ§μνμ§ μμ΅λλ€.
λν νλμ¨μ΄ μΉμΈ κΈ°λ₯μ λ¬Έμ λ κ²½μ°μ λ°λΌ μμ λ ACK λλ μ¬μλ νμμ κ°μ κ΄λ ¨ μ 보λ₯Ό λ°λμ λ ΈμΆνμ§ μκ³ λ λ©μ»€λμ¦μ λͺ¨λ μ± μμ μ§λ€λ κ²μ λλ€. 6TiSCHλ₯Ό μ¬μ©νλ©΄ μ΄λ¬ν μ’ λ₯μ μ λ³΄κ° νμν λ€λ₯Έ μ μ νλ μμ μ¬μ μ‘ν μ μμ΅λλ€. λ°λΌμ OpenWSNμ μ νλ 무μ μ₯μΉ κΈ°λ₯ μΈνΈλ₯Ό κΈ°λ°μΌλ‘ νκ³ μννΈμ¨μ΄μμ λ€λ₯Έ λͺ¨λ MAC κ΅¬μ± μμλ₯Ό ꡬνν©λλ€.
μ΄ λ¬Έμ λ μ΅κ·Ό νλμ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ€λλ κ²μΌλ‘ νμλμμ΅λλ€. λ μ΄μ νλμ΄ μμΌλ©΄ νμλ©λλ€. μ΄ λ¬Έμ λ₯Ό 무μνλλ‘ νλ €λ©΄ "μν: λΆμ€νμ§ μμ" λ μ΄λΈλ‘ νμνμμμ€. κ·νμ κΈ°μ¬μ κ°μ¬λ립λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄μ©λ©΄ λ΄κ° μ€μνμ§λ§ ν΄κ²°μ± μ κ°λ¨ν΄ 보μ λλ€.
μ¬μ΄λ λ Έλ: @jia200x κ° κ°μ‘°ν λ¬Έμ μ μ§λ©΄ν μ μ΄ μλ€λ μ¬μ€μ RIOTμ λΌλμ€ μλ¨μ MAC κ³μΈ΅μ΄ λλ½λ κ²κ³Ό κ΄λ ¨μ΄ μμ μ μμ΅λλ€. λν, μ μ λ ₯ μμ€ λΌλμ€λ₯Ό μ¬μ©νλ©΄ μ΄μ¨λ νΉμ μμ€μ 견λ μ μμ΅λλ€.