In my application NI-8476s acts as a master which communicates with only one slave. I want to send a LIN header frame (ID 0x3E -> extended) to which the slave will reply with 9 bytes of data + checksum.
Could anyone please tell me if it is even possible to send/receive user defined (extended) frames with NI-8476s? If yes, where could I find some examples?
It is customer requirement to have 9 bytes of data encapsulate into a single frame.
Do you have any idea if the 8476s supports this kind of extended frames? Any additional comments are appreciated also.
ID 0x3E means User-defined LIN frame, that may carry any type of information.
An introduction into the protocol: http://www.ni.com/white-paper/9733/en
If you take a look on LIN Frame Format chapter, you will find the explanation of Data Bytes.
The data bytes field is transmitted by the slave task in the response.
This field contains from one to eight bytes of payload data bytes.
You will find the same here: http://www.lin-subbus.org/index.php?pid=5&
So it's a bit strange for me, that your customer needs 9 bytes.
Maybe you could use more than one frame to transmit the data.
NI 8476 can be used with program that uses the NI XNET API.
I recommend to have a look into the NI-XNET Hardware and Software Manual : http://www.ni.com/pdf/manuals/372840f.pdf
Regarding to this you can use for example the Frame Input Queued Mode to receive LIN messages from the slave.
This mode reads data from a dedicated queue per frame. It enables your application to read a
sequence of data specific to a frame.
Other modes on page 4-15.
If the session uses LIN interface, the read selection for that protocol is recommended. For more advanced applications, use XNET Read (Frame Raw).vi, which returns frames in an optimized, protocol-independent format.
On the 4-182 page of the NI-XNET Hardware and Software Manual you can read more details about the XNET Read (Frame Raw).vi.
Detailed info about the raw frame format is on the 4-506 page.
Maybe it's worth to try the raw frame format, that consists of one or more frames encoded in a sequence of bytes, for the purpose to transmit more than 8 bytes of payload.
But this is only possible with more frames, because for all CAN and LIN frames, PayloadLength cannot exceed 8.
Info about example programs:
To view the NI-XNET examples, select Find Examples...from the LabVIEW Help menu.
When you browse examples by task, NI-XNET examples are under Hardware Input and
Output. The examples are grouped by protocol in CAN, FlexRay, and LINfolders.
Examples for LIN (at Hardware Input and Output»LIN»NI-XNET»Basic):
• LIN Signal Input Single Point.viwith LIN Signal Output Single Point.vi.
• LIN Signal Input Waveform.viwith LIN Signal Output Waveform.vi.
• LIN Frame Input Stream.viwith any output example.