170 likes | 283 Views
Thesis presentation 9.6.2009 Author: Mathias Nyman Supervisor: Professor Riku Jäntti Instructor: D.Sc. (Tech) Konsta Karsisto. Implementation of cellular type approval software for an open source embedded device. Content. Background Requirements Research aspects
E N D
Thesis presentation 9.6.2009 Author: Mathias Nyman Supervisor: Professor Riku Jäntti Instructor: D.Sc. (Tech) Konsta Karsisto Implementation of cellular type approval software for an open source embedded device
Content • Background • Requirements • Research aspects • Cellular type approval, device hardware and software stack • Implementation • Software testing and quality • Conclusions
Background • Since 2005 Nokia has released a line of Linux based mobile Internet tablets. • Tablets lack cellular connectivity, and therefore all cellular related type approval software. • Task to implement cellular test cases to the existing type approval software used in Internet tablets. • Should be tested and run on a prototype device with added cellular capabilities
The Internet tablets • 770 N800 N810
Requirements • Control cellular functionality, such as: • Dial/answer calls without audio routing • GSM/UMTS/Dual mode • Packet data settings • Network selection, list available operators • SIM card status • Device may not be connected to any external device during testing. Software and user interface must be run on the device itself.
Research aspects • What hardware and software interfaces are available to control the cellular engine? • Designing the software requires knowledge about the intended usage. How are type approval tests conducted, what is the purpose and who will perform them. • Ways to ensure sufficient quality and reliability. Understanding and planning testing
Cellular type approval • Type approval required before allowed on market. • CE mark in European economic area • Type approval testing done in-house after each HW iteration. • Interoperability (IOP) • Electromagnetic compatibility (EMC) including emission, immunity and ESD
Device hardware • Two separate engines with their own processor, RAM and flash memory • ARM based Application engine, cellular engine considered black box. • SSI interface connecting the engines
Software stack • Software stack to control cellular engine • D-Bus IPC • cellular software daemon (CSD) • ISI/Phonet • SSI driver in Linux kernel • Most of the required functionality could be implemented using the D-Bus interface
Implementation • ARM based, maemo provided SDK, written in C • D-Bus IPC interface satisfactory for most cases • Blocking functions used mostly, D-Bus signals used for cellular initiated communication • Network selection required more elaborate D-Bus usage including both blocking and non-blocking calls
User interface • GTK based, graphical UI. Common in Linux distributions • Touchscreen as input • Usability not key concern as the software is only used in type approval testing laboratory by a few in-house engineers. Can be trained
Software testing and quality • Unit testing by developer with D-Bus monitoring tools • Integration testing done top down, depth first during development by developer • Regression testing started late • No recovery, stress, alpha or beta testing. Nature of the software and its usage unnecessary • Validation testing in type approval laboratory by customer
Conclusions • UI turned out quite intuitive, positive response. • UI and cellular control should be developed separately • Open source benefit: ready examples, on-line documentation • Testing resources should be allocated from the start of the project
Software delivery in time prioritized over usability and reliability • Performed well in type approval laboratory testing. All required tests could be run after a couple of iterations • Time consuming network actions must be non-blocking. Asynchronous callbacks