Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What is an embedded hardware engineer? What do beginners need to know?

2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/02 Report--

We have always been novices on the road of learning, and the hardware industry appears to be even more so. What do you lack if you want to be a senior embedded hardware engineer?

Many friends often ask, what do you need to do to become a senior embedded system hardware engineer? You can keep the penguin here. I'm sure I can help you. So, let's start with what the concept of embedded hardware engineer is.

First, how to understand the concept of "embedded"?

1. From the aspect of hardware, the surrounding devices based on CPU are integrated into the CPU chip. For example, in the early computers based on X86 architecture, CPU only has the functions of calculator and accumulator, and all the chips have to build external bridges to expand them. Things like serial ports are realized by external 16C550/2 serial port controller chips, while the current serial port controller chips have long been integrated into CPU, and there are also PCs with graphics cards. Most embedded processors have LCD controllers, but in a sense, they are equivalent to graphics cards. Compared with the high-end IXP network processor CPU under the ARM type Intel Xscale architecture, the PCI controller is integrated internally (it can be configured to support four PCI slave devices or CPI slave devices); it also integrates three NPE network processor engines, two of which correspond to two MAC addresses and can be used for gateway switching, while the other NPE network processor engine supports DSL, as long as an external PHY chip is added to achieve DSL Internet access function. The highest frequency of the IXP series can reach 1.8g, supporting 2G memory, 1G × 10 or 10G × 1 Ethernet port or Febre channel optical channel. The IXP series should be the highest processor integrated by intel into a Xscale core based on arm system architecture.

2. From the software, the application is selected in the kernel of the custom operating system, and the kernel is downloaded to ROM after compilation. The application components selected when customizing the operating system kernel is to complete the "embedding" of the software, such as WinCE kernel customization, there will be corresponding choices, such as wordpad,PDF,MediaPlay, and so on. If we choose, after CE starts, we can find these things in the interface. If it is the windows operating system of the former general PC, most of the things need to be re-installed.

3. Burn the software kernel or application file system into the ROM of the embedded system hardware platform to realize a real "embedding".

The above definition is more important than the definition of understanding type, and there are many definitions in the book, but within the scope of this field, no one dares to say that their definition is very accurate, including those experts and scholars. After all, embedded system is a comprehensive discipline under the computer category.

II. Layering of embedded systems and classification of specialties

The embedded system is divided into four layers: hardware layer, driver layer, operating system layer and application layer.

1. The hardware layer is the foundation of the whole embedded system. If the MCU and interface are very familiar and can be programmed in C and assembly language, it is relatively easy to walk from the hardware layer of the embedded system, and the hardware layer is also the foundation of the driver layer. An excellent driver engineer should be able to understand the circuit diagram of the hardware and complete the logic design of CPLD by himself. At the same time, you should also be quite familiar with the operating system kernel and its schedulability. But the hardware platform is the foundation, and the value-added depends on the software.

The hardware layer is more suitable for people majoring in electronics, communication, automation, mechatronics and information engineering. the basic professional knowledge that needs to be mastered are single-chip microcomputer principle and interface technology, microcomputer principle and interface technology, C language.

2, the driver layer, this part is more difficult, the driver engineer should not only understand the circuit diagram, but also be proficient in the operating system kernel, so that the driver they write will not monopolize the operating system time slice when the system is called. Other tasks can not be moved, do not understand the operating system kernel architecture and real-time scheduling, do not have a good driver writing style, according to the way of adding drivers in most books. Many people can do this, but they may not even be able to reach the level of a junior driver engineer, so that when an application is called, the driver written is just like when we open a program and run it under windows, when we open another program, we either interrupt the previous program or wait a while to run the program that is opened later. If you want to be a good driver, you don't have three or four years of experience, and it is not easy to succeed without studying the operating system kernel, but its salary is the highest among the four layers of embedded systems.

The driver layer is more suitable for people majoring in electronics, communication, automation, mechatronics, information engineering, especially computer partial architecture, in addition to the basic disciplines possessed by the hardware layer. it is also necessary to be very proficient in data structures and algorithms, operating system principles, and compilation principles.

3. The operating system layer, for the operating system layer, can only be said to be a simple transplant at present, but few people come from the written operating system, or write the operating system without arms and legs. Most of this work is done by the driver engineer. The operating system is responsible for the debugging of system tasks and the management of disks and files, and the real-time performance of embedded systems is very important. It is said that it took Microsoft two years to complete the XP operating system, with a total working hours of 600 man-years, and the Nu WA Hopen operating system of the Institute of Software of the Chinese Academy of Sciences estimated to take hundreds of man-years to complete. Therefore, this part of the work is relatively meaningless.

4. In the application layer, it is relatively easy. If you can call programming interface functions under windows, you will only have corresponding changes in the compilation and development environment under the operating system. The same is true for programming when it comes to Jave. The algorithms involved in embedded systems are handled by people with professional algorithms and need not be reduced to the category of embedded systems. However, if it involves embedded database under embedded system, network programming based on embedded system and protocol application development based on this application level (such as SIP, H.323, Astrisk), it is more complex and difficult.

III. Goal and orientation

First you have a target, then you locate it.

Learning ARM, from the hardware, on the one hand is to learn interface circuit design, on the other hand is to learn assembly and C language board-level programming. In terms of software, it is necessary to learn the driver and transplant of the operating system based on ARM processor. These must be clear for beginners, either starting from the hardware, or from the familiarity of the operating system to the application, but no matter what you learn, as long as it is not pure operating system-level or above API-based application layer programming, hardware register class things should be able to understand, board-based assembly and C programming still need to be able to. Therefore, for the hardware layer and driver of embedded system, the interface circuit design of ARM, C language and assembly language programming and debugging development environment of ARM still need to be mastered.

Therefore, for beginners, they must grasp the direction, what is their own goal, and they should walk on that level. Then start to learn better, and ARM-related embedded system of the more practical two layers of the hardware layer and driver layer, no matter which layer will be very promising.

In terms of hardware, learning ARM is to learn interface circuit design on the one hand and board-level programming in assembly and C language on the other.

If you want to go from the application level of embedded systems, it may be far away from ARM and other systems. We should focus on the environmental applications of embedded operating systems and corresponding development tool chains, such as EVC application development under WinCe operating system (similar to VC under windows). If you want to make a breakthrough, rely on some audio and video protocols, such as application layer development based on SIP or H.323 protocol in VOIP field. Or the development based on embedded network database and so on.

For beginners, we should act according to our ability. We should not think that the high salary of the driver layer should be taken as the direction. Combined with our own characteristics, there are high people on the four levels of embedded systems. Of course, high people also correspond to high wages. I work in the hardware layer. In the past, the personal income tax in my monthly salary was deducted nearly 3,000 yuan. Of course, on the one hand, I played the role of an engineer. On the one hand, I play the role of a person at the executive level. I do the two positions alone, but I only have those working hours. There are very few people who may compete with me in hardware, which makes me get so much salary.

Fourth, the choice of development system

Many ARM beginners want to have a system that they can use, but they have a misconception that the higher the processor version and the higher the performance, the better, just like many people think that ARM9 and ARM7 are good. I think beginners should be rational in this respect. The choice of developing a system ultimately depends on which direction they go to the embedded system, whether to do driver development or application. Or do embedded system hardware layer design and board-level testing. If you want to go from the operating system level or application level, whether it is driver or application, of course, the higher the processor performance, the better, but this thing self-study, it is very difficult, it can not be done in a few months or half a year or two years.

In a sense, the difference between ARM7 and 9 is that it enriches some functional instruction sets and increases the main frequency, such as 286 and 386. As far as users are concerned, they may not find anything, but only feel that the speed is a little fast.

ARM7 is more suitable for those who want to go from the hardware level, because there are few ARM7 processors with MMU, and it is easy to control, for example, S3C44B0, it is easy to turn off Cache, and the internal interface registers are easy to read, various interfaces can be controlled by hardware programs or AXD single-step command line instructions, and it is easy to understand him based on the idea of 51 single-chip microcomputer. As a 32-bit single-chip microcomputer, so as to eliminate the confusion of many 51 engineers who want to become embedded system hardware ARM development engineers, so that they will not be brought to the operating system level by some bad companies in the industry that do not really understand embedded systems, and make them look and fear, so that the industry is even more lack of talents in this field.

While embedded systems pay great attention to the interface whether in hardware design or software driver, choosing a platform should also examine the external resources of a processor. The more you are exposed to external resources, the more familiar you are with them, the higher your chances of successful employment in the future. This is what recruitment calls "relevant skills", because it is impossible for a person to contact all processors in just a few years. And the processors used by recruiters may be something we have never seen before. ARM processors produced by dozens of small companies in Taiwan (with a market price of tens of millions) are also very easy to use, but the versatility of these things is so poor that companies that use these processors can only recruit people with relevant work experience. What is the relevant work tested? on the hardware, it is about the design of the peripheral interface. In terms of software, it is the relevant interface driver and application development experience of the operating system. I have been in the industry for nearly a decade, and when ARM appeared in 2000, I started to do ARM7 a day, and then went straight to Xscale (this board is between ARM10-11). I did it for five years, recruiting hundreds of people for interviews. I still have a lot of experience in these aspects.

I personally think that novice learning must be systematic, can not learn a little east and west, a waste of time is not efficient. Here, if you have the same confusion, you can leave the penguin. Without saying much, let's move on.

Therefore, the choice of the development system depends on its own future goal direction, the interface resources of the development board, and the versatility of the industry.

Skills to be a senior embedded system hardware engineer

For hardware, there are several directions, simple signal is divided into digital and analog, analog is difficult to do, generally requires a long accumulation of experience, only a resistance value or capacity value of the accuracy is not enough may make the signal deviation is very large. Therefore, young people do less, with the development of technology, there has been digital analog circuits, such as the Modem radio frequency module of mobile phones, which all use mature sets, but at that time, only two companies in the world had this technology, and people who felt that the simulation function was not very strong were not very suitable for doing this. If they can really get the RF module of the mobile phone, they may earn more than 15K a month as long as they reach the general level.

The other is the digital part, in the general direction can be divided into 51/ARM single-chip microcomputer class, DSP class, FPGA class, domestic FPGA engineers are mostly engaged in IP core front-end verification in IC design companies, this part does not reach the door-level, the future is not clear, even if you do an IC front-end verification engineer, it will take several years to be competent. DSP hardware interface is relatively stereotyped, if it is not close to the driver or algorithm, the future will not be too great.

The content of ARM single-chip microcomputer is more, the industry products occupy a large amount, and the application population is wide, so the employment space is extremely large, and the interface design most reflects the level and level of hardware design, which is the basis for all senior hardware engineers to compete with each other and determine the level.

The most important thing in interface design is to look at timing rather than simple connection. For example, the speed of PXA255 processor I2C is required in 100Kbps. If an I2C peripheral device is connected to it, it will inevitably lead to the failure of the design. There are many such cases, for example, 51 single-chip microcomputer can connect LCD on the bus, but why can't this kind of LCD be hung on the ARM bus, and there is an SD card controller with an external Winband on the ARM7 bus, but why this controller can not connect to the ARM9 or Xscale processor, these are all questions. Therefore, the interface is not a simple connection, depends on the timing, depends on the parameters.

An excellent hardware engineer should be able to design a better product in cost and performance without a reference scheme, and rely on the existing scheme to make appropriate feasibility tailoring, but not randomly. I met an engineer who changed the 5V into 1.8V DC chip in the scheme and directly replaced it with LDO, sometimes burning several CPU.

A few days ago, someone wanted me to help optimize their previous handheld GPS devices based on the PXA255 platform. I asked the situation that the map exists in the SD card, and the SPI interface is used between the SD card and PXA255's MMC controller, which leads to very slow map reading. This situation is a serious flaw in the design, not a program problem, so I put forward several suggestions for them to update and try again.

Therefore, if you want to be a good engineer, you need to grasp the integrity of the system and understand the existing circuits. in other words, if you give you a set of circuit diagrams, how much you can understand after all, if you can't understand more than 80%, it means you are still far from being a good engineer. The second is the debugging ability and drawing review ability of the circuit, but the most basic ability is schematic design PCB drawing, logic design. This refers to the hardware design engineers, from the above hardware design engineers can also be divided into ECAD engineers, that is, professional engineers who draw PCB boards, and EMC design engineers to help others solve EMC problems.

Further up, the hardware engineer is the board-level test engineer, that is, the hardware engineer with good C language skills, who can verify the hardware function through the test program written by himself in the process of circuit board debugging. It is then handed over to the driver developer based on the operating system level.

In short, the content of the hardware is very complicated, and if you practice the hardware, you will become a master. I often evaluate the plan for others, and many things designed by senior hardware engineers are often denied by me in a word. therefore, when engineers reach my level, they will also offend some people, but there will indeed be a lot of unknown things in hardware, so that many senior hardware engineers will be confused.

Then the senior hardware engineer technical skills must have those things, first of all, to master the auxiliary tools of EDA design such as ProtelORCADPowperPCBMaplux2ISE, VDHL language, to be able to use these tools drawing board to do logical design, then there is the interface design drawing review ability, and then is the debugging ability, if you can go to the overall scheme design, it will basically become a senior engineer.

Senior hardware engineers should have not only design skills but also profound basic skills, that is, the use of EDA tools. EDA engineers include schematics and PCB tools, logical design tools and VHDL.

SCH has Orcad under Cadence and powerpcb under pads of Mentors.

Of course, protel also has these two functions, but it is not commonly used internationally. It's just for domestic use. If you want to go higher or go to Taiwan-funded, Japanese-funded, American-funded companies and large domestic companies that need foreign exchanges, the schematic tools of the above hardware and PCB wages must be mastered. The hardware engineer is mainly responsible for the CPLD part of the logic. When it comes to FPGA, there should be professional FPGA personnel to deal with it, because FPGA is not suitable for logic. So hardware engineers only go to CPLD.

Hardware depends on experience as well as accumulation. If you want to be a novice in the embedded industry or young people who have ideas but no direction, you can also leave penguins here. I have saved a lot of practical information over the years, which will certainly give you a systematic help. Finally, the journey is very long, we must stick to it!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report