您的当前位置:首页正文

基于ARM的音频播放器设计外文文献

2022-11-25 来源:步旅网
Design and Implementation of a Table-based GUI

for MP3 Players

Ying-Wen Bai and Fu-En Tsai

Abstract— In addition to the two present methods for

system control programming mechanism of MP3 players, appear to have a different user interface? How can an engineer quickly and efficiently reach the different user due to the marketing competition of MP3 players, there is a need for a fast GUI design for various customers. The first method stores only the boot code in the ROM of the controller. The main program is stored in the NAND flash which includes the initializing program code. As long as the initialization is completed, the program code will be loaded into the system from the NAND flash. The advantages of this method are that the main program can update the GUI anytime and provide more flexibility. However, the chip area will increase due to the need of RAM for storing the program. The second method is to store the main program into the ROM of the controller, by which this design does not need to use an extra RAM in order to save the chip area. However, when the main program is once stored into the ROM, the function of the MP3 player can not change any more. In this paper, we propose a table based GUI design which provides a fast way to obtain the different programmable GUI from the prestored NAND flash. A couple of tables are used to support various customer GUIs, such as, a command table for the basic operational procedure, a display table for the basic display components, a manual table for the basic function of the MP3 player and a key table for the key function used with the MP3 operation. These tables can be prestored in the NAND flash module. When users turn on the MP3 player, the main program of the MP3 player will load in the customer required tables. Hence, by using our design, a different set of these tables will provide users with different GUIs even if the same chip set in the hardware modules is utilized1.

Index Terms — Table-based GUI, MP3 Player.

I.INTRODUCTION

According to marketing reports, the portable compressed audio (MP3) player market continues to surge, led by the portable flash player category which is expected to increase from 26.4 million units shipped worldwide in 2004 to nearly 124 million units in 2009 [1]. Hence, a lot of companies are actively involved in the MP3 industry, but now the difference in making products is becoming more and more important. The products differ in their “functions”, “appearance” and “user interface” How can a MP3 player

1

Ying-Wen Bai is with the Department of Electronic Engineering, Fu Jen Catholic University, Taipei, Taiwan, 242, R.O.C.(e-mail : bai@ee.fju.edu.tw)

Fu-En Tsai is a graduate student of Fu Jen Catholic University, Taipei, Taiwan, 242, R.O.C. (e-mail : ryan.tsai168@msa.hinet.net)

1-4244-0216-6/06/$20.00 ©2006 IEEE

interfaces?

Usually, a MP3 player design of reaching different user interfaces can be classified into three methods as shown in Fig. 1. The first method uses an inside ROM preserves boot code in controlling the chip, and leaves the main program in NAND Flash. The program controls and only preserves and initializes necessary the procedure yard systematically within the chip. The procedure is divided into when it will reach the NAND Flash. After initializing and finishing, the block is written into the system. The major advantage of this method it is update the user interface at any time for the main program. Also, the function elasticity is very great. But the shortcoming is the program needs to use RAM to preserve the procedure within the chip, resulting in an increased chip area [2].

The second method is to plant the whole procedure into a controller in the main chip, which does not need to use RAM to preserve the procedure externally, thus saving the chip area as the ratio between the RAM and ROM is 8. However, the shortcoming is planting the control code into the ROM chip, which is unable to upgrade again. That is to say that this method can only support a certain specific function, namely pictures or a button. Functions shown are all unable to be modified again after chip fabrication [3]. MP3 controllerMP3 controllerMP3 controllerBoot ROMMain programMain programMain programSpecialize table+Font+FontFontNAND FlashNAND FlashNAND FlashMethod 1Method 2Method 3Fig. 1. The three design methods of MP3 players for realizing the GUI.

This paper proposes a third method, which has the advantages of a combination of the two present methods. This method regards the procedure structure of the ROM base as the prerequisite, and utilizes the NAND Flash to pass the USB renewable characteristic at any time, so the designer can leave the information content as a picture shown in NAND Flash, which can make specific display information by using NAND Flash after the system starts the machine, which then reconfigures into a new operation interface. Thus, even by planting the control procedure into

A.Command Table

Table II shows the order of collection to start the picture displays; each one of the commands likes a painting brush to a controller chip, one can still load the differently designed GUI tables from the NAND Flash. Hence, the designer can provide a different display interface, the different button assignments and functions, and also offer the multiple GUIs of a MP3 player even using the same chip set [4, 5].

Section 2 introduces the data structure and the operating detail of the command table, the display table, the key table and the menu table. In addition, these five tables provide the basic guidelines of the system operation including the kind of key functions and how to change the display. Section 3 shows the implementation results which include the the display table is decoded, and show on the screen. Every entry of the display table will tell whether the procedure will connect to the next display table. If the connection of the display table exists, the connection will be repeated based on the previous procedure. Other the other words, if the connection of the display table does not exist, the display information of the screen will be terminated.

different GUIs, the table sizes and the accessing speed for our design. Section 4 draws a conclusion.

II.DESIGN AND IMPLEMENTATIONF

In order to provide a user interface with different ways

and characteristics, the button assignments and the button functions, we create a mechanism based on the Table interpretation to create various kinds of user interfaces and

to set the function definitions of the buttons. Table I shows

the basic functions of the command table, the display table,

the key table, the menu table and the system table [6]. TABLEI

THE BASIC FUNCTIONS OF THE COMMAND TABLE, THE DISPLAY TABLE,

THE KEY TABLE, THE MENU TABLE AND THE SYSTEM TABLE

Table Types Functions

Command table Show command selections.

Support the different size of the screen.

Display table Offer different information to show the position of the figure.

Offer different holding/shut-down picture.

Menu table Offer different functions to select the single order to adjust.

Key table Offer different quantity of buttons.

Offer different button function associations. Support different LCMs and driver ICs. System table

Offer multi-language selections. Establish systematic initial value.

Through the combination of both a display table and a

command table, Fig. 2 shows the control procedure for

showing a GUI on the screen. Get command offsetGet 1'st record ofdisplay tableDecode the recordGet next record ofdisplay tableDisplayNext recordof display tableYNStopFig. 2. The flow chart for showing a GUI picture

The main program will access the display command first, and then find the first record of the display table from the command table. The record content, 8 Byte, taken out from draw a block of the pictures. Each command defines the position expressed with 2 Byte of its affiliated first display

table well in advance, after starting in order, the procedure F

will read the content of the first field of the display table (8 Bytes), decoded by this content, the control program can

know which kind of picture information will be shown and will be connected to the next display table. The control FF

program can draw the whole picture in a connection order of Fblocks. A certain mapping relationship will be verified

between the block information and the possible picture

displaying [6].

TABLEII

THE COMMAND GROUPS

MP3 command group GUI command group

MP3_PLAY_ILE_NAME MENU_MAIN_MENU MP3_PLAY_LYRICS MENU_MP3_ SETTING MP3_PAUSE_ILE_NAME MENU_VOC_ SETTING MP3_PAUSE_LYRICS MENU_M_ SETTING MP3_PAUSE MENU_EQ MP3_STOP MENU_CONTRAST MP3_ORWARD MENU_REPEAT MP3_BACKWARD MENU_BACKLIGHT MP3_NEXT MENU_LANGUAGE MP3_PREVIOUS MENU_SLEEP MP3_UPDATE_TIME MENU_SD_LASH MP3_REVERSE_TIME MENU_DELET MP3_HORSE A typical MP3 player provides the selection of the songs

shown on the screen including, the song quantity, the

playing time, the song name, the lyrics, the singer, the

sample frequency, and the sound of environment. In

addition, the battery capacity and the circulation way will be set, so we need express the operation contents of each selection in the display table. The display tables show how to build and construct a set of methods to display the picture

effectively. Some information in the display table used by the control program control the action in order to show all the blocks in the whole screen. Example: MP3_PLAY_FILE_NAME: This operation order of the MP3 player shows a set of blocks by the

program name With this connection order, the control program will show the information from left to right. In this example, the system shows the state of the battery, the SD cards, the circulation way, the A-B circulation, the locking with button, the function way, the file name, the compression ratio, and the sample frequency. Fig. 3 shows 13 pieces of information which are consists of 13 entries in the display

tables.

Battery statusSD card Repeat modeA-BrepeatLock Function mode Track number Play time File name Play Icon Bit rate Sampling rate EQ mode Fig. 3. MP3_PLAY_FILE_NAME picture shown according to the command table.

B.Display table

The display table as shown in Table III includes many elementary cells that represent the each basic part of the GUI picture. The elementary cells describe mainly the position of the GUI picture on the screen, which the contents are stored in NAND Flash and the connection for the next entry of the display table. We have designed the display table to meet the demand of the GUI pictures; the control program only needs to follow the predefined rules to confirm the meaning of the content of each field in the table [7].

TABLEIII

A RECORD FORMAT OF THE DISPLAY TABLE

1 Byte

1 bit

2 Byte 1 Byte 1 Byte 3 bit 1 bit 1 bit0=Start Contrast Display bitmap address stop area

File name reverse

0=code 1=Code Length Cell size Shift

0=nextname textname

pixel

non-reverse

1=

1=reverse

end Table IV shows the record format of the display table stored in NAND flash and it takes space of 8 Bytes.

TABLEIV

THE FORMAT OF THE DISPLAY TABLE

Byte 0 Display area code name

1

Byte 1 Bitmap address offset/Text item low order byte

0

Byte 2 Bitmap address offset/Text item high order byte

0

Byte 3

Display length

5Byte 4

Cell size 0

Byte 5 B/T Shift Pixel Reverse Stop Reserve Reserve 0 0 0 0 0 0 x x

Byte 6 Reserve Byte 7 Reserve

1)Cell size We regard the whole picture as a piece of drawing paper, which we cut it into different sizes of the same cells according to the demand, and entrust a serial number to each demand. As an example, the display screen of 128x64. If the GUI picture was not finished with the cutting apart of cells, the screen which will show 128*64 =8192 dots, which will be comparatively complicated when the position of each

primitive component is arranged. When the whole picture is cut into a small block or, a cell with dot matrix size of 8x8, the whole picture will be turned into 128 blocks, and will be comparatively simple to manage. The information for the position of each block can consist of several cells on the screen [8].

We use the length of 1 Byte to define the size of different cells, so our design can define 64 kinds of different cell sizes at most as shown in Table V.

TABLEV

AN EXAMPLE OF THE CONTENT OF THE CELL SIZE

Code

name

Cell size Representation

0 8x8 Cell size 1 16x16 Cell size 2 16x12 or lyrics 3 16x8 For half a shape word 4 16x16 For the whole shape word

We can insert the code name in the cell size field of the display table. This control program can be used to judge the cell size and used to divide the whole picture into small blocks.

2)Display area code name

The display area determines the information shown in the block or cell position on the screen. After dividing the whole screen into cells with the same size, one can begin to define the block information showing that the block can be made F

up of several cells, Fig. 4 and Fig. 5 show mapping relationship between the display position and the battery symbol.

Fig. 4. The battery display position CCCCCCCCCCCCCCCC0123456789101112131415P011110 0 0 0 0 0 0 0 0 0 0 0 P111110 0 0 0 0 0 0 0 0 0 0 0 P20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fig. 5. The battery display position In our design, if the battery block has 8 cells in the upper left corner, then we fill out the value of these 8 cells as 1 as shown in Fig. 4, and the others are all filled out as 0. Table

VI lists all positions of the blocks that need to be shown one by one via such a predefined layout. We use the length of 1 Byte to define different display area code names, At most, we can define 64 kinds of different display area code names. Our design provides one display area with 32 Byte in NAND Flash, but the current design only uses 16 Byte. The unused part is filled by 0. Later, we can define all kinds of display areas according to the whole picture shown on the screen. TABLEVI

DISPLAY AREA CODE NAME

No. Expressing value comment

0xf0,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,

battery 0

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

We can insert the code name in the display area code Fig. 6. [MP3 ] occupy 64 Bytes in the storing memory

name field of the display table, and the program can interpret this field and then show the information in the 6)File name Shift pixel

As shown in Fig. 7. The field “File name’, has the correct position on the screen. 3)Bitmap/text

Fig. 3 shows the information with 1 bit to determine the regular appearance or the modification.

Bitmap (regular): This field will vary after it is established by the users, such as, “SD card”, “Repeat mode”, “A-B repeat”, “Lock”, “Function mode”, “Play Icon” and “EQ mode”, the field can be controlled from the buttons by the users.

Text (modification): The program interprets this information. For example, there are “Track number”, “Play time”, “File name”, “Bit rate” and “Sampling rate” from the MP3 file.

4)The initial position of the picture

The Bitmap field offers the initial position in the data structure of the picture. Table VII shows the 2 Bytes for the initial position of its contents; one grade of distance per unit is 512 Bytes.

TABLEVII

THE INITIAL POSITION OF A BITMAP PICTURE

Start address Information 1ΰ0x0000α[MP3] 2ΰ0x0001α[VOC] 3ΰ0x0002α[ FM ]

By using the display layout, our design is ready to be set for all bitmaps in accordance with the real information length and the initial position.

If the information is text, our design must tell which kind of format will be used. Table VIII shows the type of the text format that may appear in the display.

TABLEVIII

THE TEXT TYPE OF THE DISPLAY INFORMATION

Start address

Type

0 track type 1 : X 1 track type 2 : 0X 2 track type 3 :00X 3 time type 1: XX:XX

4 time type 2 : XX:XX:XX

5 total number of songs type 1:XX 6

total number of songs type 2 :XXX

For example, the track type can be divided into the display type attitudes. A figure number can be displayed in

an appropriate size according to the real display by the

designer.

5)Length The field, “Length” with 1 Byte shows the bitmap information for the initial position in the storing memory. In

addition, the cell is one grade of the unit of distance.

Fig. 6 shows the “Function mode” that uses the size of 8 cells, so its content length can be 64 Bytes.

function that is moved left. The operation is displayed to show the intact file name slowly. The next picture then moves several pixels to a new place and is displayed once again. In this design, we use 3 bits to represent the moving speed.

Fig. 7. The moving pixel of the File name

7)Contrast reverse block

While using the suspending function, our design can offer the flashing picture as shown in Fig. 8, which needs 1 bit to reverse block contras.

Fig. 8. Flashing the picture during the suspending function

8)Stop or continue

This field, 1 bit, determines whether the Display Table is to continue to connect to the next one or not. Our design offers a procedure to show the first position of the table and the connection mechanism.

C.Menu Table

The picture will present various kinds of function list when push menu key, as shown in Fig. 9. Table IX is the inventory of menu function, which functions can make the use of Menu Table and choose to adjust the order that the function appear.

Fig. 9. The beginning of the operation interface when the menu selects

TABLEIX

THE SUMMARY OF THE MENU INTERFACES

No. Function No. Function 0 main_menu 8 mp3_eq_menu 1 volume_menu 9 mp3_repeat_menu 2 setting_mp3_menu 10 mp3_contrast_menu 3 setting _voc_menu 11 mp3_backlight_menu 4 setting _fm_menu 12 mp3_sleep_menu 5 line_in_rec_menu 13 mp3_language_menu 6 mp3_delete_menu 14 mp3_memory_select_menu 7 mp3_information_menu Number 0 positions among NAND Flash is the first entry of the menu table, which remain an option function if the

system needs any permutation. Each entry of the table describes its functions; in the real menu table and the

relations between continue layers by using 5 Bytes, as shown in Table X.

Press_long : not_ available Press_long_release : not_available X X E.System Table TABLEX

WHILE STARTING MENU KEY, MENU TABLE FORMSThe system can establish the initial value in the system

No.0 CMD_MENU_MAIN table for the operation, which can roughly divide the parts

Example comment for USB, LCM, the system operation and language selection Current_Dsp_

cmd_menu_main Show the order at present. as shown in Table XIII, by which each field has 1 Byte as Command

Current_Func_Code menu_func_mainmenu Function order at present the unit.

Go back to go to the USB part: It offers the communication channel from a PC Current_Esc_Return_

Address_Index not_avaliable position of one previous layer.

Sub_Menu_Start_

Enter the position of the Address_Index 2

next layer. Function_Disable_

Item

not_avaliable Used only MAIN_MENU D.Key Table In this design, we offer nine buttons as shown in Table XI that customers may select. The designer can adjust the

numbers of buttons, the button functions in a specific design and our design can provide the proper mix in the key table

F

FFas shown in Table XII. TABLEXI

THE FUNCTION DEFINITION OF EACH BUTTON

PNo. Function 1 On/Play/Pause/Stop/Off 2 Menu

3 Left/Previous/ast orward

4 Right/Next/ast Backward 5 Volume up / Increasing progressively 6 Volume down / Decreases progressively 7 A-B repeat / Recorder 8 Mode

9 Lock

Each button has a defined state (Play mode, Stop mode,

FM mode, Menu mode). The behaviour of each button is divided according to the different press types, such as, short press the 1st time, the 2nd time, the 3rd time, and the long press for the button. Each kind of button behaviour is represented by a field with 1 Byte, so each one key table accounts for stored memory with 20 Bytes for 20 buttons.

TABLEXII

THE FORMAT OF THE KEY TABLEExample Comment PLAY_mode Press_short_1_times : kTbl_FUNC_PLAY Play function Press_short_2_times : kTbl_FUNC_PAUSE Pause function Press_short_3_times : not_ available X Press_long : kTbl_FUNC_STOP Stop mode Press_long_release : not_ available X STOP_mode Press_short_1_times : kTbl_FUNC_PLAY Play mode Press_short_2_times : not_ available X Press_short_3_times : not_ available X Press_long : kTbl_FUNC_POWEROFF Power off Press_long_release : not_ available X FM_mode Press_short_1_times : kTbl_FUNC_FM_CH Channel skip Press_short_2_times : not_ available X Press_short_3_times : not_ available X Press_long : kTbl_FUNC_POWEROFF Power off Press_long_release : not_ available X MENU_mode Press_short_1_times : kTbl_FUNC_MENU_ESC Escape menu modePress_short_2_times : not_ available X Press_short_3_times : not_ available X end and shows this icon on the screen for the benefit of the customer. LCM part: It offers the device driver of different LCM

ICs, and different settings for different ICs. System part: It offers the initial value in the system

setting for the operation. The user can choose one after establishing and starting the machine directly from the form.

Language part: It offers multi-language selections and the default selection. TABLEXIIITHE FORMAT OF THE SYSTEM TABLE

arts Description Initial Values Descriptor ActVision-AV7007 USB

Vender_ID Mp3Drive Product_ID ActVision Inc LCM_Driver ID 1 LCM LCM_Contrast 30 LCM_BrightnessMin. 0 LCM_BrightnessMax. 63 BackLight_Offtime 2_SEC Sleep_Time 5_MIN Menu_Recover_Time 8_SEC System Runing_Horse_Time 1_SEC Volume 14 Repeat_Mode REPEAT_ALL EQ_Mode NORMAL Language_1_start_code A140 Language

Language_2_start_code 0 Language_3_start_code 0 Default_ Language LANG_BIG5 III.IMPLEMENTATION RESULTS

After we have implemented the table based design, we do not need to change the control program and we can provide various system display results as shown Fig. 10, by which the GUI can show the adjustment of the size, the position and the form of the information that can be selected. The MP 3 player can produce different vision of GUIs based on the modification tables in NAND Flash.

Design 1

Design 2

Design 3 Design 4

Fig. 10. The different GUI interfaces based on the table design

Overall, the table-based method can provide the adjustability of the picture. The storing memory space for the table design requires about 117 KB including the command table; 0.5 KB, Display, 114 KB (includes Display area 2 KB, Display table 25 KB, Bitmap data 87 KB); Key table, 0.5 KB; Menu table, 0.5 KB; and System table, 1.5 KB. If the NAND Flash of a typical MP 3 player is 256 MB, the table size only accounts for 1/2000 of the storing device space; thus impact on the user is very light. The access time to read all tables are the command table (2 Byte) about 0.996µsec; the display table (2 Byte) about 0.996µsec; the key table (20 Byte) about 9.96µsec; the menu table (5 Byte ) must be written into the procedure (63 Byte ) about 31.37µsec in advance while starting the machine to about

2.49µsec in the system table. The picture consists f several

display tables, decodes one display table and only needs to spend 53.78µsec under the 6MHz system clock, Thus this design will not be felt by the user to be too slow.

Table XIV shows a comparison table of the three kinds of methods. Our design has more advantages with its GUI, with its low cost and with its fast realization.

TABLEXIV

THE COMPARISON AMONG THE THREE METHODS

Method 1

Method 2

Method 3 (Our design)

The RAM size of the control Large Small Small program The probability of loss code Large Small Small during turn on Changeable GUI Yes No Yes Medium Long Short The time for (Modifying (Modifying (Modifying modifying GUI from the main from the mask from the of MP3 players control set of the chip table on program)

fabrication)

NAND flash)

The cost for modifying GUI Medium Much Little

of MP3 players

IV.CONCLUSION

Because the basic functions of MP3 players are similar,

every manufacturer tries to offer different GUIs and showing the adjustable interfaces to attract consumers. So the main purpose of this paper is to emphasize that, under the architecture of ROM based models, if the GUI has been planted into the chip, there is no other way to alter the GUIs to satisfy the different customers, unless, the original designer provides different ICs and makes this product again

and must pay additional cost. But if one utilizes the table method that can offer various GUI designs when the main program interprets the different table contents, which can achieve the goal of altering the GUIs fast and at a low cost. The present stage of the finished the design and the implementation provides the designer with a way to verify the different GUIs with respect to the contents of tables. The designer then can finish the renewal of a GUI. The future models hope to design the Window interfaces for Taxi drivers. The design need to transform the contents shown into the user's picture form by the way of pulling, and the input NAND Flash as the conversion of the procedure content. The design can simplify the GUI setting and save the designer time when finishing the design process. REFERENCES

[1]http://www.idc.com/getdoc.jsp?containerId=prUS00256605[2]http://www.sigmatel.com/[3]http://www.ect.co.kr/[4]Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E.

James Whitehead Jr., Jason E. Robbins, Kari A. Nies, Peyman Oreizy,

and Deborah L. Dubrow, “A component- and message-based architectural style for GUI software”, IEEE Transactions on Software Engineering, Vol. 22, No. 6, pp. 390-406, June 1996.

[5]Tun-ichiro Watanabe and Isshuu Nakajima, “Moving-Icon-Based GUI for Accessing Contents at Ease on Mobile Phones”, 2005 Digest

of Technical Papers, International Conference on Consumer Electronics, pp. 431-432, Jan. 2005.

[6]D-Major™ MP3 AUDIO FLASH PLAYER APPLICATION, 5-APBR3-7, 0-120303.

[7]http://www.samsung.com/Products/Semiconductor/NANDFlash/index.htm[8]

http://www.ritdisplay.com/Ying-Wen Bai is an associate professor in the Department of Electronic Engineering at u-Jen Catholic University. His research focuses on mobile computing and microcomputer system design. Ying-Wen Bai obtained his M.S. and Ph.D. degrees in electrical engineering from Columbia University, New York, in 1991 and 1993, respectively. Between 1993 and 1995, he worked at the Institute for Information Industry, Taiwan. Fu-En Tsai is currently studying toward the M.S. degree in Electronic Engineering at Fu-Jen Catholic University, Taiwan. His received his BS in electronic engineering from Lunghwa University of Science and Technology, Taiwan, in 2002. He serves as Deputy Manager in ActVision Corporation, Taiwan. His major research is focus on consumer electronics products and system integration design.

因篇幅问题不能全部显示,请点此查看更多更全内容