Post Job Free
Sign in

Engineer Design

Location:
Farmington, MI
Posted:
December 08, 2017

Contact this candidate

Resume:

Koorosh Hajiani

**** ********** #*** ****, ** ***84

(Mobile) 248-***-****

SUMMARY

Senior Embedded Software/Hardware Development and Design professional with a BSEE Degree and twenty years of experience in embedded related applications. My background includes automotive projects for Body Control Modules, Air Bag Control Module and ABS control module. Significant experience in real-time embedded software/electronics product design/development with experience in operating systems, communication drivers/ application, firmware, and flash programming/reprogramming software/hardware design and implementation. Lead software position in Body Module Controller for GM. Seeking a senior level software/electronics engineer position with the responsibilities of Leading product design and development.

SKILLS:

Leadership: Lead engineer of GM body controller (SATURN)

Hardware: ARM(M3/M4 cotex), MOTORROLA/ FREE SCALE,core architectures include 8051, MPC 5553(POWER PC), AVR, INFINEON, Microchip (PICS, DSPICS), Renesas, Ti, ARM CORE etc

Programming Languages: Assembly many, C

Operating Systems: schedulers, FreeRtos,Osek

Software Tools: QAC, PC-lint, PVCS, VECTOR CAN, Eclipse.

Emulators: LAUDER BACH, WIND RIVER, PIC, IAR.AVR and Some based on JTAG,UVision .

Compilers: Motorola,FreeScale and Intel, Tasking, Cosmic, GNU.,Green Hills,MPLAB,IAR,ECLIPSE

Laboratory Equipment: . scope and logic analyzer, Canalyzer and Canapy tools and ICE’s.

Communications: CAN bus, SPI,, RS232/485, I2C, J1850, LIN ..

Version control tools: PVCS,MKS,SVN,..Several other Repositories .

PROFESSIONAL EXPERIENCE

EMERSON : ANN ARBOR, MI 8/2011– Present

Senior Firmware Engineer

Scanview :

Project to use ultra sound wave to scan for the Breast Cancer where the Embedded part is responsible for positioning,timing, Temeperature control and communicating to a UNIX PC that is also processing the GPUs output.

The embedded board uses Kinities ARM cortex M4 / M0.

The Compiler use GCC, tool chain KEIL.

Worked on BSP(BOARD SUPPORT PACKAGE) and write /designed all the LOW-LEVELL drivers :

SPI DMA,UART DMA,A2D DMA, GPIO, PWM,BOOT LOADER….

NeuModx :

Project is to streamline medical diagnostic testing processes (based on PCR technology) .This project involves : A PC gui(Windows driven ) + Embedded( 4 ARM cortex M4 based boards) and a HAMILTON robot which communicate over the high speed CAN bus.

Responsible for the design and code for the embedded board software architecture + linker file+ make file+ lowlevel drivers including CAN, SPI DMA, UART DMA, I2C, A2D DMA,,Stepper motor drivrers,INTERRPTS (external and peripheral) BOOT LOADER,…etc. for a STM32F ARM coretex M4 with floating point coproccessor target.

For some of the embedded board the MDK ARM compiler was used and for the others Arm GCC was used.

Application code(embedded+ PC) is being written by third party consultants .

GM :

Design the low_level drivers and integrated Application stack for an Ethernet IP network consisting of 7 input node and a manifold (Numatic valves) using LPCC ARM7 core and STM32 (ARM CORTEX M3)Micro.(GNU Tool chain and GCC Make used).

Wrote the boot loader for the target STM32f205,using TFTP protocol to download

the image to the RAM and wite it to the flash. Additonally The boot loader is capable

of erasing and reprograming itsef.

LCD display driver/API (I2C INTERFACE STM32f205)

Cap Touch for a user functional buttons using PIC12LF552 MICROCHIP (did everything except the lay out)to be expanded to include 4 other CAP Touch buttons.

Bosch, Farmington Hills, MI 7/2006 – 8/2009

Senior Software Engineer

Ford:

Working on a prototype design of a PWM engine fan controller using the AVR based ASIC. The design includes: Make files, linker files, low level drivers, SPI drivers, A/D drivers and Interrupts. This design uses a simple PI controller to drive the BLDC motor.

(MMU handling)the external RAM interface remapping the Application sector in the Flash to the external RAM

Sunroof/Window lift code(Anti Pinch) to Mc9s12vr ASIC. All the lowlevel(Firmware), Bootloader code needed to be redsigned and rewritten . These include :

RS485,LIN, A2D,IO,EEPROM,TPM,SLEEP MANAGEMENT,LINKER modification,

INTERRUPTS,TIMERS…….

Write LIN/RS485(communication)drivers for the STM8A Micro(Slave node).

FORD:

Design and implementation of Emulated EEPROM Driver/Manager On a Bolero PPC micro for ford which uses two 4K blocks and flip flops between the blocks when one gets filled.

In house Bootldr (UART) design and implementation for Bolero PPC .This design sends the Binary file over USB and the Bootldr reads it as serial frames and downloads it to the flash.

CBC Chrysler:

Design and implement the current feedback diagnostic for the corner lights. a synching strategy is used to match the current sense output of the ASIC to the PWM output of the device. This strategy uses a timer interrupt, DMA/A2D hardware trigger mode and it is implemented on MPC5510/Bolero Micros.

Implementations of all drivers for the PWM Corner lights /Led drivers (including the SPI). the ASIC is MC3844x and uses SPI to interface with the host controller. the drivers are designed to turn/set outputs/duty cycles on /off, to report diagnostics. There is four devices daisy chained to provide a total of 20 PWM outputs that are capable to drive a bulb or an LED.

GM Volt:

This project composes of two parts: Charger and Motor Control, My focus is the Charger. The Charger Strategy is based on a Buck and Boost Switching Regulator topology. Design Responsibilities included realization of the strategy in terms of its overall Micro Controller based implementation. 3 Controllers are involved:

A Tiny Atmell to measure the heavy side current and voltages and dial the values via PWM for a second Micro that uses these value in the main Control loop.

A Dspicf33 MicroChip Controller which execute the main control loop of the charger and communicate with a third Controller via SPI.

A Star12 Freescale Controller that is the command micro and Commands all the set values for the main control loop via SPI bus this Micro is the interface between the charger module and the vehicle (CAN bus interface).

3 ground island one per Micro.

Implementation responsibilities:

Complete software design and implementation of the Atmel Micro (from the creation of the make file to all the drivers, interrupt handlers and the application (negligible) and the boot loader ) In short everything. Design and implementation of the Linker, Make file, startup, OS, Interrupt handlers, Communication driver, I/O/PWM driver and the boot loader and part of the application(computation of the RMS values of the AC current and voltages) for the Dspic Micro

Ford OCS (Occupant Classification Sensor)

Responsible for complete implementation of CAN Diagnostic (Candella configuration, Boot Loader Based on keyword 2000 protocol.

TOOL set used: CANOE,CANALYZER,CANDELLA

GM Project (RF Diagnostics)

Responsible for the firmware and low level drivers.

Design features :Target processor MPC 5553, REAL TIME CLOCK, CAN, external RAM, external 4 channel UART chip, internet drivers, RF transceiver, external FLASH CARD. This box downloads a configuration file sent via internet and collects data from the vehicle bus and transmits the result back to the customer FTP site for analysis Additionally the box is capable to reflash an s19 file(application) if need be.

GM Project (RF Diagnostics)

Responsible for complete design and implementation of the embedded interface board (ARM7) which communicates with a diagnostic Tool via RF (zigbee/802.11 Protocol).

Tasks included :I/O Drivers, OS, CAN/1708, I2C, SPI, SCI for Arm7 Microcontroller

The zigbee stack provided by a 3rd party (Amber).

RF Diagnostic Tool software resides on the PC and uses RP1210. I had no part in design nor implementation

Valeo, Auburn Hills, MI 7/2002 – 7/2006

Lead Software Engineer

GM Body Module:

Responsible for the firmware, low level drivers and receiving algorithm. Design and implementation of the software on the receiver side of the RKE system using an Asics consisting of the Renesas Micro and the Melxis receiver which recovers the BASEBAND/FSK signal from the transmitter and decode the Manchester encoded signal. This is a multi channel carrier frequency system where the receivers will be polling two frequency channel periodically. The software tasks implemented:

The firmware and low level drivers

Decoding strategy of the base band signal

Polling strategy

Design of the software Architecture including Class2/CAN physical and application layer interface, OS, Theft Deterrent, IO Drivers (Analog/Digital).

Design of the Software architecture for the Key Fob module.

Participated in preparation of RFQ for the product .Additionally assigned the various tasks among the team members and supervision of the progress of the team, conducted design and code review and requiring the team to respect The V CYCLE process such as design documentation, Peer review, Unit Testing and Validation.

Maintenance and managing the Version control of the software archive.

Finally Weekly and a no bar hold customer interface where all the bench mark both achieved and missed were discussed that resulted in Specification revision by the customer and also clarification of the misinterpretation of the specification by the software team .

RVS (Rear Vision System)

Research and Development

Worked on development of the RFQ and implementation of a prototype demo for rear camera in Lane Departure /Park Assist system in conjunction with the Hardware team.

The high lights of this project are :

Fish Eye Correction algorithm, FPGA to do all the video processing, Dual Port Ram.

SM Technologies, Shelby Township, MI 7/2001 – 7/2002

Lead Design Engineer

Working on the implementation of IEEE 802.11 complaint RF multi stations system.

Design and implementation of a cluster LCD display for time, Temperature (Fahrenheit and Centigrade), Oil pressure, Coolant temperature for VW Beatle.

Responsible for the design and development of a prototype communication card (FirmWare/HW). This card is to communicate to the ECU over the following links: CAN, J1850, SCI, SPI, C2D,

BDM, BLUE TOOTH.

The host controller is Motorola HC12, An external DUAL PORTED RAM chip which is used to communicate with the Chrysler handheld device, external FLASH (To log information from ECU).

In system flash programming of the card above.

Design and implementation of the programming Tool,

Incorporation of The CAN interface in the Chrysler handheld device.

Siemens Corporation, Auburn Hills, MI 3/1996 – 7/2001

Senior Design Engineer

Projects (Powertrain)

GM Premium V-Project (ECM)

Entire Design of the O.S (RTOS). This operating System is prioritized on the basis of Time and Event driven Tasks.

Design and implementation of the GMLAN application Software. In this implementation the ECU is the

The main gateway for Class 2 (low speed) bus and CAN (high speed) bus.

Responsible for design and implementation for management of the read/write accesses to a common RAM area of two micro controllers that communicate over the CAN bus.

Complete design and implementation (Specifications and Code) of all the Device Drivers, DDL and the Interaction Layer for J1850 (Class2). These are the low level drivers written in “C” and assembly that handle the Receive, Transmit, and Diagnostic functionality of the J1850 implementation. The interface device is Motorola 6850 used in parallel mode, and Memory Mapped (Production year 2003 North Star).

Complete design and implementation of CAN FLASH PROGRAMMING function. Also designed a tool (used by Siemens) that is capable of transmitting in. (Block Mode Transfer). This functionality is used to flash the Calibration and Application Code in ECU for Reprogramming.

GM Premium V-Project (PC M)

Responsible for complete design and implementation (SPEC and CODE) of the Hardware/Software interface/drivers and Handlers for CAN 2.0 on GM premium V-Project that combines two CAN Modules (each capable of handling 15 messages) internally, which does away with pull up resistors and decoupling capacitors, and additionally it frees two extra IO pins as compared to the old design.

Main Feature of the design is its Re-Configurable Bit Rates (1000, 500, 250, 100, 47, 6, 25kbps) @ 8, 16, 20, 24 MHz clock frequencies chosen by the user via calibration. BIT SAMPLE POINT and the Resynchronization Jump Width are programmable, with the resolution of 1% of the bit time. Implemented the complete CAN functionality (Receive handler, Transmit handler, Error management, status reporting, sleep/wake up management) in “C” for production year 2003 of North Star. Hardware design features: A single Differential Transceiver, EMC choke filter, and improved ISO spec.

Tools: Canalyzer, Canscope

Complete design and implementation of CLASS2 FLASH PROGRAMMING function. Also designed a tool (used by Siemens) that is capable of transmitting in (Block Mode Transfer). This functionality is used to flash the Calibration and Application Code in ECU for Reprogramming.

One of the requirement of this project was constant Customer Interface through which input from both sides were encouraged which in turn led to great deal of refinement in the finished product.

International (Navistar)

Powertrain

Responsible for implementation of an alternating receive only buffer on Navistar V8 which makes reception of two back-to-back messages possible without the controller having to schedule job orders. Special masking is used to allow for the reception of 8 different identifier messages in the same buffer (same physical address).

After specifying Hardware/Software requirements document for displaying Data Trouble Code, implemented DTC on the cluster for PT Cruiser and NEON 2000 model year in Chrysler V6 engines over the J1850 Communication Link.

Design SW/HW interface/driver for an I2C device (serial EEPROM) to latch certain parameters on the Key Off and restoration on the Key On.

Chrysler V6 Serial Communication (Powertrain)

After specifying Hardware/Software requirements document for displaying Data Trouble Code, implemented DTC on the cluster for PT Cruiser and NEON 2000 model year in Chrysler V6 engines over the J1850 Communication Link.

Designed and implemented all the SCI commands used in END OF THE LINE TEST By Chrysler.

These tests are performed in the plant just before the final test to ensure integrity of the ECU via a Hand Held Engine Diagnostic Tool using the UART for testing of different Software functionalities. The commands included RAM read/write, EPROM rd/wr, Memory Lock, Injector Test, Actuator test, module information request, return obd2 cal, sensors information request, fuel priming, DTC request, ROM interrogation switch, I/O status request, engine function enable/disable request, and fuel priming.

Breed Technologies, Farmington Hills, MI 8/1995 – 3/1996

Senior Design Engineer

Designed an algorithm and wrote its code for an experimental noise suppression system to be used in canceling out the undesirable noise. The entire Digital filter Design was implemented on a TI DSP.

Design and implementation of an algorithm for airbag deployment system. This design uses the variation in acceleration of the vehicle as the basis for the determination of the airbag deployment.

Saturn Electronics, Auburn Hills, MI 8/1994 – 8/1995

Senior Design Engineer

Designed and implemented the algorithm and drivers (SW/HW) for the CAN functionality in a Multi Processing System, which consists of Six Micro Controllers (3 HC12, 3 HC08) that communicated over the CAN bus at 1MBPS.

This Architecture employed a Binary Search Algorithm to match the incoming frames to the corresponding mailbox number. The design also supports the concept of the”single point failure” in which the redundancy is a System requirement.

Kelsey-Hayes, Livonia, MI 9/1992 – 8/1994

Senior Design Engineer

Chrysler Project

Designed and implemented the following: Fault code management, Determination of wheel slip/spin, and their quantification (Design of the Digital Filter), calculation and implementation of the Wheel Speed.

GM Project

Designed the alternative interface for J1850, in the new design the device driver (M6850) interfaces with the micro controller via SPI as opposed to the old concept, which used a parallel interface.

Responsible for implementation of the drivers for the new design (code). Built a tool that interfaces a PC to the micro Controller‘s class2 line for monitoring messages on the PC monitor.

Multitask System, Sterling Heights, MI 10/1990 – 9/1992

Design Engineer

Developed and implemented code for a Keyboard/LCD display driver in an 8051 based control system.

This design is multitasking of 4 tasks that are Keyboard scan, Transmit/Receive, and LCD display.

Developed Software for a 6809-based System to displays characters typed on a PC unto a Character Bulletin Board. Implemented code for a variable speed DC motor controller board. Implemented code for a 6811 based system to perform a PID closed loop control on velocity and position.

Universal Labs, Farmington Hills, MI 8/1988 – 9/1990

Project Engineer

Developed code for a 8086 based board to perform a four-channel data acquisition Task to record outputs from four accelerometers mounted on a model vehicle. Designed the code to implement a digital decimation filter on the data acquired above to determine Crash severity for an air bag deployment system. Develop Software for a process control board that allows the user to monitor Set points Pressure, Temperature and invoke certain functions on menu driven Environment.

EDUCATION

University of Detroit, MI

BSEE 1987



Contact this candidate