SIMTech technical reports (STR_V10_N3_04_MEC) Volume 10 Number 3 Jul-Sep 2009 144 Design of a new IEC 61499-based embedded system development framework K. M. Goh, and B. Tjahjono 1 1 School of Applied Science, Cranfield University, United Kingdom Abstract – Developing an embedded software solu- tion can be time consuming and challenging. Tradi- tionally, embedded software is programmed manually in proprietary computer languages such as C, C++, Java and assembly languages. In addition, most of the embedded software design environments do not cater for both microprocessors-based and Field Program- mable Gate Array (FPGA) based embedded platforms. This paper proposes s a conceptual design of a new embedded system code generator framework which is based on the IEC61499 Function Block to address the code generation issues. This involves the design and testing of the framework through the development of a prototype. Keywords: FPGA, IEC 61499, Function block, Code generator 1 BACKGROUND An embedded system is a special-purpose, small size hardware device and software system commonly used in standalone products or added on to other equipment to enhance their functionalities. Examples include consumer products and industrial control equipment often found in manufacturing or aerospace sectors. By using embedded systems, both complexity and flexibility of equipment can be fulfilled mainly because embedded systems developers need to focus only on specific functions requested in order to opti- mise the solution. Developing an embedded software solution is a challenging task and can be time consuming espe- cially for non-software trained engineers such as control engineers. Most of the non-software trained engineers or stakeholders cannot participate in the design and development of embedded system. Tradi- tionally, software that runs on an embedded system is programmed manually in various proprietary com- puter languages such as C, C++, Java and assembly languages, and the executable file is downloaded onto the hardware. This means the developers of embedded systems have to be familiar with many proprietary computer languages to support multiple embedded platforms. However, these proprietary languages are not compatible with each other, making it difficult to reuse the source codes. For example, although C and C++ are similar, they are not fully compatible with some of the subset embedded computer languages like SystemC, HandelC, and SpecC. A formal method for various embedded systems platforms is therefore needed in order to facilitate a more effective and ef- ficient development of embedded systems solutions. The International Electrotechnical Commission (IEC) has proposed the IEC 61499 standard [1] which provides a modelling method aimed at manufacturing and automation domain experts. The standard allows encapsulation of control logic into function blocks that represent sequence of execution, based on process state, communication, control, event and dataflow using both networks and composite function blocks. Although the IEC 61499, to a large extent, has been endorsed by automation and manufacturing engineers [2], it does not address the lower level embedded system software issues such as the limited definitions in handling the low level code generation. The overall purpose of the work described in this paper is therefore to explore the use of the IEC 61499 as a formal method for embedded systems and to extend its capability to address the aforementioned issues within the embedded systems design frame- work. 2 OBJECTIVE The overall objective of this research is to inves- tigate how International Electrotechnical Commission (IEC) 61499 can be extended to address the lower level code generation issues, thus facilitating the de- velopment of embedded systems solution. The inves- tigation involves the design of the development en- vironment and testing the framework through the use of a proof of concept. The outcome has demonstrated that the framework provides a flexible development environment that could be use together with new or existing tools within the embedded systems devel- opment tool chain. 3 RELATED RESEARCH 3.1 Embedded System Environments Embedded systems are typically developed using Microprocessor, FPGA and Application Specific Integrated Circuits (ASIC) hardware platforms. Fig- ure 1 shows the different types of embedded systems development processes, design methodologies, tools and approaches for microprocessor, FPGA and ASIC.