2013年3月8日 星期五

Keep Walking (1/2)


I'm a software engineer, my profession is developing software which is based on a operation system (OS) such as Windows, Linux or Android. But now, a new challenge comes to me: driver porting.

My company is a IC module supplier, these modules can drive Bluetooth and WiFi to work correctly. Most of our customers come from OEM or ODM, which produces automotive software systems. These systems can play music, video, and some of them can do navigation and so on.

Bluetooth comes with the raising of smart phones that have a great growth.Today,  people often connect their smart phone to a automotive software system for playing music and holding a hand-free phone. However, acoustic echo cancellation (AEC)is the potential technical issue when people want to use a hand-free phone in a car.

What is AEC? AEC is a process to cancel echo caused by far-end signal on a telephone call. For example, when a person uses a hand-free phone in a car, speakers of a car will play the voice of far-end user. At the same time, normally, a microphone in the car would receive the sound from speakers. Thus, the far-end users would heard their own voice. In this case, an AEC is needed in a automotive software system to remove echo.

A view of AEC
(Photo from http://lakeofsoft.com)


As you know, we are a Bluetooth IC-module provider, obviously our AEC solution is included with our Bluetooth module. This solution we called a "hardware solution". A hardware solution is efficient and easily porting, but the disadvantages are expensive and hard modification. For market reasons, in recent years we begin to provide solutions implemented with software (i.e. a software solution). One of them is development based on Android, and it is my job.

After one half year hard working, several projects start using software solution based on Android. For some reasons, my boss might want to give me more training, then last month he assigned me to join driver porting team.

So, what is driver porting and why it is a new challenge for me? The purpose of driver porting is to deploy a device driver in different operation systems and make it work. Further more, even using the same O.S., different system architectures need different driver configurations. For example, you need different driver installed on your MS Windows and Apple Mac. We can say driver porting is the first class that a module supplier want to sell their products to any customers.

An automotive software application


However, driver porting is a work that are more close to hardware but far away developing a system middle-ware. A engineer wants to do this work well who need to read data sheet and to check many hardware specifications. That's really my shorts. But... so what? I'm very glad to accept this assignment! :)

<<    1    2    >>

O.T.

沒有留言:

張貼留言