Saturday, August 7, 2010

Embedded software

        當今無線技術及半導體製成發展快速,使得許多帶有及時作業系統的嵌入式裝置是越來越流行.
     Due to semiconductor technology makes unceasing progress , the number of gates count of microprocessor becomes more large. Even though often nearly invisible, embedded systems are ubiquitous. Embedded systems are present in many industries, including industrial automation, defense, transportation, and aerospace.
   For example, NASA's Mars Path Finder, Lockheed Martin's missile guidance system, and the Ford automobile all contain numerous embedded systems.    
   Basically, embedded systems are ubiquitous. Hidden conveniently within numerous household appliances, embedded systems are found all over the house.   
   As shown in Figure 1, embedded systems in the home assume many forms, including security systems, cable and satellite boxes for televisions , home theater systems, and telephone answering machines. As advances in microprocessors continue to improve the functionality of ordinary products , embedded systems are helping drive the development of additional home-based innovations. 
Figure 1
    Of course , many embedded systems in leisure activities are common. At home, at work, even at play, embedded systems are flourishing. A child’s toy unexpectedly springs to life with unabashed liveliness. Automobiles equipped with in-car navigation systems transport people to destinations safely and efficiently. Listening to favorite tunes with anytime-anywhere freedom is readily achievable, thanks to embedded systems buried deep within sophisticated portable music players, as shown in Figure 2. 

Figure 2
    Okay, we have saw many embedded systems and understand their applications. Now we see how to define an embedded system. 
    A general definition of embedded systems is: embedded systems are computing systems with tightly coupled hardware and software integration, that are designed to perform a dedicated function. The word embedded reflects the fact that these systems are usually an integral part of a larger system, known as the embedding system. Multiple embedded systems can coexist in an embedding system. ( 也就是說, 嵌入式系統也是個計算系統 ,但是其軟體與硬體的整合是很緊密的, 所以說他是為完成一些特定的功能而設計的, embedded 的字面的意思就有"容於"的隱喻, So an embedded system can be embedded into other embedded systems. (即一個embedded system 可以有多個 embedded systems 共存) Okay. we have knew the definition of embedded system. Since embedded systems are designed to perform some dedicated functions , the processor's price , processing speed , applications and power consumption are different from general purpose ones. 


     用於一般個人用途的電腦的處理器是為一般途的或是廣泛用途的.這些處理器的設計是複雜的,因為他們提供完整及廣泛的功能範圍. The systems using these universal processors are programmed with a multitude of applications. For example, modern processors have a built-in memory management unit (MMU) to provide memory protection and virtual memory for multitasking-capable, general-purpose operating systems. These universal processors have advanced cache logic. Many of these processors have a built-in math co-processor capable of performing fast floating-point operations. Why computer need floating-point operations ? Because some numbers are represented with finite precision. While in most cases it is safe to assume that the result of an arithmetical operation done on your computer is correct, it is important to remember that this finite-precision representation leads to unavoidable errors, especially when floating-point numbers, which are digital approximations to real numbers, are involved.  More details about   floating-point operations , please link the following URL :  http://idlastro.gsfc.nasa.gov/idl_html_help/Accuracy_and_Floating_Point_Operations.html 

     現近年來microprocessor 的技術突飛猛進, 使得embedded processor 的設計更為進步並使得 processor 的 processing power 更為提高. 所以早期很多的embedded system 中的 processor 是用 PC 的 general purpose processors (CPU) , 現在已改成 specific embedded processors , e.g. ASIC ( this is a application specified integrated circuit ) . In general , ASIC is for specific applications domain. It  consists of a core and other applications for some specific requirements. 

    One class of embedded processors focuses on size, power consumption, and price. Therefore, some embedded processors are limited in functionality, i.e., a processor is good enough for the class of applications for which it was designed but is likely inadequate for other classes of applications. This is one reason why many embedded processors do not have fast CPU speeds. For example, the processor chosen for a personal digital assistant (PDA) device does not have a floating-point co-processor because floating-point operations are either not needed or software emulation is sufficient. The processor might have a 16-bit addressing architecture instead of 32-bit, due to its limited memory storage capacity. It might have a 200MHz CPU speed because the majority of the applications are interactive and display-intensive, rather than computation-intensive. This class of embedded processors is small because the overall PDA device is slim and fits in the palm of your hand. The limited functionality means reduced power consumption and long-lasting battery life. The smaller size reduces the overall cost of processor fabrication.
    In recent years , many embedded systems contain a SoC. The goal is to reduce the complexity of system layout . System-on-a-chip (SoC) processors are especially attractive for embedded systems. The SoC processor is comprised of a CPU core with built-in peripheral modules, such as a programmable general-purpose timer, programmable interrupt controller, DMA controller, and possibly Ethernet interfaces. Such a self-contained design allows these embedded processors to be used to build a variety of embedded applications without needing additional external peripheral devices, again reducing the overall cost and size of the final product. About SoC , please refer to wiki URL: http://en.wikipedia.org/wiki/System-on-a-chip 
    One class of embedded processors focuses on size, power consumption, and price. Therefore, some embedded processors are limited in functionality, i.e., a processor is good enough for the class of applications for which it was designed but is likely inadequate for other classes of applications. This is one reason why many embedded processors do not have fast CPU speeds.  
(理由很簡單, 因為embedded processors 針對不同的需求而去做 , 有價格, 大小,速度, 耗電方面的考量,故針對不同的需求應用就有不同的設計考量, 所以embbedded processor 不同於 CPU能廣泛的應用(即 more powerful and complex applications) 
   On the other hand, another class of embedded processors focuses on performance. These embedded processors are powerful and packed with advanced chip-design technologies, such as advanced pipeline and parallelprocessing
    In high-end embedded systems, system performance in a predefined context outweighs power consumption and cost. The choice of a high-end, general purpose processor is as good as the choice of a high-end, specialized embedded processor in some designs. Therefore, using processor type alone to classify embedded systems may result in wrong classifications . 
    Another characteristics of embedded system software development is cross-platform development. That means developers can compile codes written in c/c++ on a host machine , and run on another platform.  The main software tool that makes cross-platform development possible is a cross compiler. 
    A cross compiler is a compiler that runs on one type of processor architecture but produces object code for a different type of processor architecture.
In general , current embedded system development on host system. When developers have completed programming and debugging on simuation , they can complie the program and download it to the target board via USB or some standard series interfaces , e.g. RS232.
    在embedded system 中, 儲存是一個重要的選擇,其會對整個system的維護及成本造成衝擊. Although PROM and EPROM devices are inexpensive, the cost can add up if a large volume of shipped systems is in the field. 
    Embedded system 中有兩種記憶體區分; 一種是 ROM , 另ㄧ種是 RAM. ROM 是 Ready Only Memory 的縮寫 , 其特性是資料不會因為 external power source 被移除後而消失. 通常是 programs and constants 的儲存區, 常見的ROM 種類有, Mask programmable ROM , EPROM ( Erasable Programmable ROM ) , EEPROM ( Electrically Erasable Programmable ROM ) 以及 Field Programmable ROM , Flash ROM 等.  更詳細的解釋請參考wiki的網站:. Ready only memory (ROM)
而 RAM 是 Random Access Memory (隨機記憶體)的簡稱, 其功能與 ROM 的功能不同, 其記憶體可以 read/write randomly. 常見的有 dynamic RAM, static RAM 及 non-volatile  RAM , 其詳細分類可見  RAM 分類 .























    No comments:

    Post a Comment