Let's think about a question. When we write an instruction into the microcontroller in the programmer and then remove the microcontroller, the microcontroller can execute the instruction. Then the instruction must be saved somewhere in the microcontroller, and this place can still keep the instruction from being lost after the microcontroller loses power. What is this place? This place is the read-only memory inside the microcontroller, namely ROM (READ ONLY MEMORY). Why is it called read-only memory? Didn't we just write two numbers in it? It turns out that the ROM in 89C51 is an electrically erasable ROM, called FLASH ROM. We just used a programmer to write to the ROM under special conditions by an external device. Under normal working conditions of the microcontroller, it can only be read from that side and data cannot be written in, so we still call it ROM.
2. Several basic concepts
1. The nature of numbers and physical phenomena
We know that computers can perform mathematical operations, which is very difficult for us to understand. Computers, although we don't understand their composition, are just some electronic components. How can they perform mathematical operations? We do math problems such as 37+45 like this: first write 37 on paper, then write 45 below, then calculate in the brain, and finally write the result. The raw materials of the calculation: 37, 45 and the result: 82 are all written on paper. Where are they placed in the computer? In order to solve this problem, let's do an experiment first: There is a lamp here. We know that the lamp is either on or off, and there are two states. We can use '0' and '1' to replace these two states, and stipulate that on is '1' and off is '0'. Now put two lamps, how many states are there in total? Let's take a look at the list:
Please write down the situation of three lights by yourself: 000 001 010 011 100 101 110 111. Let's see, aren't these 000, 001, 101 the binary numbers we have learned? Originally, the on and off of the lights is just a physical phenomenon, but when we arrange them in a certain order, the on and off of the lights represent numbers. Let's abstract it a step further. Why do the lights light up? Looking at circuit 1, it is because the output circuit outputs a high level and powers the lights. Therefore, the on and off of the lights can be replaced by whether the output of the circuit is a high level or a low level. In this way, numbers are connected to the high and low levels. (Please think about what other similar examples have we seen? (Navy) Light language, flag language, telegraph, and even red and green lights)
2. Meaning of bits
Through the above experiment, we already know that the light of a light or the level of a line can represent two states: 0 and 1. In fact, this is a binary bit, so we call a line a "bit" and represent it with BIT.
3. Meaning of bytes
One wire can represent 0 and 1, two wires can represent 00, 01, 10, 11, that is, 0 to 3, and three wires can represent 0 to 7. In computers, 8 wires are usually put together and counted at the same time, which can represent a total of 256 states from 0 to 255. These 8 wires or 8 bits are called a byte.
How Memory Works
1. Memory structure
The memory is used to store data. It uses the level of electrical level to store data, that is, it actually stores the high and low levels of electrical level, rather than the numbers like 1234 that we are used to thinking of. In this way, one of our mysteries is solved. Is there nothing mysterious about computers?
As shown in the left picture above: a memory is like a small drawer, and a small drawer has eight small grids. Each small grid is used to store "charges". The charge is transmitted or released through the wires connected to it. As for how the charge is stored in the small grid, we don't need to worry about it. You can imagine the wires as water pipes, and the charge in the small grid is like water, which is easy to understand. Each small drawer in the memory is a place to store data, which we call a "unit".
With such a structure, we can start storing data. If we want to store the data 12, that is, 00001100, we just need to fill the second and third small grids with charges and release the charges in the other small grids (see the right picture above). But there is a problem. Look at the right picture above. A memory has many units, and the lines are connected in parallel. When putting in charge, the charge will be put into all the units, and when releasing the charge, the charge in each unit will be released. In this way, no matter how many units the memory has, only the same number can be stored. This is certainly not what we want. Therefore, we need to make a slight change in the structure. Look at the right picture above. There is a control line on each unit. If I want to put data into a certain unit, I will give a signal to the control line of this unit, and this control line will turn on the switch, so that the charge can flow freely. There is no signal on the control line of other units, so the switch will not be turned on and will not be affected. In this way, as long as you control the control lines of different units, you can write different data to each unit. Similarly, if you want to get data from a certain unit, you just need to turn on the corresponding control switch.
2. Memory decoding
So, how do we control the control lines of each unit? This is not simple. Isn't it enough to lead the control lines of each unit to the outside of the integrated circuit? It's not that simple. There are 65536 units in a 27512 memory. If each line is led out, the integrated circuit must have more than 60,000 pins? No, what should we do? We need to find a way to reduce the number of lines. We have a method called decoding. Let me briefly introduce it: one line can represent 2 states, 2 lines can represent 4 states, 3 lines can represent several states, and how many lines are needed to represent 256 states? 8, 8 lines, so we only need 16 lines to represent 65536 states.
3. The concept of memory chip selection and bus
At this point, the decoding problem has been solved. Let's focus on another problem. Where do the eight wires sent to each unit come from? They are connected from the computer. Generally, these eight wires are connected to other devices in addition to a memory, as shown in Figure 4. So the problem comes out. Since these eight wires are not dedicated between the memory and the computer, it is not good if a certain unit is always connected to these eight wires. For example, the value in this memory unit is 0FFH and the value in another memory unit is 00H, then is this line at a high level or a low level? Isn't it necessary to fight to see who is more powerful? So we have to separate them. The method is of course very simple. When the external wires are connected to the pins of the integrated circuit, they are not directly connected to each unit. Just add a set of switches in the middle. Usually we keep the switch open. If we really want to write data to this memory or read data from the memory, we just need to turn on the switch. This set of switches is selected by three leads: read control terminal, write control terminal and chip select terminal. To write data into a chip, first select the chip, then send a write signal, the switch is closed, and the transmitted data (charge) is written into the chip. If you want to read, first select the chip, then send a read signal, the switch is closed, and the data is sent out. The read and write signals are also connected to another memory at the same time, but because the chip select ends are different, although there are read or write signals, there is no chip select signal, so the other memory will not "misunderstand" and open the door, causing a conflict. So will the two chips not be selected at the same time? As long as it is a well-designed system, it will not, because it is controlled by calculation, not by us. If two chips are really selected at the same time, then there is a circuit failure, which is not within the scope of our discussion.
From the above introduction, we have seen that the eight wires used to transmit data are not dedicated, but are shared by many devices, so we call it a data bus. The English name of the bus is BUS, which means bus lane, and anyone can use it. The sixteen address lines are also connected together, which is called an address bus.
Previous article:Memoirs of an Electronics Engineer Programming
Next article:Why do we design CPUs and ICs?
Recommended ReadingLatest update time:2024-11-16 22:22
- Popular Resources
- Popular amplifiers
- Wireless Sensor Network Technology and Applications (Edited by Mou Si, Yin Hong, and Su Xing)
- Modern Electronic Technology Training Course (Edited by Yao Youfeng)
- Modern arc welding power supply and its control
- Small AC Servo Motor Control Circuit Design (by Masaru Ishijima; translated by Xue Liang and Zhu Jianjun, by Masaru Ishijima, Xue Liang, and Zhu Jianjun)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- EEWORLD University ---- How does high voltage isolation technology work - Capacitor structure
- [RVB2601 Creative Application Development] 3. WiFi network communication
- Rookie Learning Manual
- Can it replace the human arm?
- Analysis of spike hazards and absorption circuits in switching power supply modules
- What is the baud rate register used for? The documentation seems to be somewhat contradictory. It says baud rate register first and counter later.
- TMS320VC5502EMIF external flash configuration problem
- Implementing SoC Based on 8051 Microcontroller Using FPGA IP Platform
- 【ST NUCLEO-H743ZI Review】——by Sodium Citrate
- Online version of esptool