In freebsd-questions Digest, Vol 305, Issue 13, Message: 2
On Sat, 10 Apr 2010 15:41:33 +0200 Grzegorz Daniluk <li...@o2.pl> wrote:
 > Hi everybody,
 > I have a question regarding rs-232 under FreeBSD.
 > I need to write an application for FreeBSD to operate an industrial 
 > controller via rs-232. The trick is that it should have very good long 
 > term stability (reliably operation over years). It should be able to 
 > detect and correct (e.g by reconfiguration of rs-232 port parameters) 
 > when rs-232 hangs or changes its transmission parameters as a result of 
 > electrical interference/disturbances etc. First thought is to simply 
 > close and reopen rs-232 port every given time interval, so even if 
 > something 'strange' happens the failure would be fixed after finite time 
 > period. But maybe there is smarter way of doing that. Maybe some special 
 > fault-tolerant rs-232 kernel drivers ?
 > Any help appreciated, maybe someone has other helpful advieces regarding 
 > reliable rs-232 programming ini general ?

RS-232 is inherently as reliable as the devices you're talking with, the 
protocols you're using for communication and the (lack of) interference 
from noise on cable/s in the environment you're operating in.  Even in 
very adverse (noisy) conditions, I've never found any need to close and 
reopen ports to reinitialise hardware on freeBSD, back to version 2.2.

If a byte of data is corrupted, it's just corrupted; I don't know of any 
conditions (given electrical signals within specification) that could 
cause a tty or uart port to require re-initialisation.  So it comes down 
to detection of any transmission errors, either byte-by-byte using say 
parity bits, or by protocol (eg CRC) if using packet-oriented data 
transmission, and physical prevention of errors by such as shielded 
cables, avoiding earth loops between computer and device/s and so on.

Perhaps you could provide a few more details about how the industrial 
controller is talked to, at what baudrate, cable length, software or 
hardware handshaking (eg CTS/RTS &/or DTR/DSR) and whether byte-by-byte 
or using packet protocols, and such?  Is the communication two-way?

cheers, Ian

(please CC me; I'm subscribed to the -digest which can take a while)
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to