Im wondering how exactly is data transmitted via serial and paralell bus.
From my understranding, paralell bus permanently send signal corresponding to bit 1 or 0 (higher current = 1, lower = 0), while serial bus doesnt send anything untill data arrives, and then it use low current for 0, and high for 1. Number of such signals = ammount of bits.
Controller on motherboard in case of parallel bus is updating pin/bit value when signal changes, and controller from serial bus fill its bit array with data.
When cpu write data to parallel bus controller, controller change bit states and automaticly signal is changed (device detect it and know im talking to it). I dont know what will happen when cpu and device try to change 1 pin at almost same time. Writing to serial bus cause controller to cretae and send a packet of data, wich device receive and fill its registers.
I dont know where to search for basic information about it, i guess im completly wrong about this, i hope you will help me understand it a little more.
data transmission
Re: data transmission
Do all buses work in the same way when it comes to transferring data?
When device send information to other device (controller to controller), does it immidietly update pin to send 0 instead of 1, this pin is constantly sending data, and the other side is updating its status with frequency of the clock? Or click is simply frequency of pulses that come through the bus, carrying current data (wich is in my opinion simplier)? What sense has clock in serial bus then?
How do serial buses are multiplexed? Somehow i cant imagine digital device to use any efficient subchannels because its just impossible... All i can do is modulate current with speed the other side can handle, so all i can think of is for example ion bus using 3 bits - 8 levels of current, and lowest current = 000, highest = 111, mid one is 100, and so on. If combine 2 such signals, u bet 6 bits, 3 - 9, and so on. Is that correct? I dont want to go now into implementation specyfic details, i just want to understant technology im dealing with every day.
When device send information to other device (controller to controller), does it immidietly update pin to send 0 instead of 1, this pin is constantly sending data, and the other side is updating its status with frequency of the clock? Or click is simply frequency of pulses that come through the bus, carrying current data (wich is in my opinion simplier)? What sense has clock in serial bus then?
How do serial buses are multiplexed? Somehow i cant imagine digital device to use any efficient subchannels because its just impossible... All i can do is modulate current with speed the other side can handle, so all i can think of is for example ion bus using 3 bits - 8 levels of current, and lowest current = 000, highest = 111, mid one is 100, and so on. If combine 2 such signals, u bet 6 bits, 3 - 9, and so on. Is that correct? I dont want to go now into implementation specyfic details, i just want to understant technology im dealing with every day.
Re: data transmission
I cant find anything like this in sATA or USB. Usb has VCC pin, wich i belive is power but is it also is used as a clock?Serial bus usually has one data and one clock lines.
Stupid question: can pin be in or out only? If so, does it matter that other side controller doesnt care about the signal on that pin, or it works in diffrent way? Why would someone want one way pins? Is it for parallel receive/send using serial bus? For example, USB has 2 data pins. each of them can transmit data only 1 way?
What about sata?
It has 2 pairs of wires. I dont get it. How does serial controller detect if the other side is transmitting, when it also want to send data?
- Firestryke31
- Member
- Posts: 550
- Joined: Sat Nov 29, 2008 1:07 pm
- Location: Throw a dart at central Texas
- Contact:
Re: data transmission
I think the protocol that the TI-83+ uses is a kind of serial without a clock. It goes something like this:
2 lines, I'll call 'R' and 'T' which can be high (R and T) or low (r and t). When one calculator pulls a line high, only it can set the line low.
Calculator A wants to send a 1 bit to calculator B. It sets the R line high. Calculator B sees this and sets T high to acknowledge this, and sets the appropriate bit in the received byte. Calculator A then lets R low, and B follows suit. This looks something like this:
rt
Rt
RT
rT
rt
It's the same with a 0, except A starts with T instead of R:
rt
rT
RT
Rt
rt
The calculators repeat this with each bit until all of the data has been transferred, or one of the calculators times out.
Note, I might have some things backwards (like which line gets pulled for which bit), but the concept is what I'm trying to get across.
2 lines, I'll call 'R' and 'T' which can be high (R and T) or low (r and t). When one calculator pulls a line high, only it can set the line low.
Calculator A wants to send a 1 bit to calculator B. It sets the R line high. Calculator B sees this and sets T high to acknowledge this, and sets the appropriate bit in the received byte. Calculator A then lets R low, and B follows suit. This looks something like this:
rt
Rt
RT
rT
rt
It's the same with a 0, except A starts with T instead of R:
rt
rT
RT
Rt
rt
The calculators repeat this with each bit until all of the data has been transferred, or one of the calculators times out.
Note, I might have some things backwards (like which line gets pulled for which bit), but the concept is what I'm trying to get across.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
Re: data transmission
First i must know what to search for.Really, learn to google, there's a whole new world around you.
I know whats nrzi, and now i know its used in usb, thank you. But could you be more specyfic about 'synchronising a clock'? what does it mean!!?used to send data with a sync field to synchronise the host and receiver clocks
Do you mean by this that sync pattern is *somehow* used to determine a frequency of shifts from 1 to 0 (faster closk = higher frequency), and then read rest of data, wich length is fixed as 'No termination needed'? Why USB is half duplex? How the other side know when to start sending data? Where the clock is actually running, on wich device, one on my mobo, or one in device? Whats the diffrence between mobo and external device's controller? Or both controllers have a clock, wich might run on diffrent frequencies, thats why sync patter is needed?
As you see, i dont know anything, so i cant really search myself because i have no solid basics on wich i can extend my knowleadge.