LoRaMac-node-4.3.2

所属分类:其他
开发工具:C/C++
文件大小:7769KB
下载次数:9
上传日期:2019-04-20 22:46:42
上 传 者workholic365
说明:  用于开发Lora终端节点的免费的开源代码
(Free open source code for developing Lora terminal nodes)

文件列表:
LoRaMac-node-4.3.2 (0, 2017-04-19)
LoRaMac-node-4.3.2\Doc (0, 2017-04-19)
LoRaMac-node-4.3.2\Doc\LoRaMote-schematic.pdf (512945, 2017-04-19)
LoRaMac-node-4.3.2\Doc\MoteII-datasheet.pdf (2025767, 2017-04-19)
LoRaMac-node-4.3.2\Doc\MoteII-schematic.pdf (904699, 2017-04-19)
LoRaMac-node-4.3.2\Doc\NAMote72-schematic.pdf (90921, 2017-04-19)
LoRaMac-node-4.3.2\Doc\SensorNode-schematic.pdf (2020758, 2017-04-19)
LoRaMac-node-4.3.2\Doc\iM880A_Datasheet.pdf (718857, 2017-04-19)
LoRaMac-node-4.3.2\Doc\iM881A_Datasheet.pdf (802746, 2017-04-19)
LoRaMac-node-4.3.2\Keil (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\Bootloader (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\Bootloader\BootLoader.uvopt (23400, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\Bootloader\BootLoader.uvproj (25285, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classA (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classA\LoRaMac.uvopt (40468, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classA\LoRaMac.uvproj (108577, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classB (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classB\LoRaMac.uvopt (40468, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classB\LoRaMac.uvproj (108577, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classC (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classC\LoRaMac.uvopt (40468, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\LoRaMac\classC\LoRaMac.uvproj (108577, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\ping-pong (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\ping-pong\Ping-Pong.uvopt (61059, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\ping-pong\Ping-Pong.uvproj (207835, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\rx-sensi (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\rx-sensi\rx-sensi.uvopt (61934, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\rx-sensi\rx-sensi.uvproj (211699, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\tx-cw (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\tx-cw\tx-cw.uvopt (40703, 2017-04-19)
LoRaMac-node-4.3.2\Keil\LoRaMote\tx-cw\tx-cw.uvproj (103892, 2017-04-19)
LoRaMac-node-4.3.2\Keil\MoteII (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\MoteII\LoRaMac (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\MoteII\LoRaMac\classA (0, 2017-04-19)
LoRaMac-node-4.3.2\Keil\MoteII\LoRaMac\classA\LoRaMac.uvoptx (39897, 2017-04-19)
LoRaMac-node-4.3.2\Keil\MoteII\LoRaMac\classA\LoRaMac.uvprojx (54339, 2017-04-19)
LoRaMac-node-4.3.2\Keil\MoteII\LoRaMac\classB (0, 2017-04-19)
... ...

/ _____) _ | | ( (____ _____ ____ _| |_ _____ ____| |__ \____ \| ___ | (_ _) ___ |/ ___) _ \ _____) ) ____| | | || |_| ____( (___| | | | (______/|_____)_|_|_| \__)_____)\____)_| |_| (C)2013 Semtech LoRaWAN endpoint stack implementation and example projects. ===================================== 1. Introduction ---------------- The aim of this project is to show an example of the endpoint LoRaWAN stack implementation. This LoRaWAN stack is an EU868 and US915 bands Class A and Class C endpoint implementation fully compatible with LoRaWAN 1.0.1 specification. Each LoRaWAN application example includes the LoRaWAN certification protocol implementation. SX1272/76 radio drivers are also provided. In case only point to point links are required a Ping-Pong application is provided as example. *The LoRaWAN stack API documentation can be found at: http://stackforce.github.io/LoRaMac-doc/* **Note 1:** *A port of this project can be found on [MBED Semtech Team page](http://developer.mbed.org/teams/Semtech/)* *The example projects are:* 1. [LoRaWAN-demo-72](http://developer.mbed.org/teams/Semtech/code/LoRaWAN-demo-72/) 2. [LoRaWAN-demo-76](http://developer.mbed.org/teams/Semtech/code/LoRaWAN-demo-76/) 2. System schematic and definitions ------------------------------------ The available supported hardware platforms schematics can be found in the Doc directory. 3. 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. 4. Dependencies ---------------- This program depends on specific hardware platforms. Currently the supported platforms are: - LoRaMote MCU : STM32L151CB - 128K FLASH, 10K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller, DAC, ADC, DMA RADIO : SX1272 ANTENNA : Printed circuit antenna BUTTONS : No LEDS : 3 SENSORS : Proximity, Magnetic, 3 axis Accelerometer, Pressure, Temperature GPS : Yes, UP501 module EXTENSION HEADER : Yes, 20 pins REMARK : The MCU and Radio are on an IMST iM880A module - MoteII MCU : STM32L051C8 - ***K FLASH, 8K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller (Not used), DAC, ADC, DMA RADIO : SX1272 ANTENNA : Printed circuit antenna BUTTONS : 3 LEDS : 3 SENSORS : Magnetic, 3 axis Accelerometer, Pressure, Temperature GPS : Yes, PAM7Q module Display : OLED ST-Link : Yes, MBED like EXTENSION HEADER : Yes, 20 pins REMARK : The MCU and Radio are on an IMST iM881A module - NAMote72 MCU : STM32L152RC - 256K FLASH, 32K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller (Not used), DAC, ADC, DMA RADIO : SX1272 ANTENNA : Printed circuit antenna BUTTONS : No LEDS : 4 SENSORS : Magnetic, 3 axis Accelerometer, Pressure, Temperature GPS : Yes, SIM39EA module Display : OLED ST-Link : Yes, MBED like EXTENSION HEADER : Yes, Arduino connectors REMARK : None - SensorNode MCU : STM32L151CBU6 - 128K FLASH, 16K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller, DAC, ADC, DMA RADIO : SX1276 ANTENNA : Printed circuit antenna BUTTONS : Power ON/OFF, General purpose button LEDS : 3 SENSORS : Proximity, Magnetic, 3 axis Accelerometer, Pressure, Temperature GPS : Yes, SIM39EA module EXTENSION No REMARK : The MCU and Radio are on an NYMTEK Cherry-LCC module - SK-iM880A ( IMST starter kit ) MCU : STM32L151CB - 128K FLASH, 10K RAM, Timers, SPI, I2C, USART, USB 2.0 full-speed device/host/OTG controller, DAC, ADC, DMA RADIO : SX1272 ANTENNA : Connector for external antenna BUTTONS : 1 Reset, 3 buttons + 2 DIP-Switch LEDS : 3 SENSORS : Potentiometer GPS : Possible through pin header GPS module connection SDCARD : No EXTENSION HEADER : Yes, all IMST iM880A module pins REMARK : None 5. Usage --------- Projects for CooCox-CoIDE and Keil Integrated Development Environments are available. One project is available per application and for each hardware platform in each development environment. Different targets/configurations have been created in the different projects in order to select different options such as the usage or not of a bootloader and the radio frequency band to be used. 6. Changelog ------------- 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. 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 behaviour 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. 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. 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. 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 definition from board.h to board.c, usb-cdc-board.c and usb-dfu-board.c 11. Removed the definition of RAND_SEED. It has been replaced by a function named BoardGetRandomSeed 12. Renamed BoardMeasureBatterieLevel to BoardGetBatteryLevel 13. Added SetMaxPayloadLength API function to SX1272 and SX1276 radio drivers 14. Changed the name of Radio API Status function to GetStatus 15. AES/CMAC Changed types names for stdint.h names. Helps on code portability (Issue #20) 16. Moved __ffs function from utilities.h to spi-board.c. This function is only used there. 17. Utilities.c removed fputc function redefinition. 18. Replaced the usage of __IO attribute by volatile. * LoRaWAN 1. Added support for the US915 band (Normal mode and hybrid mode. Hybrid mode is a temporary configuration up until servers support it automatically) (Issue #16) 2. Corrected and simplified the downlink sequence counter management. 3. Removed the usage of PACKED attribute for data structures. 4. Renamed LoRaMacEvent_t into LoRaMacCallbacks_t and added a function pointer for getting battery level status 5. Renamed LoRaMacSetDutyCycleOn into LoRaMacSetTestDutyCycleOn 6. Renamed LoRaMacSetMicTest into LoRaMacTestSetMic 7. Increased the PHY buffer size to 250 8. Removed IsChannelFree check on LoRaMacSetNextChannel function. LoRaWAN is an ALHOA protocol. (Pull request #8) 9. LoRaMacEventInfo.TxDatarate now returns LoRaWAN datarate (DR0 -> DR7) instead of (SF12 -> DF7) 10. Corrected channel mask management for EU868 band. 11. Corrected LoRaMacPrepareFrame behavior function when no applicative payload is present. 12. LoRaMac-board.h now implements the settings for the PHY layers specified by LoRaWAN 1.0 specification. ( EU433, CN780, EU868, US915 ) (Issue #19) 13. Added LORAMAC_MIN_RX1_DR_OFFSET and LORAMAC_MAX_RX1_DR_OFFSET definitions to LoRaMac-board.h. Can be different upon used PHY layer 14. Added the limitation of output power according to the number of enabled channels for US915 band. 15. Added the limitation of the applicative payload length according to the datarate. Does not yet take in account the MAC commands buffer. (Issue #15) 16. Corrected MacCommandBufferIndex management. (Issue #18) 2015-08-07, v3.3.0 * General 1. Added the support for LoRaWAN Class C devices. 2. Implemented the radios errata note workarounds. SX1276 errata 2.3 "Receiver Spurious Reception of a LoRa Signal" is not yet implemented. 3. Increased FSK SyncWord timeout value in order to listen for longer time if a down link is available or not. Makes FSK downlink more reliable. 4. Increased the UART USB FIFO buffer size in order to handle bigger chunks of data. * LoRaWAN 1. Renamed data rates as per LoRaWAN specification. 2. Added the support for LoRaWAN Class C devices. 3. Handling of the MAC commands was done incorrectly the condition to verify the length of the buffer has changed from < to <=. 4. Added the possibility to change the channel mask and number of repetitions trough SRV_MAC_LINK_ADR_REQ command when ADR is disabled. 5. Corrected Rx1DrOffset management. In previous version DR1 was missing for all offsets. 6. Changed confirmed messages function to use default datarate when ADR control is off. 7. After a Join accept the node falls back to the default datarate. Enables the user to Join a network using a different datarate from its own default one. 8. Corrected default FSK channel frequency. 9. Solved a firmware freezing when one of the following situations arrived in OnRxDone callback: bad address, bad MIC, bad frame. (Pull request #10) 10. Moved the MAC commands processing to the right places. FOpts field before the Payload and Port 0 just after the decryption. (Pull request #9) 11. Weird conditions to check datarate on cmd mac SRV_MAC_NEW_CHANNEL_REQ (Pull request #7) 12. Ignore join accept message if already joined (Pull request #6) 13. Channel index verification should use OR on SRV_MAC_NEW_CHANNEL_REQ command (Pull request #5) 14. Corrected the CFList management on JoinAccept. The for loop indexes were wrong. (Pull request #4) 15. Correction of AES key size (Pull request #3) 2015-04-30, v3.2.0 * General 1. Updated LoRaMac implementation according to LoRaWAN R1.0 specification 2. General cosmetics corrections 3. Added the support of packed st ... ...

近期下载者

相关文件


收藏者