Platforms and Technologies

 

Contracting engineering services is not just about finding a qualified team.  It is about finding a knowledgeable, reliable partner which acts as a seamless extension of your own company.  A partner who keeps your best interests in mind and fully understands the development process as well as the importance of excellent communication skills.  At Beningo Engineering, you will find the experts with the ability and knowledge to put it all together.  You will find below a sampling of technical expertise.  For additional details see our Services pages or feels free to contact us with your questions at This e-mail address is being protected from spambots. You need JavaScript enabled to view it .

Architectures and Processors

Selecting the right processor can make the difference between having a successful product or a complete failure.  Exactly how much FLASH do you need?  RAM?  Is the system fast enough?  Will users complain about latency?  Can all of the real-time deadlines be met all the time every time?  These are a few of the questions our customers are asking themselves when they come to us for help.

With so many different manufacturers and a plethora of chip families, it can be a daunting task to successfully select the right processor for the right application. We have the experience to properly select and develop on the best architecture to suite your application.  We've partnered with numerous chip manufacturing in order to provide our customers with designs that are the right cost, right speed, and properly fulfill the requirements of the application.

Below you will find a list of a few of the common processors and architectures with which we design.

  • Freescale HC12 Family
  • Freescale i.MX Family
  • Intel x86
  • Microchip PIC18, PIC24 Families
  • Microchip dsPic Family
  • TI MSP430 Family
  • TI C2000 DSP Family
  • Atmel AVR Family
  • Arm Based Architectures
  • CPLD and FPGA (Currently increasing our capabilities)

Embedded Programming Languages

Unfortunately there is no such thing as the perfect programming language.  Each has its own advantages and disadvantages and its support and lack thereof.  One will find that there are numerous options available on the market ranging from C to zBasic  (Yes zBasic exists just google it).  We make every effort to stick to C/C++ (and assembly for those applications that will benefit) in order to adhere to the majority of the industry and the majority of our customers.  While these languages are not perfect, we follow the strictest coding guidelines in order to maximize the benefit of these languages. It also allows us to leverage our intellectual property to decrease development times and increase system robustness.

In order to support our C/C++ development, we do also program in Java, HTML, XML and CSS in order to prepare our autogenerated code documentation to meet internal and customer requirements.

Windows Programming

Nearly every embedded system requires a graphical user interface (GUI) through which the user interacts with the device.  Whether the GUI is displayed on the device or transmitted via communication protocol to a PC, a well laid out, functional, fast and robust GUI is a must.  In order to meet these requirements, we have partnered with Microsoft so that we can deliver the latest and greatest technologies and interfaces with our products.  Our windows programmers are Microsoft Professional Certified programmers (MCP) and develop applications to the highest standards.

In addition to GUI development, our windows programming experience extends to the development of device interfaces for bootloaders, USB drivers, navigational systems, CANbus loggers, and other data acquisition applications which call for robust and secure applications.  Below is a few examples of the windows programming experience which we have to offer to our customers:

  • Visual C#
  • Visual Basic
  • Graphical User Interface Design
  • Windows Driver Development
  • Installation Design
  • WinCE Application and Driver Development

Operating / RTOS Systems

Every embedded system to one degree or another requires a method in which tasks are scheduled and executed.  Whether it's a simple round robin scheduling routine or a more sophisticated task oriented operating system with a lot of horse power such as Microsoft Windows, Beningo Engineering has the experience to properly select which operating system best fits the application and develop for that system.

We've developed simple schedulers which can be integrated into products which require little to no task management.  This schedulers have been proven time and time again and can be used to decrease the product development time.  For more complex systems such as flight computers, or power monitoring systems, we have partnered with leading real-time operating (RTOS) system vendors in order to meet the real-time deadlines that our customer require.

For the most complex systems, we have the experience to embed complete operating systems such as Windows CE or embedded linux in order to fully satisfy the customer.  As an example of a few operating systems and RTOSs with which we experienced, please see the list below:

  • Windows
  • Linux
  • WinCE
  • QNX
  • Salvo
  • TI Bios
  • VxWorks
  • uCOSII
  • Embedded Linux

Communication Protocols

A simple embedded system will often consist of half a dozen integrated circuits (ICs) in addition to at least one if not more methods of communicating with the macro world.  In recent years, networking and USB have more and more become the standard to bridge the gap between the bits and bytes of the microcontroller and the user.  In addition to these macro communication interfaces, a plethora of inter-circuit protocols have arisen to communicate with the ever expanding peripheral offerings of our digital world.

Beningo Engineering has the understanding and experience to not only develop the communication protocols for communicating with the macro world but also have extensive experience developing drivers and system level interfaces to communicate with peripheral systems such as GPS, bluetooth, wi-fi, CAN, IR, network stacks, sensors, audio, displays, radios, vehicles and much more.  While our experience is too extensive to completely list below, a general summary of some of our more popular offerings interfaces can be found below:

  • USB
  • SPI
  • UART
  • I2C
  • RS-232
  • RS-485
  • CAN
  • LIN
  • TCP/IP (HTTP, SMTP, FTP, DHCP, SNMP, RTP, Sockets, etc)
  • Wireless Protocols (802.11 a/b/g/n/p)
  • Zigbee
  • Ax25 Packet Communication
  • Modbus
  • CDMA, TDMA, GSM

Tools

No matter how successful we are at architecting, modeling and designing, without the proper tools Beningo Engineering wouldn't be able to provide the outstanding service and robust systems that our customers have come to depend on. Each project often brings with it unique challenges and tools which are integrated into the design and testing cycles.  Our expect understanding of these tools allows us to work efficiently and with understanding to overcome any challenges which cross our path.  Some of the most common tools with which we work daily can be found below but we are continually developing, learning and implementing new methodologies and tools to better improve our customer experience:

  • Oscilloscopes
  • Logic Analyzers
  • CAN Analyzers
  • LIN Analyzers
  • JTAG/BDM
  • SPI/I2C Dev Tools (Aardvark)
  • Eclipse IDE, Code Composer, Code Warrior
  • Data Acquisition Systems
  • Visual Studio
  • Office Products
  • Spectrum Analyzers
  • PCB Rework Tools
  • Network Analyzers

In addition to software and hardware design tools which we use, there are a number of project management tools which we use in order to improve the design process.  The following tools are used as version control, bug tracking and automatic documentation generation:

  • SVN
  • TRAC
  • Doxygen

Finally, we use a variety of tools such as system diagrams, state diagrams, UML, Matlab and other tools in order to quickly model and test our systems in order to exercise the hardware and software as soon as possible in the design cycle.

 

Polls

What language do you use to develop your embedded firmware?