View Single Post
  #56   Spotlight this post!  
Unread 23-04-2008, 17:00
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,569
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: Purchasing the 2009 controller

Quote:
Originally Posted by Danny Diaz View Post
I was actually wondering if anyone actually had the opportunity to read the technical specifications for the cRIO and realized there ARE NO INTERRUPTS SUPPORTED ON THE cRIO. I'm guessing not.

Instead of having interrupts, you have an FPGA - the FPGA is a pure polling mechanism, but it's extremely FAST. So, instead of having interrupts taking time away from the main processor, you've got an external unit managing a fast polling strategy for reading external sensors.

-Danny
For things like quadrature decoding, I'd expect that the FPGA would latch the input. Since it is an FPGA (hardware, as opposed to software), it processes everything in parallel.

CompactRIO whitepaper has a lot of great details about the architecture.


Quote:
Originally Posted by Mike Mahar View Post
I'm assuming that there must be some sort of way of scheduling things. VxWorks is a multi-task RTOS. How do you schedule anything without any interrupts? For example, this year we used the gyro which is a rate sensor. To get an angle we had to integrate it over time which requires an accurate time base. The FPGA could do this for us but we don't know what is in the FPGA and we can't change it. If the function that we need isn't there, how do we work around it? Similarly, the accelerometers can give you speed by integraing over time and then you can get distance by integrating the speed over time. In this case the speed isn't even a real input and is unlikely to be in the FPGA.

I've read up on the mpc5200 that is in the cRIO and there are 8 timers built into the processor. I suppose that those will still be available.
I've never worked with VxWorks, but it's very likely that uses one or more of the hardware timers to provide software timers at whatever rates you want. From the link above "Timed loop structure for multirate deterministic control"


After reading the whitepaper, I'm very happy with the architecture. My only qualm is that without real interrupts in the user code or the ability to reconfigure the FPGA, it will be impossible to add certain types of sensors without support from NI. I'm sure they will do a good job getting all the common ones in, though.
Reply With Quote