Калькулятор комлексных чисел | Вычисление выражений, содержащих комплексные числа
Калькулятор комплексных чисел позволяет вычислять арифметические выражения, содержащие комплексные числа, знаки арифметических действий (+, -, *, /, ^), а также некоторые математические функции.
Калькулятор комплексных чисел
7
8
9
+
—
*
/
^
4
5
6
i
(
)
π
e
1
2
3
sin
cos
tg
ctg
ln
.
0
√
sh
ch
th
cth
abs
Скрыть клавиатуру
Вычислено выражений:
Как пользоваться калькулятором
- Введите в поле ввода выражение с комплексными числами
- Укажите, требуется ли вывод решения переключателем «С решением»
- Нажмите на кнопку «Построить»
Ввод комплексных чисел
комплексные числа можно вводить в следующих трёх форматах:
- Только действительная часть:
2, 2.5, -6.7, 12.25
- Только мнимая часть:
i, -i, 2i, -5i, 2.16i, -12.5i
- Действительная и мнимая части:
2+i, -5+15i, -7+2.5i, -6+i
- Математические константы:
π, e
Поддерживаемые операции и математические функции
- Арифметические операции:
+, -, *, /, ^
- Получение абсолютного значения числа:
abs
- Базовые математические функции:
exp, ln, sqrt
- Получение действительной и мнимой частей:
re, im
- Тригонометрические функции:
sin, cos, tg, ctg
- Гиперболические функции:
sh, ch, th, cth
- Обратные тригонометрические функции:
arcsin, arccos, arctg, arcctg
- Обратные гиперболические функции:
arsh, arch, arth, arcth
Примеры корректных выражений
- (2+3i)*(5-7i)
- sh(i)
- (4+i) / (3 — 4i)
- sqrt(2i)
- (-3+4i)*2i / exp(2i + (15 — 8i)/4 — 3.75)
Комплексные числа
Комплексные числа — это числа вида x+iy
, где x
, y
— вещественные числа, а i
— мнимая единица (специальное число, квадрат которого равен -1, то есть i2 = -1
).
Так же, как и для вещественных чисел, для комплексных чисел определены операции сложения, разности, умножения и деления, однако комплексные числа нельзя сравнивать.
Примеры комплексных чисел
4+3i
— действительная часть = 4, мнимая = 3-2+i
— действительная часть = -2, мнимая = 1i
— действительная часть = 0, мнимая = 1-i
— действительная часть = 0, мнимая = -110
— действительная часть = 10, мнимая = 0
Основные действия с комплексными числами
Основными операциями, определёнными для комплексных чисел, являются сложение, разность, произведение и деление комплексных чисел. Операции для двух произвольных комплексных чисел (a + bi) и (c + di) определяются следующим образом:
- сложение: (a + bi) + (c + di) = (a + c) + (b + d)i
- вычитание: (a + bi) — (c + di) = (a — c) + (b — d)i
- умножение: (a + bi) · (c + di) = ac + bci + adi + bdi2 = (ac — bd) + (bc + ad)i
- деление: = = + i
Примеры
Найти сумму чисел 5+7i
и 5.5-2i
:
Найдём отдельно суммы действительных частей и сумму мнимых частей: re = 5 + 5.5 = 10.5, im = 7 — 2 = 5.
Запишем их рядом, добавив к мнимой части i: 10.5 + 5i
Полученное число и будет ответом:5+7i
+ 5.5-2i
= 10.5 + 5i
Найти разность чисел 12-i
и -2i
:
Найдём отдельно разности действительных частей и разности мнимых частей: re = 12 — 0 = 12, im = -1 — (-2) = 1.
Запишем их рядом, добавив к мнимой части i: 12 + 1i
Полученное число и будет ответом:12-i
— (-2i)
= 12 + i
Найти произведение чисел 2+3i
и 5-7i
:
Найдём по формуле действительную и мнимую части: re = 2·5 — 3·(-7) = 31, im = 3·5 + 2·(-7) = 1.
Запишем их рядом, добавив к мнимой части i: 31 + 1i
Полученное число и будет ответом:2+3i
* (5-7i)
= 31 + i
Найти отношение чисел 75-50i
и 3+4i
:
Найдём по формуле действительную и мнимую части: re = (75·3 — 50·4) / 25 = 1, im = (-50·3 — 75·4) / 25 = -18.
Запишем их рядом, добавив к мнимой части i: 1 — 18i
Полученное число и будет ответом:75-50i
/ (3+4i)
= 1 - 18i
Другие действия над комплексными числами
Помимо базовых операций сложения, вычитания, умножения и деления комплексных чисел существуют также различные математические функции. Рассмотрим некоторые из них:
- Получение действительной части числа:
Re(z) = a
- Получение мнимой части числа:
Im(z) = b
- Модуль числа:
|z| = √(a2 + b2)
- Аргумент числа:
arg z = arctg(b / a)
- Экспонента:
ez = ea·cos(b) + i·ea·sin(b)
- Логарифм:
Ln(z) = ln |z| + i·arg(z)
- Тригонометрические функции: sin z, cos z, tg z, ctg z
- Гиперболические функции: sh z, ch z, th z, cth z
- Обратные тригонометрические функции: arcsin z, arccos z, arctg z, arcctg z
- Обратные гиперболические функции: arsh z, arch z, arth z, arcth z
Примеры
Найти действительную и мнимую части числа z, а также его модуль, если z = 4 — 3i
Re(z) = Re(4 — 3i) = 4
Im(z) = Im(4 — 3i) = -3
|z| = √(42 + (-3)2) = √25 = 5
Формы представления комплексных чисел
Комплексные числа принято представлять в одной из трёх следующих форм: алгебраической, тригонометрической и показательной.
- Алгебраическая форма — наиболее часто используемая форма комплексного числа, запись числа в виде суммы действительной и мнимой частей:
x+iy
, где x — действительная часть, а y — мнимая часть - Тригонометричкая форма — запись вида
r·(cos φ + isin φ)
, где r — модуль комплексного числа (r = |z|), а φ — аргумент этого числа (φ = arg(z)) - Показательная форма — запись вида
r·eiφ
, где r — модуль комплексного числа (r = |z|), e — число Эйлера, а φ — аргумент комплексного числа (φ = arg(z))
Пример:
Переведите число 1+i в тригонометрическую и показательную формы:
Решение:
- Найдём радиус (модуль) комплексного числа r: r = √(12 + 12) = √2
- Найдём аргумент числа: φ = arctan() = = 45°
- Запишем результат в тригонометрической форме:
√2·(cos(45°) + isin(45°))
- Запишем результат в показательной форме:
√2·eπi/4
Комплексные числа
Напомним необходимые сведения о комплексных числах.
Комплексное число — это выражение вида a + bi, где a, b — действительные числа, а i — так называемая мнимая единица, символ, квадрат которого равен –1, то есть i2 = –1. Число a называется действительной частью, а число b — мнимой частью комплексного числа z = a + bi. Если b = 0, то вместо a + 0i пишут просто a. Видно, что действительные числа — это частный случай комплексных чисел.
Арифметические действия над комплексными числами те же, что и над действительными: их можно складывать, вычитать, умножать и делить друг на друга. Сложение и вычитание происходят по правилу (a + bi) ± (c + di) = (a ± c) + (b ± d)i, а умножение — по правилу (a + bi) · (c + di) = (ac – bd) + (ad + bc)i (здесь как раз используется, что i2 = –1). Число = a – bi называется комплексно-сопряженным к z = a + bi. Равенство z · = a2 + b2 позволяет понять, как делить одно комплексное число на другое (ненулевое) комплексное число:
.
(Например, .)
У комплексных чисел есть удобное и наглядное геометрическое представление: число z = a + bi можно изображать вектором с координатами (a; b) на декартовой плоскости (или, что почти то же самое, точкой — концом вектора с этими координатами). При этом сумма двух комплексных чисел изображается как сумма соответствующих векторов (которую можно найти по правилу параллелограмма). По теореме Пифагора длина вектора с координатами (a; b) равна . Эта величина называется модулем комплексного числа z = a + bi и обозначается |z|. Угол, который этот вектор образует с положительным направлением оси абсцисс (отсчитанный против часовой стрелки), называется аргументом комплексного числа z и обозначается Arg z. Аргумент определен не однозначно, а лишь с точностью до прибавления величины, кратной 2π радиан (или 360°, если считать в градусах) — ведь ясно, что поворот на такой угол вокруг начала координат не изменит вектор. Но если вектор длины r образует угол φ с положительным направлением оси абсцисс, то его координаты равны (r · cos φ; r · sin φ). Отсюда получается тригонометрическая форма записи комплексного числа: z = |z| · (cos(Arg z) + i sin(Arg z)). Часто бывает удобно записывать комплексные числа именно в такой форме, потому что это сильно упрощает выкладки. Умножение комплексных чисел в тригонометрической форме выглядит очень просто: z1 · z2 = |z1| · |z2| · (cos(Arg z1 + Arg z2) + i sin(Arg z1 + Arg z2)) (при умножении двух комплексных чисел их модули перемножаются, а аргументы складываются). Отсюда следуют формулы Муавра: zn = |z|n · (cos(n · (Arg z)) + i sin(n · (Arg z))). С помощью этих формул легко научиться извлекать корни любой степени из комплексных чисел. Корень n-й степени из числа z — это такое комплексное число w, что wn = z. Видно, что , а , где k может принимать любое значение из множества {0, 1, …, n – 1}. Это означает, что всегда есть ровно n корней n-й степени из комплексного числа (на плоскости они располагаются в вершинах правильного n-угольника).
Далее: Фрактальные размерности
Комплексные числа · Калькулятор Онлайн
Введите комплексное выражение, которое необходимо вычислить
Выполняет простые операции с комплексными числами.
Также умеет:
- Выполнять деление с подробным решением
- Находить разные формы комплексных чисел:
- Алгебраическую
- Тригонометрическую
- Показательную
- Модуль и аргумент комплексного числа
- Комплексно-сопряжённое к данному
- Геометрическую интерпретацию комплексного числа
Правила ввода комплексных выражений с примерами:
- Комплексное число записывается в виде
- a + bj, например 1.5 + 4.7j (j писать слитно)
- Комплексная единица (Мнимая)
- — должна записываться в виде 1j (Просто j не будет работать)
- (3+4j)/(7-5j)
- — деление
- (3.6+4j)*(7+5j)
- — умножение
- (3+56j)^7
- — возведение в степень
- (5+6j) + 8j
- — сложение
- (5+6j) — (7-1j)
- — вычитание
- conjugate(1+4j) или conj(1+4j)
- Сопряженное (комплексно-сопряженное) число для (1 + 4j)
Можно использовать следующие функции от x (например, x = 1 + 2.5j):
Правила ввода выражений и функций
Выражения могут состоять из функций (обозначения даны в алфавитном порядке):
- absolute(x)
- Абсолютное значение x
(модуль x или |x|) - arccos(x)
- Функция — арккосинус от x
- arccosh(x)
- Арккосинус гиперболический от x
- arcsin(x)
- Арксинус от x
- arcsinh(x)
- Арксинус гиперболический от x
- arctg(x)
- Функция — арктангенс от x
- arctgh(x)
- Арктангенс гиперболический от x
- e
- e число, которое примерно равно 2.7
- exp(x)
- Функция — экспонента от x (что и e^x)
- log(x) or ln(x)
- Натуральный логарифм от x
(Чтобы получить log7(x), надо ввести log(x)/log(7) (или, например для log10(x)=log(x)/log(10)) - pi
- Число — «Пи», которое примерно равно 3.14
- sin(x)
- Функция — Синус от x
- cos(x)
- Функция — Косинус от x
- sinh(x)
- Функция — Синус гиперболический от x
- cosh(x)
- Функция — Косинус гиперболический от x
- sqrt(x)
- Функция — квадратный корень из x
- sqr(x) или x^2
- Функция — Квадрат x
- tg(x)
- Функция — Тангенс от x
- tgh(x)
- Функция — Тангенс гиперболический от x
- cbrt(x)
- Функция — кубический корень из x
В выражениях можно применять следующие операции:
- Действительные числа
- вводить в виде 7.5, не 7,5
- 2*x
- — умножение
- 3/x
- — деление
- x^3
- — возведение в степень
- x + 7
- — сложение
- x — 6
- — вычитание
Другие функции:
- floor(x)
- Функция — округление x в меньшую сторону (пример floor(4.5)==4.0)
- ceiling(x)
- Функция — округление x в большую сторону (пример ceiling(4.5)==5.0)
- sign(x)
- Функция — Знак x
- erf(x)
- Функция ошибок (или интеграл вероятности)
- laplace(x)
- Функция Лапласа
Видео пример
Калькулятор онлайн — Решение комплексных чисел: сумма, разность, произведение, частное, n-ая степень и корень n-ой степени (с подробным решением)
С помощью данного калькулятора вы можете сложить, вычесть, умножить, и разделить комплексные числа.
Программа решения комплексных чисел не просто даёт ответ задачи, она приводит подробное решение
с пояснениями, т.е. отображает процесс нахождения решения.
Данная программа может быть полезна учащимся старших классов общеобразовательных школ при подготовке к контрольным работам и
экзаменам, при проверке знаний перед ЕГЭ, родителям для контроля решения многих задач по математике и алгебре.
А может быть вам слишком накладно нанимать репетитора или покупать новые учебники? Или вы просто хотите как можно быстрее
сделать домашнее задание по математике или алгебре? В этом случае вы также можете воспользоваться нашими программами с подробным
решением.
Таким образом вы можете проводить своё собственное обучение и/или обучение своих младших братьев или сестёр, при этом уровень
образования в области решаемых задач повышается.
Правила ввода действительной и мнимой части
Примеры подробного решения >>
Введите действительную и мнимую части чисел \( z_1 \) и \( z_2 \).
У каждого числа нужно ввести как минимум одну часть — действительную или мнимую.
Обнаружено что не загрузились некоторые скрипты, необходимые для решения этой задачи, и программа может не работать.
Возможно у вас включен AdBlock.
В этом случае отключите его и обновите страницу.
Сообщение отправлено. Спасибо.
Понятие комплексного числа
Определение.
Комплексными числами называют выражения вида а + bi где а и b — действительные числа, а i — некоторый символ, для которого
по определению выполняется равенство i2 = -1.
Название «комплексные» происходит от слова «составные» — по виду выражения а + bi. Число а называется действительной частью
комплексного числа а + bi, а число b — его мнимой частью. Число i называется мнимой единицей.
Например, действительная часть комплексного числа 2-3i равна 2, мнимая часть равна -3. Запись комплексного числа в виде а + bi
называют алгебраической формой комплексного числа.
Равенство комплексных чисел
Определение.
Два комплексных числа а + bi и c + di называются равными тогда и только тогда, когда а = с и b = d, т. е. когда равны
их действительные и мнимые части.
Сложение и умножение комплексных чисел
Операции сложения и умножения двух комплексных чисел определяются следующим образом.
Определения.
Суммой двух комплексных чисел а + bi и c + di называется комплексное число (a + c) + (b + d)i, т.е.
(a + bi) + (c + di) = (a + c) + (b + d)i.
Произведением двух комплексных чисел а + bi и c + di называется комплексное число (ac — bd) + (ad + bc)i, т. е.
(а + bi)(с + di) = (ас-bd) + (ad + bc)i.
Из двух предыдущих формул следует, что сложение и умножение комплексных чисел можно выполнять по правилам действий с многочленами.
Поэтому нет необходимости запоминать эти формулы, их можно получить по обычным правилам алгебры, считая, что i2 = -1.
Основные свойства сложения и умножения комплексных чисел
1. Переместительное свойство
\( z_1 + z_2 = z_2 + z_1 , \qquad z_1z_2 = z_2z_1 \)
2. Сочетательное свойство
\( (z_1 + z_2) + z_3 = z_1 + (z_2 + z_3) , \qquad (z_1z_2)z_3 = z_1(z_2z_3) \)
3. Распределительное свойство
\( z_1(z_2 + z_3) = z_1z_2 + z_1z_3 \)
Комплексно сопряженные числа
Определение.
Сопряженным с числом z = a + bi называется комплексное число а -bi, которое обозначается \( \overline{z} \), т. е.
\( \overline{z} = \overline{a+bi} = a-bi \)
Например, \( \overline{3 + 4i} = 3-4i, \qquad \overline{-2-5i} = -2+5i, \qquad \overline{i} = -i \)
Отметим, что \( \overline{a-bi} = a+bi \), поэтому для любого комплексного числа z имеет место равенство
\( \overline{(\overline{z})} = z \)
Равенство \( \overline{z} = z \) справедливо тогда и только тогда, когда z — действительное число.
Модуль комплексного числа
Определение.
Модулем комплексного числа z = а + bi называется число \( \sqrt{a^2+b^2} \), т.е.
\( |z|=|a+bi| = \sqrt{a^2+b^2} \)
Из данной формулы следует, что \( |z| \geq 0 \) для любого комплексного числа z, причем |z|=0 тогда и только тогда,
когда z=0, т.е. когда a=0 и b=0.
Вычитание комплексных чисел
Определение.
Комплексное число (–1)z называется противоположным комплексному числу z и обозначается –z.
Если z = a+bi, то –z = –a–bi. Например, –(3–5i) = –3+5i. Для любого комплексного числа z выполняется равенство
z+(–z) = 0.
Вычитание комплексных чисел вводится как операция, обратная сложению: для любых комплексных чисел z1 и
z2 существует, и притом только одно, число z, такое, что
z + z2 = z1,
т.е. это уравнение имеет только один корень.
Деление комплексных чисел
Деление комплексных чисел вводится как операция, обратная умножению: для любых комплексных чисел \( z_1 \) и
\( z_2 \neq 0 \) существует, и притом только одно, число \( z \), такое, что \( zz_2=z_1 \) т.е. это уравнение
относительно z имеет только один корень, который называется частным чисел \( z_1 \) и \( z_2 \) и обозначается
\( z_1:z_2 \), или \( \frac{z_1}{z_2} \), т.е. \( z=z_1:z_2 = \frac{z_1}{z_2} \)
Комплексное число нельзя делить на нуль.
Частное комплексных чисел \( z_1 \) и \( z_2 \neq 0 \) можно найти по формуле
\( \large \frac{z_1}{z_2} = \frac{z_1 \cdot \overline{z_2}}{|z_2|^2} \)
Каждое комплексное число z, не равное нулю, имеет обратное ему число w, такое, что z*w = 1, где
\( \large w= \frac{1}{z} = \frac{a}{a^2+b^2}-\frac{b}{a^2+b^2}i \)
Если z1 = a1 + b1i, z2 = a2 + b2i, то формулу частного
комплексных чисел можно представить в виде
\( \large \frac{z_1}{z_2} = \frac{a_1+b_1i}{a_2+b_2i}= \frac{(a_1+b_1i)(a_2-b_2i)}{a^2_2+b^2_2} =
\frac{a_1a_2+b_1b_2}{a^2_2+b^2_2}+ \frac{a_2b_1-a_1b_2}{a^2_2+b^2_2}i \)
Геометрическая интерпретация комплексного числа. Комплексная плоскость
Действительные числа геометрически изображаются точками числовой прямой. Комплексное число а + bi можно рассматривать как пару
действительных чисел (а; b). Поэтому естественно комплексные числа изображать точками плоскости.
Пусть на плоскости задана прямоугольная система координат. Комплексное число z = a + bi изображается точкой плоскости с
координатами (а; b), и эта точка обозначается той же буквой z.
Такое соответствие между комплексными числами и точками плоскости взаимно однозначно: каждому комплексному числу а + bi
соответствует одна точка плоскости с координатами (а; b) и, наоборот, каждой точке плоскости с координатами (а; b) соответствует
одно комплексное число a + bi. Поэтому слова «комплексное число» и «точка плоскости» часто употребляются как синонимы. Так, вместо
слов «точка, изображающая число 1 + i» говорят «точка 1 + i». Можно, например, сказать «треугольник с вершинами в точках i, 1+i, -i».
При такой интерпретации действительные числа a, т.е. комплексные числа а+0i, изображаются точками с координатами (а; 0),
т.е. точками оси абсцисс. Поэтому ось абсцисс называют действительной осью. Чисто мнимые числа bi = 0+bi изображаются
точками с координатами (0; b), т.е. точками оси ординат, поэтому ось ординат называют мнимой осью. При этом точка с координатами
(0; b) обозначается bi. Например, точка (0; 1) обозначается i, точка (0; -1) — это -i , точка (0; 2) — это точка 2i. Начало координат
— это точка O. Плоскость, на которой изображаются комплексные числа, называют комплексной плоскостью.
Отметим, что точки z и -z симметричны относительно точки 0 (начала координат), а точки \( z \) и \( \overline{z} \) симметричны
относительно действительной оси.
Комплексное число z = a+bi можно изображать вектором с началом в точке 0 и концом в точке z. Этот вектор будем обозначать той
же буквой z, длина этого вектора равна |z|.
Число z1 + z2 изображается вектором, построенным по правилу сложения векторов z1 и z2
а вектор z1-z2 можно построить как сумму векторов z1 и -z2.
Геометрический смысл модуля комплексного числа
Выясним геометрический смысл модуля комплексного числа |z|.
Пусть z = а+bi. Тогда по определению модуля \( |z|= \sqrt{a^2+b^2} \). Это означает, что |z| — расстояние от точки 0 до точки z.
Например, равенство |z| = 4 означает, что расстояние от точки 0 до точки z равно 4. Поэтому множество всех точек z,
удовлетворяющих равенству |z| = 4, является окружностью с центром в точке 0 радиуса 4. Уравнение |z| = R является уравнением
окружности с центром в точке 0 радиуса R, где R — заданное положительное число.
Геометрический смысл модуля разности комплексных чисел
Выясним геометрический смысл модуля разности двух комплексных чисел, т.е. |z1—z2|.
Пусть z1 = a1+b1i, z2 = a2+b2i.
Тогда \( |z_1-z_2| = |(a_1-a_2) + (b_2-b_2)i| = \sqrt{(a_1+a_2)^2 + (b_1+b_2)^2} \)
Из курса геометрии известно, что это число равно расстоянию между точками с координатами (а1; b1) и (a2; b2).
Итак, |z1-z2| — расстояние между точками z1 и z2.
Тригонометрическая форма комплексного числа. Аргумент комплексного числа
Определение
Аргумент комплексного числа \( z \neq 0 \) — это угол \( \varphi \) между положительным направлением действительной оси и
вектором Oz. Этот угол считается положительным, если отсчет ведется против часовой стрелки, и отрицательным при отсчете по часовой
стрелке.
Связь между действительной и мнимой частями комплексного числа z = а + bi, его модулем r=|z| и аргументом \( \varphi \) выражается
следующими формулами:
\( \left\{ \begin{array}{l} a=r \cos \varphi \\ b=r \sin \varphi \end{array} \qquad (1) \right. \)
\( \left\{ \begin{array}{l} \cos \varphi =\frac{a}{\sqrt{a^2+b^2}} \\ \sin \varphi =\frac{b}{\sqrt{a^2+b^2}} \end{array} \qquad (2) \right. \)
Аргумент комплексного числа z = a+bi ( \( z\neq 0 \) ) можно найти, решив систему (2). Эта система имеет бесконечно много решений
вида \( \varphi =\varphi_0+2k\pi \), где \( k\in\mathbb{Z} , \;\; \varphi_0 \) — одно из решений системы (1), т.е. аргумент комплексного
числа определяется неоднозначно.
Для нахождения аргумента комплексного числа z = a+bi ( \( z\neq 0 \) ) можно воспользоваться формулой
\( tg \varphi = \large \frac{b}{a} \normalsize \qquad (3) \)
При решении уравнения (3) нужно учитывать, в какой четверти находится точка z = a+bi.
Запись комплексного числа в тригонометрической форме
Из равенства (1) следует, что любое комплексное число z = a+bi, где \( z\neq 0 \), представляется в виде
\( z = r(\cos\varphi +i\sin\varphi ) \qquad (4) \)
где \( r=|z|=\sqrt{a^2+b^2} \) — модуль комплексного числа z, \( \varphi \) — его аргумент. Запись комплексного числа в
виде (4), где r>0, называют тригонометрической формой комплексного числа z.
Умножение и деление комплексных чисел, записанных в тригонометрической форме
С помощью тригонометрической формы записи комплексных чисел удобно находить произведение и частное комплексных чисел
z1 и z2. Если два комплексных числа записаны в тригонометрической форме:
\( z_1 = r_1(\cos\varphi_1 +i\sin\varphi_1), \quad z_2 = r_2(\cos\varphi_2 +i\sin\varphi_2) \)
то произведение этих комплексных чисел можно найти по формуле:
\( z_1z_2 = r_1r_2(\cos(\varphi_1+\varphi_2) +i\sin(\varphi_1+\varphi_2)) \)
Из этой формулы следует, что при перемножении комплексных чисел их модули перемножаются, а аргументы складываются.
Формула для нахождения частного комплексных чисел:
\( \frac{z_1}{z_2} = \frac{r_1}{r_2}(\cos(\varphi_1-\varphi_2) +i\sin(\varphi_1-\varphi_2)) \)
Из этой формулы следует, что модуль частного двух комплексных чисел равен частному модулей делимого и делителя, а разность
аргументов делимого и делителя является аргументом частного.
Формула Муавра
Для любого \( n \in \mathbb{Z} \) справедлива формула
\( z^n = r^n(\cos \varphi + i \sin \varphi)^n = r^n(\cos (n\varphi) + i \sin (n\varphi) ) \)
которую называют формулой Муавра.
Мнимая единица — Абсурдопедия
Единица — вздор! Единица — ноль!
- ~ Маяковский про мнимую единицу
Мнимая единица (讠, один с точечкой) — это:
- … мнимое число, которое определяется так: мнимая единица, умноженная на мнимую единицу, умноженная на мнимую единицу ещё раз, и ещё умноженная два раза на мнимую единицу, умноженная на мнимую единицу равна −1. Если то, что говорится в предыдущем предложении истинно, то оно ложно, если ложно — то истинно.
- выше была приведёна упрощённая формулировка для двоечников. Крайне сложная формулировка такова: i2=−1{\displaystyle i^{2}=-1}.
Эта вторая формулировка крайне сложна. Чтобы её понять и привести к простой, нужно разбить одно окно чем-нибудь, другое — головой. И сравнить осколки обоих стёкол и состояние головы и крыши до и после процедуры.
История открытия[править]
История мнимой единицы такова. Математик, напившись, сел за компьютер. Там он открыл блокнот, чтобы напечатать чистый лист из принтера и высморкаться в него. Но из-за пьянки он нечаянно нажал знак i. Шрифт был большим, потому что вчера он учил ребёнка примеру 3−4{\displaystyle 3-4}. Вот он и напечатал этот лист. И высморкался в него. Поэтому лист стал мятым. Он сказал: «Мятая единица с точечкой». А его друг не расслышал и сказал: «Мнимая единица… Эээ… Эх, какая водочка! Козявочкин, к доске! Вот тебе, двоечник, ещё пример. Вот это число в квадрате равно…». А наш математик ответил: «О, да, давай ещё стопочку! Ааа… Ты что, не знаешь отрицательных чисел? Нужно слушать, что говорят на уроке. Ответ равен минус одному». И они стали продолжать пить. Открытие осталось бы незапомненным, если бы не вор, который пробрался украсть компьютер. Он нёс с собой диктофон. И записывал всё, что говорили пьяные учёные. Зачем — неизвестно. Вор украл компьютер. Он хотел включить его, подключив к молниеотводу один провод, а другой — засунув себе в рот. Ударила молния… Дальше понятно. А диктофон нашёл пьяница и бросил его в окно дома учёных с целью разбить его. Он добился своего, но в то же время оказал невообразимое содействие науке. Учёные-математики после отрезвления прочитали запись в диктофоне и поняли, что они совершили открытие! Записав, что они сказали тогда, в математической форме, они получили выражение:
i2=−1{\displaystyle i^{2}=-1}
Но оно было очень сложное, и понять его не удалось даже этим двум математикам. Математик, который напечатал мнимую единицу и высморкался в лист, поблагодарил своего друга за исправление. Вскоре, проанализировав осколки разбитого окна, математики решили, что данных для того, чтобы понять их слова, недостаточно. Поэтому они стали думать. Но вдруг один из них понял, что надо делать. И разбил головой другое окно. Сделав записи состояний окон, головы и крыши, он, проведя сложнейшие расчёты, решил, что крыша у него съехала и что мнимая единица, умноженная на мнимую единицу, умноженная на мнимую единицу ещё раз, и ещё умноженная два раза на мнимую единицу, умноженная на мнимую единицу равна −1{\displaystyle -1}.
Основные свойства[править]
После того, как сбрендившие учёные поняли, что такое мнимая единица, стали выводить разные формулы. Например:
i2+1=0{\displaystyle i^{2}+1=0}
i3=−i{\displaystyle i^{3}=-i}
(−i)2=−1=i2{\displaystyle (-i)^{2}=-1=i^{2}}, поэтому −i=i{\displaystyle -i=i}, далее: (−i)/i=−1{\displaystyle (-i)/i=-1}, (−i)/i=i/i=1{\displaystyle (-i)/i=i/i=1}
В итоге доказано, что 1=−1{\displaystyle 1=-1}, т.е отрицательные и положительные числа неотличимы.
Теперь докажем одно из самых важных свойств мнимой единицы — то, что в любом выражении её можно заменить на 1⋅{\displaystyle 1\cdot }. Точку можно поставить и справа, содержание от этого не изменится. Действительно, ведь мнимая единица — это единица с точечкой, то есть со знаком умножения, что и требовалось доказать.
Далее:
2i=2iee=21⋅ee=21{\displaystyle 2i={\frac {2ie}{e}}={\frac {21\cdot e}{e}}=21}
В итоге мы получили e-нное представление числа 2i{\displaystyle 2i} — это 2i=21{\displaystyle 2i=21}
Тождество Эйлера[править]
Существует следующее тождество:
eiπ+1=0{\displaystyle e^{i\pi }+1=0}
Его высказал Эйлер, один из трезвых учёных, во сне. Поэтому его называют тождеством Эйлера. До сих пор учёные всего мира не понимают смысл этой формулы и удивляются её странностью. Не меньше удивления вызывает то, что этот великий математик подарил открытие миру в спящем состоянии. Он, проснувшись, показывал, что ничего не помнит, что ему «опять снились эти формулы бессмысленные». Но никто и не подумал пренебрегать великим открытием. Все без исключения должны верить тому, что сказал Эйлер, поскольку он уже сделал много великих открытий. Он просто не захотел раскрывать строгого доказательства. Известны несколько доказательств, но известны и их опровержения.
Доказательство[править]
Т.к i=−i{\displaystyle i=-i}, данную формулу можно переписать в виде: e−iπ=−1{\displaystyle e^{-i\pi }=-1}. Первую формулу также перепишем: eiπ=−1{\displaystyle e^{i\pi }=-1}. Перемножим эти формулы:
e−iπ∗eiπ=(−1)∗(−1){\displaystyle e^{-i\pi }*e^{i\pi }=(-1)*(-1)}
eiπ−iπ=1{\displaystyle e^{i\pi -i\pi }=1}
1=1{\displaystyle 1=1}
В итоге мы получили верное равенство, которое вытекает из исходного, поэтому тождество Эйлера доказано!
Опровержение[править]
Т.к мнимая единица — это 1 с точечкой, или проще говоря, i=1⋅{\displaystyle i=1\cdot }. Поэтому:
eiπ+1=e1⋅π+1=eπ+1≠0{\displaystyle e^{i\pi }+1=e^{1\cdot \pi }+1=e^{\pi }+1\neq 0}
Тождество опровергнуто.
Опровержение опровержения[править]
Не верьте этому опровержению, Эйлер говорил правду!!! (остальные 54 308 428 790 203 478 762 340 052 723 346 983 453 487 023 489 987 231 275 412 390 872 348 472 восклицательных знака были удалены автоматическим фильтром)
Следствие 1[править]
Из тождества Эйлера следует нечто совсем уж парадоксальное. Перепишем тождество Эйлера в таком виде:
eiπ=−1{\displaystyle e^{i\pi }=-1}
Поскольку в правой части равенства стоит действительное число, значит и в левой части тоже действительное число. В таком случае мы можем смело возвести обе части этого равенства в квадрат:
e2iπ=1{\displaystyle e^{2i\pi }=1}
Отсюда неминуемо следует, что 2iπ=0{\displaystyle 2i\pi =0}, а значит, i=0{\displaystyle i=0}. Говорят, когда Эйлер это обнаружил, он свернулся в ленту Мёбиуса и укатился в Соловецкий монастырь, где и закончил свои дни в полном безумии. Тем не менее, официальная наука доказала, что Эйлер заразился безумием от Фридриха Ницше, к тому времени ещё бывшего одним из носителей бесов безумия.
Следствие 2[править]
Еще раз рассмотрим вышеприведённое тождество Эйлера:
eiπ=−1{\displaystyle e^{i\pi }=-1}
А теперь возведем обе его части в любую целую нечётную степень n:
eniπ=−1{\displaystyle e^{ni\pi }=-1}
А значит, при любом нечётном n,
eniπ=eiπ{\displaystyle e^{ni\pi }=e^{i\pi }}. Логарифмируя по основанию е, получаем niπ=iπ{\displaystyle ni\pi =i\pi }
Сокращая на iπ{\displaystyle i\pi }, получаем n=1, то есть каждое нечётное целое число равно единице.
Отсюда со всей очевидностью следует божественность мироздания, множественность параллельных миров и реальность существования чебурашек в дикой природе.
Интересные факты[править]
- Если пользоваться мнимой единицей, то существует вероятность 65 % сдать ЕГЭ по математике на 95 баллов путем выноса мозга проверяющим.
- Вполне возможно, что успех компании Apple принесла именно мнимая единица, подсознательно влияющая на моск и вызывающая мнимое представление о реальных вещах.
- Поделить мнимую единицу на ноль можно: получается Мнимая бесконечность.
- Кроме мнимой единицы существуют и мнимая двойка, тройка, четверка и т. д. Однако ими не пользуются, ибо нефиг!
- Британские ученые доказали, что если выйти в плоскость комплексных чисел, то по замкнутому контуру можно проходить сквозь двери. Однако всех, кто пытался доказать это на практике, засосало в нуль-телепорт.
- Исходя из вышеописаного явления, можно предположить, что черная дыра может существовать только в плоскости комплексных чисел.
- Существует мнение, что изображение мнимой единицы получилось путем банального переворачивания знака !. Возможно это сделали для того, чтобы показать, насколько это число опасно и таинственно, и лучше глубоко не лезть в эти дебри. Скорее всего так и есть: в последнее время почти никто не занимается изучением мнимой единицы, особенно после экспериментов британских ученых. И только безумные ученые изредка решаются рискнуть своими задницами ради очередного, никому не нужного, мнимого открытия.
Человекам далеко не сведущим в математике, физике и алгебре, да что уж там — геометрии, рассуждения о мнимой единице представляется полным бредом. Прежде чем о ней рассуждать необходимо определиться, что такое отрицательные числа в природе. Дак, вот их НЕТ. Также как не может быть отрицательной скорости. Отрицательные числа прибывают в нашем воображении из-за того, что мы принимаем какое-либо значение за НОЛЬ. К примеру
рассмотрим температуру вещества, а именно абсолютный ноль по Цельсию, это −273,15 °C (-459,67° по Фаренгейту), то есть полный покой вещества, когда его атомы «обездвижены» — вот это и есть НОЛЬ. Отсюда следует отрицательные числа, которые кажутся таковыми, следует записывать в скобках, например так:(-1). Физический смысл отрицательной степени — отсутствует.
i2=−1{\displaystyle i^{2}=-1} далее
i2+1=0{\displaystyle i^{2}+1=0} в нормальном виде (−1)2+1=0{\displaystyle (-1)^{2}+1=0}
i3=−i{\displaystyle i^{3}=-i} приведем в нормальный вид ((−1)2+1)∗(−1)=0{\displaystyle ((-1)^{2}+1)*(-1)=0}, раскроем скобки и получим (−1)3+(−1)=0{\displaystyle (-1)^{3}+(-1)=0}, именно так должна выглядеть формула,МЫ ЖЕ ЗНАЕМ со школы «При перемножении одного положительного и одного отрицательного числа результат всегда будет отрицательным числом!»(кстати, никто не может объяснить этого правила в физическом смысле!) отсюда следует вывод в физическом смысле ВСЕ ОТРИЦАТЕЛЬНЫЕ ЧИСЛА = 0 Их не существует!
В итоге Эйлером доказано, что 1=-1, такой же единице только по другую сторону шкалы!!!
Открытая Физика. Последовательное и параллельное соединение проводников
Проводники в электрических цепях могут соединяться последовательно и параллельно.
При последовательном соединении проводников (рис. 1.9.1) сила тока во всех проводниках одинакова:
I1 = I2 = I.
По закону Ома, напряжения U1 и U2 на проводниках равны
U1 = IR1, U2 = IR2.
Общее напряжение U на обоих проводниках равно сумме напряжений U1 и U2:
U = U1 + U2 = I(R1 + R2) = IR,
где R – электрическое сопротивление всей цепи. Отсюда следует:
R = R1 + R2.
При последовательном соединении полное сопротивление цепи равно сумме сопротивлений отдельных проводников.
Этот результат справедлив для любого числа последовательно соединенных проводников.
При параллельном соединении (рис. 1.9.2) напряжения U1 и U2 на обоих проводниках одинаковы:
U1 = U2 = U.
Сумма токов I1 + I2, протекающих по обоим проводникам, равна току в неразветвленной цепи:
I = I1 + I2.
Этот результат следует из того, что в точках разветвления токов (узлы A и B) в цепи постоянного тока не могут накапливаться заряды. Например, к узлу A за время Δt подтекает заряд IΔt, а утекает от узла за то же время заряд I1Δt + I2Δt. Следовательно, I = I1 + I2.
Записывая на основании закона Ома
I1=UR1, I2=UR2 и I=UR,
где R – электрическое сопротивление всей цепи, получим
1R=1R1+1R2.
При параллельном соединении проводников величина, обратная общему сопротивлению цепи, равна сумме величин, обратных сопротивлениям параллельно включенных проводников.
Этот результат справедлив для любого числа параллельно включенных проводников.
Формулы для последовательного и параллельного соединения проводников позволяют во многих случаях рассчитывать сопротивление сложной цепи, состоящей из многих резисторов. На рис. 1.9.3 приведен пример такой сложной цепи и указана последовательность вычислений.
Следует отметить, что далеко не все сложные цепи, состоящие из проводников с различными сопротивлениями, могут быть рассчитаны с помощью формул для последовательного и параллельного соединения. На рис. 1.9.4 приведен пример электрической цепи, которую нельзя рассчитать указанным выше методом.
Цепи, подобные изображенной на рис. 1.9.4, а также цепи с разветвлениями, содержащие несколько источников, рассчитываются с помощью правил Кирхгофа.
ФИЗИКА: ЗАДАЧИ на Закон Ома с решениями
Задачи на Закон Ома с решениями
Формулы, используемые на уроках физики «Задачи на Закон Ома» в 8 классе, а также для подготовки к ОГЭ.
Название величины | Обозначение | Единица измерения | Формула |
Сила тока | I | А | I = U / R |
Напряжение | U | В | U = IR |
Сопротивление | R | Ом | R = U/I |
Решение задач на уроках физики в 10-11 классах и при подготовке к ЕГЭ смотрите в следующих конспектах:
ЕГЭ: Закон Ома для участка цепи
ЕГЭ: Закон Ома для всей цепи
Задачи на Закон Ома.
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
Задача № 1.
Какова сила тока в резисторе, если его сопротивление 12 Ом, а напряжение на нем 120 В?
Задача № 2.
Сопротивление проводника 6 Ом, а сила тока в нем 0,2 А. Определите напряжение на концах проводника.
Задача № 3.
Определите сопротивление проводника, если при напряжении 110 В сила тока в нем 2 А.
Задача № 4.
По графикам зависимости силы тока от напряжения определите сопротивление каждого проводника.
Решение:
Задача № 5.
Чему равна сила тока в электрической лампе карманного фонаря, если сопротивление нити накала 16,6 Ом и лампа подключена к батарейке напряжением 2,5 В?
Задача № 6.
Электрический утюг включен в сеть с напряжением 220 В. Какова сила тока в нагревательном элементе утюга, если сопротивление его равно 48,4 Ом?
Задача № 7.
При напряжении 110 В, подведенном к резистору, сила тока в нем равна 5 А. Какова будет сила тока в резисторе, если напряжение на нем увеличить на 10 В?
Задача № 8.
Чему равно сопротивление спирали электрической лампы в рабочем состоянии, у которой на цоколе написано 6,3 В, 0,22 А?
Задача № 9.
Показание вольтметра, присоединенного к горящей электрической лампе накаливания, равно 120 В, а амперметра, измеряющего силу тока в лампе, 0,5 А. Чему равно сопротивление лампы? Начертите схему включения лампы, вольтметра и амперметра.
Задача № 10.
ОГЭ
Источник постоянного тока с ЭДС E = 12 В и внутренним сопротивлением г = 1 Ом замкнут на внешнее сопротивление R = 9 Ом. Определить силу тока в цепи I, падение напряжения UR на внешнем участке и падение напряжения Ur на внутреннем участке цепи.
Краткая теория для решения Задачи на Закон Ома.
Это конспект по теме «ЗАДАЧИ на Закон Ома». Выберите дальнейшие действия:
Основы протокола связи I2C
До сих пор мы говорили об основах связи SPI и UART, так что теперь давайте перейдем к последнему протоколу этой серии, межинтегральной схеме или I2C.
Вероятно, вы обнаружите, что используете I2C, если когда-нибудь будете создавать проекты, в которых используются OLED-дисплеи, датчики атмосферного давления или модули гироскопа / акселерометра.
Введение в связь I2C
I2C сочетает в себе лучшие возможности SPI и UART.С помощью I2C вы можете подключить несколько подчиненных устройств к одному мастеру (например, SPI), и у вас может быть несколько мастеров, управляющих одним или несколькими подчиненными. Это действительно полезно, если вы хотите иметь более одного микроконтроллера, записывающего данные на одну карту памяти или отображающего текст на одном ЖК-дисплее.
Как и связь по UART, I2C использует только два провода для передачи данных между устройствами:
SDA (последовательные данные) — линия для ведущего и ведомого устройства для отправки и получения данных.
SCL (Serial Clock) — Линия, по которой передается тактовый сигнал.
I2C — это протокол последовательной связи, поэтому данные передаются бит за битом по одному проводу (линия SDA).
Подобно SPI, I2C является синхронным, поэтому вывод битов синхронизируется с выборкой битов с помощью тактового сигнала, совместно используемого между ведущим и ведомым. Тактовый сигнал всегда контролируется мастером.
Как работает I2C
С I2C данные передаются в сообщении. Сообщения разбиты на фрейм данных. Каждое сообщение имеет адресный фрейм, содержащий двоичный адрес ведомого устройства, и один или несколько фреймов данных, которые содержат передаваемые данные. Сообщение также включает условия запуска и остановки, биты чтения / записи и биты ACK / NACK между каждым фреймом данных:
Состояние запуска: Линия SDA переключается с высокого уровня напряжения на низкий уровень перед линия SCL переключается с высокого на низкий.
Состояние останова: Линия SDA переключается с низкого уровня напряжения на высокий уровень после линия SCL переключается с низкого на высокий уровень.
Адресный кадр: 7- или 10-битная последовательность, уникальная для каждого ведомого устройства, которая идентифицирует ведомое устройство, когда ведущее устройство хочет с ним поговорить.
Бит чтения / записи: Отдельный бит, определяющий, отправляет ли ведущий данные ведомому устройству (низкий уровень напряжения) или запрашивает данные от него (высокий уровень напряжения).
Бит ACK / NACK: За каждым кадром в сообщении следует бит подтверждения / отсутствия подтверждения. Если адресный кадр или кадр данных были успешно получены, от принимающего устройства отправителю возвращается бит ACK.
Адрес
I2C не имеет строк выбора подчиненного устройства, таких как SPI, поэтому ему нужен другой способ сообщить подчиненному, что данные отправляются ему, а не другому подчиненному устройству. Он делает это с помощью адреса по адресу . Адресный кадр всегда является первым кадром после стартового бита в новом сообщении.
Мастер отправляет адрес подчиненного устройства, с которым он хочет связаться, каждому подчиненному устройству, подключенному к нему. Затем каждое ведомое устройство сравнивает адрес, отправленный ведущим, со своим собственным адресом. Если адрес совпадает, он отправляет бит ACK низкого напряжения обратно мастеру. Если адрес не совпадает, ведомое устройство ничего не делает, и линия SDA остается на высоком уровне.
Бит чтения / записи
Адресный кадр включает в себя единственный бит в конце, который сообщает ведомому устройству, хочет ли ведущий записать в него данные или получить данные от него.Если ведущее устройство хочет отправить данные ведомому, бит чтения / записи имеет низкий уровень напряжения. Если ведущее устройство запрашивает данные от ведомого, бит имеет высокий уровень напряжения.
Фрейм данных
После того, как ведущее устройство обнаруживает бит ACK от ведомого, первый кадр данных готов к отправке.
Кадр данных всегда имеет длину 8 бит и отправляется первым со старшим битом. За каждым кадром данных сразу же следует бит ACK / NACK, чтобы убедиться, что кадр был успешно принят.Бит ACK должен быть получен либо ведущим, либо ведомым (в зависимости от того, кто отправляет данные) до того, как можно будет отправить следующий кадр данных.
После того, как все кадры данных были отправлены, ведущее устройство может отправить ведомому устройству условие остановки, чтобы остановить передачу. Условие остановки — это переход напряжения от низкого к высокому уровню на линии SDA после перехода от низкого к высокому уровню на линии SCL, при этом линия SCL остается на высоком уровне.
Этапы передачи данных I2C
1. Ведущее устройство отправляет условие запуска каждому подключенному ведомому устройству, переключая линию SDA с высокого уровня напряжения на низкий уровень перед переключением линии SCL с высокого на низкий:
2.Мастер отправляет каждому подчиненному 7- или 10-битный адрес подчиненного устройства, с которым он хочет общаться, вместе с битом чтения / записи:
3. Каждое ведомое устройство сравнивает адрес, отправленный ведущим, со своим собственным адресом. Если адрес совпадает, ведомое устройство возвращает бит ACK, переводя линию SDA в низкий уровень на один бит. Если адрес от ведущего устройства не совпадает с собственным адресом ведомого, ведомый оставляет линию SDA на высоком уровне.
4. Мастер отправляет или получает фрейм данных:
5.После передачи каждого кадра данных принимающее устройство возвращает еще один бит ACK отправителю, чтобы подтвердить успешное получение кадра:
6. Чтобы остановить передачу данных, ведущий отправляет состояние остановки ведомому, переключая SCL на высокий уровень перед переключением на высокий уровень SDA:
Один главный с несколькими подчиненными
Поскольку I2C использует адресацию, несколько ведомых устройств могут управляться с одного ведущего устройства. При 7-битном адресе доступны 128 (2 7 ) уникальных адресов.Использование 10-битных адресов встречается редко, но обеспечивает 1024 (2 10 ) уникальных адреса. Чтобы подключить несколько ведомых устройств к одному ведущему, подключите их так: подтягивающие резисторы 4,7 кОм соединяют линии SDA и SCL с Vcc:
.
Несколько мастеров с несколькими подчиненными
Несколько мастеров могут быть подключены к одному или нескольким подчиненным. Проблема с несколькими мастерами в одной системе возникает, когда два мастера пытаются отправить или получить данные одновременно по линии SDA.Чтобы решить эту проблему, каждый ведущий должен определить, высокий или низкий уровень линии SDA перед передачей сообщения. Если на линии SDA низкий уровень, это означает, что другой ведущий контролирует шину, и ведущий должен ждать отправки сообщения. Если линия SDA высока, то сообщение безопасно. Чтобы подключить несколько мастеров к нескольким подчиненным, используйте следующую схему с подтягивающими резисторами 4,7 кОм, соединяющими линии SDA и SCL с Vcc:
Преимущества и недостатки I2C
В I2C есть многое, что может сделать его сложным по сравнению с другими протоколами, но есть несколько веских причин, по которым вы можете или не хотите использовать I2C для подключения к конкретному устройству:
Преимущества
- Использует только два провода
- Поддерживает несколько ведущих и несколько ведомых устройств
- Бит ACK / NACK подтверждает, что каждый кадр успешно передан
- Оборудование менее сложное, чем с UART
- Хорошо известный и широко используемый протокол
Недостатки
- Более медленная скорость передачи данных, чем SPI
- Размер кадра данных ограничен 8 битами
- Для реализации требуется более сложное оборудование, чем SPI
Спасибо за чтение! Надеюсь, вы кое-что узнали из этой серии статей о протоколах электронной связи.Если вы еще не читали их, первая часть посвящена протоколу связи SPI, а вторая часть посвящена связи через UART.
Если у вас есть вопросы или есть что добавить, не стесняйтесь оставлять комментарии ниже. И не забудьте подписаться, чтобы получать больше подобных статей в своем почтовом ящике!
.
I2C Primer: что такое I2C? (Часть 1)
Межинтегральная схема (I 2 C) — это двухпроводной последовательный интерфейс, первоначально разработанный корпорацией Phillips для использования в потребительских товарах. Это двунаправленная шина, которая легко внедряется в любой процесс IC (NMOS, CMOS, биполярный) и обеспечивает простую связь между IC. Количество подключений сводится к минимуму за счет использования линии последовательной передачи данных (SDA), линии последовательной синхронизации (SCL) и общего заземления для всех коммуникаций. I 2 C получил широкое признание и даже послужил прототипом для шины управления системой (SMBus), которая является подмножеством I 2 C.
I 2 Протокол связи C следует иерархии ведущий / ведомый, в которой ведущее устройство определяется как устройство, которое синхронизирует шину, адресует ведомые устройства и записывает или считывает данные в регистры ведомых устройств. Подчиненные устройства — это устройства, которые отвечают только на запросы ведущего через свой уникальный адрес. Следовательно, необходимо избегать дублирования адресов среди ведомых устройств. Подчиненные устройства никогда не инициируют передачу данных.
Шина I 2 C использует только две двунаправленные линии, линию последовательных данных (SDA) и линию последовательной синхронизации (SCL).I 2 C-совместимые устройства подключаются к шине с открытым коллектором или выводами открытого стока, которые тянут линию НИЗКОЕ. Когда нет передачи данных I 2 C линии шины простаивают в ВЫСОКОМ состоянии; линии пассивно вытянуты высоко.
Передача происходит путем переключения линий путем нажатия LOW и отпускания HIGH. Биты синхронизируются по спадающим фронтам часов. Стандартная скорость передачи данных составляет 100 кбит / с, а скорость передачи в быстром режиме — 400 кбит / с.
Рисунок 1: Обобщенная схема подключения I 2 C
Шина I 2 C может поддерживать несколько устройств, как SLAVE, так и MASTER, и единственным ограничением является емкость на шине (400 пФ) и адресное пространство (128 уникальных адресов) по мере добавления дополнительных устройств.
I 2 Пакеты данных C организованы в 8-битные байты, содержащие адрес подчиненного устройства, номер регистра и данные, подлежащие передаче. Передача по шине является операцией чтения или записи. Протоколы чтения и записи основаны на серии подпротоколов, таких как условия запуска и остановки, повторяющиеся стартовые биты, байт адреса, биты передачи данных и биты подтверждения / отказа.
Как следует из названия, условие запуска всегда возникает в начале передачи и инициируется ГЛАВНЫМ устройством.Это делается для того, чтобы разбудить работающие на холостом ходу ВЕДОМЫЕ устройства на шине. Это один из двух случаев, когда линии SDA разрешено изменять состояние при высоком уровне вероятности нежелательной почты. Чтобы обозначить начальное состояние, линия SDA переходит из состояния ВЫСОКОЕ в состояние ВЫСОКОЕ, в то время как SCL имеет ВЫСОКИЙ уровень.
Рисунок 2: Переходы условий запуска и остановки
Подобно условию запуска, условие остановки возникает в конце передачи данных и также генерируется МАСТЕРОМ. Это означает конец передачи и является командой, чтобы сообщить ведомым устройствам, что они должны вернуться в состояние ожидания, освободить линию SDA и больше не отправлять данные по шине.Это второй случай, когда линии SDA разрешено изменять состояние при высоком уровне вероятности нежелательной почты. Линия SDA переходит из состояния LOW в HIGH, в то время как SCL становится HIGH, чтобы обозначить состояние остановки.
Во всех других условиях линия SDA меняет состояние только тогда, когда линия SCL имеет низкий уровень.
Условие запуска может повторяться во время передачи без необходимости сначала завершаться условием остановки. Это особый случай, называемый повторным запуском, который используется для изменения направления передачи данных, повторения попыток передачи, синхронизации нескольких микросхем или даже управления последовательной памятью.
Рисунок 3: Повторяющееся условие запуска по существу является условием запуска в середине транзакции I 2 C без предшествующего условия остановки
Адрес ведомого отправляется в 8-битном байтовом формате, сначала MSB, но последний бит указывает, будет ли транзакция читать или записывать в ведомое устройство. Фактически, старшие 7 бит составляют адрес подчиненного устройства, а 8-й бит служит битом команды READ / WRITE #. Таким образом, имеется адресное пространство из 128 уникальных адресов для адресации до 128 ведомых устройств.Часто.
Например, следуя условию запуска, ВЕДУЩИЙ отправляет байт адреса, который соответствует уникальному адресу ПОДЧИНЕННОГО устройства на шине. Каждое устройство на шине имеет свои фиксированные или запрограммированные адреса. ВЕДОМЫЕ на шине I 2 C отвечают на команду запуска, активно прослушивая первые семь бит первого отправленного байта. Если первые семь битов совпадают с адресом ВЕДОМОГО устройства, он продолжает чтение 8-го бита (бит READ / WRITE #) байта адреса.Все остальные SLAVE устройства игнорируют оставшуюся часть транзакции. Значение LOW в бите READ / WRITE # указывает, что ВЕДУЩИЙ будет записывать данные на адресуемое ВЕДОМОЕ устройство, а для ВЫСОКОГО значения ВЕДУЩИЙ будет читать данные с ВЕДОМОГО устройства. Как только адресный байт будет прочитан соответствующим SLAVE, он подтвердит эту передачу, отправив бит подтверждения, потянув SDA LOW для соседнего тактового HIGH периода импульса, а затем возьмет на себя роль подчиненного передатчика или подчиненного приемника в зависимости от READ / WRITE # отправлен бит.
С этого момента, если стоповый бит не отправлен, SLAVE предполагает, что, поскольку он уже был адресован, вся связь направляется ему.
В качестве формы обратной связи после каждой передачи байта принимающее устройство отправляет бит подтверждения или отсутствия подтверждения. Бит подтверждения генерируется приемником, удерживая линию SDA на низком уровне в течение периода HIGH SCL, в то время как бит Not Acknowledge генерируется, когда приемник покидает линию SDA, пассивно переведенный в высокий уровень, и не отвечает никаким образом.Этот факт означает, что в ответ на адресный байт все несовпадающие SLAVE отправляют бит Not Acknowledge, не отвечая.
ACK используется для обозначения того, что байт (адрес или данные) был передан и получен успешно и что передача может продолжаться до передачи следующего байта, состояния остановки или повторного запуска (рисунок 4). NACK обычно используется получателем, чтобы указать, произошла ли где-то ошибка при передаче данных. Это используется для сигнала передающему устройству немедленно прекратить передачу или сделать еще одну попытку, отправив повторный запуск.
Рисунок 4: Условие запуска, за которым следует 7-битный адрес 0 × 64 и набор команд записи. Подчиненный отвечает подтверждением.
ВЕДУЩИЙ также отправит NACK после последнего байта передачи, который он хочет прочитать от ВЕДОМОГО, чтобы указать, что ВЕДОМОМУ следует прекратить передачу.
Биты данных кодируют фактические данные передачи и передаются в 8-битном байтовом формате, начиная с MSB, и каждый бит синхронизируется с тактовым сигналом (SCL). Нет ограничения на количество байтов в передаче, но за каждым байтом должно следовать подтверждение, которое генерируется получателем данных.
Рисунок 5: Передача битов данных
Для передачи битов данные на линии SDA должны оставаться стабильными в течение ВЫСОКОГО тактового периода. Линия данных может иметь переход HIGH или LOW только тогда, когда тактовый сигнал LOW. Таким образом, приемник считывает бит данных в строке данных, когда SCL имеет высокий уровень, а передатчик утверждает каждый новый бит данных, когда уровень SCL низкий.
При записи или чтении из определенного регистра в SLAVE, ведущее устройство должно сначала указать на конкретный регистр, записав адрес регистра после того, как SLAVE был адресован.Хотя адрес регистра можно рассматривать как байт данных, во избежание путаницы он часто классифицируется как командный байт. См., Например, рисунки 6 и 7.
На рисунке 6 показана адресация ГЛАВНОГО передатчика и запись данных в ВЕДОМЫЙ приемник с 7-битным адресом. Первым отправленным битом является бит START, который инициирует обмен данными. Байт адреса следует за последующими тактовыми импульсами. В этот момент все ВЕДОМЫЕ устройства на шине прослушивают адрес своего устройства, который составляет первые семь бит байта адреса.Подчиненное устройство, которое обнаруживает совпадение адреса, продолжает прослушивать последний бит (бит READ / WRITE #), чтобы понять, хочет ли ведущее устройство читать с ведомого устройства или записывать в него. Все остальные ВЕДОМЫЕ устройства игнорируют дальнейшую связь, отправляя NACK, который по определению ничего не делает.
Рисунок 6: Успешная передача байта записи I2C
В ответ на распознавание своего адреса и команды записи адресуемое устройство отвечает, посылая бит подтверждения (ACK) в качестве обратной связи ГЛАВНОМУ, что ПОДЧИНЕННОЕ устройство с правильным адресом присутствует на шине и ожидает дальнейшей связи.Затем MASTER продолжает передачу данных, отправляя данные в байтовом формате. Если ВЕДУЩИЙ выполняет запись в определенный регистр ВЕДОМОГО устройства, он записывает соответствующий байт команды до отправки данных. После каждой передачи байта SLAVE отвечает отправкой ACK. Как только MASTER завершает передачу всех данных, он завершает передачу, отправляя условие STOP.
На рис. 7 показано, как ВЕДУЩИЙ обращается к ВЕДОМОМУ и пытается прочитать с него данные. Передача снова инициируется ВЕДУЩИМ с условием START, после чего адрес передается в последующих тактовых импульсах.Адресованное устройство продолжает прослушивать передачу, считывая бит READ / WRITE, и отвечает битом подтверждения. Как только SLAVE отправляет подтверждение, он принимает на себя управление SDA и отправляет данные MASTER. В ответ на каждый переданный байт МАСТЕР отправляет бит подтверждения. Когда MASTER больше не хочет получать данные, он отвечает NACK после последнего байта, который он хочет получить, а затем возобновляет управление шиной и отправляет условие STOP для завершения передачи.
Обратите внимание, что хотя управление линией SDA передается от ВЕДУЩЕГО к ВЕДОМОМУ и обратно, линия SCL ВСЕГДА управляет ВЕДУЩИМ, т.е. данные постоянно поступают и исходят ГЛАВНЫМ.
Рисунок 7: Успешно I 2 C Передача чтения
Можно комбинировать протоколы чтения и записи в различных вариантах для выполнения некоторых сложных транзакций I 2 C. ВЕДУЩИЙ может записывать, затем читать с того же ведомого устройства или давать новый адрес для разговора с другим ПОДЧИНЕННЫМ устройством в рамках одной транзакции I 2 C, данные могут изменить направление, так что устройство, на которое выполнялась запись, теперь считывание данных.Все это достигается с помощью бита повторного запуска.
Например, LTC2946, который является монитором энергопотребления, может получить команду на вывод данных из определенного регистра. Для этого требуется транзакция I 2 C, которая сначала обращается к LTC2946, отправляет байт команды (байт данных, содержащий конкретный адрес регистра для чтения), выполняет повторный запуск, снова отправляет адрес устройства с установленным битом READ, а затем считывает данные. В этой транзакции сначала мастер записывал в LTC2946, сообщая ему, из какого регистра он хочет читать данные, а затем направленный поток данных изменился, когда MASTER выполнил повторный запуск с битом READ, установленным в байте адреса SLAVE.Рисунок 8 взят из таблицы данных LTC2946 и показывает этот общий протокол.
Рисунок 8: Протокол чтения байтов SDA последовательной шины LTC2946
Где
- S = стартовый бит
- P = стоповый бит
- R = бит чтения
- W \ = бит записи
- A = Подтвердить
- A \ = Не подтверждать
На рисунке 9 показан пример записи в регистр LTC2946. После условия запуска отправляется адрес устройства, а затем командный байт записывается в ведомое устройство (обратите внимание на бит READ / WRITE #).Как только ведомое устройство подтверждает, данные записываются на него.
Рисунок 9: Ведущее устройство, последовательно записывающее два разных ведомых устройства
Аналогичным образом на рис. 10 показан пример, в котором ведущее устройство выполняет запись в два разных ведомых устройства.
Рисунок 10: Ведущее устройство, последовательно записывающее на два разных ведомых устройства
Существуют дополнительные протоколы I 2 C, такие как Quick Command, Extended Address Mode, Arbitration, Multi-Master и Clock Stretching, которые мы не затрагивали в этой статье.Эти темы выходят за рамки обсуждения в этом сообщении в блоге и не нужны для начала взаимодействия с устройством LTC, которое поддерживает I 2 C.
.
I2C — learn.sparkfun.com
Введение
В этом руководстве вы узнаете все о протоколе связи I 2 C, почему вы хотите его использовать и как он реализован.
Протокол межинтегральной схемы (I 2 C) — это протокол, предназначенный для обеспечения связи нескольких «ведомых» цифровых интегральных схем («микросхем») с одним или несколькими «ведущими» кристаллами. Как и последовательный периферийный интерфейс (SPI), он предназначен только для связи на короткие расстояния в пределах одного устройства.Как и асинхронные последовательные интерфейсы (такие как RS-232 или UART), для обмена информацией требуется только два сигнальных провода.
Рекомендуемая литература
Что было бы полезно знать перед чтением этого руководства:
Последовательная связь
Концепции асинхронной последовательной связи: пакеты, уровни сигналов, скорости передачи, UART и многое другое!
двоичный
Двоичная — это система счисления электроники и программирования… так что это должно быть важно учиться. Но что такое двоичный код? Как это перевести в другие системы счисления, такие как десятичная?
Логические уровни
Узнайте разницу между устройствами 3,3 В и 5 В и логическими уровнями.
Зачем использовать I2C?
Чтобы понять, почему может потребоваться обмен данными через I 2 C, вы должны сначала сравнить его с другими доступными вариантами, чтобы увидеть, чем они отличаются.
Что не так с последовательными портами UART?
Поскольку последовательные порты асинхронны, (данные часов не передаются), устройства, использующие их, должны заранее согласовать скорость передачи данных. Два устройства также должны иметь тактовые частоты, близкие к одинаковой частоте, и останутся таковыми — чрезмерная разница между тактовыми частотами на обоих концах приведет к искажению данных.
Асинхронные последовательные порты требуют накладных расходов на оборудование — UART на обоих концах относительно сложен и при необходимости сложно точно реализовать программно.По крайней мере, один стартовый и стоповый бит является частью каждого кадра данных, а это означает, что для каждых 8 бит отправленных данных требуется 10 бит времени передачи, что снижает скорость передачи данных.
Другой основной недостаток асинхронных последовательных портов состоит в том, что они изначально подходят для связи между двумя и только двумя устройствами. Хотя возможно для подключения нескольких устройств к одному последовательному порту, конфликт шины (когда два устройства пытаются управлять одной и той же линией одновременно) всегда является проблемой, и с ней нужно обращаться осторожно, чтобы предотвратить повреждение рассматриваемые устройства, обычно через внешнее оборудование.
Наконец, проблема со скоростью передачи данных. Хотя не существует теоретического ограничения для асинхронной последовательной связи, большинство устройств UART поддерживают только определенный набор фиксированных скоростей передачи, и максимальная из них обычно составляет около 230400 бит в секунду.
Что не так с SPI?
Самый очевидный недостаток SPI — это количество необходимых выводов. Для подключения одного ведущего устройства к одному ведомому с помощью шины SPI требуется четыре линии; для каждого дополнительного ведомого устройства требуется один дополнительный вывод ввода / вывода для выбора микросхемы на ведущем устройстве.Быстрое распространение контактных соединений делает его нежелательным в ситуациях, когда множество устройств должно быть подчинено одному мастеру. Кроме того, большое количество соединений для каждого устройства может затруднить маршрутизацию сигналов в ситуациях с плотной компоновкой печатной платы.
SPI допускает только одно ведущее устройство на шине, но поддерживает произвольное количество ведомых устройств (в зависимости только от возможностей привода устройств, подключенных к шине, и количества доступных выводов выбора микросхемы).
SPI хорош для высокоскоростных соединений , полнодуплексный режим (одновременная отправка и получение данных), поддерживает тактовые частоты выше 10 МГц (и, таким образом, 10 миллионов бит в секунду) для некоторых устройств, а скорость хорошо масштабируется.Аппаратное обеспечение на обоих концах обычно представляет собой очень простой сдвиговый регистр, что позволяет легко реализовать его в программном обеспечении.
Enter I 2 C — Лучшее из обоих миров!
I 2 C требует всего двух проводов, таких как асинхронный последовательный порт, но эти два провода могут поддерживать до 1008 подчиненных устройств. Кроме того, в отличие от SPI, I 2 C может поддерживать систему с несколькими ведущими, что позволяет нескольким ведущим устройствам связываться со всеми устройствами на шине (хотя ведущие устройства не могут общаться друг с другом по шине и должны работать по очереди. с использованием автобусных линий).
Скорость передачи данных падает между асинхронным последовательным интерфейсом и SPI; большинство устройств I 2 C могут обмениваться данными на частотах 100 или 400 кГц. Есть некоторые накладные расходы с I 2 C; на каждые 8 бит данных, которые должны быть отправлены, должен быть передан один дополнительный бит метаданных (бит «ACK / NACK», который мы обсудим позже).
Аппаратное обеспечение, необходимое для реализации I 2 C, сложнее, чем SPI, но меньше, чем асинхронный последовательный порт. Это довольно просто реализовать программно.
I 2 C — Краткая история
I 2 C был первоначально разработан Philips в 1982 году для различных чипов Philips.Исходная спецификация допускала связь только с частотой 100 кГц и предусматривала только 7-битные адреса, ограничивая количество устройств на шине до 112 (есть несколько зарезервированных адресов, которые никогда не будут использоваться для действительных адресов I 2 C). В 1992 году была опубликована первая общедоступная спецификация, в которой был добавлен быстрый режим 400 кГц, а также расширенное 10-битное адресное пространство. В большинстве случаев (например, в устройстве ATMega328 на многих Arduino-совместимых платах) поддержка устройств для I 2 C на этом заканчивается.Указаны три дополнительных режима:
- быстрый режим плюс, на 1 МГц
- высокоскоростной режим, на 3,4 МГц
- сверхбыстрый режим, на 5 МГц.
В дополнение к «vanilla» I 2 C в 1995 году Intel представила вариант под названием « System Management Bus» (SMBus) . SMBus — это более строго контролируемый формат, предназначенный для максимальной предсказуемости связи между вспомогательными ИС на материнских платах ПК. Наиболее существенное различие между SMBus заключается в том, что он ограничивает скорость от 10 до 100 кГц, тогда как I 2 C может поддерживать устройства от 0 до 5 МГц.SMBus включает режим тайм-аута часов, который делает низкоскоростные операции незаконными, хотя многие устройства SMBus будут поддерживать его в любом случае, чтобы максимизировать взаимодействие со встроенными системами I 2 C.
I2C на уровне оборудования
Сигналы
Каждая шина I 2 C состоит из двух сигналов: SCL и SDA. SCL — это тактовый сигнал, а SDA — это сигнал данных. Тактовый сигнал всегда генерируется текущим мастером шины; некоторые ведомые устройства могут время от времени устанавливать низкий уровень тактовых импульсов, чтобы задержать отправку большего количества данных ведущим (или потребовать больше времени для подготовки данных, прежде чем ведущее попытается их отсчитать).Это называется «тактовая частота , растягивающая » и описана на странице протокола.
В отличие от соединений UART или SPI, драйверы шины I 2 C имеют «открытый сток», что означает, что они могут подтягивать соответствующую сигнальную линию к низкому уровню, но не могут подавать на нее высокий уровень. Таким образом, не может быть конкуренции в шине, когда одно устройство пытается установить высокий уровень на линии, в то время как другое пытается снизить его, исключая возможность повреждения драйверов или чрезмерного рассеивания мощности в системе. На каждой сигнальной линии есть подтягивающий резистор для восстановления высокого уровня сигнала, когда ни одно устройство не подтверждает его низкий уровень.
Обратите внимание на два подтягивающих резистора на двух линиях связи.
Выбор резистора
зависит от устройств, подключенных к шине, но хорошее практическое правило — начинать с 4,7 кОм; резистор и при необходимости уменьшите . I 2 C — довольно надежный протокол, который может использоваться с короткими отрезками проводов (2-3 м). Для длительных прогонов или систем с большим количеством устройств лучше использовать резисторы меньшего размера.
Большинство устройств I 2 C, предлагаемых в каталоге SparkFun, обычно включают подтягивающие резисторы для контактов SCL и SDA.Если у вас много устройств I 2 C на одной шине, вам может потребоваться отрегулировать эквивалентное значение для подтягивающих резисторов, отключив подтягивающие резисторы на нескольких устройствах. В зависимости от того, что подключено к шине, и конструкции, вы можете подключить к одной шине около 7x I 2 устройств C. Однако, если у вас возникли какие-либо проблемы, вы можете вырезать две дорожки, соединяющиеся с центральной перемычкой, с помощью ножа для хобби или удалить припой с трех перемычек, используя паяльник, чтобы отключить резисторы на определенных платах.Как видите, в конструкции платы GPS слева использованы дорожки для подключения перемычек для подтягивающих резисторов. В конструкции платы GPS справа использовался припой для подключения перемычек для подтягивающих резисторов.
Трассировка соединительных перемычек на SAM-M8Q | Пайка соединительных перемычек на XA1110 |
Если ваша конструкция требует более длинных проводов, вы можете использовать специальную ИС для расширения сигнала, такую как PCA9615.
Уровни логики сигнала
Поскольку устройства на шине фактически не передают сигналы высоким уровнем, I 2 C обеспечивает некоторую гибкость в подключении устройств с различными напряжениями ввода / вывода. В общем, в системе, где одно устройство находится под более высоким напряжением, чем другое, может быть возможно соединить два устройства через I 2 C без какой-либо схемы переключения уровня между ними. Хитрость заключается в том, чтобы подключить подтягивающие резисторы к более низкому из двух напряжений.Это работает только в некоторых случаях, когда более низкое из двух системных напряжений превышает входное напряжение высокого уровня системы с более высоким напряжением — например, 5 В Arduino и 3,3 В акселерометра. В зависимости от конструкции Arduino или устройства I 2 C мы рекомендуем использовать преобразователь логического уровня, чтобы обеспечить согласованность и избежать повреждения любого устройства на шине.
Если разница напряжений между двумя системами слишком велика (скажем, 5 В и 2,5 В), SparkFun предлагает простую плату переключения уровня I 2 C.Поскольку на плате также есть линия включения, ее можно использовать для отключения связи с выбранными устройствами. Это полезно в случаях, когда к одному мастеру необходимо подключить несколько устройств с одним и тем же адресом — хорошим примером являются Wii Nunchucks.
Протокол
Связь через I 2 C более сложна, чем с решением UART или SPI. Сигнализация должна соответствовать определенному протоколу, чтобы устройства на шине распознали ее как действительную связь I 2 C.К счастью, большинство устройств позаботятся обо всех сложных деталях, позволяя вам сосредоточиться на данных, которыми вы хотите обмениваться.
Основы
Сообщения разбиваются на два типа фреймов: фрейм адреса, где мастер указывает подчиненное устройство, которому отправляется сообщение, и один или несколько фреймов данных, которые представляют собой 8-битные сообщения данных, передаваемые от главного к подчиненному или наоборот. наоборот. Данные помещаются в линию SDA после того, как SCL переходит в низкий уровень, и выбираются после того, как линия SCL становится высокой.Время между фронтом тактового сигнала и чтением / записью данных определяется устройствами на шине и будет варьироваться от кристалла к кристаллу.
Нажмите на изображение для более детального просмотра.
Условия запуска
Чтобы инициировать адресный фрейм, ведущее устройство оставляет SCL на высоком уровне и подтягивает SDA к низкому уровню. Это предупреждает все ведомые устройства о начале передачи. Если два главных устройства желают взять на себя управление шиной одновременно, какое бы устройство ни опускало SDA первым, выигрывает гонку и получает контроль над шиной.Можно выполнять повторные запуски, инициируя новую последовательность обмена данными, не передавая управление шиной другим мастерам; мы поговорим об этом позже.
Адресная рамка
Адресный кадр всегда стоит первым в любой новой коммуникационной последовательности. Для 7-битного адреса адрес сначала синхронизируется со старшим значащим битом (MSB), за которым следует бит R / W, указывающий, является ли это операцией чтения (1) или записи (0).
Девятый бит кадра — это бит NACK / ACK.Это справедливо для всех фреймов (данных или адресов). Как только первые 8 бит кадра отправлены, принимающее устройство получает контроль над SDA. Если принимающее устройство не подтягивает линию SDA к низкому уровню перед 9-м тактовым импульсом, можно сделать вывод, что принимающее устройство либо не получило данные, либо не знало, как проанализировать сообщение. В этом случае обмен останавливается, и хозяин системы должен решать, как действовать дальше.
Фреймы данных
После того, как адресный кадр был отправлен, можно начинать передачу данных.Ведущее устройство просто продолжит генерировать тактовые импульсы с регулярным интервалом, и данные будут помещены в SDA ведущим или ведомым устройством, в зависимости от того, указывает ли бит чтения / записи операцию чтения или записи. Количество кадров данных является произвольным, и большинство подчиненных устройств автоматически увеличивают внутренний регистр, что означает, что последующие операции чтения или записи будут происходить из следующего в строке регистра.
Состояние остановки
После того, как все кадры данных будут отправлены, мастер сгенерирует условие остановки.Условия остановки определяются переходом 0-> 1 (от низкого к высокому) на SDA после переходом 0-> 1 на SCL, при этом SCL остается на высоком уровне. Во время нормальной операции записи данных значение в SDA не должно изменяться , а не при высоком уровне вероятности нежелательной почты, чтобы избежать условий ложной остановки.
Расширенные темы протокола
10-битные адреса
В 10-битной системе адресации для передачи адреса подчиненного устройства требуются два кадра. Первый кадр будет состоять из кода b11110xyz, где «x» — старший бит адреса подчиненного устройства, y — бит 8 адреса подчиненного устройства, а z — бит чтения / записи, как описано выше.Бит ACK первого кадра будет подтвержден всеми ведомыми устройствами, которые соответствуют первым двум битам адреса. Как и при обычной 7-битной передаче, немедленно начинается другая передача, и эта передача содержит биты 7: 0 адреса. В этот момент адресуемое ведомое устройство должно ответить битом ACK. Если этого не происходит, режим отказа такой же, как и в 7-битной системе.
Обратите внимание, что 10-разрядные адресные устройства могут сосуществовать с 7-разрядными адресными устройствами, поскольку ведущая часть адреса «11110» не является частью каких-либо действительных 7-разрядных адресов.
Условия повторного пуска
Иногда важно, чтобы ведущему устройству было разрешено обмениваться несколькими сообщениями за один раз, не позволяя другим ведущим устройствам на шине вмешиваться. По этой причине определено условие повторного запуска.
Чтобы выполнить повторный запуск, SDA может перейти на высокий уровень, пока SCL низкий, SCL может перейти на высокий уровень, а затем SDA снова перейдет на низкий уровень, пока SCL высокий. Поскольку на шине не было условия остановки, предыдущая коммуникация не была полностью завершена, и текущий мастер сохраняет контроль над шиной.
С этого момента можно начинать передачу следующего сообщения. Синтаксис этого нового сообщения такой же, как и любого другого сообщения — кадр адреса, за которым следуют кадры данных. Допускается любое количество повторных запусков, и мастер будет контролировать шину до тех пор, пока не выдаст условие остановки.
Часы растяжка
Иногда скорость передачи данных ведущего устройства превышает способность ведомого устройства предоставлять эти данные. Это может быть связано с тем, что данные еще не готовы (например, ведомое устройство еще не завершило аналого-цифровое преобразование) или потому, что предыдущая операция еще не завершена (скажем, EEPROM, которая не завершена запись в энергонезависимую память еще не завершена, прежде чем он сможет обслуживать другие запросы).
В этом случае некоторые ведомые устройства будут выполнять то, что называется «растяжением часов». Номинально все тактовые импульсы управляются ведущим устройством — ведомые просто помещают данные на шину или снимают данные с шины в ответ на тактовые импульсы ведущего. В любой момент процесса передачи данных адресуемое ведомое устройство может удерживать линию SCL на низком уровне после того, как ведущее устройство освободит его. Ведущее устройство должно воздерживаться от дополнительных тактовых импульсов или передачи данных до тех пор, пока ведомое устройство не освободит линию SCL.
Совет: Если вы ищете примеры, в которых используется растяжение тактовой частоты, попробуйте найти идеи на CCS811, используемом с Arduino и Python! Библиотека и примеры в следующих руководствах регулируют тактовый сигнал для устройства.
Qwiic Kit для Raspberry Pi Руководство по подключению
4 июля 2019
Начните работу с CCS811, BME280, VCNL4040 и microOLED через I2C, используя систему Qwiic и Python на Raspberry Pi! Снимайте показания датчиков из окружающей среды и отображайте их на microOLED, последовательном терминале или в облаке с помощью Cayenne!
.
Что такое I2C a.k.a. «I-squared-C»?
I 2 C означает «межинтегральная схема» или «меж-IC» и представляет собой простой 8-битный протокол последовательной шины связи, который использует только два провода шины; провод последовательной передачи данных (SDA) и провод последовательной синхронизации (SCL). I 2 C интегрирован во многие ИС и позволяет устройствам обмениваться данными напрямую друг с другом, избегая циклов ЦП. I 2 C работает по принципу ведущий-ведомый, и все устройства на шине I 2 C имеют уникальный адрес.I 2 C используется как внутри интегральных микросхем для связи между областями в микросхеме, так и извне, от кристалла к кристаллу.
Рис. 1: I2C — это простая двухпроводная коммуникационная шина, которая выросла с момента ее первого выпуска в 1982 году и стала общепринятым стандартом де-факто для связи между чипами. (Источник изображения: Linear Technology)
I 2 C был создан Philips Semiconductor в 1982 году (Philips был куплен NXP Semiconductor в 2006 году.) Согласно спецификации NXP I 2 C-bus и Руководству пользователя v6, опубликованной в 2014 году, I 2 C «реализован в более чем 1000 различных ИС, производимых более чем 50 компаниями».
Интегрированные микросхемы, объединяющие возможности I 2 C, охватывают множество различных приложений и устройств. Например, большинство ИС датчиков включают в свои схемы связь I 2 C, при условии, что скорости передачи данных I 2 C достаточны для целей контура управления.То же самое верно для связи I 2 C с устройствами вывода, такими как дисплеи, светодиоды и преобразователи данных. Однако другие устройства, такие как часы реального времени, устройства памяти и многие другие, также используют I 2 C для передачи информации другим микросхемам, которые часто являются микроконтроллером или процессором.
Таблица 1: Различные скорости передачи данных для I 2 C
Режим | Скорость передачи данных | Data Travel | Акронимы |
Стандартный | 100 Кбит / сек | Двунаправленный | |
Быстро | 400 Кбит / сек | Двунаправленный | |
Fast Mode Plus | 100 Кбит / сек | Двунаправленный | Fm + |
Высокоскоростной | 3.4 Мбит / сек | Двунаправленный | HS |
Сверхбыстрый | 5 Мбит / с | Однонаправленный | УФм |
I 2 C — это шина с несколькими ведущими, которая использует обнаружение коллизий и арбитраж, чтобы избежать проблем, когда два мастера инициируют обмен данными одновременно. Арбитраж — это процедура, предотвращающая повреждение сообщений. Без арбитража «выигрышное» сообщение будет искажено битами информации, прерываемыми конкурирующим сообщением.Тем не менее, I 2 C допускает использование нескольких мастеров на одной и той же линии шины I 2 C, что означает, что несколько микросхем могут пытаться управлять линией шины одновременно; Арбитраж решает, кто является мастером, если два или более чипа пытаются управлять шиной одновременно. Для I 2 C арбитраж работает детерминированным образом; то есть, это известная проблема, связанная с тем, имеет ли мастер управление или нет, и основывается на состоянии линии SDA и SCL. Важно отметить, что не все устройства, поддерживающие I 2 C, поддерживают режим с несколькими ведущими.
Количество микросхем, использующих шину I 2 C, ограничено «только максимальной емкостью шины», [i] теоретически, поскольку адрес имеет длину семь или девять бит (за которыми следует бит направления данных), ограничение составляет 128 устройств на одной шине I 2 C, поскольку 7-битное число изменяется от 0 до 127.
I 2 C стал стандартом де-факто, потому что он прост в использовании и предлагает ярлык, который используют дизайнеры для устранения необходимости проектирования системы связи, I 2 C легко отлаживать, I 2 C может быть легко добавленным или удаленным, не затрагивая другие устройства на шине I 2 C, а I 2 C имеет очень низкое потребление тока, высокую помехоустойчивость и предлагает широкий диапазон напряжений питания для совместимости системы.Однако главное преимущество I 2 C для разработчиков заключается в том, что он может уменьшить использование контактов ввода-вывода на микросхеме (при условии, что скорость шины I 2 C достаточна, чтобы не создавать узких мест при передаче данных. )
Рисунок 2: Пример применения I2C между устройствами. (Источник изображения: Руководство пользователя I2C, NXP.com)
I 2 Основными «конкурентами» C в качестве простой коммуникационной шины являются последовательный периферийный интерфейс (SPI), старый добрый последовательный интерфейс и для внешней связи, возможно, USB.Главное преимущество в том, что I 2 C обеспечивает связь между несколькими устройствами по простой 2-проводной шине, что значительно сокращает количество следов на печатной плате и количество выводов, необходимых для его реализации. Последовательная связь в первую очередь предназначена для связи между двумя устройствами. И SPI, и USB требуют больше контактов для реализации схемы передачи данных, хотя оба они также могут поддерживать связь между множеством различных устройств. SPI используется, когда требуются более высокие скорости передачи данных (до 10 Мбит / с) и полнодуплексный режим (отправка и прием в обоих направлениях одновременно).Однако SPI не поддерживает несколько мастеров. У USB больше контактов, чем у I 2 C, но он используется в качестве коммуникационной шины по умолчанию (ранее — последовательной связи) в персональных компьютерах (ПК), так что порты последовательной связи теперь отсутствуют на ПК. USB, более быстрая коммуникационная шина, чем I 2 C, была разработана для внешнего использования и намного сложнее, чем I 2 C в реализации. USB обеспечивает больше, чем необходимо для связи между микросхемами, и определенно является «излишним» при использовании в качестве замены I 2 C.
Полную информацию о I 2 C см. В спецификации C-bus I 2 и в руководстве пользователя NXP Semiconductor
[i] I 2 Спецификация и руководство пользователя C-bus. (2014, 4 апреля). Проверено 5 января 2017 года.
.