Then, at minimum, you will need error detection. How radio-noisy is the environment? What's the distance between transmitter and receiver? Will this be the only CNC transmitter or are there multiple CNC machines where you might deploy this?
The shorter the message, the better.
I would use something like the NEC protocol for which I have an example on the page mackrackit referenced earlier. I would send each packet 3-5 times with a 10-20mS interval between them, discarding duplicates and any with errors received. This method allows you to handle other tasks within the main loop.
If you want to do it purely with RS232, use $FF,$FF,$FF,$FF,$00,$00,$55 as a preamble and have the receiver's PIC WAIT for the $55. The data (but not the preamble) should be manchester encoded. I would also send these packets 3 or more times with the above interval. With this method you will need to use a timeout if you need to handle other tasks. All in all, I consider it problematic for this application.
If range is not an issue, you might want to consider using the squelch circuit shown in Figure 11 of the Linx datasheet for the receiver. This would eliminate most of the noise (i.e. static) and simplify reception.
However, the best way to do this would be with an FSK transmitter and an FSK receiver with a Carrier Detect output.
Out of curiosity, what type of operation? I spent several years in the machine tool industry and most CNC controls either displayed or had serial outputs for this type of data.
Bookmarks