I am analyzing Industrial Ethernet fieldbus like EtherCAT and Powerlink in order to use them in an embedded PC platform with QNX. I suppose that it is necessary some API in order to communicate with the bus. Could anybody give me some information about this matter? Thanks
> necessary some API in order to communicate with the bus Er, you don't actually interface directly with a bus, you need a software driver that will talk to whatever hardware that interfaces to it. For example, you might have a PCI adapter card which has the hardware interface that you want, and you need a software driver that talks via the PCI bus to the adapter card. Clear as mud? -- aboyd
Yes, I understand I need some API, but my doubt is if there is some open source API or I need to pay some license, for these field buses. And other possible problem is the integration of this API with QNX.
> integration of this API with QNX. One common idea is to use a QNX Resource Manager. It's a really simple framework that allows you to integrate a service into the file system. For example, you take over /dev/fubar, and when a client wants to transmit binary data on the bus, he calls open() and then write(), and to receive binary data on the bus he calls read(). My kid wrote one recently. Start reading here: http://www.qnx.com/developers/docs/6.3.2/neutrino/prog/resmgr.html -- aboyd
Andrew, I have been working with resource managers since a lot of time, I agree with you. The matter is the integration of this API, for instance, with io-net, (I'd like to use Industrial Ehternet), the licenses, the open-source, etc.
> integration of this API, for instance, with io-net If you can wedge it into an io-pkt (native devnp) ethernet driver, you can take advantage of an awful lot of existing infrastructure - stuff just starts working. For special stuff, I might suggest implenting some private driver devctls - I've done that in the past for some network drivers, to support additional functionality (powering up and down ports, reading and writing registers, etc) -- aboyd