| ??? 02/19/03 09:34 Read: times |
#39406 - RE: Easy but reliable serial communication Responding to: ???'s previous message |
Hello!
Thanks to everyone, who tried to help me! Please let me add some notes... Eric: Because I found problems with a network based on data transmission via the serial port of a PC, I decided to use CAN, wich is a CSMA-CD based protocol with error detection based on CRC checking... To all: It is easy, to translate the PCs RS232 single wire signal to a TTL level using the well known MAX232. Its also easy, to translate this TTL level signal to a differential one using the LTC490. But this differential signal is not a RS485 signal! (In a RS485 network is only one (differential) data line called "party line", wich is used to talk to each connected MC. Wich MC is allowed to talk is controlled by a "token", wich is an information, wich is transferred form one "node" to another (and even can be left or duplicated). And, if two transmitters get access to talk, and a 0 and a 1 are transmitted at the same time, a short circuit occurs, wich is much more then a data distortion...) To Menno: I did it this way: PC.TXD -> Cable between the PC and the first MC -> MAX232 (receiver) -> 8052.RXD and MAX232 (transmitter) simply connected together -> Cable between the first MC and the second MC ... PC.RXD <- Cable between the PC and the first MC <- MAX232 (transmitter) <- 8052.TXD ANDed together with MAX232 (Receiver) <- Cable between the first MC and the second MC ... This works, because of the high level on the 8052s TXD pin when it comes out of a reset and the internal pull up / down resistors inside the MAX232. (You can do this as well with LTC490s and optocouplers.) To all: The problem I found is neither the data transmission nor the error checking (there are many CRC subroutines, which can easily found by google). A network protocol is much more than this, you have to ask for another telegram, if you have received an erronous one, you have to distinct between control bytes and data bytes, you have to distinct between different telegrams to different nodes, you have to recover from network errors, ... Some of this problems are solved in modem communications (x-, y- and zmodem protocols), all of them in tcp/ip, but: is there an easy to use implementation with a debugable code wich doesn't need up all processors resources? Thank you! Mike |



