Project

General

Profile

IcE1usb » History » Version 5

laforge, 07/12/2020 09:38 PM
libosmo-abis code merged master.

1 1 tnt
h1. iCE40 E1 USB interface
2
3
This page is the main entry point for the E1 Software defined interface using the iCE40 FPGA as the core.
4
5
6
h2. Architecture
7
8 2 laforge
This approach tries to implement as much as possible inside an iCE40 FPGA
9 1 tnt
10 2 laforge
Particularly, the iCE40 FPGA
11
* contains the E1 PHY. There is no external LIU*, reducing the BOM cost significantly.  Instead, the comparators of the FPGA are used.  In practice, this has shown to work on short E1 links of a few meters.  We'd expect some problems in terms of long-haul E1 links, but those are not really the target use case here.
12
* contains the E1 framer, including frame alignment
13
* contains a USB softcore (no external USB PHY needed)
14
* contains a PicoRISCV softcore to implement USB protocol handling and to connect the E1 softcore with the USB softcore
15
16
So all-in-all, we can build a USB-E1 interface from little more than an iCE40 FPGA and an E1 line transformer!
17
18 4 laforge
!{width:50%}ice40-e1.jpg!
19
20 1 tnt
h2. Current stack
21
22 2 laforge
* The hardware is currently not documented, only few prototypes exists and have been half hand-wired. They are currently based off iCEBreaker and iCEBreaker-bitsy iCE40 dev boards. ( https://github.com/icebreaker-fpga/icebreaker ) as well as iCEpick by @tnt.
23 1 tnt
* The gateware is temporarily hosted in the 'e1' branch of this repo : https://github.com/smunaut/ice40-playground/tree/e1/projects/riscv_usb
24
* The embedded software is in the same repository as above, in the 'fw' sub-directory : https://github.com/smunaut/ice40-playground/tree/e1/projects/riscv_usb/fw
25 2 laforge
* The userspace daemon that handles the USB communication is hosted at: https://git.osmocom.org/osmo-e1d
26 5 laforge
* The support for this daemon interface to the rest of the cellular stack is merged in mainline [[libosmo-abis:]]. Make sure you build it with @--enable-e1d@, though.
27 1 tnt
28
h2. Presentations
29
30
* Talk from OsmoCon 2018 about the Software Defined E1 project as a whole : attachment:osmocon_2018_e1.pdf
31
* Talk from OsmoDevCon 2019 about the iCE40 based solution specifically: attachment:osmodevcon_2019_e1.pdf
32 2 laforge
33
"video recording of the iC40 based approach / OsmoDevCoon 2019":https://media.ccc.de/v/osmodevcon2019-97-software-defined-e1
34 3 laforge
35
h2. Status
36
37
The full stack from hardware/gateware through firmware and host software has shown to be functional, but hasn't yet been used/tested extensively.
Add picture from clipboard (Maximum size: 48.8 MB)