LoRaMac-node-develop

所属分类:物联网
开发工具:C/C++
文件大小:19472KB
下载次数:0
上传日期:2020-03-25 10:26:35
上 传 者1805688
说明:  LORA 通讯设备端驱动代码,与服务器之间距离10KM,测试OK。
(LORA communication device code, and it can reach server around 10km or so, it's test OK.)

文件列表:
LoRaMac-node-develop\.vscode\c_cpp_properties.json (413, 2019-10-31)
LoRaMac-node-develop\.vscode\settings.json (2866, 2019-10-31)
LoRaMac-node-develop\cmake\binutils-arm-none-eabi.cmake (2338, 2019-10-31)
LoRaMac-node-develop\cmake\gdb-helper.cmake (5035, 2019-10-31)
LoRaMac-node-develop\cmake\launch.json.in (1793, 2019-10-31)
LoRaMac-node-develop\cmake\openocd-run.gdb.in (99, 2019-10-31)
LoRaMac-node-develop\cmake\saml21.cmake (1981, 2019-10-31)
LoRaMac-node-develop\cmake\stlink-run.gdb.in (107, 2019-10-31)
LoRaMac-node-develop\cmake\stm32l0.cmake (1934, 2019-10-31)
LoRaMac-node-develop\cmake\stm32l1.cmake (1926, 2019-10-31)
LoRaMac-node-develop\cmake\stm32l4.cmake (2000, 2019-10-31)
LoRaMac-node-develop\cmake\toolchain-arm-none-eabi.cmake (4263, 2019-10-31)
LoRaMac-node-develop\CMakeLists.txt (810, 2019-10-31)
LoRaMac-node-develop\Doc\development-environment.md (11841, 2019-10-31)
LoRaMac-node-develop\Doc\NAMote72-platform.md (97, 2019-10-31)
LoRaMac-node-develop\Doc\NucleoLxxx-platform.md (1285, 2019-10-31)
LoRaMac-node-develop\Doc\SAML21-platform.md (530, 2019-10-31)
LoRaMac-node-develop\Doc\SKiM88xx-platform.md (433, 2019-10-31)
LoRaMac-node-develop\Doc\SX1276-Wing-Board-(03-91016-RA).pdf (278789, 2019-10-31)
LoRaMac-node-develop\LICENSE.txt (1549, 2019-10-31)
LoRaMac-node-develop\si\1.si4project\1.bookmarks.xml (162, 2020-03-16)
LoRaMac-node-develop\si\1.si4project\1.SearchResults (2649, 2020-01-16)
LoRaMac-node-develop\si\1.si4project\1.siproj (419368, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.siproj_settings.xml (512, 2020-03-16)
LoRaMac-node-develop\si\1.si4project\1.sip_sym (34091792, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xab (16859136, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xad (164968, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xc (2570992, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xf (2570992, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xm (5108, 2020-03-16)
LoRaMac-node-develop\si\1.si4project\1.sip_xr (2570992, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xsb (4313088, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.sip_xsd (42448, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\1.siwork (8706, 2020-03-16)
LoRaMac-node-develop\si\1.si4project\1.snippets.xml (170, 2020-03-16)
LoRaMac-node-develop\si\1.si4project\cache\parse\cmake_binutils-arm-none-eabi.cmake.sisc (5366, 2020-01-15)
LoRaMac-node-develop\si\1.si4project\cache\parse\cmake_gdb-helper.cmake.sisc (6547, 2020-01-15)
... ...

# LoRaWAN endpoint stack implementation and example projects ______ _ / _____) _ | | ( (____ _____ ____ _| |_ _____ ____| |__ \____ \| ___ | (_ _) ___ |/ ___) _ \ _____) ) ____| | | || |_| ____( (___| | | | (______/|_____)_|_|_| \__)_____)\____)_| |_| (C)2013-2019 Semtech ___ _____ _ ___ _ _____ ___ ___ ___ ___ / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __| \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _| |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___| embedded.connectivity.solutions=============== ## Introduction The aim of this project is to show an example of the endpoint LoRaWAN stack implementation. This project has 3 active branches in place. The **[master](https://github.com/Lora-net/LoRaMac-node/tree/master)** branch which provides the latest released source code ([v4.4.2](https://github.com/Lora-net/LoRaMac-node/releases/tag/v4.4.2)), the **[develop](https://github.com/Lora-net/LoRaMac-node/tree/develop)** branch which provides the current source code development status to be released next ([Milestone 4.4.3](https://github.com/Lora-net/LoRaMac-node/milestone/4)) and the **[feature/5.0.0](https://github.com/Lora-net/LoRaMac-node/tree/feature/5.0.0)** branch which provides a preview of the current source code development status for [LoRaWAN Specification v1.1](https://lora-alliance.org/resource-hub/lorawantm-specification-v11) specification.([Milestone 5.0.0](https://github.com/Lora-net/LoRaMac-node/milestone/3)) * The [master](https://github.com/Lora-net/LoRaMac-node/tree/master) branch implementation is based on [LoRaWAN Specification v1.0.3](https://lora-alliance.org/resource-hub/lorawantm-specification-v103) and [LoRaWAN Regional Parameters v1.0.3revA](https://www.lora-alliance.org/resource-hub/lorawantm-regional-parameters-v103reva) specifications. ClassA, ClassB and ClassC end-device classes are fully implemented. * The [develop](https://github.com/Lora-net/LoRaMac-node/tree/develop) branch implementation is based on [LoRaWAN Specification v1.0.3](https://lora-alliance.org/resource-hub/lorawantm-specification-v103) and [LoRaWAN Regional Parameters v1.0.3revA](https://lora-alliance.org/resource-hub/lorawan-regional-parameters-v103reva) specifications. ClassA, ClassB and ClassC end-device classes are fully implemented. * The [feature/5.0.0](https://github.com/Lora-net/LoRaMac-node/tree/feature/5.0.0) branch implementation is based on [LoRaWAN Specification v1.1](https://lora-alliance.org/resource-hub/lorawantm-specification-v11) and [LoRaWAN Regional Parameters v1.1rB](https://lora-alliance.org/resource-hub/lorawantm-regional-parameters-v11rb) specifications. ClassA, ClassB and ClassC end-device classes are fully implemented. This project also provides SX1272/73, SX1276/77/78/79 and SX1261/2 radio drivers. For each currently supported platform example applications are provided. * **LoRaMac/classA**: ClassA end-device example application. * **LoRaMac/classB**: ClassB end-device example application. * **LoRaMac/classC**: ClassC end-device example application. * **LoRaMac/fuota-test-01**: FUOTA test scenario 01 end-device example application. (Based on provided application common packages) * **LoRaMac/periodic-uplink-lpp**: ClassA/B/C end-device example application. Periodically uplinks a frame using the Cayenne LPP protocol. (Based on provided application common packages) * **ping-pong**: Point to point RF link example application. * **rx-sensi**: Example application useful to measure the radio sensitivity level using an RF generator. * **tx-cw**: Example application to show how to generate an RF Continuous Wave transmission. **Note**: *Each LoRaWAN application example (LoRaMac/classX) includes an implementation of the LoRa-Alliance; LoRaWAN certification protocol.* **Note**: *The LoRaWAN stack API documentation can be found at: http://stackforce.github.io/LoRaMac-doc/* ## Supported platforms This project currently provides support for the below platforms. This project can be ported to other platforms using different MCU than the ones currently supported. The [Porting Guide](http://stackforce.github.io/LoRaMac-doc/_p_o_r_t_i_n_g__g_u_i_d_e.html) document provides guide lines on how to port the project to other platforms. * NAMote72 * [NAMote72 platform documentation](Doc/NAMote72-platform.md) * NucleoLxxx - Discovery kit * [NucleoLxxx and Discovery kit platforms documentation](Doc/NucleoLxxx-platform.md) * SKiM880B, SKiM***0A, SKiM881AXL * [SKiM88xx platforms documentation](Doc/SKiM88xx-platform.md) * SAML21 * [SAML21 platform documentation](Doc/SAML21-platform.md) ## Usage A CMAKE building system is used in order to generate the right set of files to compile and debug the different projects. Further information can be found in [Development environment](Doc/development-environment.md) document. ## Acknowledgments The mbed (https://mbed.org/) project was used at the beginning as source of inspiration. This program uses the AES algorithm implementation (http://www.gladman.me.uk/) by Brian Gladman. This program uses the CMAC algorithm implementation (http://www.cse.chalmers.se/research/group/dcs/masters/contikisec/) by Lander Casado, Philippas Tsigas. ## Changelog ### 2019-07-19, V4.4.2 * General 1. Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 2. Examples application refactoring plus the addition of the application status display on the serial port. (921600-8-N-1) 3. Added new refactored application examples * Added LoRa-Alliance defined application layer protocols support. Only FUOTA test scenario 01 required features are currently implemented. - "Clock Synchronization" package - "Fragmented data block transport" package - "Remote multicast setup" package 4. Added a NVM context management module. (Disabled by default) 5. Added secure-element support 6. Refactored timer.c/h, rtc-driver.c/h and added a systime.c/h module. 7. Functions in ISR context have been moved to main context 8. Replaced BoardDisableIrq and BoardEnableIrq functions by CRITICAL_SECTION_BEGIN and CRITICAL_SECTION_END respectively. 9. Added B-L072Z-LRWAN1 platform support. 10. Added NucleoL476 platform support. 11. Added IMST new platforms. 12. Removed SensorNode platform support 13. Removed MoteII platform support 14. Removed LoRaMote platform support 15. Applied SX1272 and SX1276 radios errata note 3.1 to the radio drivers implementation. 16. Fix printf/scanf functions when GCC is used as compiler. * LoRaWAN 1. GitHub reported issues corrections. Please refer to [Release Version 4.4.2](https://github.com/Lora-net/LoRaMac-node/milestone/2) 2. Heavily refactored the LoRaMac.c/h implementation. 3. Added RU8*** region support. 4. Removed US915-Hybrid region support 5. Added ClassB support. 6. Added a callback to notify the upper layer to call LoRaMacProcess function 7. Implemented the support for RxC windows (ClassC) required by the application layer protocols. 8. Changed multicast channels handling according to the application layer protocols. **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2018-03-07, V4.4.1 * General 1. Release based on "LoRaWAN specification 1.0.2" and "LoRaWAN Regional Parameters v1.0.2rB" 2. Added SX126x radio support. 3. Added NucleoL073 and NucleoL152 board platforms support. 4. Added Microchip/Atmel SAML21 Xplained Pro hardware platform support. 5. Added CMAKE build system support 6. Removed CoIDE projects support 7. Removed Keil projects support * LoRaWAN 1. GitHub reported issues corrections. Please refer to [Release Version 4.4.1](https://github.com/Lora-net/LoRaMac-node/milestone/1) **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2017-09-08, V4.4.0 * General 1. First release based on "LoRaWAN specification 1.0.2" and "LoRaWAN Regional Parameters v1.0.2rB" 2. This version has passed the LoRa-Alliance compliance tests for the regions shown in the below table. 3. GitHub reported issues corrections. 4. Updated radio driver to perform the LBT carrier sense continuously for a given period of time. * LoRaWAN 1. GitHub reported issues corrections. 2. Updated implementation to support 1.0.2 specification additions. 3. Added the support for all "LoRaWAN Regional Parameters v1.0.2rB" document defined regions. **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2017-04-19, V4.3.2 * General (Last release based on LoRaWAN specification 1.0.1) 1. This version has passed EU868 and US915 LoRa-Alliance compliance tests. 2. GitHub reported issues corrections. 3. Added an algorithm to automatically compute the Rx windows parameters. (Window symbolTimeout and Offset from downlink expected time) 4. Added a workaround to reset the radio in case a TxTimeout occurs. 5. Modified FSK modem handling to use the provided symbolTimeout (1 symbol equals 1 byte) when in RxSingle mode. 6. Added newly defined TxCw(Tx Continuous Wave) certification protocol command. 7. Added a fix for an overflow issue that could happen with NmeaStringSize variable. 8. Improved GpioMcuInit function to first configure the output pin state before activating the pin. * LoRaWAN 1. GitHub reported issues corrections. 2. Changed the AdrAckCounter handling as expected by the test houses. 3. Fix an issue where the node stopped transmitting. 4. Removed useless LoRaMacPayload buffer. 5. MAC layer indications handling simplification. 6. Relocate parameter settings from ResetMacParameters to the initialization. **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2017-02-27, V4.3.1 * General 1. This version has passed EU868 and US915 LoRa-Alliance compliance tests. 2. Update the MAC layer in order to be LoRaWAN version 1.0.1 compliant (Mainly US915 bug fixes) 3. Removed api-v3 support from the project. 4. GitHub reported issues corrections. 5. Updated SensorNode projects according to the new MCU reference STM32L151CBU6. Bigger memories. 6. Addition of MoteII platform based on the IMST module iM881A (STM32L051C8) 7. Addition of NAMote72 platform 8. Correct compliance test protocol command 0x06 behavior 9. Added TxCw (Tx continuous wave) LoRaWAN compliance protocol command. 10. Added TxContinuousWave support to the radio drivers. 11. Updated ST HAL drivers. * STM32L1xx_HAL-Driver : V1.2.0 * STM32L0xx_HAL_Driver : V1.7.0 * LoRaWAN 1. US band corrections in order to pass the LoRaWAN certification. 2. GitHub reported issues corrections. 3. Add region CN470 support. **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2016-06-22, V4.3.0 * General 1. This version has passed all LoRa-Alliance compliance tests. 2. Update the MAC layer in order to be LoRaWAN version 1.0.1 compliant 3. Applied to all application files the certification protocol change for LoRaWAN 1.0.1 compliance tests. **REMARK**: api-v3 application files aren't updated. 4. Add radio RX_TIMEOUT irq clear into the irq handler. 5. Removed the end less loop from HAL_UART_ErrorCallback. 6. Update of the STM32L0 HAL to version 1.6.0 7. Consolidated the line endings across all project files. Windows line endings has been choose for almost every file. * LoRaWAN 1. Updated maximum payload size for US band. 2. Update datarate offset table for US band. 3. Make MAC commands sticky 4. Add retransmission back-off 5. Remove the TxPower limitation for US band on LoRaMacMibSetRequestConfirm function. The power will be limited anyway when the SendFrameOnChannel functions is called. 6. Issue(#81): Bug fix in function LoRaMacMlmeRequest case MLME_JOIN. Function will return LORAMAC_STATUS_BUSY in case the MAC is in status MAC_TX_DELAYED. 7. Add debug pin support to LoRaMote platform. 8. Updated and improved MPL3115 device driver. 9. Issue(#83): Bug fix in parameter validation 10. Issue(#84): Fix issue of CalibrateTimer function. 11. RTC driver major update 12. Applied pull request #87. 13. Add a function to verify the RX frequency of window 2 for US band. 14. Issue(#88): Bug fix in function PrepareFrame where repeated MAC commands were not handled correctly. 15. Bug fix in OnRadioRxDone. Node now drops frames on port 0 with fOpts > 0. 16. Bug fix in OnRadioRxDone. Node now receives frames with fOpts > 0 when no payload is present. **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2016-05-13, V4.2.0 * General 1. This version has passed all LoRa-Alliance compliance tests. 2. Update STM32L1xx_HAL_Driver version to 1.5. Update related drivers and implementations accordingly. **REMARK**: This change implies that the time base had to be changed from microseconds to milliseconds. 3. Corrected the frequency check condition for // ERRATA 2.1 - Sensitivity Optimization with a 500 kHz Bandwidth 4. Optimize radio drivers regarding FSK PER 5. Resolve issue when calling SX127xInit function more than once 6. Add a definition for the LoRaWAN device address. Add an IEEE_OUI for the LoRaWAN device EUI. 7. Add a definition for the default datarate. 8. Issue(#66) correction of functions SX1276SetOpMode and SX1272SetOpMode. 9. Issue(#68): Fix for low level RF switch control. 10. Increase RTC tick frequency for higher resolution. 11. Update the radio wake up time. * LoRaWAN 1. Issue(#56) correction 2. Update channel mask handling for US915 hybrid mode to support any block in the channel mask. 3. Issue(#63) correct the maximum payload length in RX mode. 4. Fix Tx power setting loss for repeated join requests on US band. 5. Introduce individual MIN and MAX datarates for RX and TX. 6. Add the possibility to set and get the ChannelsDefaultDatarate. 7. Optimization of the RX symbol timeout. 8. Issue(#59): Add the possibility to set the uplink and downlink counter. 9. Replace definition LORAMAC_DEFAULT_DATARATE by ChannelsDefaultDatarate in LoRaMacChannelAdd. 10. Issue(#72): Fix of possible array overrun in LoRaMacChannelRemove. 11. Introduce a new status MAC_RX_ABORT. Reset MAC_TX_RUNNING only in OnMacStateCheckTimerEvent. 12. Accept MAC information of duplicated, confirmed downlinks. 13. Issue(#74): Drop frames with a downlink counter difference greater or equal to MAX_FCNT_GAP. **LoRaWAN pre-certification results** Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. ### 2016-03-10, V4.1.0 * General 1. This version has passed all mandatory LoRa-Alliance compliance tests. *One of the optional tests is unsuccessful (FSK downlinks PER on Rx1 and Rx2 windows) and is currently under investigation.* 2. Removed support for Raisonance Ride7 IDE (Reduces the amount of work to be done at each new release) 3. Removed the Bleeper-72 and Bleeper-76 platforms support as these are now deprecated. 4. Application state machine. Relocate setting sleep state and update the duty cycle in compliance test mode. 5. Bug fix in TimerIrqHandler. Now, it is possible to insert timers in callback. 6. Changed TimerHwDelayMs function to be re-entrant. 7. Corrected FSK modem packets bigger than *** bytes handling (Issue #36) * LoRaWAN 1. Rename attribute nbRetries to NbTrials in structure McpsReqConfirmed_t. (Issue #37) 2. Updated implementation of SetNextChannel. Added enabling default channels in case of join request. (Issue #39) 3. Add missing documentation about MIB_REPEATER_SUPPORT. (Issue #42). 4. Add a new LoRaMacState to allow adding channels during TX procedure. (Issue #43) 5. Relocate the activation of LoRaMacFlags.Bits.McpsInd in OnRadioRxDone. 6. Add a new function PrepareRxDoneAbort to prepare a break-out of OnRadioRxDone in case of an error 7. Activate default channels in case all others are disabled. (Issue #39) 8. Bug fix in setting the default channel in case none is enabled. 9. SRV_MAC_NEW_CHANNEL_REQ MAC command added a fix to the macIndex variable on US915 band. 10. Start the MacStateCheckTimer in OnRxDone and related error cases with a short interval to handle events promptly. (Issue #44) 11. Reset status of NodeAckRequested if we received an ACK or in case of timeout. 12. Removed additional EU868 channels from the LoRaWAN implementation files. GitHub (Issue #49) The creation of these additional channels has been moved to the application example. 13. Improved and corrected AdrNextDr function. ### 2015-12-18, V4.0.0 * General 1. STACKFORCE new API integration 2. Reverse the EUIs arrays in the MAC layer. 3. LoRaWAN certification protocol implementation 4. All reported issues and Pull requests have been addressed. ### 2015-10-06, V3.4.1 * General 1. Bug fixes * LoRaWAN 1. Corrected downlink counter roll over management when several downlinks were missed. 2. Corrected the Radio maximum payload length management. Radio was filtering received frames with a length bigger than the transmitted one. 3. Applied Pull request #22 solution proposition. ### 2015-10-30, V3.4.0 * General 1. Changed all applications in order to have preprocessing definitions on top of the files and added relevant comments 2. Applications LED control is no more done into the timer callback functions but instead on the main while loop. 3. Added TimerStop function calls to each timer event callback. 4. Corrected timings comments. Timing values are most of the time us based. 5. Changed types names for stdint.h names. Helps on code portability 6. Renamed rand and srand to rand1 and srand1. Helps on code portability 7. Added some missing variables casts. Helps on code portability 8. Removed NULL definition from board.h 9. Added const variable attribute when necessary to functions prototypes 10. Moved ID1, ID2 and ID3 definitio ... ...

近期下载者

相关文件


收藏者