An embedded system is a micro-controller device designed to perform a dedicated function with real-time processing constraints. To contrast this a personal computer (PC), is designed to meet a wide range of end-user needs by providing a feature rich Operating System (OS) to application developers. Embedded systems development is similar in many ways but also greatly differs in its software subroutines which support a very limited set of device functions. As the saying goes less is more which is certainly true when developing embedded systems firmware.
Modern embedded systems today include devices like MP3 players, digital telephones, traffic control, RFID and security systems. The complexity of embedded systems vary from single 8-Bit Micro-controller chips, to more advanced 16 and 32-Bit Micro-controllers with integrated peripherals such as USB and network interfaces. With all these computer controlled devices interacting with modern humans today we have just realized the beginnings of a new Star Trek era of interactive and miniature micro computing devices. Keeping this in mind we now have now the ability to create almost everything one can dream of when it comes to technology.
Basics of LES
LES-1.2 (version 1.2) is a miniaturized embedded framework written in C currently for PIC micro-controllers which supports basic input/output, memory, Analog-to-Digital conversion, 8/16-Bit EUSART RS232, RS485 asynchronous communications, 10BASE-T Ethernet, Wi-Fi and our custom ISM band radio devices. Because of its small foot print the entire base system can fit into 1.7K (1656 Bytes) of flash program memory. In addition LES greatly simplifies bit level control of IO ports through macros like BIT_SET, BIT_CLEAR, BIT_IS_SET and BIT_COMP. Port register control is achieved through PORTx macros, structs and unions which reduce the time overhead of developing bit level oriented controller applications. LES was designed and developed for use in supervisory control and data acquisition (SCADA) as well as RFID applications.
Here are a few things we can do with LES!
Interrupt Service for Peripherals and Timers
LES incorporates EUSART, ECCP, SSP, TMRx and DMA interrupt handlers.
Timers & Time Delays (TMRx)
LES supports TMRx-1 timer devices when supported by device hardware. Time delays in microseconds and milliseconds are also implemented using assembly level sub routines which are calculated based on the defined CPU Crystal Frequency.
EEPROM (E2) Memory Access and Control
LES simplifies non-volatile E2 memory access through initialize, read and write functions.
Analog-to-Digital Conversion (ADC C Module)
LES implements ADC using a modular approach and can support up to 12 Analog-to-Digital Channels.
Analog Comparator Control and Interrupts
LES supports analog input, voltage reference (VREF) and digital output selection when supported by device hardware. When configured appropriately a comparators interrupt flag can be set when a predefined/programmable logic condition has been satisfied.
I2C and SPI (C Module)
LES supports both Inter-Integrated Circuit (I2C - (Master/Slave) and Serial Peripheral Interface Bus (SPI) port hardware configurations. I2C and/or SPI may now be implemented without the need for a dedicated synchronous serial port module. We have developed a software SSP bit-bang approach, which requires only two or three I/O pins depending on the type of interface required. When including SSP module support an additional 2K of flash program memory is required. Due to speed requirements some peripheral hardware devices may require a dedicated SSP module.
Pulse Width Modulation (PWM)
LES supports Pulse Width Modulation (PWM) when supported by device hardware.
Input and Output Ports
LES provides support to control up to 35 Digital IO pins depending on which hardware variation is used.
Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART)
LES supports both 8-Bit and 16-Bit Asynchronous modes of serial communication Baud rates are now configured via the RS232Serial C module using easy to remember macros. Supports both RS232 and RS485 serial standards with appropriate hardware.
10 Base-T Ethernet (C Module)
LES supports 10 Base-T Ethernet hardware via SPI and was developed to add Ethernet over twisted pair (IEEE 802.3i) support. To include this support an additional 3K of flash program memory is required.
2.4 GHz Wi-Fi (C Module)
LES supports our 2.4 GHz Radios via hardware EUSART or SPI and was developed to transmit and receive serial ASCII data. To include this support an additional 4K of flash program memory is required.
LES-RTOS (Real-Time Operating System) - Version 1.1
Lightweight Embedded System RTOS is a real-time operating system (OS) which was designed to facilitate real-time state machines which can interface with embedded peripheral and external Input/Output hardware. Currently LES supports peripheral communications for picLinkRSxxx, TCP/IP, FTP and SSH over common wired and wireless Ethernet networks. In addition LES-RTOS was recently been expanded to include support for our picLinkUSB bridge/modem which may be used to facilitate addressable wireless command/control as well as capture (log) and store real-time data on a Linux or Windows based host computer.
Microchip PIC Series Controllers PIC16F/PIC18F/PIC24F/PIC32MX and dsPIC33
LES has been tested on most popular PIC 8/16/32-bit Controller devices.
Its easy to see how LES is more!