Tags:
create new tag
,
view all tags
---+ RS485 Emulator ---++ Overview The development of protocols for embedded systems that are based on shared buses (e.g. RS485), it's not always easy to implement and validate when implemented directly on the target system, which often lacks high-level debug capabilities. This project aims to create an emulator/server that runs inside a linux/unix environment. It emulates the behaviors observed on shared buses, for example collision of data, echo, noise and lost information. ---++ Description The following figure describes an overview of the functionality. <img src="%ATTACHURLPATH%/Overview.jpg"/> Both the client and the server are linux processes. The server emulates the functionality of the shared RS485 bus. The client emulates the embedded nodes connected to the bus. The target embedded nodes usually use their internal UART (Universal Asynchronous Receiver/Transmitter) to send and receive serial data on the bus and uses a RS-485 transceiver to send and receive data on the bus with RS-485 levels. Since the RS-485 is used normally in a shared bus then the transmitted data is received in all nodes, including the one making the transmission. Some HW implementations block the reception data during transmission. That will not allow the transmitter to detect collisions in the case other node starts transmitting at the same time. The UART can only report that a new byte is received after that byte is fully transmitted. This implies that there is always one byte latency between transmission and reception of the data, even on the transmitter. In addition this also implies that implementations that are based only on UART information to detect when the bus is idle have a potential collision interval equal to the byte transmission period. The RS485 emulator implements this two "characteristics" of a RS485 bus: * Latency equal to one byte period; * Collision of information if more than one client starts transmitting with less than one byte period of time difference The usage instructions of the server are the following: <verbatim> ./rs485 -p <port> -b <baud rate> <port> - TCP port for connections <byte rate> - Number of byte to transfer per second </verbatim> The server accepts connections at the specified TCP "port" from multiple clients and uses the "byte rate" to determine the collision interval size. ---++ Files and download The source code, files, tickets, support and blog of this project can be found on [[https://sourceforge.net][SourceForge]] in the following link: https://sourceforge.net/projects/rs485emulator/ -- Main.PedroMaiaAlves - 2015-07-14
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r1
|
B
acklinks
|
V
iew topic
|
WYSIWYG
|
M
ore topic actions
Topic revision: r1 - 2015-07-14 -
PedroMaiaAlves
Home
Site map
Main web
Projects web
Receitas web
TWiki web
WebAlbum web
Projects Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback