How IoT engineers choose the right software architecture for your design

We have all thought about this at some point in our career: Now, you want to create a suitable project to see if you can explore this idea further or productize it. But which software architecture should I start with? Espruino? Arduino? Micro Python? Segger embOS? MicriumuC/OS-II? And what is the difference between uC/OS-II and uC/OS-III? Should you adopt an open source architecture with a lower initial cost or a commercial solution that requires upfront costs to speed up your design process?

What is a software architecture?

In this document, the “software architecture” is interpreted as “a specific way of writing software”. For example, Arduino provides a specific way of writing program code that allows fragments of software to be reused across multiple projects.

The software architecture consists of several different parts and is defined by the following components: the programming language, the application programming interface (API), and the connection of certain toolsets. For example, in the case of Arduino and Espruino, the software architecture can be tightly connected to the tool, or it can be separated as in the case of Micrium and FreeRTOS.

What is an operating system?

So how do you choose a software architecture? First of all, we need to be more explicit about the interpretation of some terms, we have begun to mention the term operating system (OS). What you really need to write is code that can execute your specific requirements, which will distinguish your product from other products. However, you still need to rely on other parts of the software, such as the ADC driver or the file system stack of the SD card. Portions of these software are often referred to as software components.

Here is a more substantial metaphor, you can imagine your software components are like bricks, and then the operating system is considered cement. The shape of the bricks is defined in the operating system and how they will interact with other bricks, so when you add more components to the software, they will continue to work together perfectly. This sounds pretty good, but do you really need an operating system? Increasing the operating system also puts an extra load on it, which consumes thousands of bytes of flash memory, adds latency to the response of the event, and takes a little time to learn how to write programs in the operating system environment.

Deciding which software architecture to use will determine whether your ideas can be pushed on time or on budget, or put your investment at risk.

The general rule of thumb is that if your target flash capacity is 128 KB or higher and you need communication capabilities, you will need some stack (USB, Ethernet, SDIO, CAN, Wi-Fi, BLE). You'd better use the operating system.

One of the most important things in the operating system is the scheduler. A scheduler is a component that is used to allocate resources and process time for different tasks that might compete for the same resources. In general, the scheduler has two ways of working, and this is what "real time" means in real-time operating systems (RTOS). Real time means that a specific task will be executed at a specific time. Suppose you get a RF packet that you need to process. Regardless of what your device is currently doing, the core of the real-time operating system will leave its current task and complete this high-priority task. This type of behavior is not the most efficient way to utilize the processor, but for example, in motor control applications, the most important consideration in communication stacks and applications is the issue of reaction time.

Comparison of commercial and open source solutions

For example, if you have figured out whether you need a real-time operating system and start building software requirements. As you probably know, you need a USB stack and an Ethernet stack with an external MAC/PHY driver to connect your device to the Internet. But where do you start? You really only need to download the latest FreeRTOS template for your preferred microcontroller, and continue to download the open source software and put it on the device? Or do you just need to find a commercial supplier with the software you need and get a complete software portfolio?

To make more informed decisions, we often talk about the concept of a total cost of ownership (TCO) for a given solution. The so-called total cost of ownership includes not only the monetary value you pay for the software, but also the time spent looking for solutions, assembling different components, integrating different components into your project, and developing, testing, and producing. .

In general, what we see is the total cost of ownership (TCO) of a business solution, which will be lower than the solution for building an open source component. But since commercial solutions involve initial costs, these vendors usually require a fee of between $10,000 and $100,000, depending on the components you need, in the early stages of using the solution. On the other hand, downloading FreeRTOS and starting to assemble your own solution, in some applications with dense resources, the money it spends is relatively cheaper.

Deciding on the best solution for your project will depend heavily on whether it is the easiest way for you to make cash or to "pay" for the total cost of ownership.

Unmanaged POE Industrial Switches

PoE power supply switch refers to a switch that can provide network power supply for remote powered terminals through a network cable. It includes two functions: network switch and PoE power supply. It is a relatively common power supply device in PoE power supply systems.

PoE power supply switch refers to a switch that can provide network power supply to remote powered terminals through a network cable. It includes two functions: network switch and PoE power supply. It is a relatively common power supply device in PoE power supply systems. The port supports an output power of 15.4W, which conforms to According to the IEEE802.3af standard, the port supports an output power of 30W and conforms to the IEEE802.3at standard. It supplies power to standard POE terminal equipment through network cable power supply, eliminating the need for additional power wiring. A POE switch conforming to the IEEE802.3aT standard, the port output power can reach 15-60W. In layman's terms, a POE power supply switch is a switch that supports network cable power supply, which can not only realize the data transmission function of ordinary switches but also supply power to network terminals at the same time .
POE (Power Over Ethernet) means that without any changes to the existing Ethernet Cat.5 cabling infrastructure, it is used for some IP-based terminals (such as IP phones, wireless LAN access points AP, network Cameras, etc.) can provide DC power supply technology for such devices while transmitting data signals. The POE technology can ensure the normal operation of the existing network while ensuring the safety of the existing structured cabling, minimizing costs. POE is also known as a power supply system based on local area network (POL, Power over LAN) or Active Ethernet (Active Ethernet), sometimes also referred to as Power over Ethernet for short. This is the use of existing standard Ethernet transmission cables to transmit data and data at the same time. The latest standard specification of electric power, and maintains compatibility with existing Ethernet systems and users. The IEEE 802.3af standard is a new standard based on the POE of the Ethernet power supply system. It adds related standards for direct power supply through the network cable on the basis of IEEE 802.3. It is an extension of the existing Ethernet standard and the first international standard for power distribution. standard


Network Switch 5 Port,Poe Switch 5 Port,Gigabit Switch 5 Port,Unmanaged Poe Industrial Switches

Shenzhen Scodeno Technology Co.,Ltd , https://www.scodenonet.com