Download presentation
Presentation is loading. Please wait.
Published byMiranda Armstrong Modified over 9 years ago
1
Embedded Asterisk and the Blackfin Processor
2
Topics Introduction Why Embedded? IP PBX Hardware 101
Free Telephony Project and Open Hardware Status The Future Opportunities
3
Introduction Paradigm shift away from x86/PCI cards
Embedded = IP-only and no DSP Echo cancellation and codecs not possible Analog Devices Blackfin Processor has the potential to change this situation Most people today are building Asterisk boxes using x86 processors and line interface hardware on PCI cards. Until now, running Asterisk on an embedded processor has meant switching IP calls only (no line interface hardware such as T1 or analog ports).
4
Why Embedded Small size (DSL router)
Low power < 10W (battery, solar)! No moving parts (fans or disks) Quiet Reliability (parts count, connectors) Low cost (a few hundred $ street) Just plain cool!
5
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
6
IP-PBX Hardware 101 Host PC PCI Card Asterisk Device Driver PCI Bridge
FXO Port x86 CPU Ethernet Card DSP hardware FXS Port
7
IP-PBX Hardware 101 Embedded PBX Asterisk Blackfin CPU FXO Port
DSP software Device Driver FXS Port
8
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
9
Challenges Complex development environment Learning Curve
Cross compiler & tool-chain Customized kernel and apps Learning Curve Low memory ~64MB uClinux (offset by partial MMU) Care and feeding of the cache No virtual memory, no paging Cache: External RAM operates at around 100MHz, internally around 500 MHz. Between these two clock domains is a cache and some internal memory that can operate at full speed. This is a limited resource and needs to be managed to get maximum performance out of the chip. Fortunately there is some support from the tool chain – for example you can tell the linker to place your DSP code in fast internal memory, while using external memory for less demanding code and data.
10
Who is working on Blackfin Asterisk?
Several individuals and companies (e.g Digium) working on Blackfin Telephony products Expect to see many Blackfin based Telephony products in the near future This presentation focuses on the activities of the Free Telephony Project
11
Free Telephony Project Goals
Build a completely open embedded telephony platform. Hardware designs are open. Full design and manufacture information available for download. Schematics, PCB layouts, HDL code, unit tests You can download the hardware design information from my web site. This information is sufficient for you to clone the hardware.
12
Motivation Various motivations across the people and companies involved in the project. Obvious business potential in a $200 IP-PBX with multiple ports. Enabler for service models. My motivation is Social & Geeky rather than Business. That’s why I am happy to try and open hardware model. It’s an experiment. A bit like open source software was a few years ago.
13
Motivation 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”
14
Open Hardware The designs are free as in speech
A community exists that are sharing designs and helping each other. Build better hardware faster using open development models. Opportunities for small business. It’s working! I decided to try open hardware for this project as a bit of an experiment. As I mentioned, I am less interested in the business side than the social side, so the potential risks of sharing hardware don’t bother me. I am wondering if open hardware can offer some of the advantages that open source software offers. Its OK to copy and clone the hardware. The ideas is that the hardware designs get better over time by peer review and incremental improvements. Just like open source software, the concept of open hardware can provide small companies with ready made designs, rather than requiring their own R&D department. They can then incrementally add and improve, or tweak the designs to differentita. Example: I worked with a few other people working on hardware designs at other companies. They assisted me in checking and reviewing my designs, and I did the same for them. We made suggestions to help improve each others work, and caught a few potential bugs early, before we had frozen the design. The result was that with Open hardware my prototypes worked first time. This has never happened before, at least to me. Zero modifications to the prototype hardware were required. I was building the beta units a few weeks after first powering up the prototypes.
15
Hardware Projects (so far)
Motherboard plus stackable daughter card architecture Various 4-8 port Analog interfaces Blackfin Motherboard with dual Ethernet + USB E1/T1 Quad BRI-ISDN (8 channels) Various projects underway. The basic concept is a Motherboard that contains the Blackfin chip, SDRAM, Flash, and Ethernet. On top of that you plug in daughter cards containing the the line interface hardware. The daughter cars can be stacked, for example to increase density or to mix analog and digital ports. Some projects that have been started and progressed to some degree. Some project still in the design stages, for others there is working Beta hardware for sale. Teams of people from around the world are working on these projects, for example I have been working with teams from Eastern Europe on Hardware designs – we takes turns working on a board layout and use CVS to coordinate our work.
16
How to Hack Telephony Hardware in Linux
Schematic Entry (gschem) PCB Design (PCB) Verilog HDL (Icarus) I would like to talk a little about the tools we use to develop telephony hardware. A comprehensive suite of CAD tools is available under the gEDA project. Made a decision to use 100% open tools because (i) its cool and (ii) cost of entry for others is lowered. The are good enough for the job, and in some cases superior to equivalent expensive commercial tools. As they are all open source, the good news is that if you ned anotehr feature, you can add it.
17
Design Process Flow Design Schematics (gschem)
Write Verilog Code (Icarus) Design PCBs (PCB) Assemble Prototype Hardware Debug and Test Hardware Here is a diagram that shows the steps I have taken in developing some telephony hardware for Asterisk. These are pretty typical for hardware development in general, not just embedded work. (Pointer) Verilog is a text-based language that we use to describe some parts of the digital logic. Its an commonly used alternative to schematic entry. Open simulation tools also used for that. (optional – photo of assembly and microscope) Tools: All Open Source! Port Asterisk to Blackfin (gcc) Integrate and Test system
18
gschem Schematic Entry
Part of a screen shot from the gschem program Used to enter and edit the schematic of the hardware Point to various components, breif description Libraries, hierachy
19
Analog Hardware Example
One of the Analog cards that has been developed Sits on top off a off the shelf Blackfin Development card Modular FXS/FXO architecture – each daughter board allows 4 ports, plus can stack in 4 port multiples Could also stack an Analog with say a BRI ISDN card to get a mix of port types LEDs indicate port type – this version has 2 FXS and 2 FXO ports installed Note SD card socket – gives us the extra storage required for all those prompts and for storing voic If you would like to see it running, I have it here
20
Status Develop Analog Hardware Sep 2005 Dec 2005 Sep 2006
Port Asterisk to Blackfin Integrate and Test PoC System Build and Test Beta Units Oct 2006 Port driver to Blackfin Type Approval So this is the status of my particular project, which is developing analog FXS/FXO interfaces for the Blackfin. This started out as a hobby project for me about 1 year ago. In March 2006 I left my day job to work on this project more or less full time. First question I had to answer was “could Asterisk run on the Blackfin”? A couple of challenges at the time no one had run Asterisk on uClinux (most embedded ports were on processors with MMUs) & (ii) uClinux didn’t support shared libraries, which Asterisk makes extensive use of (iii) I was new to Asterisk, so had to workout how to run and modify it. Next step was to see if the Blackfin really could talk to analog hardware. So I used a commercial off the shelf FXO module and worked out how to connect it to the Blackfin, which involved modifying a PCI card driver. One nice thing about the Blackfin is it’s ability to interface with a wide variety of line interface hardware with zero glue logic. This got me to the point where I had a proof of concept one port system running. Since then I have been working on a couple of analog designs, and have taken one to the point where it is Beta testing at the moment. I should point out - My main interest is an remains hardware and DSP software. There are plenty of people out there who can code application level software better than me, but not many working on open hardware and DSP. So that’s where I would like to focus, and perhaps have others help on Application level software and configuration issues. Volume Manufacture Q1 2007
21
Status Asterisk ported to the Blackfin Stable but Beta
FXO/FXS hardware designed and being beta tested Beta hardware available for sale now Undergoing compliance testing Commercial (open) hardware in Q1 2007
22
Performance 500 MIPs Available (1 GMACs)
G729A (10 MIPs) Speex (15-30 MIPs) Simultaneous SIP Calls (approx 50) Echo Can Depends on tail Say 12 with full 128ms, 24 for FXS Explains difference between MIPs and MACs CPU load is dominated by DSP operations, Asterisk switching type activity is small in comparison Some examples of performance on this chip We have tested the port with up to about 50 simultaneous SIP calls. I suspect it could go further however my applications are mainly in the low density analog area so I haven’t pushed it further.
23
Opportunities Business Individuals End Users
So why is this technology important? Well it brings a whole lot of new opportunities. I have broken these down into three interest areas
24
Opportunities for Business
Massive Differentiation Cost/Margin advantages New products we haven’t even thought of: Asterisk ATA or fax Asterisk in an very smart IP-phone T1 IP-PBX in an ATA form factor for $200 ? Big differentiator in this technology compared to the PC/PCI card paradigm Dramatic cost reductions Enabler for new products. Asterisk powered ATA (a few analog ports, looks like an ATA, talks IAX2, stores voic , runs multiple SIP phone extensions). You could even put Asterisk in an IP phone. Using this technology an IP-PBX with a T1 port could be built in about the same size as an ATA – cost of manufacture would be less than $200.
25
Opportunities for Individuals
It’s open. All of it. Hardware and software. Even the CAD tools! Exciting project in early stages Chance to really contribute It’s very different from x86/PCI Helped needed: Hardware, software, Asterisk config It’s open. REALLY Open. Hardware, software, even the CAD tools used for the hardware.
26
Opportunities for End Users
Lower end user cost – a $300 (street) 4-port IP-PBX in 2008? IP-PBX functionality in the home rather than current ATA. Bring telephony to developing countries. Small, fan-less lets you reach markets like SOHO that don’t want a PC for their phone system. Imagine how a $300 IP-PBX would shake up the PBX industry. Combine it with low cost IP-handsets and suddenly we can build and deploy a sophisticated IP-PBX for less than a key system. And you can buy it all shrink wrapped at Frys. Combination of open software and low cost (open hardware) could play a big role in connecting the developing world. Low cost can bring telephony within the reach of people without much money. Open hardware means they can decide to build it locally if they like – no need to send profits to companies in developed nations. BTW these devices aren’t too hard to build.
27
Getting Started Buy a Blackfin STAMP Card ($226)
Buy a 2 FXO 2 FXS port Analog Starter Kit ($299) Start Hacking
28
Questions? For more information http://www.rowetel.com/ucasterisk Geda
blackfin.uclinux.org List of urls, uclinux
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.