Difference between revisions of "Multi-purpose Embedded System"
Jump to navigation
Jump to search
(link to related articles) |
|||
| (11 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| + | This project intends to provide ideas and technical information to create a multi-purpose embedded system. | ||
| + | *Information contained in this wiki should be as generic as possible (unless otherwise stated) so that the ideas and information can be portable to different hardware (e.g. 8-bit/16-bit/32-bit MCU). | ||
| + | *The peripheral devices should be expandable | ||
| + | |||
==Hardware Architecture== | ==Hardware Architecture== | ||
[[Image:Mpes hw archi.png]] | [[Image:Mpes hw archi.png]] | ||
| Line 36: | Line 40: | ||
**May incorporate [http://www-users.cs.york.ac.uk/~fisher/mkfilter/ digital filter] to improve reduce noise | **May incorporate [http://www-users.cs.york.ac.uk/~fisher/mkfilter/ digital filter] to improve reduce noise | ||
*DAC for analog control signals | *DAC for analog control signals | ||
| − | **Refer to [ | + | **Refer to [[Modulation_Plugin | here]] if modulation is needed. |
*GPIO for digital feedback and control signals | *GPIO for digital feedback and control signals | ||
**Option 1: directly controlled by MCU | **Option 1: directly controlled by MCU | ||
| − | **Option 2: indirectly through D-type flip-flops (e.g. [http://www.datasheetcatalog.org/datasheet/philips/74lv574.pdf | + | **Option 2: indirectly through D-type flip-flops (e.g. [http://www.datasheetcatalog.org/datasheet/philips/74lv574.pdf 74LV574]) for low pin counts MCU |
| − | **Option 3: indirectly through shift register flip-flops (e.g. [http://www. | + | **Option 3: indirectly through shift register flip-flops (e.g. [http://www.standardics.nxp.com/products/lv/datasheet/74lv165.pdf 74LV165] for input, [http://www.datasheetcatalog.org/datasheet/texasinstruments/tpic6595.pdf TPIC6595] or [http://www.nxp.com/acrobat_download/datasheets/74LV595_3.pdf 74LV595] for output ) for extremely low pin count MCU |
| Line 46: | Line 50: | ||
===RTOS=== | ===RTOS=== | ||
| + | |||
| + | ''(main article: [[RTOS]])'' | ||
| + | |||
+-----------+-----------+----------------------------------------------+ | +-----------+-----------+----------------------------------------------+ | ||
Application | Task 1 | Task 2 | ... | | Application | Task 1 | Task 2 | ... | | ||
| Line 57: | Line 64: | ||
Hardware | UART | ADC | DAC | NVM | PWM | ... | TIMERS | | Hardware | UART | ADC | DAC | NVM | PWM | ... | TIMERS | | ||
+------+-----+-----+-----+-----+-----+----------+ | +------+-----+-----+-----+-----+-----+----------+ | ||
| − | * | + | *See [[Freertos posix Development]] for description |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
===GUI=== | ===GUI=== | ||
| Line 99: | Line 101: | ||
| Stack | | | Stack | | ||
+----------+ | +----------+ | ||
| − | *See [ | + | *See [[Ethernet_Module | here]] for description |
===File System=== | ===File System=== | ||
| − | *[ | + | +------------+------------+------------+------------+------------+------------+ |
| − | + | Application | App 1 | App 2 | App 3 | App 4 | App 5 | App 6 | | |
| + | +------------+------+-----+------------+------------+------------+------------+ | ||
| + | POSIX API | POSIX System Calls | POSIX Threads | | ||
| + | +--------------------+ | | | ||
| + | | FatFs Wrapper | | | | ||
| + | +--------------------+ | | | ||
| + | File System | FatFs | | | | ||
| + | +--------+-----+-----+-----------------+--------------------------------------+ | ||
| + | | EEPROM | MMC | USB | Drivers | Task Scheduler | | ||
| + | +--------+-----+-----+-----------------+--------------------------------------+ | ||
| + | *See [[MMC_Card_Reader | here]] for description | ||
| − | + | [[category:projects]] | |
Latest revision as of 14:59, 25 February 2025
This project intends to provide ideas and technical information to create a multi-purpose embedded system.
- Information contained in this wiki should be as generic as possible (unless otherwise stated) so that the ideas and information can be portable to different hardware (e.g. 8-bit/16-bit/32-bit MCU).
- The peripheral devices should be expandable
Contents
Hardware Architecture
MCU
- MCU can be 8-bit/16-bit/32-bit
- MCU should have sufficient RAM (i.e. no external RAM required)
- MCU should have program Flash (i.e. no external program flash required)
Data Memory
- Use serial bus (I2C/SPI) to expand data memory to save I/O pins
- Need a file system to access the data
- EEPROM for small block of re-writable data
- Flash for large block of re-writable data
Communication
- RS232 for short distance communication with PC
- RS485 for longer distance communication (upto 1200m) over a set of devices
- USB for USB communication with PC
- Ethernet for Internet connectivity
- GPIB for automated test equipment
User Interface
- Graphical displays (LCD, VFD, etc.)
- Keypad for input
Sensory Control
- ADC for analog feedback signals
- Requires anti-aliasing analog filters and op-amp circuits
- Use desktop software (e.g. FilterLab) to design circuits
- May incorporate digital filter to improve reduce noise
- Requires anti-aliasing analog filters and op-amp circuits
- DAC for analog control signals
- Refer to here if modulation is needed.
- GPIO for digital feedback and control signals
Software Architecture
RTOS
(main article: RTOS)
+-----------+-----------+----------------------------------------------+
Application | Task 1 | Task 2 | ... |
+-----------+-----------+------------+----------------------+----------+
Standard API | POSIX System Call | POSIX Thread | C-Lib |
+------------------+-----------------+----------------------+----------+
Kernel | Power Management | | Task Scheduler |
+------------------+ +----------+-----------+
| Drivers | FreeRTOS | Coroutine |
+------+-----+-----+-----+-----+-----+----------+-----------+
Hardware | UART | ADC | DAC | NVM | PWM | ... | TIMERS |
+------+-----+-----+-----+-----+-----+----------+
- See Freertos posix Development for description
GUI
+---------------+----------------+
User Applications | Application 1 | Application 2 |
| +----------------+------------------+
Middlewares | | Toolkits | Window Manager |
+---------------+----------------+------------------+
GUI Library | Graphics Engine (inc Font) |
+-----------+----------------------+----------------+
POSIX API | | POSIX System Calls | POSIX Threads |
| +-----------+----------+----------------+
Drivers & Scheduler | Display | Pointer | Keypad | Task Scheduler |
+-----------+-----------+----------+----------------+
TCP/IP Stack
+---------------------------------------------+--------------------+-------+
Applications | Ethernet Application | GUI Application | ... |
+--------+------+------+----------+------+----+ | |
Web Libraries | Web | DHCP | SNMP | DNS | SMTP |... | | |
| Server | | | Resolver | | | | |
+--------+------+------+----------+------+----+ | |
Socket API | Linux Socket Wrapper | | |
| +----------------------------------+ | |
TCP/IP Stack | | uip | | |
| +----------------------------------+ | |
| | Ethernet Thread | | |
| +---------------------------+------+--------------------+-------+
POSIX API | | POSIX System Calls | POSIX Threads |
+----------+---------------------------+-----------------------------------+
| Drivers | Task Scheduler |
+----------+---------------------------+-----------------------------------+
| H/W |
| TCP/IP |
| Stack |
+----------+
- See here for description
File System
+------------+------------+------------+------------+------------+------------+
Application | App 1 | App 2 | App 3 | App 4 | App 5 | App 6 |
+------------+------+-----+------------+------------+------------+------------+
POSIX API | POSIX System Calls | POSIX Threads |
+--------------------+ | |
| FatFs Wrapper | | |
+--------------------+ | |
File System | FatFs | | |
+--------+-----+-----+-----------------+--------------------------------------+
| EEPROM | MMC | USB | Drivers | Task Scheduler |
+--------+-----+-----+-----------------+--------------------------------------+
- See here for description
