[Butia-devel-list] Sensores digitales para el Butiá

Mauricio Gonzalez mgonzalez en fing.edu.uy
Vie Jul 12 16:04:52 UYT 2013


Como estan?

Mando una primer versión del protocolo de comunicación para el Butiá. 
Cualquier comentario es bienvenido, cuando me den el OK me pongo a 
programar el PIC para que se adapte a ese protocolo. Saludos!
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : sensorDigital.pdf
Tipo       : application/pdf
Tamaño     : 63048 bytes
Descripción: no disponible
Url        : https://{'listname': 'butia-devel-l', 'hostname': 'www.fing.edu.uy'}/pipermail/butia-devel-l/attachments/20130712/9f6b8ee7/attachment.pdf 
------------ próxima parte ------------
\documentclass[a4paper,12pt]{article}

% Idioma
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}

% Configuración de los márgenes
\usepackage{vmargin}
\setpapersize{A4}
\setmargins{3.5cm}%			%linker Rand, left edge
					 {1.5cm}%     %oberer Rand, top edge
           {14.7cm}%		%Textbreite, text width
           {23.42cm}%   %Texthoehe, text hight
           {14pt}%			%Kopfzeilenhöhe, header hight
           {1cm}%   	  %Kopfzeilenabstand, header distance
           {0pt}%				%Fußzeilenhoehe footer hight
           {2cm}%    	  %Fusszeilenabstand, footer distance    

% Tablas
\usepackage{booktabs}

% Bytes
\usepackage{bytefield}

\begin{document}

\begin{titlepage}

\begin{center}

\vspace*{4cm}
\Large
\textsc{Protocolo tentativo de comunicaci\'on\\
para sensores digitales}\\


\vspace{5cm}
\textsc{\today}\\ %%Date - better you write it yourself.

\vspace{3cm}
\textsc{Facultad de Ingenier\'ia\\
UdelaR}\\

\end{center}

\end{titlepage}


\section{Introducci\'on}
Este documento describe el protocolo de comunicaci\'on que se pretende adoptar como est\'andar en los sensores digitales que utilice el robot Buti\'a. Se trata de un protocolo half duplex as\'incrono en el que la recepci\'on y la transmisi\'on comparten el canal. En esta primera versi\'on el robot iniciar\'a cada comunicaci\'on para luego esperar la respuesta del sensor.\\

Cada mensaje estar\'a compuesto de un byte que incluye un bit de arranque mas siete bits de opcode, y determinada cantidad de bytes extra como par\'ametros. La cantidad de bytes que componen cada mensaje ser\'a variable, siendo conocida por ambas partes en funci\'on del opcode. A su vez las respuestas estar\'an compuestas por un identificador del sensor (determinado previamente por el robot) y determinada cantidad de bytes correspondientes a la respuesta.\\

Los primeros 34 opcodes (\ttfamily0x80\normalfont a \ttfamily0x9F\normalfont) se reservan para funciones del sistema, comunes a la mayor\'ia de los sensores. El resto de las direcciones (\ttfamily0xA0 \normalfont en adelante) se encuentran libres para implementar las funcionalidades necesarias.

\section{Implementaci\'on}

La comunicaci\'on se desarrollar\'a a una velocidad de 9600bps. Como se explic\'o anteriormente la comunicaci\'on se inicia mediante un mensaje desde el robot hacia el sensor, de la forma
\begin{center}
\begin{bytefield}{32}
\bitheader{0-31}\\
\bitbox{1}{} &
\bitbox{7}{Opcode} &
\bitbox{8}{Param. 1} &
\bitbox{8}{Param. 2} &
\bitbox{8}{...}
\end{bytefield}
\end{center}

Al recibir el mensaje, el robot procesar\'a la orden y responder\'a con un mensaje de la forma

\begin{center}
\begin{bytefield}{32}
\bitheader{0-31}\\
\bitbox{1}{} &
\bitbox{7}{Id. Sensor} &
\bitbox{8}{Param. 1} &
\bitbox{8}{Param. 2} &
\bitbox{8}{...}
\end{bytefield}
\end{center}

En la siguiente tabla se detalla una lista de las instrucciones previstas:\\

\centering
\begin{tabular}{l | c c l l}
\toprule
& Opcode & Mensaje & Respuesta & Descripci\'on\\
\toprule
Identificador &\ttfamily 0x80 \normalfont& - &\ttfamily byte id \normalfont& Devuelve id. de tipo\\
Versi\'on &\ttfamily 0x81 \normalfont& - &\ttfamily byte version \normalfont& Devuelve id. de versi\'on\\
Reset &\ttfamily 0x82 \normalfont& - &\ttfamily byte OK \normalfont& \ttfamily byte OK=0xFF \normalfont si hay \'exito,\\
&&&&\ttfamily byte OK=0x00 \normalfont si no.\\
Reset &\ttfamily 0x83 \normalfont& - &\ttfamily byte OK \normalfont& \ttfamily byte OK=0xFF \normalfont si hay \'exito,\\
&&&&\ttfamily byte OK=0x00 \normalfont si no.\\
& \ttfamily 0x84 \normalfont &&&\\
& \ttfamily 0x85 \normalfont &&&\\
& \ttfamily 0x86 \normalfont &&&\\
& \ttfamily 0x87 \normalfont &&&\\
& \ttfamily 0x88 \normalfont &&&\\
& \ttfamily 0x89 \normalfont &&&\\
& \ttfamily 0x8A \normalfont &&&\\
& \ttfamily 0x8B \normalfont &&&\\
& \ttfamily 0x8C \normalfont &&&\\
& \ttfamily 0x8D \normalfont &&&\\
\bottomrule
\end{tabular}
\caption{Tabla de instrucciones reservadas}
\label{tabla}
\end{table}

\end{document}


Más información sobre la lista de distribución Butia-devel-l