[AmpeRose] Protocol Definition

Good evening, everyone,
This is Michel from team AmpeRose, and this week, I had the task of defining the communication protocol between our device, AmpeRose, and the graphic interface meant to display the measurements.

We had already defined (last week) our main data structure as a 32-bit word. We had also announced that we will be using an Ethernet connection. So we have agreed on using a simple protocol defined as follows:

AmpeRose to PC:

AmpeRose will send 32-bit words to the software, using the Ethernet connection. The MSB (Most significant bit) of these words defines them as data words (0) or control words (1):


  • Data word: In the case of a data word, the bits [30:8] will be the measured value, bits [7:2] will be the context pins, and the bits [1:0] will define the caliber. This type of words will be way more common than control.


  • Control word: If the word is a control word, its value will indicate if it is an ACK, a NAK, or an error. ACK means AmpeRose has executed a command, NAK means that it has refused. There may be multiple NAK and error words, depending on the level of information we wish to have from this message.


PC -> AmpeRose:

The computer will send command words to AmpeRose, over the Ethernet connection. Each value of the 32-bit word will correspond to a specific command. There will be start and stop commands, frequency calibration commands (preset values), as well as commands to choose whether to read from the SD card or do live measures.

Note that some commands, such as switching from direct measures to SD card may only be sent while AmpeRose is in a stopped state, and will solicit a NAK response otherwise. The software may consider a command executed only after receiving an ACK response. Commands sent in a certain order will receive ACK responses in the same order.

Here is a small list of possible commands:

  • Start
  • Stop
  • SetFreq50
  • SetFreq100
  • ReadFromSD
  • Measure

This list is far from exhaustive, and is subject to change at any time. But it should give the reader an idea about how the computer will pilot AmpeRose.


Having accomplished my task for the week, I spent some time studying a few examples of measurement circuits, to catch up with my teammates who had the task of defining our own circuit, and try to assist them in this critical task. The results of this endeavor, however, are the subject of a different upcoming post!

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>




This site uses Akismet to reduce spam. Learn how your comment data is processed.