170 likes | 187 Views
Embedded Product Design. The Initial Concept of a Product. Top-level management Composed primarily of engineers Marketing Feedback from customers and trade shows Engineering Direct research, trade publications, competitor’s website, etc. Initial Concept Development Stage.
E N D
The Initial Concept of a Product • Top-level management • Composed primarily of engineers • Marketing • Feedback from customers and trade shows • Engineering • Direct research, trade publications, competitor’s website, etc.
Initial Concept Development Stage • Bring in managers and experienced engineers to discuss feasibility of concept • Cost, cost, cost • Consistent with company goals? • Feasible hardware and software design approaches exist? • Treat engineering as one resource pool
Product Architecture Definition • Continue meetings to create and identify implementation strategies for both hardware and software • Manager assesses product architecture and breaks it into logical blocks that can be assigned to engineers
Preliminary Hardware Design • Lead project engineer focuses the effort • Sources of hardware design ideas • Engineering manager • Proven hardware blocks / modules • Leverage other engineers’ experience • Creativity and ingenuity • Research chips for functionality and interconnect
Design Re-use • Reference other proven designs • Benefits • Time to market • Product quality
Hardware Design Issues • Stay informed of current design solutions • Internet (app notes, etc.) • Distributors (training classes) • Also use for price quotes and availability • Buy third party solutions? • Logic blocks for an FPGA • Chipset with supporting software driver • DSP’s, intelligent peripherals, etc.
Hardware Design Issues • Work with compliance engineers • Piece everything together • Integrate reused blocks with new ideas on a schematic • Doesn’t have to be perfect: Time to Market • Power Supply? • Detailed design review • Cost, features, schedule, target market
Before Hardware Arrives . . . • Order printed circuit boards • Hardware-related software issues • Processor and peripheral initialization code • Low-level peripheral driver code • VHDL needed for FPGA? • Software designers begin s/w development
The Real Work Begins . . . • Loaded printed circuit boards arrive • Make the hardware work • Check for obvious problems (e.g., pwr/gnd short) • Bring up the memory subsystem • Execute initialization code using non-volatile memory or debugger • “Talk” to peripherals
Transition To The Software Design Phase • Get hardware to the software designers as soon as possible • Hardware design continues until the product is released (in full production) • Incorporate improvements, new features, fixes • Continue to work with compliance engineering • Work with test engineering • Design verification testing
Embedded Software Design • Refine initial software architecture • Architecture is based on well-defined blocks (modules) • Obtained from Adtran software “repository” • Purchased from 3rd party vendor • Designed by engineering
IP Stack Management Operating Telnet TFTP System TCP UDP IP PPP Engine Frame Relay Engine HDLC Controller Drivers V.35 Serial User I/F Serial Phone Ports DS-1 DSX-1 Ethernet
Software “Repository” • Makes use of a centralized server • Facilitates design re-use • Software modules facilitate re-use when written with modularity in mind • Visualize the module as an independent functional block with distinct inputs and outputs • Use object-oriented programming (C or C++)
Major Areas of Embedded Software Design • Initialization software (or boot code) • Worked on jointly by hardware and software engineers • Operating system • Proven, in-house operating system • Scheduler, semaphores, message queues • Application software
Application Software Issues • Consumes vast majority of development time • Composed of many modules that collectively define the functionality of the product • Continually working with product quality engineers during software development • Certain customers serve as beta test sites
Software Standards • Conformance to a standard • Software engineer must read, understand, and implement the standard • Interoperability with other vendor’s products • Travel to interoperability labs toward the end of software development • ANSI, ITU, IETF, IEEE, and various forums