Firewire and USB driver

Dear all,
Could anyone help me start off with writing drivers for firewire and USB device?. I have two cameras which only use the above connections.

Thanks
Aswin

For firewire it’s quite complicated because you have to start from scratch or maybe MindReady still sells there firewire stack.

For USB QNX provides a USB DDK, then you have to find what protocol your camera uses ( they mostly use all the same) then write the USB driver to follow thoses specs.

Then you need to write some sort of player or plug-in because QNX doesn’t have an easily accessible frame work to write that kind of application.

Basicaly LOTS of work.

Thanking you for the reply. But I have no other option but write a firewire driver…if possible please specify any kind of documentation to help me start with…
Thanks

You could start by googling IEEE-1394. The Wikopedia article gives some good background information. If you check out the IEEE site, they probably will sell you the specification document, although in the past I’ve found them to be somewhat mercenary. There are example drivers for Linux that you might seek out for help.

Finally, if you are not already conversant in QNX 6.3 driver, you will need to become so. You will have the burdeon of building at least a dual level driver. That is, you need a driver to interface to the IEEE-1394 bus, but in addition, each device(type) connected to it will need unique code. If you only are interested in one video cam, then you can roll this into one driver at the expense of future flexibility.

On the plus side, if you build a good QNX driver, there is probably a (possibily small) market for it.

You could start by googling IEEE-1394. The Wikopedia article gives some good background information. If you check out the IEEE site, they probably will sell you the specification document, although in the past I’ve found them to be somewhat mercenary. There are example drivers for Linux that you might seek out for help.

Finally, if you are not already conversant in QNX 6.3 driver, you will need to become so. You will have the burdeon of building at least a dual level driver. That is, you need a driver to interface to the IEEE-1394 bus, but in addition, each device(type) connected to it will need unique code. If you only are interested in one video cam, then you can roll this into one driver at the expense of future flexibility.

On the plus side, if you build a good QNX driver, there is probably a (possibily small) market for it.

If you write something from scratch you are in for quite a challenge. The bulk of the problem is getting the IEEE-1394 specification as well as the specification for the chips that implents it.

Are you sure you have no other choice? Maybe ethernet camera?

Hi Mario,
Does your driver for Dalsa Cameras support jumbo frames?
Does it support GigE?
What would be the CPU usage transferring frames in 1200X1200 Bayer8 Data Format?
Regards,

How do you know it’s Dalsa? No it does not support jumbo frames, the limitation comes from QNX.

Yes it support GigE but never tried on anything else then Dalsa Genie cameras.

Well CPU usage depends on the power of the CPU, also it depends on frame rate.

At 200Mbits per sec, a AMD 2.4Gig was using 20% of one core. With multi-core that’s less of an issue but the multi-core option for QNX6 is a lot of money.

Hi Mario,
You posted some time ago that you are working on GigE driver for Dalsa cameras whithout to reveil details, as you have NDA with them probably.
Prosillica are publishing for free SDK for QNX6.3.X, but their driver is not supporting the jumbo frames either. I know this comes from QNX stack itself unfortunately, because Windows supports it easyly!!!
The advantage of FIreWire is that the cards are supporting DMA transfer of the frames and the only CPU usage is for rendering of the image itself.

Network card uses DMA as well, but that’s for the raw ethernet frame. The CPU is involved because of TCP/IP.

As for jumbo frame, its not that big of deal the way the QNX network driver ( for Intel ) is written. I was told the reduction in CPU processing requirement wouldn’t be that drastic. I

I never used Prosilica because they don’t have any line scan camera, unfortunately.