Embedded Asterisk on the Blackfin Processor

Download Report

Transcript Embedded Asterisk on the Blackfin Processor

How to Build an Embedded
Asterisk IP-PBX
rowetel.com/ucasterisk
Contents
•
•
•
•
•
•
•
•
Free Telephony Project
Why Embedded Asterisk
Motivation
Open Hardware
Open Hardware Hacking
Credits
Products
Demo
Free Telephony Project 1

many people working in open software

we are working in open hardware

professional telephony hardware designs

that we give away

to improve the world a little
Free Telephony Project 2

designs can be copied modified, re-used
without restriction

we encourage cloning of our products

trend: functionality shifting from hardware to
(free) software

trend: total system costs constantly dropping
Free Telephony Project 3


falling hardware costs are a good thing
(especially for the developing world)
so rather than protecting IP we leverage these
trends

by giving away free hardware designs

and encouraging cloning!
Why Free Telephony Project?
• Hardware designs are free as in speech
• Use FOSS and Open Hardware to drive
system costs to $0
• Lower the cost of telephony for everyone on
the planet
• A phone call should be a human right, not a
privilege
Why Embedded Asterisk
•
•
•
•
•
•
•
Small size (DSL router)
Low power 3W (battery, solar)!
No moving parts (fans or disks)
Quiet
Reliability (parts count, connectors)
Low cost (few hundred $)
Just plain cool!
IP-PBX and Asterisk
• A open source PABX (PBX) that can route
calls between the PSTN and VOIP
• Usual FOSS advantages – low cost and open
• VOIP experiencing massive growth
• Primary sponsor Digium but many
contributors
• Hence alternatives such as FreeSwitch,
CallWeaver, etc, etc
Introduction
• Typical installation x86 PC plus PCI card to
connect to the telephone lines/telephones.
• Paradigm shift away from x86/PCI cards
• History: Embedded = IP-only and no DSP
(Echo cancellation and codecs not possible)
• Analog Devices Blackfin Processor has
challenged this paradigm!
Blackfin Processor
• A powerful DSP (1 GMAC)
• AND runs uClinux
• Breaks the two processor (host/DSP)
paradigm
• Low cost ($5 - $15 each)
• Well supported by vendor and community
• Open hardware and software
IP-PBX Hardware 101
Host PC
PCI Card
Asterisk
Device
Driver
PCI
Bridge
FXO
Port
x86 CPU
Ethernet
Card
DSP
hardware
FXS Port
IP-PBX Hardware 101
Embedded PBX
Asterisk
Blackfin
CPU
FXO
Port
DSP
software
Device
Driver
FXS Port
IP-PBX Hardware 101
• Many redundant parts removed
Lower cost
Smaller size
Lower power
Enhanced reliability
• Don’t need “hardware” DSP – Blackfin
CPU is a DSP
Challenges
• Complex development environment
– Cross compiler & tool-chain
– Customized kernel and apps
•
•
•
•
Learning Curve
Low memory ~64MB
uClinux (offset by partial MMU)
Care and feeding of the cache
Motivation 1
• Various motivations across the people and
companies involved in the project.
• Obvious business potential in a $200 IPPBX with multiple ports.
• Enabler for service models.
• My motivation is Social & Geeky rather
than Business.
Motivation 2
• I like building stuff
• Would like to use my hardware/DSP skills
to improve the world a little
• Open software like Linux and Asterisk has
been a great thing for the World.
• Craig Newmark (Craigslist) : Nerd values
“Get yourself comfortable, then do
something fun to change the world a little”
Open Hardware 1

reference designs that anyone is free to copy,
re-use, modify

CAD files, prototypes

differences from open software

atoms cost more than bits

you need a factory
Open Hardware 2

many advantages over closed development

similar to open software

many eyes

low bug count

dramatic reduction in R&D cost and time
Open Hardware 3

CVS/SVN for version control of designs

re-using hardware building blocks

helping each other get strange parts

blog instead of log book – share experience

chat to help debug hardware
Open Hardware 4

normal hardware costs include 70% overhead

exciting new business models, e.g. OLPC

dramatic price reductions

local manufacture

customisation, localisation, e.g. solar, wireless
How to Hack Telephony
Hardware in Linux
• Schematic Entry (gschem)
• PCB Design (PCB)
• Verilog HDL (Icarus)
Design Process Flow
Design
Schematics
(gschem)
Design PCBs
(PCB)
Write Verilog
Code (Icarus)
Assemble
Prototype
Hardware
Debug and
Test Hardware
Port Asterisk
to Blackfin
(gcc)
Integrate and
Test system
gschem Schematic Entry
Analog Hardware Example
Hardware Hacking is Getting
Easier!!
•
•
•
•
•
•
•
Build sophisticated surface mount circuits.
Order strange parts on-line e.g. Digikey
Prototype PCB costs dropping
Stereo Microscope + soldering tools < $500
Open hardware designs
Free CAD tools
Help from on-line communities
Open Hardware IP-PBX Products
•
•
•
•
IP04 4-port Analog IP-PBX (production)
IP08 8-port Analog IP-PBX (prototype)
E1/T1 PRI-Appliance (prototype)
BRI-Appliance (prototype)
Case Study - IP04

Switches analog and VoIP calls

fanless, low power (5W), rugged, compact

open hardware and software

easy to customise, e.g. simple UI


potential for very low cost ($100), compared to
$2,000 retail for similar products
stable but not feature complete (CID, GUI)
Case Study – IP04
PRI Appliance (Astfin Team)
BRI Appliance (Astfin team)
'Free” Phone Call
• between Adelaide and Beijing using two
IP04's
• open hardware design
• designed with open CAD software
• running uClinux and Asterisk
• using VOIP ($0 call cost)
• Freest phone call ever?
Demo
•
•
•
•
Boots from a Battery
phone call
telnet, asterisk CLI
GUI
Credits
In no particular order:
• Atcom (China) for putting the IP04 into mass
production
• Astfin team for developing build system, PRI
and BRI-ISDN hardware
• Analog Devices for Blackfin and great
uClinux support
• Linux and Asterisk communities
• Many others who contributed (e.g. drivers,
software fixes)
Questions?
For more information
rowetel.com/ucasterisk