etc

LoRa – OTAA 및 ABPλ₯Ό μ‚¬μš©ν•œ μž₯치 ν™œμ„±ν™”

ν•œμ½”λ”© 2020. 8. 16. 00:02
728x90
728x90

 

μƒˆλ‘œμš΄ μ΅œμ’… μž₯치 (LoRa μž₯치)κ°€ LoRa λ„€νŠΈμ›Œν¬μ— μΆ”κ°€λ˜λ©΄ ν™œμ„±ν™” ν”„λ‘œμ„ΈμŠ€λ₯Ό 거쳐야 ν•©λ‹ˆλ‹€. ν™œμ„±ν™” ν”„λ‘œμ„ΈμŠ€λ₯Ό 톡해 두 μ„Έμ…˜ ν‚€κ°€ μ΅œμ’… μž₯μΉ˜μ™€ λ„€νŠΈμ›Œν¬ μ„œλ²„ 간에 κ³΅μœ λ©λ‹ˆλ‹€. ν˜„μž¬ LoRaλŠ” λ‹€μŒ 두 가지 μœ ν˜•μ˜ ν™œμ„±ν™” 방법을 μ œκ³΅ν•©λ‹ˆλ‹€.

 

  • OTA (Over-The-Air) ν™œμ„±ν™”
  • κ°œμΈλ³„ ν™œμ„±ν™” (ABP)

 

OTA (Over-The-Air) ν™œμ„±ν™”

 

OTAA λͺ¨λ“œμ—μ„œ μ—”λ“œ λ””λ°”μ΄μŠ€λŠ” λ„€νŠΈμ›Œν¬ μ„œλ²„μ™€ ν†΅μ‹ ν•˜μ—¬ ν™œμ„±ν™” 절차(Join Procedure)λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€. LoRa 사양에 따라 OTAA λͺ¨λ“œλŠ” μ—”λ“œ μž₯μΉ˜κ°€ 이미 λ°°ν¬λ˜μ—ˆκ±°λ‚˜ μž¬μ„€μ •λ  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. μ•„λž˜ 그림은 κ²°ν•© 절차λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

 

 

 

1단계 - κ°€μž… μš”μ²­ λ©”μ‹œμ§€

 

μ—”λ“œ λ””λ°”μ΄μŠ€κ°€ κ°€μž… μš”μ²­ λ©”μ‹œμ§€λ₯Ό 보내 κ°€μž… 절차λ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€. μ°Έμ—¬ μš”μ²­μ— DevEUI, AppEUI 및 DevNonceκ°€ ν¬ν•¨λ©λ‹ˆλ‹€. DevEUI 및 AppEUIλŠ” 각각 Global End Device 및 Application Identifierλ₯Ό λ‚˜νƒ€λ‚΄λ©° IEEE λ‚˜νƒ€λ‚΄λ©° EUI-64 μ£Όμ†Œ 곡간 ν˜•μ‹μ„ λ”°λ¦…λ‹ˆλ‹€.

 

DevNonceλŠ” μž₯μΉ˜κ°€ 각 μ—”λ“œ μž₯μΉ˜μ— λŒ€ν•΄ λ„€νŠΈμ›Œν¬ μ„œλ²„λŠ” μ΅œμ’… μž₯μΉ˜κ°€ μ‚¬μš©ν•œ λ§ˆμ§€λ§‰ DevNonce값을 DevNonce μΆ”μ ν•˜κ³  DevNonceκ°€ DevNonce λ‹€μŒκ³Ό 같은 경우 κ²°ν•© μš”μ²­μ„ λ¬΄μ‹œν•©λ‹ˆλ‹€. 증뢄 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ°€μž… μš”μ²­μ˜ MIC값은 MIC μ΅œμ’… μž₯μΉ˜μ— μ˜ν•΄ κ³„μ‚°λ˜λ©° μ‘μš© ν”„λ‘œκ·Έλž¨ ν‚€(AppKey)λŠ” μ΅œμ’… μž₯μΉ˜μ™€ λ„€νŠΈμ›Œν¬μ™€ μ„œλ²„ 간에 미리 κ³΅μœ λ©λ‹ˆλ‹€. κ²°ν•© μš”μ²­ λ©”μ‹œμ§€λŠ” μ•”ν˜Έν™”λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μž„μ˜μ˜ 데이터 속도λ₯Ό μ‚¬μš©ν•˜κ³  μ§€μ •λœ κ²°ν•© μ±„λ„μ—μ„œ μž„μ˜μ˜ 주파수 ν˜Έν•‘ μˆœμ„œμ— 따라 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.


2단계 - 인증 및 μ„Έμ…˜ ν‚€ 생성

 

λ„€νŠΈμ›Œν¬ μ„œλ²„λŠ” μ°Έκ°€λŠ” μš”μ²­μ„ 받은 ν›„ DevNonceλ₯Ό 기반으둜 ν•˜λŠ” DevNonceλ₯Ό μž¬μƒ 곡격 방지 ν”„λ‘œμ„ΈμŠ€λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€. κ²°ν•© μš”μ²­μ˜ DevNonceκ°€ DevNonce 이전에 μ‚¬μš©λœ 경우, λ„€νŠΈμ›Œν¬ μ„œλ²„λŠ” λ©”μ‹œμ§€κ°€ μœ νš¨ν•˜μ§€ μ•Šκ³  κ²°ν•© ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€νŒ¨ν•œλ‹€κ³  νŒλ³„ν•©λ‹ˆλ‹€. λ©”μ‹œμ§€κ°€ μœ νš¨ν•˜λ©΄ λ„€νŠΈμ›Œν¬ μ„œλ²„λŠ” μ΅œμ’… μž₯치λ₯Ό MIC κ°’μœΌλ‘œ μΈμ¦ν•©λ‹ˆλ‹€.

 

μ΅œμ’… μž₯μΉ˜κ°€ 인증을 ν†΅κ³Όν•˜λ©΄ λ„€νŠΈμ›Œν¬ μ„œλ²„λŠ” Nwk_SKey 및 App_SKeyλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. AppNonceλŠ” λ„€νŠΈμ›Œν¬ μ„œλ²„μ—μ„œ 생성 ν•œ μΉ΄μš΄ν„° λ²ˆν˜Έμž…λ‹ˆλ‹€. NetIDλŠ” NetID 24 λΉ„νŠΈ ν•„λ“œμ΄λ©° 5 개의 LSBλ₯Ό NwkID라고 ν•©λ‹ˆλ‹€. μ§€λ¦¬μ μœΌλ‘œ 볡제된 LoRa λ„€νŠΈμ›Œν¬μ˜ μ£Όμ†Œλ₯Ό λΆ„λ¦¬ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. NetID의 NetID λ‹€λ₯Έ λΉ„νŠΈλŠ” λ„€νŠΈμ›Œν¬ μ„œλ²„μ—μ„œ 자유둭게 κ²°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


3단계 - λ©”μ‹œμ§€λ₯Ό 수락 κ°€μž…

 

Aκ°€ ν¬ν•¨λ˜μ–΄ λ©”μ‹œμ§€λ₯Ό λ°›μ•„ κ°€μž… AppNonce, NetIDλ₯Ό, DevAddr, DLSettings, RxDelay, 및 CFList.DevAddr은 ν˜„μž¬ λ„€νŠΈμ›Œν¬ λ‚΄μ˜ μ—”λ“œ λ””λ°”μ΄μŠ€μ˜ 32 λΉ„νŠΈ μ‹λ³„μžμ΄λ‹€. DevAddr의 DevAddr 7 MSBλŠ” NwkID라고 NwkID ν•˜λ©° NetID에도 NetID ν¬ν•¨λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ λΉ„νŠΈλŠ” λ„€νŠΈμ›Œν¬ μ„œλ²„μ—μ„œ μž„μ˜λ‘œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. DLSettingsμ—λŠ” DLSettings λ‹€μš΄ 링크 ꡬ성과 κ΄€λ ¨λœ λͺ‡ 가지 값이 μžˆμŠ΅λ‹ˆλ‹€. RxDelayλŠ” RxDelay μ†‘μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€ μ‚¬μ΄μ˜ μ§€μ—°μž…λ‹ˆλ‹€. CFList채널 CFList μ£ΌνŒŒμˆ˜μ— κ΄€ν•œ 선택적 ν•„λ“œμž…λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ 전체 κ°€μž… 수락 λ©”μ‹œμ§€λŠ” AppKey둜 AppKey μ•”ν˜Έν™”λ©λ‹ˆλ‹€.

 


4단계 - App Session Key 전솑

 

App_SKeyλŠ” μ—”λ“œ μž₯μΉ˜μ™€ μ‘μš© ν”„λ‘œκ·Έλž¨ μ„œλ²„ μ‚¬μ΄μ˜ 쒅단 κ°„ 톡신을 λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλ˜μ—ˆμœΌλ―€λ‘œ λ„€νŠΈμ›Œν¬ λ˜μ—ˆμœΌλ―€λ‘œ μ„œλ²„μ—μ„œ μ‘μš© ν”„λ‘œκ·Έλž¨ μ„œλ²„λ‘œ 전솑해야 ν•©λ‹ˆλ‹€. LoRa 사양은 App_SKeyλ₯Ό App_SKey μ‘μš© ν”„λ‘œκ·Έλž¨ μ„œλ²„μ™€ κ΅ν™˜ν•  μ‹œκΈ°μ™€ 방법을 ν•  μ‹œκΈ°μ™€ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ κ΅¬ν˜„μ— 따라 λ‹¬λΌμ§ˆ 수 λ‹¬λΌμ§ˆ μžˆμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ 뢀뢄이 될 수 μžˆμœΌλ―€λ‘œ κ²°ν•© μ ˆμ°¨μ— 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.


5단계 - μ„Έμ…˜ ν‚€ 생성

 

κ°€μž… 수락 λ©”μ‹œμ§€λ₯Ό 받은 ν›„ μ—”λ“œ μž₯μΉ˜λŠ” λ©”μ‹œμ§€λ₯Ό ν•΄λ…ν•˜κ³  μΆ”μΆœλœ 맀개 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„Έμ…˜ ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

 

 

κ°œμΈλ³„ ν™œμ„±ν™”

 

ABPλŠ” νŠΉμ • μ‘°κ±΄μ—μ„œ κ²°ν•© 절차λ₯Ό μˆ˜ν–‰ν•˜μ§€ μ•Šκ³  μ—”λ“œ μž₯μΉ˜κ°€ νŠΉμ • LoRa λ„€νŠΈμ›Œν¬μ— 속할 수 μžˆλŠ” λ°©λ²•μž…λ‹ˆλ‹€. ABP λͺ¨λ“œμ—μ„œ μ—”λ“œ λ””λ°”μ΄μŠ€μ—λŠ” κ²°ν•© μ ˆμ°¨μ— ν•„μˆ˜μ μΈ DevEUI, AppEUI 및 AppKeyκ°€ μ—†μŠ΅λ‹ˆλ‹€. κ°œμΈν™”λ₯Ό 톡해 μ—”λ“œ λ””λ°”μ΄μŠ€λ₯Ό ν™œμ„±ν™”ν•œλ‹€λŠ” 것은 κ²°ν•© 절차 쀑 DevEUI, AppEUI, AppKey 및 NwkKeyμ—μ„œ νŒŒμƒλ˜λŠ” λŒ€μ‹  DevAddr 및 λ„€ 개의 μ„Έμ…˜ ν‚€ FNwk_SIntKey, SNwk_SIntKey, Nwk_SEncKey 및 App_SKeyκ°€ μ—”λ“œ λ””λ°”μ΄μŠ€μ— 직접 μ €μž₯됨을 μ˜λ―Έν•©λ‹ˆλ‹€.

 

μ—”λ“œ λ””λ°”μ΄μŠ€μ—λŠ” νŠΉμ • LoRa λ„€νŠΈμ›Œν¬κ°€ μ‹œμž‘λΌ μžλ§ˆλ‹€ μ°Έμ—¬ν•˜λŠ” 데 ν•„μš”ν•œ 정보가 μžˆμŠ΅λ‹ˆλ‹€. 각 μž₯μΉ˜λŠ” 고유 ν•œ / SNwk_SIntKey, Nwk_SEncKey 및 App_SKeyμ„ΈνŠΈλ₯Ό κ°€μ Έμ•Ό ν•©λ‹ˆλ‹€. ν•œ μž₯치의 ν‚€λ₯Ό μ†μƒμ‹œν‚€λŠ” 것이 λ‹€λ₯Έ μž₯치의 톡신 λ³΄μ•ˆμ„ μ†μƒμ‹œν‚€μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν‚€λ₯Ό μž‘μ„±ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” 곡개적으둜 μ‚¬μš© κ°€λŠ₯ν•œ 정보 (예 : λ…Έλ“œ μ£Όμ†Œ λ˜λŠ” μ—”λ“œ μž₯치의 DevEUI)μ—μ„œ ν‚€λ₯Ό μ–΄λ–€ μ‹μœΌλ‘œλ“  νŒŒμƒν•  수 없도둝 ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

좜처 : http://www.techplayon.com/lora-device-activation-call-flow-join-procedure-using-otaa-and- abp/

 

728x90
λ°˜μ‘ν˜•