|
|||||||
| Home | Forums | Rules | Articles | Store | Gallery | Blogs | Register | Donations | FAQ | Calendar | Search | Today's Posts | Mark Forums Read | Search |
| Digital Source Digital Players and Recorders: CD , SACD , Tape, Memory Card, etc. |
|
Please consider donating to help us continue to serve you.
Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving |
|
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
diyAudio Member
Join Date: Nov 2007
|
For some personal projects -- which, although probably /very/ limited-interest, I may post about here in the future --, I've investigated some of the options to use as a pure digital audio interface. However, it seems like every 'standard' interface has severe drawbacks:
Raw PCM -> Too wide to be practical S/PDIF -> #include <stdrant.h> I^2S -> Too specialized AES/ABU -> Still too narrow-minded for my tastes USB -> What's that? SCSI -> Just a little too hard to handle using simpler MCUs. In response to this, I've been working on a new standard, open interface that works over every reliable, full-duplex (or half-duplex with flow control at a lower layer) transmission medium, ditches with explicit sync mechanisms, and includes 'extensive' (well, parity and CRC16 for now) error correction mechanisms. Since it also includes both a protocol versioning mechanism and has space for custom extensions, it should last for a while. Since I finished the design while browsing this forum, you may enjoy(?) the questionable honor of being the first to inspect the design. I suggest you first read the 'General Overview' section. As the filename indicates, it was originally intended to run specifically over an RS-485 serial interface; that intention has, fortunately, survived the design process :^) Note that this is a draft, and I have yet to work it out into a nicely formatted manual page. In the mean time, any and all comments are much appreciated :) Bugs: 1) More extensive error correction capabilities? 2) Parity may require bitwise addressing; 3) Support for more audio formats? 4) Fixed connection order (see 'General Overview'). I do not expect to fix this for plain serial interfaces. |
|
|
|
|
#2 |
|
diyAudio Member
Join Date: Dec 2005
Location: Atlanta
|
So, how would you actually implement this?
|
|
|
|
|
#3 |
|
diyAudio Member
Join Date: Nov 2007
|
Using an MCU and some wits?
|
|
|
|
|
#4 |
|
diyAudio Member
Join Date: Apr 2004
Location: Halifax, NS, Canada
|
Problem #1: Practical implementation.
Assuming 192KHz/24 bit stereo audio, no protocol overhead and UART framing (N,8,1 - no pauses between bits), your required bit rate is 192000*3*2*10 = 11.520000 Mbps. MCU, eh? Find me a microcontroller with a UART that can run that fast and a core that run fast enough to parse bytes at 1.52Mbyte/sec. Plus a codec/I2S interface so that it can stream audio in/out. Oh, and it has to be a "diyable" microcontroller - an ARM926 in a BGA package isn't something your average DIYer will want to use. So 3.3V or 5V supply, leaded packaging, free or inexpensive development tools. Happy hunting. Problem #2: Where's the clock? This is a synchronous audio interface, right? which end drives the clock? how do you do 0ppm clock synchronization between receiving and transmitting ends? "I'm 44.1" "I'm 44.1 too!" isn't 0ppm. I'll post more problems when I have more time.
|
|
|
|
|
#5 | |||||||
|
diyAudio Member
Join Date: Nov 2007
|
Quote:
I thought it might be :) Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Hm, the original intention was to have one interface per channel, but I guess for general use it should support multiple channels, if only to reduce material costs. I'll update the spec to incorporate that. |
|||||||
|
|
|
|
#6 |
|
diyAudio Member
Join Date: Nov 2007
|
Done. I also added a padding facility to further cope with non-bit adressable interfaces.
Second draft |
|
|
|
|
#7 |
|
diyAudio Member
Join Date: Oct 2001
Location: .
|
Way too much spare time.
|
|
|
|
|
#8 | |
|
Banned
Join Date: Aug 2007
|
Exactly what problems does your Proper Digital Audio Interface solve. Aren’t there enough competing interfaces already? In your list of inferior interfaces you omitted Firewire and TCP/IP, among others. Do you expect industry to adopt your interface? Not likely because there are no provisions for data security or DRM. Do you expect other hobbyists to adopt it? Not likely because of its complexity, cost, and difficulty of implementation. While you and I might be able to write a complete development environment for the processor of our choice, very few others here share that ability. Besides, if I were willing to invest that kind of effort to a project I would design my own interface protocol, tailored to meet my needs and not use your over-generalized kluge.
You don’t seem to know the basics of digital data transmission protocols. For example, you specify Quote:
And the idea that the sender and receiver can negotiate what kind of data integrity methods they should use over a connection with no data integrity is absurd. A single bit error in the negotiation could lead to an inoperable connection. One expects even parity and the other expects odd. In such a situation, neither party will accept any message from the other including Reset Device. Data integrity is not something that can be negotiated: It must be an integral part of the protocol. |
|
|
|
|
|
#9 | |
|
diyAudio Member
Join Date: Oct 2004
|
Quote:
It wasn't DIY, it was a living, but I used to write 8 bit microcontroller code that would parse 60Mbps DVB transport streams for digital TV. For my sins. But its do-able. Why do you need a UART as such? You could make life easier with a shift register and an IO port, or implement the shift register in software (if you have enough clock cycles). |
|
|
|
|
|
#10 | ||||||||||||||
|
diyAudio Member
Join Date: Nov 2007
|
Quote:
Quote:
This is a mid-level protocol -- it doesn't deal with the 'physical' (both SCSI and TCP are pretty high level, but meh) interface nor the audio stream itself. It only transports the stream and some metadata. I just happen to like RS-485, that's why I'm pushing the latter... Quote:
I do not expect for 'the industry' -- I assume you mean the commercial establishment -- to adopt anything I design or write. I'm independent, my works are there for the public to 'enjoy', and therefore I'm at a liberty to make them the best I can. Quote:
Quote:
Quote:
Quote:
Quote:
[quote]For example, you specify {quote omitted for some reason -- zeur} That’s brilliant. What do you do if the CRC doesn’t match? Resend the data message, the CRC message, or both?[/qutoe] Both. Forgot to note that, it'll be in the third draft. Quote:
Quote:
Quote:
Quote:
...although I _am_ thinking about turning on CRC by default. Quote:
Quote:
Thanks for your cricitcism -- it's much appreciated. |
||||||||||||||
|
|
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
|
|
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| digital interface transformer,help | tomat | Digital Line Level | 3 | 4th June 2009 06:10 AM |
| dat-link+ digital audio interface need help | koko | Digital Source | 0 | 10th January 2008 10:07 AM |
| Digital Interface for 5.1 Channels Decoded Audio | jgab | Digital Source | 0 | 16th July 2004 03:52 PM |
| digital audio interface inside a discman | takashi | Digital Source | 2 | 4th March 2003 03:22 PM |
| digital interface | higrade | Digital Source | 3 | 16th January 2003 01:35 AM |
| New To Site? | Need Help? |
| Page generated in 0.12082 seconds (87.54% PHP - 12.46% MySQL) with 10 queries |