cochlear implant systems
play

Cochlear Implant Systems todays challenges in embedded firmware - PDF document

Cochlear Implant Systems todays challenges in embedded firmware design December 7, 2009 Ren Roos Cochlear Implant Systems? Cochlear and CTC Cochlear Implant Systems for hearing impaired people First Cochlear implant, 1978,


  1. Cochlear Implant Systems today’s challenges in embedded firmware design December 7, 2009 René Roos

  2. Cochlear Implant Systems?

  3. Cochlear and CTC • Cochlear Implant Systems for hearing impaired people • First Cochlear implant, 1978, Melbourne Hospital • First commercial, DSP-based processor: SPrint (1998) • Current system: Nucleus 5 (2009) • CTC: Cochlear’s R&D outside Australia

  4. Cochlear Implant System

  5. Complexity

  6. Flexibility CI Hybrid (CI + acoustic) CI Bone Anchored

  7. Product diversity deaf 1 1 3 3 Cochlear implants 0 0 DACS 1 1 2 2 0 0 1 1 1 1 0 0 1 1 0 0 Hybrid total hearing loss profound 0 0 9 9 0 0 8 8 0 0 severe 7 7 BAHA 0 0 mod. severe 0 0 6 6 0 0 6 6 HA 5 5 0 0 5 5 0 0 moderate 0 0 4 4 ) 0 0 4 4 L H mild B 3 3 0 0 d 0 0 3 3 ( p S a N G 2 2 0 0 2 2 H 0 0 e n . L o . B ( 0 0 1 1 d 0 0 1 1 r B i A H L ) 0 0 0 0

  8. Importance of firmware • Manage system complexity – Easy recipient ‘fitting’ – Programmable – Adjustable – Field upgrades – Hear Now. And Always • Support product diversity & derivatives – Platform development � �������������� ��������� ���������������� � ������������������������ ���������������������

  9. Cochlear’s Champ • Custom IC • 4 Parallel DSPs • uC • 180 Mops • Extremely low power consumption (few mW)

  10. Hardware integration • Limited amount of hardware releases • ASIC Prototyping – Modelsim – FPGA • Product Prototyping

  11. Software integration • Firmware Integration – uC – DSP • Software Integration – Device drivers – Clinical software – User devices

  12. Sound processing research • Simulink • xPC Target

  13. Quality • Peer review – Product code – Unit / System tests • Coding guidelines – MISRA-C • Documentation • Verification & validation – Regression testing – Automation • Code analyser tools – Static – Dynamic

  14. Looking into static code analysis (example) Synchronous Asynchronous int x, y, a[5] = {1, 2, 3, 4, 5}; int x, y, a[5] = {1, 2, 3, 4, 5}; typedef void (*EventHandler)(void); void f1(void); EventHandler handler; void f2(void); void scheduler(void) void f1(void) { { while (handler) x = 10; { f2(); handler(); } } } void f2(void) { void f1(void); y = a[x]; void f2(void); } void f1(void) int main() { { x = 10; f1(); handler = f2; return y; } } void f2(void) { y = a[x]; handler = 0; } int main() { handler = f1; scheduler(); return y; }

  15. Regulatory • Strict and clear procedures • IEC 62304 – Segregation of software items – How to manage potential software failures – SOUP

  16. Holy grail in supporting developments • Looking for the perfect static analysis tool • Formal code verification? • Quantification of software risks?

Recommend


More recommend