Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון...
-
date post
20-Dec-2015 -
Category
Documents
-
view
230 -
download
0
Transcript of Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון...
![Page 1: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/1.jpg)
Performed by: Yair Sommer Rea Yeheskel
Instructor: Idan KatzCooperated with: Motorola
הטכניון - מכון טכנולוגי לישראל
הפקולטה להנדסת חשמל
Technion - Israel institute of technologydepartment of Electrical Engineering
Mid semester presentation
SW application for Motorola g20 cellular engine - Design
24 May 2004
1 High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
![Page 2: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/2.jpg)
Background:
AbstractHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
- Each operation requires an Input using AT commands.
- During the integration process, customers need to spend time for accessing and using the cellular engine interfaces.
- g20 cellular engine supports various operations. (sms, data transmission, voice, stk, etc.)
- There is a need to reduce the “Time to market”.
![Page 3: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/3.jpg)
AbstractHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Project Goal:
Writing a SW API Layer, with a GUI application for the g20 cellular engine.
(The SW API will be a customer reference for the way code should be written during the development of their applications.)
![Page 4: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/4.jpg)
Design GuidelinesHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
- Parallelism – Allow several functionalities at once(example: execute AT commands while waiting for input on the GUI).
- Minimal number of threads - to optimize memory use.
- Respond/alert user in case of unsolicited events
- Customer Reference – Code must be very clear, short and simple.
- Simple Structure of program – a few layers, each layer has a unique role.
![Page 5: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/5.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
The Software will be implemented in The Software will be implemented in layers:layers:- Driver Layer – Handling the Serial Port I/O.
- AT Commands interpreter Layer – Executes commands using the Wrapper layer.- API Modules layer – Each module (SMS, voice, etc.) will include all functionalities required.
- GUI application layer.
- Wrapper Layer for the Serial I/O – interface from the Driver Layer To C language.
![Page 6: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/6.jpg)
Driver Layer
Wrapper Layer
AT Command interpreter/listener Layer
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
SM
SA
PI
Phone
AP
I
GPR
SA
PI
TC
P/U
DP
AP
I
STK
AP
I
More
g20
AP
I
Tes
tsM
odu
le
GUI Application
Layer Diagram:
Will be used as customer
reference
![Page 7: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/7.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
Driver Layer
- Handling the Serial Port I/O.
- An existing reliable layer which include all needed serial I/O operations.- Main Operations – Open/Close, Read/Write – From/To serial port.
![Page 8: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/8.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
Wrapper Layer
- Interface from the Driver Layer functions to C language.- Gives a C format to all serial I/O operations, using the driver Layer.- Will be used by the AT command interpreter layer.
![Page 9: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/9.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
AT Command interpreter/listener Layer
- Each API Module, calls various AT commands.
- Each AT command must be checked before being sent to the g20 (Valid input and parameters).
Problem:
- The situation in which each module is responsible for checking its own input is unwanted.
![Page 10: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/10.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
AT Command interpreter/listener Layer
- Gets an AT command and it’s parameters.
- Checks validity of the command and parameters.
- Creates the AT command String, sends it to the g20, and receives the result.- Returns the result to the calling environment.
- For each incoming result, checks if it’s unsolicited event, and notify the calling environment (additional return value).
![Page 11: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/11.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
AT Command interpreter/listener Layer
- While no AT command is executed, checks for unsolicited events. In case of such event notify the calling environment.
![Page 12: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/12.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
AT Command interpreter/listener Layer
Check parameters validity
Creates the AT command stringParameters
Sends the AT command and receive result code
Return unsolicited event flag , and event type
Return Result to calling environment
![Page 13: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/13.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
API Modules Layer
- Each type of operations (SMS, voice, stk etc.) will be
implemented as a separate module.
- Each module will have functions of its operations.
- The functions will create the sequences of AT commands and parameters, and will send each command to the AT command interpreter layer.
![Page 14: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/14.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
API Modules Layer
- This Layer will be used as customer reference for the way code should be written.
- A special tests module, will get a variant number of AT commands, execute them, and return relevant results to the calling environment.
![Page 15: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/15.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
API Modules Layer
2
Create sequences ofAT commands based
on parameters.
Operation types +
parameters
Sends the commands, Get Results, and returns them to
the calling environment
![Page 16: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/16.jpg)
General DesignHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
2
Driver Layer
Wrapper Layer
AT Command interpreter /Listener
GUI Application
API Modules Layer
GUI Application
An easy to use GUI, which allow the user to initiate all supported operations.
![Page 17: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/17.jpg)
System descriptionHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Multi Threading in the g20 Application SW:Multi Threading in the g20 Application SW:
The SW will include 3 Threads:
- GUI thread – Takes care of relevant screens in the GUI.
- Main thread – Service all GUI requests, Holds Current system info., Handle unsolicited events.
- I/O thread – Interacting with the g20, alerts the main thread about unsolicited events.
![Page 18: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/18.jpg)
System descriptionHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
3
GUI ThreadGUI Thread
- Takes Care of the relevant
screens in the GUI.- Gets input/data from the user and pass it to the main thread.
- Present relevant information (reception, status of memory, network settings, etc.)
GUI Thread
![Page 19: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/19.jpg)
GUI Thread
System descriptionHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
3
Main ThreadMain Thread
- Holds and reflects the current status of the system.
- Gets request for operation from the GUI process.
- Sends relevant operations to I/O thread and gets final results (Success,
Failure, relevant return values). - Gets information about unsolicited events, and handles them.
Main Thread
![Page 20: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/20.jpg)
GUI Thread
System descriptionHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
3
I/O ThreadI/O Thread
- Gets operations request and insert them to the operations queue (FIFO).
- Each operation in the queue, consists of
an AT commands sequence.
- In case of unsolicited events, notifies the main thread.
Main Thread
Operationqueue
I/O Thread - The sequence of commands is sent to the g20 through the interpreter layer.
![Page 21: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/21.jpg)
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
4
Driver Layer
Wrapper Layer
AT Command interpreter/listener Layer
SM
SA
PI
Phone
AP
I
GPR
SA
PI
TC
P/U
DP
AP
I
STK
AP
I
More
g20
AP
I
Tes
tsM
odu
le
GUI ApplicationGUI Thread
Main Thread
Operationqueue
I/O Thread
![Page 22: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/22.jpg)
ProgressionHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
5
In progress – Define final API modules to implement.
Done - Acquire knowledge for operating AT commands and getting signals through SW.
Done – Define final implementation and algorithms.
Done – Status Report
![Page 23: Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion](https://reader030.fdocuments.net/reader030/viewer/2022033021/56649d4e5503460f94a2dc85/html5/thumbnails/23.jpg)
Time TableHigh speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
5
1 Week - Find a reliable driver layer for RS232.
- Final Definition of each API module.
2 Weeks - Learn Regular Expression for use in AT interpreter Layer, and additional required
material.
3 Weeks - Code AT interpreter Layer.
2 Weeks - Code API Module.