开发者

Can a software engineer create an embedded system?

I want to create an embedded system using Linux similar to E book reader using ARM9 processor. I am not an electronics expert but I would love to learn it. I know basics of electronics like transistors, flip-flops, multiplexers. etc. I love software and would like to create something like an E book reader. Is it possible for a software engineer to create an embedded system? I do not want to buy single board computer available in market, I want开发者_运维百科 to create it myself.

  • Where do I get some kind of tutorial?
  • Is my knowledge of operating systems enough to create such a system?


Building a system requires knowledge from multiple engineering disciplines. You can only achieve such a task by buying off-the-shelf modular components and assemble them, and in the case of an e-book putting together the modular components won't be pleasant.

Also learning any of the single disciplines needed will take you a long and concentrated effort.

To (loosely) indicate the problem areas:

  1. you need a computing platform of the right form-factor with all the right chipsets (Apple integrate their own single CPU, as of recently, using hardware designs from multiple companies). You will not find a suitable computing platform of the right form-factor.(Electronic Engineer: Digitial designer, Analog Designer)

  2. You need to try to attach an LCD to the right platform, and other peripherals such as USB/ charging port/ WIFI etc etc. (Electronic Engineer, Product Designer)

  3. You need to build a case for the platform. (Product Designer)

  4. You need to get a embedded operating system (potentially real-time) (working on your platform) that fits your needs. (Embedded programmer, Kernel Programmer)

  5. You need to extend said operating system to behave the way you want it. (Application Programmer, Graphics Programmer)

The most important part is the platform, and getting a suitable one is very hard and very expensive. The original iphone had a platform created by a third party that apple bought and used to apply points 2-5 -- and it still took their best engineers a long time to make a prototype.


Not really; hardware engineering is a degree-level subject in it's own right, and you need at least three different specialities to do that job. Not to mention that CAD software and CNC machines cost a heck of a lot more than gcc, so hardware engineers' overheads are huge.

However, you can hire that done, for a substantial fee. Or you can use embedded boards and get the case design done for you.

For example, a beagleboard with these accessories in a custom case.

Or, a Gumstix overo with one of these and one of these in a custom case.

In either case, running some embedded linux.

Development boards save a lot of time and money, but in both cases, if you have the capital you can get those boards boiled down into a custom board that will do just what you need for your application, and cost less in large numbers.

Do not underestimate the case design; you're looking at the thick end of a hundred thousand dollars just for the tooling to manufacture a plastic, die-cast metal or stamped metal case, without paying for the design work.


Creating embedded hardware from scratch requires a lot of expertise and resources. It would be better to start off with a low-cost evaluation board in order to learn the basics of embedded programming and interfacing first. That should keep you busy for a few months. Beyond that, embedded CPU suppliers typically have reference designs that you can incorporate into your own embedded product, but at this point you will need to start investing a lot of time, effort and money into tooling up for hardware design and development.


There is basically no need to create (I mean to solder) the embedded system. A good approach may be to buy some controller board like this this or this. You need to be careful with the board but there is nothing about it a software engineer could not manage; it has the familiar serial, USB and RJ45 ports and normally already boots Linux. Finding enclosure, connecting peripherials (including analog/digital converters, or adding some relays to the output ports) is fully in the range of capabilities of someone who wants also some work with hardware. Expect to develop in C.


You can buy off the shelf hardware for embedded software development.

PC 104 Boards

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜