<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2518-4431</journal-id>
<journal-title><![CDATA[Investigación & Desarrollo]]></journal-title>
<abbrev-journal-title><![CDATA[Inv. y Des.]]></abbrev-journal-title>
<issn>2518-4431</issn>
<publisher>
<publisher-name><![CDATA[UNIVERSIDAD PRIVADA BOLIVIANA]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2518-44312014000200007</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[VIRMS: A VEHICLE INFORMATION AND ROAD MONITORING SYSTEM]]></article-title>
<article-title xml:lang="es"><![CDATA[VIRMS: UN SISTEMA DE INFORMACIÓN VEHICULAR Y MONITOREO DE CARRETERAS]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Arnéz]]></surname>
<given-names><![CDATA[Fabio]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Villazón]]></surname>
<given-names><![CDATA[Alex]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Privada Boliviana Centro de Investigaciones de Nuevas Tecnologías Informáticas - CINTI ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>00</month>
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>00</month>
<year>2014</year>
</pub-date>
<volume>2</volume>
<numero>14</numero>
<fpage>92</fpage>
<lpage>105</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.bo/scielo.php?script=sci_arttext&amp;pid=S2518-44312014000200007&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.bo/scielo.php?script=sci_abstract&amp;pid=S2518-44312014000200007&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.bo/scielo.php?script=sci_pdf&amp;pid=S2518-44312014000200007&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Intelligent Transport Systems (ITS) are emerging technologies for building collaborative vehicular networks to increase road safety and to improve driver’s experience. Unfortunately these technologies require heavy infrastructure to be deployed inside and outside the vehicle that is difficult to extend. In this article we present VIRMS (Vehicle Information and Road Monitoring System), an ITS that is based on low-cost and small footprint client and server infrastructure that was designed to increase vehicular security and reduce accident rates along highways. The VIRMS remote client device is an on board vehicle electronic device that gathers data from sensors and processes the collected data that is sent to the VIRMS server in order to keep drivers informed with precise context information through the detection and identification of events (accidents, traffic jams, bad weather conditions, etc.) along the roads. A prototype running tests on Bolivian highways show that VIRMS can give a technological answer to a real problem where road safety is one of the highest issues and cause of mortality.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[Los Sistemas de Transporte Inteligentes (Intelligent Transport Systems - ITS) son tecnologías emergentes para el desarrollo de sistemas colaborativos vehiculares en red, que permiten mejorar la seguridad y la experiencia de usuario de los conductores. Sin embargo estas tecnologías requieren el despliegue de infraestructuras pesadas, costosas y poco adaptables dentro y fuera de los vehículos. En este artículo presentamos VIRMS (Vehicle Information and Road Monitoring System), un ITS basado en una infraestructura cliente-servidor de bajo costo y ligera que fue diseñada para mejorar la seguridad vehicular y reducir la tasa de accidentes en las carreteras. El cliente remoto VIRMS es un dispositivo vehicular embebido que recolecta, procesa y envía información de sensores hacia el servidor VIRMS para mantener informado al conductor con datos contextuales detectando e identificando eventos en las carreteras (e.g. accidentes, embotellamientos, bloqueos, etc.). El prototipo de VIRMS fue validado en carreteras bolivianas, mostrando que VIRMS puede ser una respuesta tecnológica al problema de seguridad vehicular, que es uno de los mayores problemas y causas de mortandad.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[Intelligent Transportation System]]></kwd>
<kwd lng="en"><![CDATA[Embedded System]]></kwd>
<kwd lng="en"><![CDATA[Electronic Vehicle Device]]></kwd>
<kwd lng="en"><![CDATA[Real-Time Operating System]]></kwd>
<kwd lng="en"><![CDATA[Communication Protocol]]></kwd>
<kwd lng="es"><![CDATA[Sistemas de Transporte Inteligentes]]></kwd>
<kwd lng="es"><![CDATA[Sistema Embebido]]></kwd>
<kwd lng="es"><![CDATA[Dispositivos Electrónicos Vehicular]]></kwd>
<kwd lng="es"><![CDATA[Sistema Operativo Tiempo-Real]]></kwd>
<kwd lng="es"><![CDATA[Protocolo de Comunicación]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align=right><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>ART&Iacute;CULOS &ndash; INGENIER&Iacute;AS</b></font></p>     <p align=right>&nbsp;</p>     <p align=center><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><b>VIRMS: A VEHICLE INFORMATION AND ROAD MONITORING SYSTEM</b></font></p>     <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>     <p align=center><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>VIRMS: UN SISTEMA DE INFORMACIÓN VEHICULAR Y MONITOREO DE CARRETERAS </b></font></p>     <p align=center>&nbsp;</p>     <p align=center>&nbsp;</p>     <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Fabio   Arnéz and Alex Villazón</b></font></p>     <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>Centro de Investigaciones de Nuevas Tecnologías Informáticas – </i>CINTI<i>    <br>  Universidad Privada Boliviana</i></font>    ]]></body>
<body><![CDATA[<br> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="mailto:avillazon@upb.edu">avillazon@upb.edu</a></font></p>     <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif">(Recibido el 01 de noviembre 2014, aceptado para publicación el 17 de noviembre 2014)</font></p>     <p align=center>&nbsp;</p>     <p align=center>&nbsp;</p> <hr noshade>     <p align=left><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>ABSTRACT</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Intelligent Transport Systems (ITS) are   emerging technologies for building collaborative vehicular networks to increase   road safety and to improve driver’s experience. Unfortunately these   technologies require heavy infrastructure to be deployed inside and outside the   vehicle that is difficult to extend. In this article we present VIRMS (Vehicle   Information and Road Monitoring System), an ITS that is based on low-cost and   small footprint client and server infrastructure that was designed to increase   vehicular security and reduce accident rates along highways. The VIRMS remote   client device is an on board vehicle electronic device that gathers data from   sensors and processes the collected data that is sent to the VIRMS server in   order to keep drivers informed with precise context information through the detection   and identification of events (accidents, traffic jams, bad weather conditions,   etc.) along the roads. A prototype running tests on Bolivian highways show that   VIRMS can give a technological answer to a real problem where road safety is one of the highest issues and cause of mortality.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="_Toc274497886"><b>Keywords: </b></a>Intelligent Transportation System, Embedded System, Electronic Vehicle Device, Real-Time Operating System, Communication Protocol.</font></p> <hr noshade>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los Sistemas de Transporte Inteligentes (Intelligent Transport Systems   - ITS) son tecnologías emergentes para el desarrollo de sistemas colaborativos   vehiculares en red, que permiten mejorar la seguridad y la experiencia de   usuario de los conductores. Sin embargo estas tecnologías requieren el   despliegue de infraestructuras pesadas, costosas y poco adaptables dentro y   fuera de los vehículos. En este artículo presentamos VIRMS (Vehicle Information   and Road Monitoring System), un ITS basado en una infraestructura   cliente-servidor de bajo costo y ligera que fue diseñada para mejorar la   seguridad vehicular y reducir la tasa de accidentes en las carreteras. El   cliente remoto VIRMS es un dispositivo vehicular embebido que recolecta,   procesa y envía información de sensores hacia el servidor VIRMS para mantener   informado al conductor con datos contextuales detectando e identificando   eventos en las carreteras (e.g. accidentes, embotellamientos, bloqueos, etc.). El   prototipo de VIRMS fue validado en carreteras bolivianas, mostrando que VIRMS   puede ser una respuesta tecnológica al problema de seguridad vehicular, que es uno de los mayores problemas y causas de mortandad.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Palabras Clave: </b>Sistemas de Transporte   Inteligentes, Sistema Embebido, Dispositivos Electrónicos Vehicular, Sistema Operativo Tiempo-Real, Protocolo de Comunicación.</font></p> <hr noshade>     ]]></body>
<body><![CDATA[<p align="justify">&nbsp;</p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>1.&nbsp;&nbsp;&nbsp;&nbsp; INTRODUCTION</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Traffic accidents are a major cause of deaths   and injuries worldwide and particularly in countries where there are   deficiencies in the infrastructure, high-degree of misbehavior of drivers, and a poor   o no technological support on the roads. In the case of Bolivia, in the past 10 years,   the rate of accidents deaths has doubled, especially on the main roads of the   country[<a href="#Ins">1</a>]. This increase is mainly due to the   lack of a control system for penalizing perpetrated excesses and infringements and also the lack of efficient emergency attention services.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Intelligent Transportation Systems (ITS) are   emerging technologies to build collaborative vehicular networks to increase road   safety, where it is expected that applications of these systems allow   communication of different electronic devices usually installed aboard of the   vehicles to improve driver’s experience[<a href="#Dar10">2</a>]. According   to their functionality, ITS applications have been classified into three main   categories: <i>safety</i>, <i>efficiency</i> and <i>comfort</i>. <i>Safety applications</i>   aim at reducing the severity and mortality risk of car accidents; <i>efficiency     applications</i> intend to manage traffic flow, vehicle control and road   monitoring; and<i> comfort applications</i> aim at providing entertainment and   contextual information to passenger. Our research focuses on safety applications through the development ofcustom hardware and software.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Regarding vehicle’s communication to the   outside world, the communication mode is divided into two types: Vehicle-to-Vehicle   (V2V) and Vehicle-to-Infrastructure (V2I) communications. The de-facto standard   for V2V communication, the IEEE 802.11p<a href="#_ftn1" name="_ftnref1" title="">[1]</a>,   adds wireless access in vehicular environments following the vehicular ad-hoc   network (VANET) approach. However, IEEE 802.11p suffers from scalability issues,   unbounded delays and short radio range that unleashes in the lack of Quality of   Service (QoS) guarantees[<a href="#Ara13">3</a>], which   limits its applicability for V2I communications. These limitations have   motivated the recent increasing interest in cellular network infrastructure   communication technologies like Universal Mobile Telecommunications System   (UMTS) and Long Term Evolution (LTE) as a promising approach for V2I communication.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">In this article we describe VIRMS (Vehicle   Information and Road Monitoring System) a safety-oriented ITS. VIRMS wraps   inside advanced electronics technology and uses existing telephony network to   achieve V2I communication. It contains components of software and hardware that   allows collecting, process, store and retrieve accurate and relevant   information to meet the safety needs of drivers along the roads. In addition, it can   assist emergency services with rescue institutions or the highway patrol to   control possible excesses and infringements from drivers. In this article, we   focus on describing the VIRMS Remote Client’s hardware and software components.   The VIRMS Remote Client implementation is compact and inexpensive because it   uses conventional mobile networks for information exchange and is based on   Embedded Electronic Systems for data processing aboard the vehicle. The contribution of this article is threefold: </font></p>     <blockquote>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;     We present an ITS based on hardware and software     components with a small footprint and low-cost.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;     The ITS uses existing mobile phone network with     low bandwidth requirements.</font></p>       ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679; A working prototype showing the feasibility of the approach that was     tested in Bolivian roads.</font></p> </blockquote>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The   rest of this article is structured as follows: Section 2 depicts the overall VIRMS architecture.   The description of both hardware and software components of VIRMS Remote Client   are presented Section 3.   Section4 presents the   implementation details and experimental results of the VIRMS prototype, whereas   Section 5 discusses advantages and disadvantages of VIRMS. Related work is presented in Section 6. Section 7 concludes the article.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><a name="_Ref271195799">2.&nbsp;&nbsp;&nbsp;&nbsp; VIRMS ARCHITECTURE</a></font></b></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">VIRMS   follows a client-server architecture, where the clients are embedded systems   deployed in vehicles and connected to the server through a cellular network over   the Internet. The onboard VIRMS Remote Client comprises hardware and software   to collect information through different sensors and geo-location data through   a GPS antenna, and delivers context information to the VIRMS Central server. The   server exchanges information with all deployed VIRMS Remote clients, to keep users (i.e. drivers) informed with relevant context information. <a href="#f1">Figure 1</a> depicts the VIRMS ITS architecture showing the two subsystems.</font></p>     <p align=justify><a name="f1"></a></p>     <p align=center><img src="/img/revistas/riyd/v2n14/a07_figura_01.jpg" width="668" height="390"></p>     <p align=justify><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The VIRMS Remote Client consists of an   advanced embedded electronic system whose functions are to collect, process,   store and retrieve accurate and relevant information to satisfy the driver’s needs   throughout the country roads. It communicates with the VIRMS Central to exchange   selected context information, including state of roads, weather conditions,   traffic, blocking roads points, existence of accidents, requirement of   technical assistance and state of danger or panic of drivers along roads. To   fulfill these requirements, the architecture of the VIRMS Remote Client follows   the recommendations presented in[<a href="#Mar10">4</a>]which   intends to help future emergency and rescue services.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The VIRMS Central hosts the VIRMS server and   provides Internet connectivity (e.g. through axDSL modem). The VIRMS server   receives requests, processes and sends back a response to the clients. Due to   the limited computational resources on the embedded clients (processing   capabilities and memory), the designed communication protocol was strongly simplified,   so as to avoid complex data parsing and interpretation. On the server side   however, no such restriction is present, so that more advanced processing is   performed on data such as database handling to store the received information,   filtering and query back of information required by the clients. <a href="#f2">Figure 2</a> shows   the communication scheme between the VIRMS client and server. The client sends information   (to the server) about the user/driver, vehicle variables, a message type and   event types. The server sends back to the client the events near to the   vehicle. The message type field tells the server if the client is reporting   events or not. Possible event types that the user can report include poor state of the road, bad weather, heavy traffic, road accident and blocked roads.</font></p>     <p align=justify><a name="f2"></a></p>     ]]></body>
<body><![CDATA[<p align=center><img src="/img/revistas/riyd/v2n14/a07_figura_02.jpg" width="637" height="352"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The following section explains in detail the   client side, since it has hardware and software components that enable main features of the whole VIRMS Intelligent Transportation System. </font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="_Ref271201655">3.&nbsp;&nbsp;&nbsp;&nbsp; VIRMS REMOTE CLIENT </a></b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The VIRMS Remote Client is an embedded system   composed of hardware and software components that were developed to meet the   requirements of our ITS. The architecture of the VIRMS Remote Client is   depicted in <a href="#f3">Figure 3</a>. The electronic system incorporates a 32-bit PIC32   microcontroller unit (MCU) from Microchip<a href="#_ftn2" name="_ftnref2" title="">[2]</a>, which communicates and interacts with various peripherals as follows:</font></p>     <blockquote>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <i>GPS Module</i>: to     obtain the vehicle speed and geo-location data. It uses the Universal     Asynchronous Receiver and Transmitter (UART) communication interface.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <i>Accelerometer</i>: to     estimate vehicle’s spatial orientation. It uses a Serial Peripheral Interface     (SPI).</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <i>Temperature Sensor</i>: to identify possible onboard firesafter a crash. It uses a SPI     interface.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <i>Color Touchscreen:</i> To Interact with the vehicle’s driver through a Graphical User     Interface (GUI). It uses a Parallel Master Port (PMP) interface.</font></p>       ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <i>SD Memory Card</i>:     to store road maps to be displayed in the GUI, and activity log information.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <i>Ethernet Communication Module</i>: to allow the device Internet connection and communication to the     VIRMS Central through a 3G modem and Router.</font></p> </blockquote>     <p align="justify"><a name="f3"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_figura_03.jpg" width="597" height="456"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Due   to the large amount of tasks that the MCU must handle, the different priorities   needed for the embedded system to function properly and time constraints that   must be satisfied, we decided to deploy the VIRMS Remote Client using a Real-Time   Operating System (RTOS). The RTOS is in charge of the task order execution   given their priorities and the time assigned to each one. It also provides some   guaranties in the execution of the operations that are handled differently from   a conventional operating system, notably the processing of data in real-time,   i.e. without buffering as it is produced. The RTOS also handles the mechanisms   to communicate and pass information between tasks[<a href="#Ibr08">5</a>].   There is a large set of commercial and non-commercial RTOS for the Microchip   PIC32<a href="#_ftn3" name="_ftnref3" title="">[3]</a>. We chose   FreeRTOS[<a href="#Rea13">6</a>] for the development of the VIRMS Remote   Client due to its open source nature, small footprint, community support and fulltask   handling support. The programming interface for the development of the Remote   Client embedded device is standard C programming language, which allows implementing   fast applications with small footprint.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">When using an RTOS, we should create and manage “tasks”   instead of following a purely sequential programming. The task abstraction   allows designing independent execution flows associated with priorities. Tasks   communicate between each other using queues and they can share common resources   (memory sections or peripherals). For this reason, they must be synchronized through the use of mutual exclusion mechanisms, namely mutexes.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">For the VIRMS Remote Client embedded system device six fundamental tasks have been identified:</font></p>     <blockquote>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;     TaskIO: Task for the MCU’s Inputs and Outputs     management</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;     TaskGPS: Task for GPS frame parsing</font></p>       ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;     TaskGUI: Task for Graphical User Interface (GUI)     interactions</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;     TaskTCPIP: Task for networkcommunication</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;     TaskSENSE: Task for sensor data reading(from accelerometer     and temperature sensors).</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;     TaskSD: Task for the memory card interaction</font></p> </blockquote>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#f4">Figure 4</a> shows the tasks ordered according to   their priority. The task priority was assigned according to the importance and   the need of processor time. The first three tasks (TaskIO, TaskGPS and TaskGUI)   are intended to run immediately and the last three tasks (TaskTCPIP, TaskSD and   TaskSENSE) are executed with a certain frequency (periodic tasks). In FreeRTOS   the highest priority is assigned with the highest value from a used range of   values. The system’s highest priority is 4 and the value is assigned to the   tasks that require constant and immediate attention and must handle and process   the most important information. In our case, I/O operations and accessing data   from the GPS are handled with the highest priority. When tasks share the same   priority value, the scheduler assigns the same processor time slice to each one. </font></p>     <p align=justify><a name="f4"></a></p>     <p align=center><img src="/img/revistas/riyd/v2n14/a07_figure_04.gif" width="314" height="413"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The VIRMS_DATA data structure (see <a href="#f5">Figure 5</a>) is used for data exchange of the generated user information between tasks. </font></p>         <p align="justify"><a name="f5"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_figure_05.gif" width="510" height="639"></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The data structure is used for inter-task   communication holds the following information: user and vehicle information   introduced by driver (lines 3-5); the GPS received information (lines 7-2); the   accelerometer and temperature sensor data (lines 24-27); data type conversions   of the received GPS latitude and longitude for navigation purposes that require   floating point calculations<a href="#_ftn4" name="_ftnref4" title="">[4]</a>   (lines 29-38); and the message type and the events to be sent to the VIRMS server (lines 40-41).</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The   VIRMS_DATA structure is accessed through data queues in a shared memory segment.   The interacting tasks use mutexesto guarantee synchronized access to the data   structure during runtime. <a href="#f6">Figure 6</a> depicts the inter-task data flow and task-memory   interactions. TaskIO interacts with the MCU inputs and outputs and sends the   received data from the GPS module and the touch commands (from the touchscreen)   to TaskGPS and TaskGUI respectively; TaskGPS extracts the relevant and required   information received from the GPS module and writes into the data structure;   TaskSENSE reads data from the accelerometer and temperature sensors and then   writes into the data structure; TaskGUI receives the touch commands from the   TaskIO and translates them for the user interaction with the graphical   interface, this task also reads information from the data structure to show it   into the graphical user interface; TaskSD reads the data structure to write the   system logs into the external memory card; Finally TaskTCPIP reads and writes   the data structure to send the remote client device information to the server   and to store the context information received information from the server respectively.</font></p>     <p align="justify"><a name="f6"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_figure_06.gif" width="633" height="403"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#f7">Figure 7</a> shows the flowchart of the “main”   function of the program developed for the VIRMS Remote Client. The first stepis   the initialization of the microcontroller hardware (“System Initialization”), followed   by the initialization of all tasks with the associated priorities(“Task   Initialization”) and finally the initialization of the RTOS Scheduler (“Scheduler   Initialization”).Once all tasks are ready for execution the kernel determines   which tasks are executed and when according to their priorities. The “main” function   will terminate (i.e. reach the END state) only if there is insufficient heap   memory, the user interrupts scheduler action, or un-handled critical errors are   presented along the general runtime execution. During execution, every task performs a set of instructions to read, write or transfer data.</font></p>     <p align="justify"><a name="f7"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_figure_07.gif" width="266" height="509"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.1.&nbsp;&nbsp;&nbsp;&nbsp; TaskIO</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This task allows receiving the information   from the touchscreen when it is pressed by the user and also analyzes the UART   port interface. If there is data available in the UART receptor (GPS module   communicates with the MCU trough UART interface), the task stores the received   data in a 10 bytes memory buffer. Once the memory buffer is full, the task sends the data through a queue to the TaskGPS task for further processing.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.2.&nbsp;&nbsp;&nbsp;&nbsp; TaskGPS</b></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This   task allows saving the received NMEA<a href="#_ftn5" name="_ftnref5" title="">[5]</a>   frame characters from the GPS module. Among other information, the collected   data contains the GPGGA (Global Positioning System Fix Data) and the GPRMC   (Recommended minimum specific GPS/Transit data). The first one contains for   example, information about time, latitude, longitude, number of satellites,   altitude and checksum. The second one contains additional information about   date and speed. The data frames are stored in the 500 bytes memory buffer that   intends to store all the GPS NMEA frames in a burst (every GPS burst occurs   once per second). When the desire frames are found, each one is copied to an   independent memory buffer for specific parsing to obtain the desired data. <a href="#f8">Figure   8</a> shows an example of the GPS buffer and the frames stored in independent buffers.</font></p>     <p align="justify"><a name="f8"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_figure_08.gif" width="747" height="228"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.&nbsp;&nbsp;&nbsp;&nbsp; TaskGUI</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This task is responsible for displaying all   the graphical elements in a color display (16 bits) for user interaction with   the electronic device. The main elements to be displayed can have buttons,   windows, check boxes, text boxes and images (which are read from an external   memory card). This task will also receive and interpret the messages sent by   the touch screen(function running in TaskIO) to indicate the elements with which the user interacts.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#f9">Figure 9</a> depicts the screen states for the   Graphic User Interface (GUI). The initial state is represented by the “Splash   Screen” state. The subsequent states are of two types: “Create” and “Show”. The   “Create”-type states are those responsible for instantiating all graphics   objects needed to allow user interaction whereas the “Show”-type states display   those objects. The transition between Create and Show states is implicit (i.e.   no explicit event triggering a state change state). State transition is performed   automatically when all objects are ready to be displayed.  Once the screen   changes, the MCUmust delete all graphics objects from memory and then create   new graphical objects for the next screen. This is due to the limited amount of   memory, which usage needs to be optimized by the MCU. Finally the “Show”-typestates   remain showing their graphical objects until the user performs an action to   change the screen. Similar implicit cleanup is performed on the memory frames as well.</font></p>     <p align="justify"><a name="f9"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_figure_09.gif" width="643" height="801"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">TaskGUI handles several screens to interact   with the user to gather input data or to display information received from the VIRMS   Central server. The interactions triggering the creation or display of the other screens (after the very first “Splash Screen”)are shown in <a href="#f9">Figure 9</a>. </font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The following screens are handled by the GUI:</font></p>     ]]></body>
<body><![CDATA[<blockquote>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <b>User Login Screen:</b> Allows the user to enter a personal code, the current vehicle plate     and route. After filling the required information the user must press the     “Accept” button to continue to the “User Menu” screen.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <b>User Menu Screen:</b>     Allows the user to choose among the VIRMS ITS features. Here the user can     access to a context Information screen, a screen for Event Report, and screen     for localization and navigation that shows a static map.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <b>Information Screen:</b> The main purpose of this screen is to inform the vehicle driver about     what is going on around, this means that the VIRMS Remote Client devices     provides useful context information for the driver. This screen shows the data     entered data by the user in the User Login Screen, the current time and date     and the events around the vehicles. The events are: poor state of the road, bad     weather, heavy traffic, road accident and blocked roads.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <b>Event Report Screen:</b> Allows the driver to report events that occur near the vehicle. The     events that can be reported are the same as the previous screen (information     screen): poor state of road, bad weather, heavy traffic, road accident and     blocked roads. In addition the user may report that requires technical     assistance and also if it senses danger or feels threatened.</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&#9679;&nbsp;       <b>Navigation Screen:</b> The main function of this screen is to provide the driver a basic     navigation and localization service. The screen shows a static map of 220x220     pixels that represents a geographically square type map segment with 10 Km     side, which shows the vehicle’s current location. </font></p> </blockquote>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The maps (in JPEG<a href="#_ftn6" name="_ftnref6" title="">[6]</a>format) are pre-stored in   a Secure Digital memory card(SD card) and are loaded into memory on an   “on-need” basis. This is because the MCU memory capacity is very limited and   cannot store large amounts of data such as several images at the same time.   Additionally, the high communication latency due to the type of Internet access   (mobile network) does not offer an optimal solution to load maps directly from   an online service such as Google Maps<a href="#_ftn7" name="_ftnref7" title="">[7]</a>,   together with the lack of appropriated API (Application Programming Interface)   to access maps from a C programming interface of the MCU. Such an interface is   limited to static access to map images, which is therefore equivalent to our solution based on pre-stored map images on the SD card.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">In   order to display the image on the screen it is necessary to read the image from   the SD cardand then decode the JPEG image’ format, so as to correctly display   the image buffer on screen. The current coordinates read from the GPS are used   to load the correct image of the map, which is at a fixed scale. The bottom   left (x<sub>1</sub>, y<sub>1</sub>) and top right coordinates (x<sub>2</sub>, y<sub>2</sub>)   are known for each image (to simplify, we use those coordinates to search the   name of the map files stored on the SD card). When the received GPS coordinates   are read (x<sub>current</sub>, y<sub>current</sub>), we are able to identify   which map to be loaded, based on the current location. Whenever the current coordinates are out of bound, we load the corresponding map accordingly. </font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">To indicate the current location in the map,   we overlay a red spot indicator by modifying the image buffer to be displayed. <a href="#f10">Figure   10</a> depicts the vehicle’s current location represented by point as a spot in the   map. While (x<sub>current</sub>, y<sub>current</sub>) is within the map   delimited by (x<sub>1</sub>, y<sub>1</sub>) and (x<sub>2</sub>, y<sub>2</sub>)   we need to calculate the relative position where to display the red spot at   P(x,y). The translation calculation is given by equations (1) and (2). The   first equation calculates the translation of the received GPS latitude and the   second equation calculates the translation of the received GPS longitude. On   both equations the MAP_WIDTH and MAP_HEIGHT are equal to 220 in our case (i.e.   the size of the image). Finally,the MAP_X_OFFSET is equal to 10 for the first   equation and the MAP_Y_OFFSET is equal to 270 for the second equation. The   offset values are obtained from the margin pixels around the map image so as to make it centered into the window container.</font></p>     <p align="justify"><a name="f10"></a></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/riyd/v2n14/a07_figura_10.jpg" width="471" height="367"></p>     <p align="center">&nbsp;</p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_ecuation_01.gif" width="742" height="136"></p>     <p align="justify"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">3.4.&nbsp;&nbsp;&nbsp;&nbsp; TaskTCPIP</font></b></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This task is responsible for initializing and   managing the TCP/IP protocol stack to provide Internet connectivity to   communicate with the VIRMS server. The network configuration relies on a DHCP<a href="#_ftn8" name="_ftnref8" title="">[8]</a> server (for automatic   settings), a service that is provided by the 3Grouter connected to the MCU. The   TaskTCPIP also handles the link layer MAC address configuration and provides the   interface to create network sockets to interact with the VIRMS server. The VIRMS   protocol is based on TCP for reliable communication. Once the connection is   established and the data is sent and received, the information is stored in the   allocated VIRMS_DATAstructure. Note that the architecture of RTOS forces any   other task requiring network connectivity to explicitly delegate all   communication to this task, which implies additional programming effort to   correctly handle communication between tasks and through the network. Finally,   this task is scheduled to be executed every 4 seconds to avoid high volume information upload to the server.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.5.&nbsp;&nbsp;&nbsp;&nbsp; TaskSENSE</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This task allows the communication between   the MCU and the Bosch SMB380 module<a href="#_ftn9" name="_ftnref9" title="">[9]</a>that   encapsulates a tri-axial accelerometer and a temperature sensor. The   communication uses a SPI interface where the MCU is the master and the SMB380   is the slave. This task is executed every 200 milliseconds by adding a special   RTOS timing function that prevents inefficient processor waiting while the   desire time ends. The sampling period was defined from the sensor’s   specification datasheet, which additionally prevents processor overloads that may result in a task starvation situations or priority inversions.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.6.&nbsp;&nbsp;&nbsp;&nbsp; TaskSD</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This task allows the MCU to store all the   collected and generated information into an external SD memory card. For this   purpose the task creates a text file in the SD memory card. The task access to   the user data structure and retrieves the most important data fields to write   them into the created text file. The purpose of the stores text file is twofold:   It serves as a data logger to post-mortem analysis of events happening in the   VIRMS Remote Client and it also serves as a mechanism for non-volatile storage   for data recovery in case of a crash. It is important to note that TaskSD and   TaskGUI share the same interface and hence the same resource (i.e. the SD memory card). </font></p>     <p align="justify">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="_Ref271201806">4.&nbsp;&nbsp;&nbsp;&nbsp; IMPLEMENTATION AND RESULTS</a></b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">We developed a board containing the embedded electronics   of the VIRMS Remote Client(see <a href="#f11">Figure 11</a>) and measure the system in real world   conditions. The embedded electronic device was connected the cell phone network   through a 3G router and modem.  The VIRMS Central was developed using Java   Servlets technology[<a href="#Jav09">7</a>]and was   deployed in an Intel i7 computer with 4GB of RAM and running Ubuntu Linux 14.4.0.   The Server was connected to the Internet through a local ISP (Internet Service   Provider), which provided a fixed IP address. For the electronic device setup,   the server IP address and the port were set into the electronic device   microcontroller program. When the electronic device is turned on the driver   must fill the requested information. The user request information fields are: user   code, vehicles plate, vehicles route (destination). This information is stored in the VIRMS server and is used to send context information back.</font></p>     <p align=justify><a name="f11"></a></p>     <p align=center><img src="/img/revistas/riyd/v2n14/a07_figura_11.jpg" width="410" height="280"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>4.1.&nbsp;&nbsp;&nbsp;&nbsp;   Test Scenario</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The VIRMS tests took place in the National   Highway number 4, in a road segment within the metropolitan area of 16 Km long   between the cities of Cochabamba, Colcapirhua, Quillacollo and Vinto. <a href="#f12">Figure 12</a>  depicts the vehicle position (latitude and longitude) during the tests. The map   was generated together with the path using the vehicle’s information stored in the   VIRMS server database. One can observe a given number of the interruption in the   plotted paths that are due to mobile internet connection loss, which mainly   happened while changing or switching between mobile base stations or where there was weak service coverage.</font></p>     <p align=justify><a name="f12"></a></p>     <p align=center><img src="/img/revistas/riyd/v2n14/a07_figura_12.jpg" width="748" height="470"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#f13">Figure 13</a> shows the vehicle variables stored   on the server’s database: a) speed of the vehicle (in Km/hour) and b) the   height above the sea level (in meters) captured by the VIRMS Remote Client. In   both graphs the sample number corresponds to every second elapsed between the starting point and the final destination.</font></p>     <p align="justify"><a name="f13"></a></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/riyd/v2n14/a07_figure_13.gif" width="718" height="283"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">VIRMS information can be used to identify possible   driver’s excesses and infringements of speed limits. Also abrupt changes in   speed could warn about events like collisions or car falls to rescue institutions   for fast and efficient emergency attendance along the roads. To distinguish   between those events and normal behavior, e.g. related to speed reduction due   to traffic lights, the VIRMS server checks the received data from the   accelerometer (X, Y and Z axis values) to discard false positives. Such type of   the speed decreases can be observed in <a href="#f13">Figure 13a</a>) which corresponds to stops   due to red traffic lights along the road. <a href="#f13">Figure 13b</a>) showing the vehicle’s   height is consistent since the cities in the test scenario round the 2600   meters above sea level. Concerning the speed and height drops around sample   numbers 70 and 420; those are due to connection losses while switching between   mobile stations. To discard misinterpretation of a sudden height difference   (around 50 and 40 meters respectively) as an accident, VIRMS uses additional   available data such as timestamps and accelerometer information to discard false positives. </font></p>     <p align=justify><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#f14">Figure 14</a> shows a screenshot of context   information received from the Server into the VIRMS Remote Client during the   tests. The first text group of shows user and vehicle information; the second   group of text fields shows the current time and date; and the last group of   text fields, shows information received from the VIRMS server that contains the events near the vehicle (poor state of the road, heavy traffic or blocked road).</font></p>     <p align=justify><a name="f14"></a></p>     <p align=center><img src="/img/revistas/riyd/v2n14/a07_figura_14.jpg" width="510" height="339"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>4.2.&nbsp;&nbsp;&nbsp;&nbsp;   Prototype cost</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">One of the main concerns of ITS development is   the cost of the embedded devices on board of the vehicles. During the development   of VIRMS, cost efficiency was an important goal to reach, because VIRMS targets   mainly the Bolivian marketplace where cost is a real issue. <a href="#t1">TABLE 1</a> shows that   we have reached our goal with a prototype cost of less than 200 USD. The higher   cost corresponds to the electronic development (more than half of the price),   followed by the Communications components (Mobile modem and Router), and   finally by the GPS module. It is important to note that a mass production can   significantly reduce the costs of VIRMS’s Remote Client devices, making it more accessible and widely available.</font></p>     <p align="justify"><a name="t1"></a></p>     <p align="center"><img src="/img/revistas/riyd/v2n14/a07_table_01.gif" width="455" height="215"></p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="_Ref271202616">5.&nbsp;&nbsp;&nbsp;&nbsp; DISCUSSION</a> AND FUTURE WORK</b></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">VIRMS not only supports traditional GPS   tracking system features (generally applied for post-crash attendance), it also   allows the driver to be well informed due to the ability to exchange   information between the VIRMS client and server for a certain location. The   exchanged information represents relevant context information that could   prevent accidents by warning drivers of what is happing around them. The   systems also allows to attend accidents efficiently by identifying them faster   and also institutions like Police can identify driver’s excesses and   infringements due to the generated logs for each car with the VIRMS Remote Client onboard device.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">One of the current problems of VIRMS is the   high volume of information generated within each client, resulting in ahigh   amount of data in the server’s database. To mitigate this situation, further   development will focus on efficient storage and communication of information. Also,   context information currently sent to the VIRMS Remote Client only refers to   the segment where the car is located. An extension on the communication   protocol can enable to enhance this information, e.g. by sending context   information of neighbor segments and including more metadata to inform the driver.   We will explore such enhancements that are complementary to the existing VIRMS prototype.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">To summarize, VIRMS’s current and future development   focuses on four areas: The remote client hardware, ITS software applications,   communication security and the server side software enhancements. For remote   client hardware we are exploring additional forms of client technology, e.g.   other types of embedded systems and the development of a smartphone application   remote client. The later seems a promising approach because smartphone’s   hardware has most of the required components (GPS, sensors, screen, network   connectivity) and eases the map and navigation integration and handling. For   ITS software application we aim at developing a notification service to enhance   user experience, because currently the context information is displayed on user   request only. For communication security, VIRMS will be enhanced with Secure   Socket Layer (SSL) for client – server communication. Finally, server side   software enhancements include a web service based API (Application Programming   Interface) to simplify the interactions between clients and server and the   ability to show multiple remote clients and also to identify events automatically along the roads.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="_Ref271202707">6.&nbsp;&nbsp;&nbsp;&nbsp; RELATED WORK</a></b><a name="_Ref271202707"></a></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">OnStar[<a href="#Rea13">6</a>]is   an example of post-crash ITS. OnStar is a subsidiary of General Motors that   provides subscription-based communications, in-vehicle security and navigation.   OnStar relies in CDMA mobile technology for data and voice communications and this   service mainly allows automatically detecting events like collisions and notifying OnStar call centers for faster emergency attention. </font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The European Union has launched the eCall[<a href="#Eur">8</a>] intiative to build systems to bring fast assistance to drivers involved in collisions anywhere in the   European Union roads. In case of a crash, an e-Call electronic device installed   in a car, should automatically call the nearest emergency center. If no   passenger is able to speak, a minimum set of data is sent, which includes the exact location of the collision event.</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Both eCall and OnStar are very similar. A   vehicle collision activates the on-vehicle sensors, causing an emergency call   to be initiated, if there is not a passenger able to speak additional relevant   information is sent to call centers. Unlike eCall, OnStar also provides an   on-road navigation system. However eCallis more ambitious since it is expected   to support all brands and types of vehicles in the European Union region, while OnStar is only supported by General Motors vehicles in only a few countries[<a href="#Mar10">4</a>].</font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">OnStar and eCall initiatives require   expensive infrastructure and both use closed communications protocols and   hardware technology. VIRMS, on the other hand is easier, but more suited to be   deployed in countries like Bolivia. In fact, the Bolivian government launched a   initiative for inter-departmental buses for road safety increase, which uses a   GPS based tracking system, but this initiative has not achieved the intended   deployment and hence the expected safety increase due the high cost of the   client electronic devices and their limitations in hardware and software since   this devices mainly send GPS data to a server for car tracking (one way communication) and do not incorporate a GUI.</font></p>     <p align="justify">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="_Ref271202720"></a><a name="_Ref236299376">7.&nbsp;&nbsp;&nbsp;&nbsp; CONCLUSIO</a>NS</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">In this article we presented VIRMS, an ITS   based on low-cost and small footprint client and server. VIRMS does not require   special networking infrastructure, as it uses existing mobile phone network for   internet access for client-server communication. The VIRMS remote clientuses   bi-directional communication and information to send and receive information about   traffic events. Our prototype implementation shows that VIRMS provides the   basic functionalities to build road safety services.The working prototype was deployed and tested in Bolivian roads showing the feasibility of the approach. </font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>8.&nbsp;&nbsp;&nbsp;&nbsp; REFERENCES</b></font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[1] Instituto Nacional de Estadisticas. Instituto Nacional de Estadisticas. [Online]. Avaible: <a href="http://www.ine.gob.bo/indice/EstadisticaSocial.aspx?codigo=30903" target="_blank">http://www.ine.gob.bo/indice/EstadisticaSocial.aspx?codigo=30903</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=958379&pid=S2518-4431201400020000700001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">  [2] K. Dar et al. &quot;Wireless communication technologies for ITS applications [Topics in Automotive Networking],&quot; Communications Magazine, IEEE, vol. 48, no. 5, pp. 156-162, may 2010.    <br> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[3] G. Araniti et al. &quot;LTE for Vehicular Networking: a Survey,&quot; Communications Magazine, IEEE, vol. 51, no. 5, pp. 148-157, may 2013.    <br> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[4] F.J. Martinez et al. &quot;Emergency Services in Future Intelligent Transportation Systems Based on Vehicular Communication Networks,&quot; Intelligent Transportation Systems Magazine, vol. 2, no. 2, pp. 6-20, 2010.    ]]></body>
<body><![CDATA[<br> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[5] D. Ibrahim. Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC18F Series. Oxford, Oxford: Newnes, 2008.    <br> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[6] Real Time Engineers Ltd. (2013) FreeRTOS Quality RTOS &amp; Embedded Software. [Online]. Avaible: <a href="http://www.freertos.org" target="_blank">http://www.freertos.org</a>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=958388&pid=S2518-4431201400020000700006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[7] Java Community Process (JPC). (2009, Dec.) JSR 315: JavaTM Servlet 3.0 Specification. [Online]. Avaible: <a href="https://jcp.org/en/jsr/detail?id=315" target="_blank">https://jcp.org/en/jsr/detail?id=315</a>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=958390&pid=S2518-4431201400020000700007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[8] European Comission. Digital Agenda for Europe - ECall. [Online]. Avaible: <a href="http://ec.europa.eu/digital-agenda/en/ecall-time-saved-lives-saved" target="_blank">http://ec.europa.eu/digital-agenda/en/ecall-time-saved-lives-saved</a>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=958392&pid=S2518-4431201400020000700008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[9] General Motors. OnStar. [Online]. Avaible: <a href="http://www.onstar.com" target="_blank">http://www.onstar.com</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=958394&pid=S2518-4431201400020000700009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br clear=all>      </font></p> <hr align=JUSTIFY size=1 width="33%">       <p><font size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">NOTAS</font></b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref1" name="_ftn1" title="">[1]</a> An approved amendment to the IEEE 802.11 standard to add wireless access in vehicular environment [<a href="http://standards.ieee.org/findstds/standard/802.11p-2010.html" target="_blank">http://standards.ieee.org/findstds/standard/802.11p-2010.html</a>]</font></p>           <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref2" name="_ftn2" title="">[2]</a><a href="http://www.microchip.com/pagehandler/en-us/family/32bit/" target="_blank">http://www.microchip.com/pagehandler/en-us/family/32bit/</a></font></p>           <p align=justify><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref3" name="_ftn3" title="">[3]</a><a href="http://www.microchip.com/devtoolthirdparty/ThirdpartyListing.aspx?catId=809fe361-a1b9-41ce-bde7-821ba59ffdb4" target="_blank">http://www.microchip.com/devtoolthirdparty/ThirdpartyListing.aspx?catId=809fe361-a1b9-41ce-bde7-821ba59ffdb4</a></font></p>           <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref4" name="_ftn4" title="">[4]</a> The information to compute the     floating-point operations is directly in-lined in the VIRMS_DATA structure, so     as to avoid creating other structure for inter-task communication. This also prevents repeated computations.</font></p>           <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref5" name="_ftn5" title="">[5]</a> NMEA stands for National Marine Electronics     Association. This association developed a specification that defines the     interface between marine electronic equipment. GPS receiver communication is defined with this specification. More information at: <a href="http://www.gpsinformation.org/dale/nmea.htm" target="_blank">http://www.gpsinformation.org/dale/nmea.htm</a></font></p>           <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref6" name="_ftn6" title="">[6]</a> JPEG stands for Joint Photographic Experts Group (<a href="http://jpeg.org/jpeg/" target="_blank">http://jpeg.org/jpeg/</a>)</font></p>           <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref7" name="_ftn7" title="">[7]</a> <a href="http://developers.google.com/maps" target="_blank">http://developers.google.com/maps</a></font></p>           <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref8" name="_ftn8" title="">[8]</a> DHCP stands for Dynamic Host Configuration     Protocol allowing automatic configuration over the network, and is defined as an Internet standard in RFC 2131 (http://tools.ietf.org/html/rfc2131)</font></p>           ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref9" name="_ftn9" title="">[9]</a> <a href="http://header.bosch.com/claim/ifl/framework/fallback.asp?component=productspecial&id=smb" target="_blank">http://header.bosch.com/claim/ifl/framework/fallback.asp?component=productspecial&amp;id=smb</a></font></p>     <p align="justify">&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="">
<collab>Instituto Nacional de Estadisticas</collab>
<source><![CDATA[Instituto Nacional de Estadisticas. Online]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dar]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Wireless communication technologies for ITS applications Topics in Automotive Networking]]></article-title>
<source><![CDATA[Communications Magazine, IEEE]]></source>
<year>may </year>
<month>20</month>
<day>10</day>
<volume>48</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>156-162</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Araniti]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[LTE for Vehicular Networking: a Survey]]></article-title>
<source><![CDATA[Communications Magazine, IEEE]]></source>
<year>may </year>
<month>20</month>
<day>13</day>
<volume>51</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>. 148-157</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Martinezl]]></surname>
<given-names><![CDATA[F.J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Emergency Services in Future Intelligent Transportation Systems Based on Vehicular Communication Networks]]></article-title>
<source><![CDATA[Intelligent Transportation Systems Magazine]]></source>
<year>2010</year>
<volume>2</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>6-20</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ibrahim]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<source><![CDATA[Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC18F Series]]></source>
<year>2008</year>
<publisher-loc><![CDATA[Oxford ]]></publisher-loc>
<publisher-name><![CDATA[Newnes]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<collab>Real Time Engineers Ltd.</collab>
<source><![CDATA[(2013) FreeRTOS Quality RTOS & Embedded Software]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<collab>Java Community Process (JPC)</collab>
<source><![CDATA[(2009, Dec.) JSR 315: JavaTM Servlet 3.0 Specification]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<collab>European Comission</collab>
<source><![CDATA[Digital Agenda for Europe - ECall]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<collab>General Motors</collab>
<source><![CDATA[OnStar]]></source>
<year></year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
