# Caraoke: An E-Toll Transponder Network for Smart Cities Abari et al., ACM SIGCOMM '15 ## Motivation/Introduction - **Background:** RFID is pervasive, everyone has an EZPass, e.g., transponder (mandatory in PA?) - Deploy RFID readers on street lamps, intersections, everywhere in city (at some cost), as shown in **Figure 3**. - Interact with e-toll (EZPass) transponders anywhere in an urban environment - Enables some new **use cases:** 1. Vehicle flow at traffic intersections 2. Red light enforcement via localization 3. Street parking management and billing ### Transponder Background - *Reader* (high powered multi-Watt radio + directional antenna) sends message to tags, tag replies - But **no MAC protocol** so common practice is to place readers in non-overlapping locations (spatial reuse) - **Figure 2:** Shows the reader transmitting the 915 MHz sinewave *Query* signal and the transponder's *Response* data packet - Simple radio so carrier frequency offset up to 1.2 MHz (that's one part per thousand -- typical Wi-Fi radio CFOs are 10-30 parts per million) - Transponder response is **On-Off Keyed (OOK):** Each symbol period, transmit carrier for a one, or be silent for a zero. - Receive picture -- peaks at the CFO value Delta-f (on board) ### Contribution/Key Idea - Let tags collide when they are read simultaenously but view collision in the **frequency domain** -- use **carrier frequency offset (CFO)** to separate the tags ## Design - LTE backhaul, solar-powered lamppost-mounted reader ### §5: CFO-Based Sharing - **Goal:** Estimate the number of vehicles crossing a busy intersection - Take the FFT of collision (sum of many received tags replying at the same time) - **Figure 4:** Most likely, # peaks = # transponders responding 1. Need to look at the **distribution** of the transponder CFOs 2. Need to consider **frequency resolution** of the FFT - Inversely proportional to FFT **time window T* - Tag response 512 us so frequency resolution = 1.95 KHz - That's 615 "bins" over a range of 1.2 MHz - Eq. 7 gives prob of an accurate transponder count if we just count peaks in the frequency domain - **Insight:** Time shifting property of DFT -- time shift in in the time domain transforms with a phase shift linear with frequency, in the frequency domain. - Receive two signals R(f) and R(f'), then looking at that with a time shift you get R(f)exp{j2pi\*f\*tau} + R(f')exp{j2pi\*f'\*tau} - Paper claim: Then magnitude of that bin changes b/c the two frequencies rotate by different amounts and then sum... - **Algorithm:** Test each non-empty bin using the above time-shifting property, if detect multiple responses in the same bin, count that as **two** responses - Now a miscount happens when **three or more** transponders end up in same FFT bin - Very unlikely (math in Eq. 9) ### §6: Localizing Transponders - **Goal:** Localize the transponders, to enable smart parking, red-light violations - Calculate the AoA at a two-antenna reader via the same math as spatial signatures (**Figure 5** and Eq. 10) - Do this on a per-frequency basis to separate the AoA estimates for each tag (unnumbered equation on p. 302, lower right column) - Issue: Sensitivity to small perturbations of Delta-phi at the ends of the two antenna array - Fix: Use three antennas in a triangle, switch to the pair that doesn't end-face the tag - But need a story for either adding a radio OR switching and then re-querying to get more readings (only partially discussed in paper) - Result (**Figure 7**): A *cone* locus, which intersects the road at a *hyperbola* - Two readings from two readers results in two hyperbolas, intersect them for location fix. ### §7: Measuring Speed - Localize car at two different locations, NTP timesync, compute average speed ### §8: Decoding IDs - Spectrum is sinc-squared power versus frequency, not white noise - Nice trick to separate closely-spaced replies in frequency: - Estimate channel to one tag - Receive another batch of collisions, estimate channel to the same tag and equalize - Add the results: the one tag adds coherently, the others are random and average to zero - Repeat with even more readings for better results (**Figure 8**) ### §9: Coordinating Multiple Readers - Preceding was interference between tag replies; now consider two readers initiating queries at the same time - This is usually OK: sum of two sinuoids is a sinusoid - Collision of query with tag reply: - Listen for duration of query + reply (this is the slot time), then use CSMA/CA like Ethernet/ALOHA ### §11: Evaluation - Implemented in hardware, experimented on quiet urban environment streets - EZPass transponders in real cars, on real street #### Counting Accuracy - **Figure 11:** Vary the number of transponders responding, accuracy maintains high - Collect traces by measuring each transponder in isolation, using highly directional antenna - Then sum up varying numbers of transponders (so know ground truth) to obtain another trace instance #### Localization Accuracy - Two readers, 175 localization instances - Measure **bearing estimation accuracy**, not localization accuracy - Accurate to within 4 degrees on average -- low intensity multipath reflections outside, line-of-sight path from car to elevated reader. - Measured the MUSIC AoA profile (**Figure 14**) to support this.