Hi, I am wanting to simultaneously sample 100 channels of microphone data with a resolution of 24 bit, at 128 kSPS (kilo samples per second) per channel. I then want to save the data to file for later analysis. I assume that recordings will be made for a few seconds at a time. This will require a data throughput rate of approximately 300 Mbits per second, ie. (100 Channels)*(128 kSPS/channel)*(24 bit). I am not sure what is the best way to get this data from the ADCs to memory. Is one or more DSP or FPGA the best way to go and if so which ones. I have been looking at the TMS320C64x DSPs but perhaps there is something better/easier. Also what is the best interface to get the data from any such device to the memory. Also what type of memory would be best. I am new to all this so any advice you could give would be gratefully appreciated. Thanks
Best way to getting a high data rate (300Mbps) from multiple ADCs to memory
Started by ●May 20, 2008
Reply by ●May 20, 20082008-05-20
mlphy wrote:> Hi, > > I am wanting to simultaneously sample 100 channels of microphone data with > a resolution of 24 bit, at 128 kSPS (kilo samples per second) per channel. > I then want to save the data to file for later analysis. I assume that > recordings will be made for a few seconds at a time. > > This will require a data throughput rate of approximately 300 Mbits per > second, ie. (100 Channels)*(128 kSPS/channel)*(24 bit). > > I am not sure what is the best way to get this data from the ADCs to > memory. Is one or more DSP or FPGA the best way to go and if so which ones. > I have been looking at the TMS320C64x DSPs but perhaps there is something > better/easier. Also what is the best interface to get the data from any > such device to the memory. Also what type of memory would be best. I am new > to all this so any advice you could give would be gratefully > appreciated. Thanks >What environment are you working in? Are you trying to get this data into a PC, or will it stay on some sort of embedded board? Is space a consideration? Are you building one system or 1000? Do the 100 channels have to be synchronized (I'm assuming you're doing some sort of localization and the answer is 'yes'). 300Mbits per second for a few seconds isn't theoretically challenging -- DRAM is cheap, and spinning ten seconds worth of data into DRAM would only require 400MB of DRAM. The hard part is acquiring the data from 100 channels and handling it in a manner that doesn't require more wires than exists in all of creation. One thing that jumps to mind immediately is to build or acquire 100 identical small data acquisition systems, each capable of collecting data from one microphone, buffering a few seconds worth, and sending the information to the PC via Ethernet. Synchronization would be an issue, but can (I assume) be handled. Have you investigated the possibility of finding PCI data acquisition that does what you want or part of what you want, and stuffing a bunch of them into a PC? Or a number of PCs, with external synchronization? Or a PC with a PCI extension bus (I _think_ you can get those)? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" gives you just what it says. See details at http://www.wescottdesign.com/actfes/actfes.html
Reply by ●May 20, 20082008-05-20
Hi, thanks for your reply.>What environment are you working in? Are you trying to get this data >into a PC, or will it stay on some sort of embedded board?I want to get the data to a PC. A short recording will be made and then the data will be transfer to the PC.>Is space a consideration? >Are you building one system or 1000?At this stage, space is not a consideration. Compactness is not an issue. I will be building only 1 to 3 units at this stage.>Do the 100 channels have to be synchronized (I'm assuming you're doing >some sort of localization and the answer is 'yes'). >One thing that jumps to mind immediately is to build or acquire 100 >identical small data acquisition systems, each capable of collecting >data from one microphone, buffering a few seconds worth, and sending the>information to the PC via Ethernet. Synchronization would be an issue, >but can (I assume) be handled. >I am considering using an ADC which allows synchronize all channels. The output of theese ADCs is either SPI or frame sync format.>Have you investigated the possibility of finding PCI data acquisition >that does what you want or part of what you want, and stuffing a bunch >of them into a PC? Or a number of PCs, with external synchronization? >Or a PC with a PCI extension bus (I _think_ you can get those)?Yes I have looked into getting a 100 channel simultaneous sampling ADC system but everything I have seen is out of my budget. I had wondered if one could get some sort of pci data input board to take the data from the ADCs to the PC, which would be less expensive. Thanks
Reply by ●May 20, 20082008-05-20
>Hi, thanks for your reply. > >>What environment are you working in? Are you trying to get this data >>into a PC, or will it stay on some sort of embedded board? > >I want to get the data to a PC. A short recording will be made and then >the data will be transfer to the PC. > >>Is space a consideration? >>Are you building one system or 1000? > >At this stage, space is not a consideration. Compactness is not anissue.>I will be building only 1 to 3 units at this stage. > >>Do the 100 channels have to be synchronized (I'm assuming you're doing >>some sort of localization and the answer is 'yes'). >>One thing that jumps to mind immediately is to build or acquire 100 >>identical small data acquisition systems, each capable of collecting >>data from one microphone, buffering a few seconds worth, and sendingthe> >>information to the PC via Ethernet. Synchronization would be an issue,>>but can (I assume) be handled. >> > >I am considering using an ADC which allows synchronize all channels. The >output of theese ADCs is either SPI or frame sync format. > >>Have you investigated the possibility of finding PCI data acquisition >>that does what you want or part of what you want, and stuffing a bunch >>of them into a PC? Or a number of PCs, with external synchronization? >>Or a PC with a PCI extension bus (I _think_ you can get those)? > >Yes I have looked into getting a 100 channel simultaneous sampling ADC >system but everything I have seen is out of my budget. I had wondered if >one could get some sort of pci data input board to take the data fromthe>ADCs to the PC, which would be less expensive. Thanks > >My suggestion is to go with ADC's that support TDM Mode. Using this method you can transfer 8 or 16 channels in only three wires. I'd then run this to a couple DSP's. Your main problem here is going to be peripheral support. TI's McASP's work nicely but at some point you'll be limited to something like 16 channels per McASP port and if you're part only has 3 McASP ports... you're looking at 3 DSP's. My personal preference for DSP's nowadays is the Analog Devices Blackfin line. I've found TI's parts to be very challenging when setting up I/O ports (near 100 registers to setup!!) while Blackfins tend to be more simplistic. Then strap on a big old SDRAM and just use DMA to stream from input port to SDRAM buffers. Then you'll probably want some kind of USB driver on one DSP (the one processing the least amount of channels) to transfer data to pc. All-in-All it's a pretty big project and will take some time to get it all running correctly. Good Luck! -Jeff
Reply by ●May 21, 20082008-05-21
On Tue, 20 May 2008 19:05:00 -0500, mlphy wrote:> Hi, thanks for your reply. > >>What environment are you working in? Are you trying to get this data >>into a PC, or will it stay on some sort of embedded board? > > I want to get the data to a PC. A short recording will be made and then > the data will be transfer to the PC. > >>Is space a consideration? >>Are you building one system or 1000? > > At this stage, space is not a consideration. Compactness is not an > issue. I will be building only 1 to 3 units at this stage. > >>Do the 100 channels have to be synchronized (I'm assuming you're doing >>some sort of localization and the answer is 'yes'). One thing that jumps >>to mind immediately is to build or acquire 100 identical small data >>acquisition systems, each capable of collecting data from one >>microphone, buffering a few seconds worth, and sending the > >>information to the PC via Ethernet. Synchronization would be an issue, >>but can (I assume) be handled. >> >> > I am considering using an ADC which allows synchronize all channels. The > output of theese ADCs is either SPI or frame sync format. > >>Have you investigated the possibility of finding PCI data acquisition >>that does what you want or part of what you want, and stuffing a bunch >>of them into a PC? Or a number of PCs, with external synchronization? >>Or a PC with a PCI extension bus (I _think_ you can get those)? > > Yes I have looked into getting a 100 channel simultaneous sampling ADC > system but everything I have seen is out of my budget. I had wondered if > one could get some sort of pci data input board to take the data from > the ADCs to the PC, which would be less expensive. ThanksWhat are your abilities, what is your budget, and what is your time worth? With much messing around you may be able to get a bunch of cast- off PCs, synchronize them with Ethernet, and use data acquisition cards. This could be done with software skill but not much hardware skill. Alternately, with much messing around and some (relatively) inexpensive eval boards, you could do the same thing with DSP chips or perhaps as few as one big FPGA. If you were budgeting this like a business, and valuing your time, it's going to cost $$$ no matter how you slice it. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
Reply by ●May 21, 20082008-05-21
Hi, thanks for your help and advice. Yes it does seem like it is going to be a bit of a job. I may get funding to buy a ready made unit. However, it is best, I think, to assume I will not be getting any funding and carry on making one myself. Which do you think would be easier/best to use, DSPs or FPGAs. I will look into Analog Devices DSPs. In relation to ti's DSPs, I understand that the data throughput rate of their McBSP ports are related to the DSP's cpu speed. In this case would it be better to get one or more very fast one (1 GHz) or get multiple less fast ones (200MHz). Thanks
Reply by ●May 21, 20082008-05-21
mlphy wrote:> Yes I have looked into getting a 100 channel simultaneous sampling ADC > system but everything I have seen is out of my budget. I had wondered if > one could get some sort of pci data input board to take the data from the > ADCs to the PC, which would be less expensive. ThanksDid you look for a typical pro-audio solution? This could be cheaper than an indutsry type ADC system. Maybe you can find something here: http://www.rme-audio.de/en_index.php Usually these boards can be stacked up to multiply the channel number. bye Andreas -- Andreas H�nnebeck | email: acmh@gmx.de ----- privat ---- | www : http://www.huennebeck-online.de Fax/Anrufbeantworter: 0721/151-284301 GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc
Reply by ●May 21, 20082008-05-21
>mlphy wrote: > >> Yes I have looked into getting a 100 channel simultaneous sampling ADC >> system but everything I have seen is out of my budget. I had wonderedif>> one could get some sort of pci data input board to take the data fromthe>> ADCs to the PC, which would be less expensive. Thanks > >Did you look for a typical pro-audio solution? This could be cheaper thanan>indutsry type ADC system. Maybe you can find something here: > >http://www.rme-audio.de/en_index.php > >Usually these boards can be stacked up to multiply the channel number. > >bye >Andreas >-- >Andreas H�nnebeck | email: acmh@gmx.de >----- privat ---- | www : http://www.huennebeck-online.de >Fax/Anrufbeantworter: 0721/151-284301 >GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc >PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc > >Thanks, thats a good idea. I had not thought of that.
Reply by ●May 21, 20082008-05-21
>Hi, thanks for your help and advice. Yes it does seem like it is going to >be a bit of a job. I may get funding to buy a ready made unit. However,it>is best, I think, to assume I will not be getting any funding and carryon>making one myself. > >Which do you think would be easier/best to use, DSPs or FPGAs. > >I will look into Analog Devices DSPs. In relation to ti's DSPs, I >understand that the data throughput rate of their McBSP ports arerelated>to the DSP's cpu speed. In this case would it be better to get one ormore>very fast one (1 GHz) or get multiple less fast ones (200MHz). > >Thanks >Personally, I feel that DSPs are the better choice, but I have been using them for a while now so I am biased. McBSP ports still have some channel count limitations. For example they can sometimes only have two data pins in. Most TDM ADC's will top out at a 16CH Data Stream. So that means that you'll have at most 32 Channels per McBSP and if you're part only left with 64 Channels per DSP. Plus you may want to look into parts with McASP ports instead of McBSP. They are more multi-channel friendly. McBSP's are more tuned in to stereo sources (I2S format). If you can find a 1GHz part that has 4 McASP-like ports, this would likely be the better solution. The complication factor increases exponentially as you add multiple IC's. Look at it this way: Complication = e ^ (number of processors) Just my 2 cents. -Jeff
Reply by ●May 21, 20082008-05-21






