Development of Low Power GNSS Time-based System with Fault Tolerance and DMA Driven Data
Among all possible time keeping schemes in modern timekeeping Embedded systems requiring real-time synchronization, GNSS (Global Navigation Satellite System) is one of the widely used ones. GNSS Receivers use signals transmitted by satellites orbiting the Earth. GNSS based system, during integration and testing, the most widespread issue observed in the system is either absence of satellite acquisition or failure to get connection with the satellites. At such situations RTC (Real Time Clock) becomes a crucial component. Traditional polling-based methods demand a lot of power and CPU cycle, which are not feasible for low power embedded systems. In this paper, a system employing USART (Universal Synchronous Asynchronous Receiver and Transmitter) DMA (Direct Memory Access) with circular buffer and FreeRTOS to implement asynchronous reception of GNSS data in an optimized manner with minimal processor usage has been proposed. The system possesses all the attributes of a low power design, such as sleep mode operation, interrupt-driven task switching, and RTC-driven wake-up from sleep mode, and has been proven to be an efficient, expandable, and robust solution for embedded low power time keeping applications such as IOT devices, autonomously working devices, industrial instrumentation, and real time navigation devices.