问题
I've always wanted to have a better understanding of what is happening at the hardware level. As a practical level, anything after compile equals 'magic' and I'd like to remedy that.
I'd like to investigate building circuits and then moving up to assembly programming on basic chip sets, both for my own sake and also for my son's, as something we can learn together.
I've looked at some of the "snap circuit" kits, but to be honest, they don't interest me.
Suggestions?
Edited Note: Thanks to everyone who responded.
回答1:
I would recommend looking at the course The Elements of Computing Systems. Most of the material you need to complete the course is online and the textbook is inexpensive (I paid about 50.00 USD for my copy).
The course takes you through constructing a basic computer system from the NAND gate on up. All of the labs are done in simulation software and it would not be a large stretch of the imagination to convert it to actual hardware (using VHDL).
There is also a Google Tech talk on the the course.
http://video.google.com/videoplay?docid=7654043762021156507
If you want to dive in deeper than digital electronics (logic gates) and learn about analog electronics (the transistors and other components that gates are constructed out of), and the physics behind electricity I recommend Teach Yourself Electricity and Electronics
回答2:
http://www.nerdkits.com/
I am in no way associated with these guys, but their products look cool. And it seems to be what you are looking for.
回答3:
First, learn some basic electrical theory - resistive networks, measuring voltage and current, Ohm's law, and the basics of diodes and transistors.
Buy a few lamps, resistors, LEDs, transistors, and of course wires and wire strippers, electrical tape, batteries and preferably a multimeter. Mess around with some basic circuits. You might like to put some nails in a board and use that to help you out. Making an electromagnets can also be fun, especially for young ones. The components are pretty cheap so don't worry to much about accidentally burning them out - it's just a lesson learned.
The real magic happens when you create a circuit with a few transistors that feed off each other, such that when you flip a switch, a light comes on, and when you unflip the switch, the light stays on.
Once you've reached that point it's probably time to move away from those "low-level" components and start using pre-built chips, like NAND gates and potentially more complex integrated circuits.
An interesting approach from the programming side is to write a small program in assembly language that gets loaded when the computer boots. A "Hello World" operating system, if you will. And then expand it a bit. Use an emulator/debugger such as Bochs to save you time when testing, but then do the fun part: create a bootable floppy disk and let the computer boot off it! You may wish to have a look at this.
回答4:
Really, the hardware level is electrical engineering. Computers are complex clocked synchronous digital electronic circuits. Software is built on this hardware platform.
The EE in me thinks that you might want to consider getting a copy of The Art of Electronics by Horowitz and Hill. A lab manual is available. Possibly more information than you want to know, and definitely a big, fat, heavy book, but also a very good introduction to electronics that does not require advanced math. You shouldn't read it in one sitting. Digital and analog electronics are covered, as well as microprocessors.
The only criticism I have is it is a bit dated -- the integrated circuits discussed are now pretty old. The basics and the theory is still sound and well done, and a new edition may be in the works.
The books website: http://frank.harvard.edu/aoe/
The books Wikipedia page: http://en.wikipedia.org/wiki/The_Art_of_Electronics
Building circuits in the real world great fun, and quite different than computer simulation.
回答5:
here is a promising one, http://www.dcaclab.com/en/lab/ it covers DC, little bit AC .. Diode & Oscilloscope
回答6:
You can start with PIC prototyping kit. These are small programmable control chips, One source is Apogee Kits
回答7:
I voted for @Jim C. But I saw this link today on hackaday.com that may interest you for playing with.
回答8:
The PICkit 2 Starter Kit is pretty nice.
回答9:
You might also look into at SchmartBoard. They make some really good snap together pcb boards which makes working with the tiny stuff easy.
回答10:
There's a very good interactive one here
http://sol.gfxile.net/atanua/index.html
It allows you to build functioning digital circuits, you can watch a couple working on youtube
来源:https://stackoverflow.com/questions/379165/whats-the-best-way-to-learn-how-to-build-circuits