From owner-freebsd-hackers Wed Oct 11 18:29:58 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id SAA26922 for hackers-outgoing; Wed, 11 Oct 1995 18:29:58 -0700 Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id SAA26910 for <hackers@freebsd.org>; Wed, 11 Oct 1995 18:29:50 -0700 Received: from msmith@localhost by genesis.atrad.adelaide.edu.au (8.6.9/8.6.9) id LAA15650; Thu, 12 Oct 1995 11:26:14 +0930 From: Michael Smith <msmith@atrad.adelaide.edu.au> Message-Id: <199510120156.LAA15650@genesis.atrad.adelaide.edu.au> Subject: Re: non-sio UART driver To: julian@ref.tfs.com (Julian Elischer) Date: Thu, 12 Oct 1995 11:26:14 +0930 (CST) Cc: msmith@atrad.adelaide.edu.au, bde@zeta.org.au, hackers@freebsd.org In-Reply-To: <199510112016.NAA03051@ref.tfs.com> from "Julian Elischer" at Oct 11, 95 01:16:08 pm Content-Type: text Content-Length: 2278 Sender: owner-hackers@freebsd.org Precedence: bulk Julian Elischer stands accused of saying: > > Ok ok, so "multidrop bus" is a bit of a tautology. I guess I should have > > said 2-wire RS-485. ... > > It's not terribly "normal", in that writes to the bus are meant to be > > sort-of atomic transactions. (Being 2-wire, you go from listen to > > drive by raising DTR, write your packet, and then as soon as the last > > character's finished, you drop DTR again to listen for the response.) > > The serial bus I've used had the rx always receiving, and the > tx 'Wire-Or'd onto it.. > it had a differential 'Open Collector' > (I guess open emmitter in the -ve line :) > A simpified version would be... The bus you've specified is almost useless, as the slew to the driven side will be much faster than the slew away, so the difference signal will be all over the place. Add to this the variation in slew based on the number of stations on the bus, and you're in for a nightmare 8) 2-wire RS485 drivers are a dollar or so each in small quantities, and look something like this : |\ | \----+-----------+------------ TX ----+ > | Z 120 ohms at either end of the bus | /------+---------+------------ |/ | | | | | | | | CTL -----+ | | | | | o/| | | / |---+ | RX ----< | | \ |-----+ \| The CTL line tristates the TX outputs, and disables the RX inputs according to whether a station is receiving or transmitting (therefore simplex) > If I were doing this today, I would use SLIP as an example of how to hook > into the tty drivers.. Unfortunately, the SLIP interface doesn't hand down exactly one packet at a time, and you can't afford to go on and off the bus inside a packet. (You generate glitches on the line as it floats and then gets pulled back to the space state.) -- ]] Mike Smith, Software Engineer msmith@atrad.adelaide.edu.au [[ ]] Genesis Software genesis@atrad.adelaide.edu.au [[ ]] High-speed data acquisition and [[ ]] realtime instrument control (ph/fax) +61-8-267-3039 [[ ]] My car has "demand start" -Terry Lambert UNIX: live FreeBSD or die! [[