International Journal of Engineering Trends and Technology (IJETT) – Volume 4 Issue 10 - Oct 2013 Design and Development of Embedded Multimedia Terminal G.Siddaiah1 , B.Chakradhar2 1 2 M.Tech, Dept of ECE, CMR College of Engineering&Technology, Hyderabad, AP-India, Asst Prof, Dept of ECE, CMR College of Engineering&Technology, Hyderabad, AP-India. ______________________________________________________________________________ Abstract: The embedded multi-media terminal was designed and developed, which using SAMSUNG Corporation's S3C2440 chip as core processor. Multi-media terminal is capable of storing and playing digital media such as audio, images, video, documents, etc. the data is typically stored on a hard drive, micro drive, or flash memory. Our Embedded project is to design and develop a low cost feature which is based on embedded platform for audio and video player, clock and other GUI interface. The product is be used as a remote multi-media communications platform for multiple applications areas. Our Embedded system uses ARM9 micro controller which is 32 bit controller. The audio and video files are given to the controller through Pen drive or SD Card. The controller process the information and given to Audio and video display unit. The main aim of our project is to design a Low Cost Multi media player to play the Video and Audio files from pen drive through USB device or from the SD card. The related output goes to Audio and Video display unit through Display drivers. Here we are going to use S3C2440 based micro controller to implement this project. Keywords- S3C2440 processor, NAND FLASH, USB DEVICE, AUDIO& VIDEO TFT DISPLAY UNIT ______________________________________________________________________________ I.INTRODUCTION: The rapid development of embedded chip technology, embedded system is becoming high-powered, multifunctional and allpurpose, which has had a significant impact on changing people's lifestyle and improving quality of life [1]. In the field of embedded system applications, Consumer electronics products are more potential, especially portable consumer electronics products. Based on researching embedded systems development technology, and on this basis, a set of low-cost Embedded Multimedia ISSN: 2231-5381 Terminal's solution has been proposed, which uses the most widespread and high capability/price ratio ARM9 chip as processor, and the solution can browse the popular format pictures, play popular format audio and video files. Through analyzing the functional requirements of system, we choose UP-NETARM2410-S embedded development platform based on ARM9 processor as hardware development platform, ARM-Linux and Qt4 as software development tools. http://www.ijettjournal.org Page 4428 International Journal of Engineering Trends and Technology (IJETT) – Volume 4 Issue 10 - Oct 2013 II. RELATED WORK: Embedded systems is the dedicated computer system, which concentrates on application and bases on computer technology, hardware and software can be cut as needed, applies to applications which have strict requirements about functionality, reliability, cost, size, power consumption. The development of embedded technology has experienced four stages roughly. The first stage is programmable controller system with the core of single-chip; the second stage is embedded system with the basis of embedded CPU and the core of simple operating system; the third stage is embedded system marked by embedded operating system; the fourth stage is embedded system marked by Internet. There are a little of differences on function and technology between embedded multimedia terminal and PC, but embedded multi-media terminal is embedded and in special environment, it has some of its own unique characters. a) From the whole, embedded multi-media terminal have diversification. The diversity of embedded devices determines the diversity of the system, which is equivalent to determine the diversity of embedded multimedia terminal. Thus, according to the needs of specific application, customizing embedded multimedia terminal is necessary. CPU. Therefore, Multimedia terminal applications must have a good efficiency, in order to achieve faster response speed and better playback. The development language of embedded multi-media terminal is Qt[3,4]. Qt is one of the most used programming languages that is used to develop GUI applications in embedded development platform. Qt is a symbol product of Trolltech, the latest version is Qt4.5, which makes a lot of improvement on high-efficiently and easy-to-use template container, advanced model/view function, fast and flexible framework for twodimensional drawing and editing classes, and has rich features. In addition to the desktop version of Qt, Trolltech has also offered embedded version, that is Qt/Embedded, which is a customized C++ tools development kit for a graphical interface and application development offered from embedded devices, and which provides a component programming mechanism of signal and slot, and many classes about a wide variety of graphic design, event handling, process control, and when the runtime requires very little system resources for running. Qt/Embedded applications can also be written directly to the kernel frame buffer [5]. Qt is particularly suitable for a graphics application system development platform under ARM-Linux by cutting to greatly reduce memory consumption. b) From the system, embedded multi-media terminal always runs in special circumstance. In order to save hardware costs, embedded systems usually use a lower frequency of the ISSN: 2231-5381 http://www.ijettjournal.org Page 4429 International Journal of Engineering Trends and Technology (IJETT) – Volume 4 Issue 10 - Oct 2013 III. FUNCTION DESIGN: ARM-Linux multimedia terminal hardware design is shown in Figure. A. System Hardware Design: ARM-Linux multimedia terminal hardware design CPU is Samsung S3C2440 adopts ARM920T-fabric chip, and up to 203MHZ frequency; LCD is Sharp's 8-inch 16bit true color TFT with the resolution of 640*480; Audio controller adopts IIS bus, and decoder chip is UDA1341; FLASH is SAMSUNG K9F1208 and reaches the capacity of 64M. B. System Software Design: This section of system software mainly consists of two parts that are ARM-Linux system construct and drivers programming. The former includes building an embedded cross-environment; design and implementation of bootloader, transplanting embedded Linux kernel, and implementation of the root file system, etc. The design of drivers programming includes keyboard driver, touch screen driver, LCD driver, audio driver, USB driver and other drivers. 1) Transplanting ARM-Linux Operating System ISSN: 2231-5381 The system adopts Bochuang's UPNETARM2410-S as target machine, and establishes cross-compiling environment by connecting target machine with host machine. Embedded cross-compiling environment usually was built on personal computer based on X86 Linux/X86 Windows. In comparison with Windows CE, Linux has many advantages as follows: support multi-tasking system of various processors, opens source, a small core easy to cut, strong transplanting. According to the above characteristics, we use ARM-Linux as a system software development platform. After building cross-compiling environment, it is necessary to transplant booting program boot-loader. Bootloader is closely related to hardware architecture, also is a short program which runs before loading operating kernel and application running, and completes the system's start-up and load. Boot-loader has two different operational modes: the first is boot-loader mode that is autonomous mode; the second is downloading mode. Under the second mode, the boot-loader on target machine downloads files from host machine through serial interface, network or other communication means. The files downloaded from host, at first, usually are saved to target machine RAM by boot loader, and then write to target machine's flash class solid-state storage device by boot-loader [7]. Here, the first model is mainly used to initialize the hardware devices and establish the memory space of the mapping table, further establish the appropriate hardware and software environment to prepare for calling to operating system kernel. The next step is to transplant Linux kernel. The kernel downloaded from the official website can not run directly in hardware platform. In order to transplant Linux, you http://www.ijettjournal.org Page 4430 International Journal of Engineering Trends and Technology (IJETT) – Volume 4 Issue 10 - Oct 2013 need to re-cut and compile kernel and program corresponding hardware-related code. The root file system is an important component of the Linux system, providing necessary library files, device files, system configuration files, etc. for Linux kernel's running. The system uses YAFFS2 file system according to the characteristics of embedded Linux system and hardware platform selected by the system. 2) Driver System call is the interface between operating system kernel and applications and device driver is the interface between operating system kernel and machine hardware. Device driver is a part of the kernel. Linux source is open and rich in the Linux world, so Linux kernel source tree has already provided support for this type of device driver. Therefore, we can do some necessary porting task on the basis of source [8]. C. Application Design Multi-terminal's graphical interface is designed in Qt Designer window environment, using Qt/Embedded 4.4.0 as underlying graphics library for generating the user interface, TSLlib 1.4 as touchscreen library. Qt is a cross-platform C++ graphical user interface library. Qt/Embedded is a version oriented to the embedded system version, and its most important feature is to make the signals and slots for communication between objects. Qt's widgets have many predefined signals and slots are a signal that can be invoked to handle specific functions. Qt's widgets have many predefined slot. A signal is fired when a particular event occurs, then the corresponding interested slot will call the corresponding response function. Multimedia terminal mainly consists of four parts that are photo browse module, video playback module, the calendar module and audio playback module. Multi-media play is ISSN: 2231-5381 the focus of this system, so player is very important. This paper will focuses on picture browsing module design, video playing module design and audio playback module design. 1) Pictures Browse Module Photo browse module development involves the 2D drawing system in Qt4, which is mainly supported by three classes: QPainter, QPaintDevice and QPainterEngine. QPainter is used to implement specific graphicsrelated operations. QPaintDevice is a drawing graphics device for drawing. QPainterEngine provides interfaces for different types of devices, and it is not opaque for programmer, so it choices the function between QPainter and QPaintDevice. Qt provides four classes dealing with images: Image, QPixmap, QBitmap and Q Picture. They have their own characteristics. Q Image optimized I/O operations, and can directly access and operate vertical pixel data; QPixmap is mainly used to display images on the screen; QBitmap inherited from the QPixmap can only express two kinds of colors; Q Picture can draw pictures through recording and playing QPixmap drawing devices. QPixmap mainly completes the screen back buffing drawing [9]. This program of image drawing is mainly achieved through function of Image Widget: painter Event (QpaintEvent *event). Slot functions prev() and next() achieve separately the picture forward loop function and backward loop function, with connect function associating. By getting information on picture path, the former picture or the next one can be achieved to read and shown. Slot functions zoom In() and zoom Out() achieve separately reducing and enlarging images function, with connect function associating. First, slot functions zoom In() and zoom Ort() are used to set up the picture scaling, http://www.ijettjournal.org Page 4431 International Journal of Engineering Trends and Technology (IJETT) – Volume 4 Issue 10 - Oct 2013 and then picture zoom is realized by scale() in Q painter which is Image Widget: painter Event (QpaintEvent *event) class. 2) Video Player Module The system achieves playback of the video through transplanting MPlayer. MPlayer is one of the best players on Linux, which can use many codes and support many kinds of output devices. MPlayer can play almost audio and video formats on the markets. This system chooses it as player and optimizes and transplants it. The optimizations is as follows: correct MPlayer's run-time aberration; achieve the normalization of keyboard events when running; adopt FFMPEG decoder developed under Linux system instead of MPlayer's MP3Lib floating-point audio decoding library because MP3Lib decoding is so inefficient and unsmooth when playing audio; pass control messages from GUI to back-end process through FIFO by using MPlayer's input option. After optimization, cross-compile and transplant MPlayer, then you can smoothly playback MPEG-1, MPEG2, AVI and other video format files. 3) Audio Player Module The system's Audio Player Module is designed by using open source FFMPEG [10] and Qt4. Q file Dialog class in Qt4 provides dialog box to allow user to select file or directory. Through inheriting this class and calling its get Open Filename function, the dialog box for opening the audio files and selecting files is established: Q string filename = Q file Dialog:: getOpenFileName (".", fileFiters, this); In this function file filters means file filters, the files can be read out only when they meet the setup in file filters. This function will return the selected audio file name and path to ISSN: 2231-5381 filename. The selected audio file selected is decoded and played by calling the open source FFMPEG decoder. IV.RESULTS: The system's testing environment is as follows: CPU: Intel Pentium 4 2.60G; Memory: 512M DDR ; network card: 10/100M self-adaptive Ethernet; serial port: RS232; host operating system: Red Flag's Asianux workstation 3. When video player plays test files, first define a “desktop file(Text V. desktop)” which includes the description of the procedure for the application, procedure icon and the name of the different languages. Save the executable sequencing as $QPEDIR/bin, and put the icon into $QPEDIR/apps/Applications/ directory. Then restart the Linux operating system in the target board, and start the player, the test video player running result is shown in Figure2, the test video player interface is shown in Figure3, Figure2 shows that the video files can decoding and playing successful. The video player's operation method is the same with the normal player, with the menu bar, display, control buttons, as well as play, pause, stop and other functions. http://www.ijettjournal.org Page 4432 International Journal of Engineering Trends and Technology (IJETT) – Volume 4 Issue 10 - Oct 2013 workstation 3 operating system and Qt/Embedded multimedia terminal embedded GUI has achieved an overall system design of multimedia terminal; display many pictures in the form of slide; Using FFMPEG library to decode and play audio and video files, supporting pictures in the form of such PNG, BMP, JPG format images, etc, audios in the form of such WAV MP3, etc., videos in the form of such MPEG-1, MPEG-2, AVI, and can automatically identify SD card or USB and other mobile equipment, and realize automatically playing back. REFERENCES [1] Wang Zheng, Lin Xiaochuan, Zhou YunLian, Ouyang Tianli. Design and Implementation of Multi-media Player System Based on QT4 & Linux [J]. Journal of Guizhou University (Natural Science Edition), 2009,(1):60-64. [2] Xie Huacheng. Research and Implementation of Embedded Remote Monitoring System [D]. Chengdu: Southwest Jiaotong University, 2006. [3] Trolltech. Qt Reference Documentation [EB/OL]. http://doc.trolltech.com/2.3/index.html.2004. [4] Trolltech.Qt/Embedded whitepaper[EB/OL]. http://www.trolltech.com/index.html.2006. [5] Blanchette J ,Summerfield M. C++ GUI Programming with Qt4, Second Edition[M]. USA: Prentice Hall, 2006. [6] Zhi-Ming Cai, Lu Chuan-fu, Li-Xia and so on. Versed in QT4 programming [M]. Beijing: Electronic Industry Press, 2008. V. CONCLUSIONS Using the economical ARM9 series S3C2410 processing chip, Asianux ISSN: 2231-5381 http://www.ijettjournal.org Page 4433