Cyber-physical systems (CPS) increasingly require real-time, high bandwidth data communication and processing. To address this, Time Sensitive Networking (TSN) provides latency-bounded data transmission at one or more gigabits-per-second throughput. However, it does not commonly connect directly to I/O devices, such as sensors and actuators. In contrast, Universal Serial Bus (USB) is ubiquitous for device I/O, but has yet to be widely adopted for host-to-host networking. This paper considers the use of a common USB software stack for both device I/O and host-to-host communication. We compare against a system using USB for device I/O and TSN for host-level networking. Our findings show that a unified approach using USB results in reduced software complexity, simplified bus coordination, and more effective mitigation of priority inversion when transferring data across multiple bus segments. Experiments show that end-to-end latency is within expected delay bounds, and is reduced if the same USB software stack is used for all communication with a given host. This suggests that bridging challenges exist in current systems, which are solved by either extending a high-bandwidth bus such as TSN to support device I/O, or enhancing USB with improved networking capabilities.
more »
« less
Under the Hood: Using Raspberry Pis and WiFis to Do More with Data
With our partners at Manylabs, we are developing Dataflow, a browser-based application that (unlike other IoT platforms) not only lets students collect and view sensor data, but also allows them to write programs that transform that data to control physical actuators. Dataflow uses Raspberry Pis as WiFi-enabled devices that can execute these control programs because they are inexpensive but powerful computers. The Pis run a client program that reads data from all USB-connected sensors, runs student programs, and sets the states of USB-connected actuators.
more »
« less
- Award ID(s):
- 1640054
- PAR ID:
- 10126334
- Date Published:
- Journal Name:
- @Concord
- Volume:
- 22
- Issue:
- 2
- Page Range / eLocation ID:
- 14
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
In optical experiments, shutters are devices that open or close a path of light. They are often used to limit the duration of light exposure onto a target or onto a detector to reduce possible light-induced damage. Many commercial shutters are available for different applications – some provide very fast opening and closing times, some can handle large optical powers, and others allow for fail-safe operation. Many of these devices are costly and offer limited control options. Here we provide an open-source design for a low-cost, general purpose shutter system based on ubiquitous actuators (servo motors or solenoids) that are connected to an Arduino-based controller. Several shutters can be controlled by one controller, further reducing system cost. The state of the shutters can be controlled via a display built into the controller, by serial commands via USB, or by electrical control lines. The use of a microcontroller makes the shutter controller adaptable – only control options that are used need to be included, and the design accommodates a selection of display and actuator options. We provide designs for all required components, including 3D print files for the actuator holders and cases, the Arduino code, libraries for serial communication (C and python), and example graphical user interfaces for testing.more » « less
-
Universal Serial Bus (USB) ports are a ubiquitous feature in computer systems and offer a cheap and efficient way to provide power and data connectivity between a host and peripheral devices. Even with the rise of cloud and off-site computing, USB has played a major role in enabling data transfer between devices. Its usage is especially prevalent in high-security environments where systems are ‘air-gapped’ and not connected to the Internet. However, recent research has demonstrated that USB is not nearly as secure as once thought, with different attacks showing that modified firmware on USB mass storage devices can compromise a host system. While many defenses have been proposed, they require user interaction, advanced hardware support (incompatible with legacy devices), or utilize device identifiers that can be subverted by an attacker. In this paper, we present Time-Print, a novel timing-based fingerprinting method, for identifying USB mass storage devices. We create a fingerprint by timing a series of read operations from different locations on a drive, as the timing variations are unique enough to identify individual USB devices. Time-Print is low overhead, completely software-based, and does not require any extra or specialized hardware. To validate the efficacy of Time-Print, we examine more than 40 USB flash drives and conduct experiments in multiple authentication scenarios. The experimental results show that Time-Print can (1) identify known/unknown brand/model USB devices with greater than 99.5% accuracy, (2) identify seen/unseen devices of the same brand/model with 95% accuracy, and (3) classify USB devices from the same brand/model with an average accuracy of 98.7%.more » « less
-
We consider a class of robotic systems composed of high elongation linear actuators connected at universal joints. We derive the differential kinematics of such robots, and formalize concepts of controllability based on graph rigidity. Control methods are then developed for two separate applications: locomotion and shape morphing. The control algorithm in both cases solves a series of linearly constrained quadratic programs at each time step to minimize an objective function while ensuring physical feasibility. We present simulation results for locomotion along a prescribed path, and morphing to a target shape.more » « less
-
Coarse-grained reconfigurable arrays (CGRAs) have gained attention in recent years due to their promising power efficiency compared to traditional von Neumann architectures. To program these architectures using ordinary languages such as C, a dataflow compiler must transform the original sequential, imperative program into an equivalent dataflow graph, composed of dataflow operators running in parallel. This transformation is challenging since the asynchronous nature of dataflow graphs allows out-of-order execution of operators, leading to behaviors not present in the original imperative programs. We address this challenge by developing a translation validation technique for dataflow compilers to ensure that the dataflow program has the same behavior as the original imperative program on all possible inputs and schedules of execution. We apply this method to a state-of-the-art dataflow compiler targeting the RipTide CGRA architecture. Our tool uncovers 8 compiler bugs where the compiler outputs incorrect dataflow graphs, including a data race that is otherwise hard to discover via testing. After repairing these bugs, our tool verifies the correct compilation of all programs in the RipTide benchmark suite.more » « less
An official website of the United States government

