Техника микропроцессорных систем в коммутации. Проектирование микропроцессорных систем на базе микроконтроллеров AVR фирмы Atmel. Горохин В.Н. - 3 стр.

UptoLike

Составители: 

5
Ʌɚɛɨɪɚɬɨɪɧɚɹ ɪɚɛɨɬɚ ʋ1
ɁɇȺɄɈɆɋɌȼɈ ɋ ɉɊɈȽɊȺɆɆɈɃ VISUAL MICRO LAB.
ɉɊɈȽɊȺɆɆȺ ȼȼɈȾȺ-ȼɕȼɈȾȺ ɑȿɊȿɁ UART
ɐɟɥɶ ɪɚɛɨɬɵ: Ɉɫɜɨɟɧɢɟ ɨɫɧɨɜɧɵɯ ɩɪɚɜɢɥ ɪɚɡɪɚɛɨɬɤɢ ɢ ɨɬɥɚɞɤɢ ɩɪɢɤɥɚɞ-
ɧɨɝɨ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ ɧɚ ɹɡɵɤɟ AVR Ⱥɫɫɟɦɛɥɟɪɟ ɞɥɹ ɦɢɤɪɨɩɪɨɰɟɫ-
ɫɨɪɧɵɯ ɫɢɫɬɟɦ ɧɚ ɛɚɡɟ AVR ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ ɮɢɪɦɵ Atmel.
ɉɪɨɝɪɚɦɦɧɨ-ɚɩɩɚɪɚɬɧɵɟ ɫɪɟɞɫɬɜɚ
ɩɨɞɞɟɪɠɤɢ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ AVR ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ
ɉɨɞɝɨɬɨɜɤɚ ɩɪɨɝɪɚɦɦ ɞɥɹ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ɜɵɩɨɥɧɹɟɬɫɹ ɧɚ ɩɟɪɫɨɧɚɥɶ-
ɧɨɦ ɤɨɦɩɶɸɬɟɪɟ ɢ ɫɨɫɬɨɢɬ ɢɡ ɫɥɟɞɭɸɳɢɯ ɷɬɚɩɨɜ:
ɫɨɡɞɚɧɢɟ ɬɟɤɫɬɚ ɩɪɨɝɪɚɦɦɵ;
ɬɪɚɧɫɥɹɰɢɹ ɬɟɤɫɬɚ ɜ ɦɚɲɢɧɧɵɟ ɤɨɞɵ ɢ ɢɫɩɪɚɜɥɟɧɢɟ ɫɢɧɬɚɤɫɢɱɟɫɤɢɯ ɨɲɢ-
ɛɨɤ;
ɨɬɥɚɞɤɚ ɩɪɨɝɪɚɦɦɵ, ɬɨ ɟɫɬɶ ɭɫɬɪɚɧɟɧɢɟ ɥɨɝɢɱɟɫɤɢɯ ɨɲɢɛɨɤ;
ɨɤɨɧɱɚɬɟɥɶɧɨɟ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɟ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ.
Ʉɚɠɞɵɣ ɢɡ ɷɬɚɩɨɜ ɬɪɟɛɭɟɬ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɫɩɟɰɢɚɥɶɧɵɯ ɩɪɨɝɪɚɦɦɧɵɯ ɢ ɚɩ-
ɩɚɪɚɬɧɵɯ ɫɪɟɞɫɬɜ. ɉɪɨɝɪɚɦɦɧɵɟ ɢ ɚɩɩɚɪɚɬɧɵɟ ɫɪɟɞɫɬɜɚ ɪɚɡɪɚɛɚɬɵɜɚɸɬɫɹ ɤɚɤ
ɩɪɨɢɡɜɨɞɢɬɟɥɹɦɢ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ, ɬɚɤ ɢ ɧɟɡɚɜɢɫɢɦɵɦɢ ɮɢɪɦɚɦɢ. Ɉɧɢ ɜɫɟ-
ɝɞɚ ɨɪɢɟɧɬɢɪɨɜɚɧɵ ɧɚ ɤɨɧɤɪɟɬɧɭɸ ɚɪɯɢɬɟɤɬɭɪɭ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ. ɉɪɨɝɪɚɦɦ-
ɧɵɟ ɫɪɟɞɫɬɜɚ ɨɛɵɱɧɨ ɨɮɨɪɦɥɹɸɬɫɹ ɜ ɜɢɞɟ ɢɧɬɟɝɪɢɪɨɜɚɧɧɨɣ ɨɬɥɚɞɨɱɧɨɣ ɫɪɟɞɵ
ɢ ɦɨɝɭɬ ɪɚɫɩɪɨɫɬɪɚɧɹɬɶɫɹ ɛɟɫɩɥɚɬɧɨ, ɭɫɥɨɜɧɨ-ɛɟɫɩɥɚɬɧɨ ɢɥɢ ɧɚ ɩɥɚɬɧɨɣ ɨɫɧɨ-
ɜɟ. ɉɪɨɝɪɚɦɦɧɵɟ ɫɪɟɞɫɬɜɚ VMLab (ɜɟɪɫɢɹ 3.12) ɢ ɬɪɚɧɫɥɹɬɨɪ ɫ ɹɡɵɤɚ ɋɂ
WinAVR ɪɚɫɩɪɨɫɬɪɚɧɹɸɬɫɹ ɫɜɨɛɨɞɧɨ ɢ ɛɟɫɩɥɚɬɧɨ.
Ɍɟɤɫɬ ɩɪɨɝɪɚɦɦɵ, ɫɨɡɞɚɜɚɟɦɵɣ ɧɚ ɩɟɪɜɨɦ ɷɬɚɩɟ ɩɪɨɟɤɬɢɪɨɜɚɧɢɹ, ɨɮɨɪɦ-
ɥɹɟɬɫɹ ɜ ɜɢɞɟ ɮɚɣɥɚ ɧɚ ɹɡɵɤɟ ɚɫɫɟɦɛɥɟɪɚ (c ɪɚɫɲɢɪɟɧɢɟɦ .asm). ɗɬɨɬ ɮɚɣɥ ɹɜ-
ɥɹɟɬɫɹ ɜɯɨɞɧɵɦ ɞɥɹ ɩɪɨɝɪɚɦɦ-ɬɪɚɧɫɥɹɬɨɪɨɜ, ɤɨɬɨɪɵɟ, ɜ ɫɜɨɸ ɨɱɟɪɟɞɶ,
ɫɨɡɞɚɸɬ ɧɨɜɵɟ ɮɚɣɥɵ, ɨɪɢɟɧɬɢɪɨɜɚɧɧɵɟ ɧɚ ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɫ ɤɨɧɤɪɟɬɧɵɦɢ ɨɬ-
ɥɚɞɨɱɧɵɦɢ ɫɪɟɞɫɬɜɚɦɢ. Ɉɛɵɱɧɨ ɷɬɨ:
ɮɚɣɥ-ɥɢɫɬɢɧɝ (ɫ ɪɚɫɲɢɪɟɧɢɟɦ .lst),
ɨɛɴɟɤɬɧɵɣ ɮɚɣɥ (ɫ ɪɚɫɲɢɪɟɧɢɟɦ .obj),
ɮɚɣɥ-ɩɪɨɲɢɜɤɚ FLASH-ɩɚɦɹɬɢ (ɫ ɪɚɫɲɢɪɟɧɢɟɦ .hex),
ɮɚɣɥ-ɩɪɨɲɢɜɤɚ EEPROM-ɩɚɦɹɬɢ (ɫ ɪɚɫɲɢɪɟɧɢɟɦ .eep).
Ɏɚɣɥ-ɥɢɫɬɢɧɝɷɬɨ ɨɬɱɟɬ ɬɪɚɧɫɥɹɬɨɪɚ ɨ ɫɜɨɟɣ ɪɚɛɨɬɟ. ȼ ɧɟɦ ɩɪɢɜɨɞɢɬ-
ɫɹ ɬɪɚɧɫɥɢɪɭɟɦɚɹ ɩɪɨɝɪɚɦɦɚ ɜ ɜɢɞɟ ɢɫɯɨɞɧɨɝɨ ɬɟɤɫɬɚ, ɤɚɠɞɨɣ ɫɬɪɨɤɟ ɤɨɬɨɪɨɝɨ
ɫɨɩɨɫɬɚɜɥɟɧɵ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɟ ɞɜɨɢɱɧɵɟ ɤɨɞɵ. Ʉɪɨɦɟ ɬɨɝɨ, ɥɢɫɬɢɧɝ ɫɨɞɟɪɠɢɬ
ɫɨɨɛɳɟɧɢɹ ɨ ɜɵɹɜɥɟɧɧɵɯ ɨɲɢɛɤɚɯ.
Ɉɛɴɟɤɬɧɵɣ ɮɚɣɥ, ɫɨɡɞɚɜɚɟɦɵɣ ɩɪɨɝɪɚɦɦɨɣ ɚɫɫɟɦɛɥɟɪɨɦ, ɢɫɩɨɥɶɡɭɟɬɫɹ
ɜ ɞɚɥɶɧɟɣɲɟɦ ɤɚɤ ɜɯɨɞɧɨɣ ɞɥɹ ɩɪɨɝɪɚɦɦɵ-ɨɬɥɚɞɱɢɤɚ ɢ ɢɦɟɟɬ ɫɩɟɰɢɚɥɶɧɵɣ
ɮɨɪɦɚɬ.
6
Ɏɚɣɥɵ ɩɪɨɲɢɜɤɢ FLASH ɢ EEPROM ɛɥɨɤɨɜ ɩɚɦɹɬɢ ɩɪɟɞɧɚɡɧɚɱɟɧɵ ɞɥɹ
ɪɚɛɨɬɵ ɫ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɵɦɢ ɢ ɩɚɪɚɥɥɟɥɶɧɵɦɢ ɩɪɨɝɪɚɦɦɚɬɨɪɚɦɢ ɢ ɢɦɟɸɬ
ɫɬɚɧɞɚɪɬɧɵɟ ɮɨɪɦɚɬɵ.
Ʉɪɨɦɟ ɹɡɵɤɚ ɚɫɫɟɦɛɥɟɪɚ, ɞɥɹ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɜɫɬɪɚɢɜɚɟɦɵɯ ɦɢɤɪɨɩɪɨ-
ɰɟɫɫɨɪɨɜ ɲɢɪɨɤɨɟ ɪɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɨɥɭɱɢɥɢ ɹɡɵɤɢ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɜɵɫɨ-
ɤɨɝɨ ɭɪɨɜɧɹ. Ⱦɥɹ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ AVR ɪɚɡɪɚɛɨɬɚɧ ɬɪɚɧɫɥɹɬɨɪ ɫ ɹɡɵɤɚ ɋɂ
WinAVR, ɪɚɛɨɬɚɸɳɢɣ ɫɨɜɦɟɫɬɧɨ ɫ ɩɚɤɟɬɨɦ VMLab. ɉɚɤɟɬ
WinAVR ɩɪɟɞɨɫɬɚɜɥɹɟɬ ɩɪɨɝɪɚɦɦɢɫɬɭ ɬɚɤɨɣ ɠɟ ɥɟɝɤɢɣ ɞɨɫɬɭɩ ɤɨ ɜɫɟɦ ɪɟɫɭɪ-
ɫɚɦ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ, ɤɚɤ ɢ ɚɫɫɟɦɛɥɟɪ, ɧɨ ɜɦɟɫɬɟ ɫ ɬɟɦ ɞɚɸɬ ɜɨɡɦɨɠɧɨɫɬɶ
ɫɨɡɞɚɜɚɬɶ ɯɨɪɨɲɨ ɫɬɪɭɤɬɭɪɢɪɨɜɚɧɧɵɟ ɩɪɨɝɪɚɦɦɵ, ɫɧɢɦɚɟɬ ɫ ɩɪɨɝɪɚɦɦɢɫɬɚ ɡɚ-
ɛɨɬɭ ɨ ɪɚɫɩɪɟɞɟɥɟɧɢɢ ɩɚɦɹɬɢ ɞɚɧɧɵɯ ɢ ɫɨɞɟɪɠɚɬ ɛɨɥɶɲɨɣ ɧɚɛɨɪ ɛɢɛɥɢɨɬɟɱɧɵɯ
ɮɭɧɤɰɢɣ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɫɬɚɧɞɚɪɬɧɵɯ ɨɩɟɪɚɰɢɣ.
Ɉɬɥɚɞɤɚ ɩɪɨɝɪɚɦɦ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ ɦɨɠɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɞɜɭɦɹ ɨɫɧɨɜ-
ɧɵɦɢ ɫɩɨɫɨɛɚɦɢ: ɧɚ ɩɟɪɫɨɧɚɥɶɧɨɦ ɤɨɦɩɶɸɬɟɪɟ ɩɪɢ ɩɨɦɨɳɢ ɩɪɨɝɪɚɦɦɵ
ɫɢɦɭɥɹɬɨɪɚ ɢɥɢ ɜ ɪɟɚɥɶɧɨɣ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɧɨɣ ɫɢɫɬɟɦɟ. Ⱦɜɚ ɷɬɢ ɫɩɨɫɨɛɚ ɜɡɚ-
ɢɦɧɨ ɞɨɩɨɥɧɹɸɬ ɞɪɭɝ ɞɪɭɝɚ.
ɉɪɨɝɪɚɦɦɵ-ɫɢɦɭɥɹɬɨɪɵ, ɤ ɤɨɬɨɪɵɦ ɨɬɧɨɫɢɬɫɹ ɫɪɟɞɚ VMLab, ɨɬɨɛɪɚɠɚɸɬ
ɧɚ ɷɤɪɚɧɟ ɤɨɦɩɶɸɬɟɪɚ ɩɪɨɝɪɚɦɦɭ ɩɨɥɶɡɨɜɚɬɟɥɹ ɢ ɫɨɫɬɨɹɧɢɟ ɜɧɭɬɪɟɧɧɢɯ ɪɟɝɢɫɬ-
ɪɨɜ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ. ȼ ɪɟɡɭɥɶɬɚɬɟ, ɩɨɹɜɥɹɟɬɫɹ ɜɨɡɦɨɠɧɨɫɬɶ ɞɥɹ ɧɚɛɥɸɞɟɧɢɹ
ɡɚ ɢɡɦɟɧɟɧɢɹɦɢ ɜ ɪɟɝɢɫɬɪɚɯ, ɩɚɦɹɬɢ ɢ ɩɪɨɰɟɫɫɨɪɧɨɦ ɹɞɪɟ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ
ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ ɬɟɯ ɢɥɢ ɢɧɵɯ ɤɨɦɚɧɞ ɩɪɨɝɪɚɦɦɵ. ȼ ɪɟɚɥɶɧɨɣ ɫɢɫɬɟɦɟ ɫɨɫɬɨɹ-
ɧɢɟ ɜɧɭɬɪɟɧɧɢɯ ɪɟɝɢɫɬɪɨɜ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ɩɨɫɦɨɬɪɟɬɶ ɩɪɢ ɩɨɦɨɳɢ ɢɡɦɟɪɢ-
ɬɟɥɶɧɵɯ ɩɪɢɛɨɪɨɜ ɧɟɜɨɡɦɨɠɧɨ. ɂɫɩɨɥɶɡɨɜɚɧɢɟ ɫɢɦɭɥɹɬɨɪɨɜ ɷɮɮɟɤɬɢɜɧɨ ɩɪɢ
ɨɬɥɚɞɤɟ ɩɨɞɩɪɨɝɪɚɦɦ, ɤɨɬɨɪɵɟ ɜɵɩɨɥɧɹɸɬ ɱɢɫɥɟɧɧɭɸ ɨɛɪɚɛɨɬɤɭ ɜɧɭɬɪɟɧɧɢɯ
ɞɚɧɧɵɯ.
ȼɧɭɬɪɢɫɯɟɦɧɵɟ ɷɦɭɥɹɬɨɪɵ ɹɜɥɹɸɬɫɹ ɫɩɟɰɢɚɥɶɧɵɦɢ ɫɯɟɦɚɦɢ, ɤɨɬɨɪɵɟ ɫ
ɨɞɧɨɣ ɫɬɨɪɨɧɵ ɫɜɹɡɵɜɚɸɬɫɹ ɫ ɩɪɨɟɤɬɢɪɭɟɦɨɣ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɧɨɣ ɫɢɫɬɟɦɨɣ ɱɟ-
ɪɟɡ ɩɚɧɟɥɶ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɭɸ ɞɥɹ ɭɫɬɚɧɨɜɤɢ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ, ɚ ɫ ɞɪɭɝɨɣɫ
ɩɟɪɫɨɧɚɥɶɧɵɦ ɤɨɦɩɶɸɬɟɪɨɦ ɢ ɪɚɛɨɬɚɸɬ ɩɨɞ ɭɩɪɚɜɥɟɧɢɟɦ ɭɫɬɚɧɨɜɥɟɧɧɨɝɨ ɧɚ
ɤɨɦɩɶɸɬɟɪɟ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ. ȼɧɭɬɪɢɫɯɟɦɧɵɟ ɷɦɭɥɹɬɨɪɵ ɩɨɡɜɨɥɹɸɬ
ɜɵɩɨɥɧɹɬɶ ɩɪɨɝɪɚɦɦɭ ɜ ɫɢɫɬɟɦɟ ɜ ɩɨɲɚɝɨɜɨɦ ɪɟɠɢɦɟ ɢ ɧɟɨɝɪɚɧɢɱɟɧɧɨɟ ɱɢɫɥɨ
ɪɚɡ ɜɧɨɫɢɬɶ ɢɡɦɟɧɟɧɢɹ ɜ ɩɪɨɝɪɚɦɦɭ. ɉɪɢ ɪɚɛɨɬɟ ɫ ɜɧɭɬɪɢɫɯɟɦɧɵɦ ɷɦɭɥɹɬɨɪɨɦ
ɧɚ ɷɤɪɚɧɟ ɤɨɦɩɶɸɬɟɪɚ ɦɨɠɧɨ ɧɚɛɥɸɞɚɬɶ ɫɨɫɬɨɹɧɢɟ ɜɧɭɬɪɟɧɧɢɯ ɪɟɫɭɪɫɨɜ ɩɪɨ-
ɰɟɫɫɨɪɚ, ɚ ɧɚ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɧɨɣ ɩɥɚɬɟɪɟɚɤɰɢɸ ɫɢɫɬɟɦɵ ɧɚ ɬɟ ɢɥɢ ɢɧɵɟ ɤɨ-
ɦɚɧɞɵ ɩɪɨɝɪɚɦɦɵ.
Ɉɤɨɧɱɚɬɟɥɶɧɚɹ ɨɬɥɚɞɤɚ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ ɩɪɨɢɡɜɨɞɢɬɫɹ ɜ ɪɚɛɨ-
ɱɟɣ ɫɢɫɬɟɦɟ. Ɉɛɵɱɧɨ ɩɪɨɢɡɜɨɞɢɬɟɥɢ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ ɩɪɟɞɥɚɝɚɸɬ ɩɨɥɶɡɨɜɚ-
ɬɟɥɹɦ ɪɚɡɥɢɱɧɵɟ ɚɩɩɚɪɚɬɧɵɟ ɫɪɟɞɫɬɜɚ ɞɥɹ ɫɨɡɞɚɧɢɹ ɬɚɤɨɣ ɫɢɫɬɟɦɵ. ɇɚɩɪɢɦɟɪ,
ɞɥɹ ɪɚɡɪɚɛɨɬɤɢ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɧɵɯ ɫɢɫɬɟɦ ɧɚ ɨɫɧɨɜɟ AVR-ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɜ
ɮɢɪɦɚ Atmel ɜɵɩɭɫɤɚɟɬ ɫɬɚɪɬɨɜɵɣ ɧɚɛɨɪ AVR STARTER KIT ɬɢɩɚ STK500.
Ɂɚɜɟɪɲɚɸɳɢɦ ɷɬɚɩɨɦ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ɹɜɥɹɟɬɫɹ ɡɚ-
ɧɟɫɟɧɢɟ ɜ ɩɚɦɹɬɶ ɭɠɟ ɨɬɥɚɠɟɧɧɨɣ ɩɪɨɝɪɚɦɦɵ. Ɉɧɨ ɦɨɠɟɬ ɛɵɬɶ ɜɵɩɨɥɧɟɧɨ ɬɚɤ
ɠɟ, ɤɚɤ ɢ ɩɪɢ ɨɬɥɚɞɤɟ ɩɪɨɝɪɚɦɦɵ, ɬɨ ɟɫɬɶ ɱɟɪɟɡ SPI-ɢɧɬɟɪɮɟɣɫ. ȿɫɥɢ ɜ ɫɢɫɬɟɦɟ
SPI–ɢɧɬɟɪɮɟɣɫ ɧɟ ɩɪɟɞɭɫɦɨɬɪɟɧ, ɬɨ ɧɟɨɛɯɨɞɢɦɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɩɪɨɝɪɚɦɦɚɬɨɪɵ,