Re: [Discuss-gnuradio] [USRP] tracking the transmission/receiving process
On 10.09.2015 12:47, Logan wrote: > Hi Martin, > > Thank you. Now I see how the interaction between the host PC and USRP works. > Actually, i am mostly interested in the transmission/sensing to/from the > radio space (i.e. a radio application on PC sends command to the hardware > for transmission/sensing). To my understanding, the application has put the > radio parameters into the property tree and messages into the queue. But how > does the hardware (motherboard&daughterboard) know when to perform the > transmission/sensing? I know the command is also delivered through the > Ethernet as you've introduced. I am wondering where does the USRP somehow > "decode" the command, and realize the intention of the application? This depends a lot on which device you're using. On the X-Series, the E310 and also on the B200 series, we use a packet format we call 'CVITA'. This includes flags for packet type (e.g., command vs data), time stamps and other info. Say you send a data packet to the X310 radio. Internally, it uses a crossbar to route the packet to the correct destination (the radio). There, it is identified as a data packet by its header flags. The radio is set up to transmit any data packet it receives, so it goes straight to the DAC from there (with some preprocessing). On the receive side, you might send a 'transmit command' packet to the radio. Again, it uses the header flags to identify it as a command; in this case, the payload defines what happens (e.g.: start transmitting now). Data packets go back to the host, etc. You can imagine this is something we could talk about for days, so I'm going to have to cut it off here -- but don't hesitate to come back if you have more specific questions. M ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] [USRP] tracking the transmission/receiving process
Hi Martin, Thank you. Now I see how the interaction between the host PC and USRP works. Actually, i am mostly interested in the transmission/sensing to/from the radio space (i.e. a radio application on PC sends command to the hardware for transmission/sensing). To my understanding, the application has put the radio parameters into the property tree and messages into the queue. But how does the hardware (motherboard&daughterboard) know when to perform the transmission/sensing? I know the command is also delivered through the Ethernet as you've introduced. I am wondering where does the USRP somehow "decode" the command, and realize the intention of the application? Best Regards, Logan -- View this message in context: http://gnuradio.4.n7.nabble.com/USRP-tracking-the-transmission-receiving-process-tp55900p55975.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] [USRP] tracking the transmission/receiving process
Hi Jeff, Thank you for the suggestions. I'll look into the codes under "cores" directory. Logan -- Posted via http://www.ruby-forum.com/. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] [USRP] tracking the transmission/receiving process
On 08.09.2015 15:41, Logan Wu wrote: > Hello, > > I've been tracking the source code to figure out the procedure of > transmission/receiving. All I've found out is that the parameters (e.g. > freq, gain, etc.) are stored in a property tree, and messages are > inserted to the tail of queue. But how does the transmitter/receiver > (daughter board) know when to transmit/receive? Specifically, which file > in UHD host code does the job of notifying the hardware to > transmit/receive? I'm not sure if this answers your question, but it's the send() call that initiates a transmit from the host side. This does a bunch of things, depending on the device, but mainly starts sending data packets to the USRP, and once they hit the radio, they're automatically sent. On the rx, side, you do an issue_stream_cmd() and that will tell the radio to start sending data to the host. The recv() call then picks up the data from the host-local buffer. If you have more specific questions, don't hesitate to drop them here! Cheers, Martin ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] [USRP] tracking the transmission/receiving process
As an example, look for issue_stream_command() in uhd/host/lib/usrp/cores/rx_dsp_core_200.cpp There are separate files to control the various "cores" in the FPGA logic. And, there are multiple versions of things for different boxes, transports, etc. It starts makes sense if you read through a bunch of the code. - Jeff On 09/08/2015 06:41 PM, Logan Wu wrote: Hello, I've been tracking the source code to figure out the procedure of transmission/receiving. All I've found out is that the parameters (e.g. freq, gain, etc.) are stored in a property tree, and messages are inserted to the tail of queue. But how does the transmitter/receiver (daughter board) know when to transmit/receive? Specifically, which file in UHD host code does the job of notifying the hardware to transmit/receive? Thank you, Logan ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio