I'm new to embedded development - but have been interested in the field for a while. I think this is close enough to being programming related; and I've seen enough people here show knowledge in this area, so I'll ask here.
I decided that a cool project that would cover many different areas of programming and hardware would be to develop a digital LAN based KVM. My end-game is to have a few "units" that contain many (I was thinking 4-8) VGA and PS/2 pair female ports and one Ethernet port. You would connect the unit the the LAN and to computers, then access it using a piece of software running on other windows based clients on the network. Each unit would have its own IP but respond to some sort of broadcast packet so that each client would have an entire list of all computers plugged into each unit. As you might guess, I'm not up to speed on network programming either (another reason I chose this project).
My initial idea was that each unit contain three micro-processors. One (that has a lot of analog I/O ports) would interface with the VGA and PS/2 I/O. That would convert the VGA into some sort of digital packet which would be sent off (IC2/USB/whatever) to the second processor. It would also receive a digital packed from the second processor containing the mouse/keyboard input sent from the client. It would then convert that into analog output and send them over the PS/2 ports.
The second processor receives the VGA output from each active computer and combine them into a single image and compress it using JPEG compression. The now-compressed image would then be sent off to the third processor.
The third processor will keep track of all active clients and interface with the Ethernet card. It would send the compressed monitor output to the correct clients, and also receive the keyboard/mouse input which would be dispatched to the second processor.
This is the first embedded project I have ever really thought about. I have the following questions. Note: I am more interested in how you came to the answer then the answer itself. This is a learning experience more then anything else. Though I do work in a tech-repair shop who's current analog KVM is failing and does not have enough ports for the amount of machines we constantly have on the bench; so if I can pull it off cheep enough it could be useful.
Question 1:
Is my current plan totally idiotic? Am I over or under thinking the problem?
Question 2:
How fast do each processors need to be? The first one will be converting a possible
165,888,000 Bytes (1440 * 900 * 32 * 4) (max resolution I want to support times max depth times 4 computers)
That's about 158 MB. What speed does a processor need to be in order to handle that much data 30 times a second?
Then the same goes for the second processor which has to compress 158 MB worth of pixels into JEPG. The LAN processor would have to work much less due to the compression though.
Question 3:
Where would I go to get the hardware required to build this? As far as the micro-processors go, they must have a C compiler available. I think I might go insane writing a JPEG compressing alogo in ASM.
Basically I am stuck. It's difficult if not impossible to find enough resources on the net to start in this field; so I wonder if anybody here could point me in the right direction.
Also, I am fairly limited in my knowledge of electronics.
EDIT
I don't understand why this question was downvoted. The way I see it this question may allow for answers that can help programmers get into embedded development. I have an idea and I know how processors and memory work well enough to code. However, there is a gap in my knowledge between knowing that and the ability for me to implement my own devices. It would be valuable for others who are in my position.