Порт это что то такое, что позволяет пропустить через себя наружу или внутрь. Например, кроме непосредственно портов ножек процессора, собранных по 8 - 16 штук, последовательный порт, SPI порт, в ББ это LPT и.т.д. Но всё равно это вывод из корпуса процессора, который передаёт информацию, в виде физического изменения состояния - напряжения, отбирая ноги у портов ввода-вывода. Никогда не рассматривал порт как логическое устройство. Как раз регистры для меня не могут быть портами, потому что через них не проходит ничего. Это ключи управления. 74HC595 - регистр по функциональному назначению. МС имеет несколько ячеек памяти, объединённых в регистр. Вывод на ноги МС идет через порт. Этот порт простой - защёлка с выходом на ноги. Найдите мне пожалуйста хоть в одном мануале на микроконтроллер слово порт в значении логического устройства. Я ни разу не встречал.
1. Порт - устройство, расположенное в адресном пространстве процессора и служащее для взаимодействия с периферией.
2. Регистр - устройство, способное запоминать и хранить информацию.
3. Из сравнения 1 и 2 делаем вывод, что термины "регистр" и "порт" - ортогональные: как регистр может либо быть, либо не быть портом, так и порт - быть либо не быть регистром.
4. В современных МК много периферии собрано внутри одного корпуса (и даже кристалла). Соответственно, устройства, служащие для взаимодействия процессора с периферией могут не иметь никаких выводов за пределы корпуса (кристалла). И, соответственно, не иметь подключенных к ним "ножек".
5. В русском языке слово "мануал" употребляется только в значении органной клавиатуры. Те же, кто слово "manual" переводят как "мануал", а не "руководство пользователя", говорят не по-русски, а потому ориентироваться на употребляемую ими терминологию вряд ли разумно. Чтобы владеть правильно русскоязычной терминологией, нужно читать не "мануалы", а учебники. Да, собственно, Вы и сами только что приводили примеры, как авторы "мануалов" пишут кто в лес, кто - по дрова.
И тут мы приходим к любимому первому вопросу одного из наших профессоров - давайте определимся с терминами. Как я вижу наши определения сильно расходятся. В таких условиях я не вижу возможности продолжать дискуссию до момента согласования определений. Мануал - побуквенная калька с английского слова входящего в названия документов - руководств по эксплуатации. Это не учебники. Русский язык он такой. Вбирает в себя многое и развивается. Что то остаётся, что то отбрасывается. Очень люблю читать книги Никитина. Главное не содержание. Очень нравиться как он играет со словами. Иногда просто удовольствие увидеть новые словоформы и их применение. Для меня регистр и порт разные устройства. Регистр это совокупность ячеек памяти имеющих один адрес в адресном пространстве и одинаковое назначение по функционалу. Порт это совокупность сущностей, обеспечивающаяя обмен информацией между МК и внешним миром. В порт ввода-вывода входят в том числе несколько регистров, каждый из которых имеет свой собственный адрес. Таким образом порт это более широкое понятие.
P.S. Пример от STM - RM0383 Reference manual STM32F411xC/E advanced ARM®-based 32-bit MCUs - в данном случае справочное руководство по МК. Предлагаю ознакомиться и найти как используется слово port.
От себя хочу заметить, что, коль скоро, мы говорим об устоявшихся терминах, их свойства не должны быть противоречивы. Что дает основание полагать, что в таком случае нам на помощь может прийти логика.
Цитата:
Регистр это совокупность ячеек памяти имеющих один адрес в адресном пространстве и одинаковое назначение по функционалу.
Поправка: регистр не обязан иметь адрес. Пример - уже упоминавшийся 74HC595.
И уточнение: коль скоро регистр - совокупность ячеек памяти, значение, прочитанное из регистра, должно соответствовать значению, записанному в регистр. При этом не обязательно, чтобы регистр одновременнор поддерживал операции как чтение, так и записи. Чтение и запись может происходить "с разных сторон", как в том же 74HC595.
Цитата:
Порт это совокупность сущностей, обеспечивающаяя обмен информацией между МК и внешним миром.
Не с "МК и внешним миром", а "процессором и периферийным устройством". Последние, напомню, могут быть расположены и на одном кристалле, поэтому до "внешнего мира" дело может и не дойти.
Цитата:
В порт ввода-вывода входят в том числе несколько регистров, каждый из которых имеет свой собственный адрес. Таким образом порт это более широкое понятие.
Давайте сначала, опираясь на определения, сделаем выводы, и только потом на их основе будем формулировать заключение.
МК - частный случай ЭВМ (компьютера). Соответственно, к нему применимы все архитектурные особенности ЭВМ.
По классике ЭВМ состоит из:
1. Центрального процессора.
2. Оперативной памяти.
3. Периферийных устройств. При этом среди ПУ должно быть минимум одно устройство ввода и одно - вывода.
Процессор имеет ограниченное количество возможностей, в частности, он имеет функции чтения и записи. К памяти и периферийным устройствам он может обращаться единообразно - только по адресу.
Нас сейчас интересует только обмен между процессором и периферийными устройствами, который и осуществляется через порты (по определению порта). Отсюда свойства портов:
1. Назначение - обмен информацией между процессором и периферийным устройством.
2. Обязан иметь адрес.
3. Должен поддерживать функции чтения и/или записи.
4. Не обязан запоминать информацию (т.е. считанная информация не обязана повторять записанную).
Отсюда и следует "танцевать".
Может ли порт содержать несколько регистров? - может, но при этом порт имеет единственный адрес, значит, в этом случае и все составляющие порт регистры должны быть доступны по одному адресу. Такое тоже бывает.
Является ли порт более широким понятием? Вряд ли: каждый имеет собственные свойства, которые мало пересекаются у порта и регистра (собственно, пересекаются только возможности операций чтения и записи, все остальное - отличается), поэтому как порт может либо быть, либо не быть регистром ("быть" - когда запоминает информацию и прочитанное равно записанному, "не быть" - в противном случае), так и регистр может либо быть, либо не быть портом ("быть" - когда имеет адрес и служит для связи с периферией, "не быть" - в противном случае).
Один из примеров: TIMx_SR - "регистр статуса" STM32 на самом деле регистром не является, т.к. не сохраняет записанную величину.
Я работаю с МК уже более 20 лет. За это время понятие порт претерпело несколько изменений. В самом начале портом могли назвать единственную ногу МК. Потом это отошло в сторону и портом стали называть устройство позволяющее обменяться информацией с МК - если брать IO pins то это несколько регистров и схема их соединения с ногами МК размером 8 бит. Когда начал знакомиться с STM32 в одной из статей вычитал ( к сожалению не нашёл с ходу сейчас), что из за того, что IO port получил дальнейшее развитие, новые функции, то от слова порт оказались в пользу входы-выходы общего назначения.
Примеров всё так же Вы не приводите. Только Ваши соображения, основанные на Ваших представлениях об устройстве мира. Просто пройдите поиском по предлагаемому Reference manual STM32F411xC/E и сделайте вывод о том, в каком контексте используется слово port по отношению к микроконтроллеру. Внутри документа имеется блоксхема системной архитектуры МК с описанием взаимодействия отдельных блоков - ядра, памяти, периферии. При описании блок схемы слово порт не встречается.
Простая программа для проверки портов. В режиме OUTPUT по команде "s" или пробел записывает "1" по очереди во все используемые биты портов B, C, D и читает сосьояние пинов.
1-я колонка - то, что записано, 2, 3, 4 - то что прочиталось.
nik182, Вы все пытаетесь увести разговор в какие-то частности. Ну при чем здесь stm32f411? Какое он имеет отношение к основным архитектурным принципам построения ЭВМ? Этим принципам уже более 70 лет, тогда как МК появились совсем недавно.
Вот смотрите: периферийное устройство может быть расположено на одном кристалле с центральным процессором, может быть на одной плате, а может быть - вообще в другом помещении. Неужели Вы считаете, что этот факт должен как-то сказываться на названии устройства, посредством которого центральный процессор обменивается информацией с периферийным устройством?
Вот скажите, как по-Вашему следует называть устройство, посредством которого центральный процессор, который умеет только читать и писать по выбранному адресу, общается с произвольным периферийным устройством? Как называется это устройство (возможно, логическое), которое имеет уникальный адрес и функции чтения и/или записи?
Это Вы уводите в сторону. Вопрос вырос из Вашего замечания, понимает ли человек разницу между GPIO и портом. Как я вижу, у Вас есть собственное понимание слова порт. Оно ни как не коррелирует с практикой употребления слова порт в справочной литературе по микроконтроллерам. Все мои посты относились исключительно к МК. Никакой другой комнаты с периферией. Если быть совсем конкретным, то я не вижу разницы между названием porta, portb для АВР и GPIO для STM. Большее я обсуждать не хотел.
Похоже, мы действительно говорили о совершенно разных вещах, ибо по моим представлениям porta и portb применительно к AVR так же соотносятся с термином port, как "милостивый государь" и "Государь Император".
Но тема в общем интересная с методологической точки зрения. Предлагаю переместиться а отвлечённые. Надеюсь там можно будет и мнения других услышать. Только нужно как то сформулировать тему, что бы было понятно в чём корень вопроса. Я с ходу ни чего не придумал, что бы отразить мою и Вашу позицию одновременно.
В скетче заложено измерение напряжения питания и внутренней температуры ATmega32U4 (Леонардо) и ATtiny85, но проверить пока не могу из-за их отсутствия.
Это не порты, это регистры таймера. Цитата: 14.4.1 TIM1&TIM8 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . 333
В данном случае порты - это назначение, регистры - это реализация.
Ничто не мешает делать порты в виде регистров.
В то же время, например, 74HC595 - регистр, но не порт. А TIMx_... - именно порты, т.к.:
1. Расположены в адресном пространстве процессора.
2. Служат для управления периферийным устройством.
Порт это что то такое, что позволяет пропустить через себя наружу или внутрь. Например, кроме непосредственно портов ножек процессора, собранных по 8 - 16 штук, последовательный порт, SPI порт, в ББ это LPT и.т.д. Но всё равно это вывод из корпуса процессора, который передаёт информацию, в виде физического изменения состояния - напряжения, отбирая ноги у портов ввода-вывода. Никогда не рассматривал порт как логическое устройство. Как раз регистры для меня не могут быть портами, потому что через них не проходит ничего. Это ключи управления. 74HC595 - регистр по функциональному назначению. МС имеет несколько ячеек памяти, объединённых в регистр. Вывод на ноги МС идет через порт. Этот порт простой - защёлка с выходом на ноги. Найдите мне пожалуйста хоть в одном мануале на микроконтроллер слово порт в значении логического устройства. Я ни разу не встречал.
1. Порт - устройство, расположенное в адресном пространстве процессора и служащее для взаимодействия с периферией.
2. Регистр - устройство, способное запоминать и хранить информацию.
3. Из сравнения 1 и 2 делаем вывод, что термины "регистр" и "порт" - ортогональные: как регистр может либо быть, либо не быть портом, так и порт - быть либо не быть регистром.
4. В современных МК много периферии собрано внутри одного корпуса (и даже кристалла). Соответственно, устройства, служащие для взаимодействия процессора с периферией могут не иметь никаких выводов за пределы корпуса (кристалла). И, соответственно, не иметь подключенных к ним "ножек".
5. В русском языке слово "мануал" употребляется только в значении органной клавиатуры. Те же, кто слово "manual" переводят как "мануал", а не "руководство пользователя", говорят не по-русски, а потому ориентироваться на употребляемую ими терминологию вряд ли разумно. Чтобы владеть правильно русскоязычной терминологией, нужно читать не "мануалы", а учебники. Да, собственно, Вы и сами только что приводили примеры, как авторы "мануалов" пишут кто в лес, кто - по дрова.
И тут мы приходим к любимому первому вопросу одного из наших профессоров - давайте определимся с терминами. Как я вижу наши определения сильно расходятся. В таких условиях я не вижу возможности продолжать дискуссию до момента согласования определений. Мануал - побуквенная калька с английского слова входящего в названия документов - руководств по эксплуатации. Это не учебники. Русский язык он такой. Вбирает в себя многое и развивается. Что то остаётся, что то отбрасывается. Очень люблю читать книги Никитина. Главное не содержание. Очень нравиться как он играет со словами. Иногда просто удовольствие увидеть новые словоформы и их применение. Для меня регистр и порт разные устройства. Регистр это совокупность ячеек памяти имеющих один адрес в адресном пространстве и одинаковое назначение по функционалу. Порт это совокупность сущностей, обеспечивающаяя обмен информацией между МК и внешним миром. В порт ввода-вывода входят в том числе несколько регистров, каждый из которых имеет свой собственный адрес. Таким образом порт это более широкое понятие.
P.S. Пример от STM - RM0383 Reference manual STM32F411xC/E advanced ARM®-based 32-bit MCUs - в данном случае справочное руководство по МК. Предлагаю ознакомиться и найти как используется слово port.
давайте определимся с терминами.
Логично.
От себя хочу заметить, что, коль скоро, мы говорим об устоявшихся терминах, их свойства не должны быть противоречивы. Что дает основание полагать, что в таком случае нам на помощь может прийти логика.
Регистр это совокупность ячеек памяти имеющих один адрес в адресном пространстве и одинаковое назначение по функционалу.
Поправка: регистр не обязан иметь адрес. Пример - уже упоминавшийся 74HC595.
И уточнение: коль скоро регистр - совокупность ячеек памяти, значение, прочитанное из регистра, должно соответствовать значению, записанному в регистр. При этом не обязательно, чтобы регистр одновременнор поддерживал операции как чтение, так и записи. Чтение и запись может происходить "с разных сторон", как в том же 74HC595.
Порт это совокупность сущностей, обеспечивающаяя обмен информацией между МК и внешним миром.
Не с "МК и внешним миром", а "процессором и периферийным устройством". Последние, напомню, могут быть расположены и на одном кристалле, поэтому до "внешнего мира" дело может и не дойти.
В порт ввода-вывода входят в том числе несколько регистров, каждый из которых имеет свой собственный адрес. Таким образом порт это более широкое понятие.
Давайте сначала, опираясь на определения, сделаем выводы, и только потом на их основе будем формулировать заключение.
МК - частный случай ЭВМ (компьютера). Соответственно, к нему применимы все архитектурные особенности ЭВМ.
По классике ЭВМ состоит из:
1. Центрального процессора.
2. Оперативной памяти.
3. Периферийных устройств. При этом среди ПУ должно быть минимум одно устройство ввода и одно - вывода.
Процессор имеет ограниченное количество возможностей, в частности, он имеет функции чтения и записи. К памяти и периферийным устройствам он может обращаться единообразно - только по адресу.
Нас сейчас интересует только обмен между процессором и периферийными устройствами, который и осуществляется через порты (по определению порта). Отсюда свойства портов:
1. Назначение - обмен информацией между процессором и периферийным устройством.
2. Обязан иметь адрес.
3. Должен поддерживать функции чтения и/или записи.
4. Не обязан запоминать информацию (т.е. считанная информация не обязана повторять записанную).
Отсюда и следует "танцевать".
Может ли порт содержать несколько регистров? - может, но при этом порт имеет единственный адрес, значит, в этом случае и все составляющие порт регистры должны быть доступны по одному адресу. Такое тоже бывает.
Является ли порт более широким понятием? Вряд ли: каждый имеет собственные свойства, которые мало пересекаются у порта и регистра (собственно, пересекаются только возможности операций чтения и записи, все остальное - отличается), поэтому как порт может либо быть, либо не быть регистром ("быть" - когда запоминает информацию и прочитанное равно записанному, "не быть" - в противном случае), так и регистр может либо быть, либо не быть портом ("быть" - когда имеет адрес и служит для связи с периферией, "не быть" - в противном случае).
Один из примеров: TIMx_SR - "регистр статуса" STM32 на самом деле регистром не является, т.к. не сохраняет записанную величину.
Я работаю с МК уже более 20 лет. За это время понятие порт претерпело несколько изменений. В самом начале портом могли назвать единственную ногу МК. Потом это отошло в сторону и портом стали называть устройство позволяющее обменяться информацией с МК - если брать IO pins то это несколько регистров и схема их соединения с ногами МК размером 8 бит. Когда начал знакомиться с STM32 в одной из статей вычитал ( к сожалению не нашёл с ходу сейчас), что из за того, что IO port получил дальнейшее развитие, новые функции, то от слова порт оказались в пользу входы-выходы общего назначения.
Примеров всё так же Вы не приводите. Только Ваши соображения, основанные на Ваших представлениях об устройстве мира. Просто пройдите поиском по предлагаемому Reference manual STM32F411xC/E и сделайте вывод о том, в каком контексте используется слово port по отношению к микроконтроллеру. Внутри документа имеется блоксхема системной архитектуры МК с описанием взаимодействия отдельных блоков - ядра, памяти, периферии. При описании блок схемы слово порт не встречается.
Простая программа для проверки портов. В режиме OUTPUT по команде "s" или пробел записывает "1" по очереди во все используемые биты портов B, C, D и читает сосьояние пинов.
1-я колонка - то, что записано, 2, 3, 4 - то что прочиталось.
В режиме AUTO биты выводятся через 50 иксек.
nik182, Вы все пытаетесь увести разговор в какие-то частности. Ну при чем здесь stm32f411? Какое он имеет отношение к основным архитектурным принципам построения ЭВМ? Этим принципам уже более 70 лет, тогда как МК появились совсем недавно.
Вот смотрите: периферийное устройство может быть расположено на одном кристалле с центральным процессором, может быть на одной плате, а может быть - вообще в другом помещении. Неужели Вы считаете, что этот факт должен как-то сказываться на названии устройства, посредством которого центральный процессор обменивается информацией с периферийным устройством?
Вот скажите, как по-Вашему следует называть устройство, посредством которого центральный процессор, который умеет только читать и писать по выбранному адресу, общается с произвольным периферийным устройством? Как называется это устройство (возможно, логическое), которое имеет уникальный адрес и функции чтения и/или записи?
Это Вы уводите в сторону. Вопрос вырос из Вашего замечания, понимает ли человек разницу между GPIO и портом. Как я вижу, у Вас есть собственное понимание слова порт. Оно ни как не коррелирует с практикой употребления слова порт в справочной литературе по микроконтроллерам. Все мои посты относились исключительно к МК. Никакой другой комнаты с периферией. Если быть совсем конкретным, то я не вижу разницы между названием porta, portb для АВР и GPIO для STM. Большее я обсуждать не хотел.
Ну не хотел, так не хотел.
Похоже, мы действительно говорили о совершенно разных вещах, ибо по моим представлениям porta и portb применительно к AVR так же соотносятся с термином port, как "милостивый государь" и "Государь Император".
Но тема в общем интересная с методологической точки зрения. Предлагаю переместиться а отвлечённые. Надеюсь там можно будет и мнения других услышать. Только нужно как то сформулировать тему, что бы было понятно в чём корень вопроса. Я с ходу ни чего не придумал, что бы отразить мою и Вашу позицию одновременно.
Нашёл кучку сигнатур AVR-контроллеров: http://www.gammon.com.au/forum/?id=11633
В скетче заложено измерение напряжения питания и внутренней температуры ATmega32U4 (Леонардо) и ATtiny85, но проверить пока не могу из-за их отсутствия.
а attiny85 на каком ядре?
SYSINFO 1.08 (добавлен ID)