Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Разное (http://zx-pk.ru/forumdisplay.php?f=90)
-   -   Помогите реализовать/разработать двунаправленный порт ввода/вывода. (http://zx-pk.ru/showthread.php?t=21245)

Viktor2312 4th May 2013 11:39

Помогите реализовать/разработать двунаправленный порт ввода/вывода.
 
В общих чертах, между устройством А и устройством Б необходимо обмениваться байтами данных.

Устройство А и Б абсолютно идентичны и представляют из себя микропроцессорные устройства. В момент когда устройство А не выполняет каких либо вычислений, оно тупо сканирует свои порты, не хочет ли кто нибудь передать ему данные для их выполнения, то же самое в принципе делает и устройство Б. Но как только на одном из портов появится активный сигнал ГОТОВНОСТЬ ПЕРЕДАЧИ ДАННЫХ (ГПД) надо произвести их получение.
В нашем случае, это подходит для устройства Б. Например, оно тупо сканировало порты, на всех портах сигнал ГПД был неактивен, но при сканировании порта соединённого с устройством А сигнал ГПД был определён как активный и соответственно необходимо произвести процесс получения блока данных.

Тут получается, что помимо 8 линий данных будет как минимум два сигнала. Первый ГОТОВНОСТЬ ПЕРЕДАЧИ ДАННЫХ (ГПД) от устройства А и ПОДТВЕРЖДЕНИЕ ГОТОВНОСТИ ПРИНЯТЬ ДАННЫЕ (ПГПД). Но вот дальше как то пока не получается сообразить. Нужен будет скорее всего ещё один сигнал КОНЕЦ ПЕРЕДАЧИ БЛОКА ДАННЫХ (КПБД) именно всего блока данных а не одного байта из этих всех данных. Но тогда наверное потребуется ещё два сигнала сигнализирующих о том, что байт данных выставлен на шину устройством А, первый и второй, что устройство Б приняло байт данных.

Подскажите как правильно это всё организовать, а то я уже запутался во всём этом.

Спасибо.

Vladimir_S 4th May 2013 12:26

Quote:

Originally Posted by Viktor2312 (Post 598229)
Тут получается, что помимо 8 линий данных будет как минимум два сигнала. Первый ГОТОВНОСТЬ ПЕРЕДАЧИ ДАННЫХ (ГПД) от устройства А и ПОДТВЕРЖДЕНИЕ ГОТОВНОСТИ ПРИНЯТЬ ДАННЫЕ (ПГПД). Но вот дальше как то пока не получается сообразить. Нужен будет скорее всего ещё один сигнал КОНЕЦ ПЕРЕДАЧИ БЛОКА ДАННЫХ (КПБД) именно всего блока данных а не одного байта из этих всех данных. Но тогда наверное потребуется ещё два сигнала сигнализирующих о том, что байт данных выставлен на шину устройством А, первый и второй, что устройство Б приняло байт данных.

А не проще передавать два байта? Один из которых обеспечивает информацию по протоколу.

---------- Post added at 10:26 ---------- Previous post was at 10:14 ----------

И еще - может лучше последовательный протокол. Их много.И уже готовых.

Viktor2312 4th May 2013 13:36

Quote:

Originally Posted by Vladimir_S (Post 598238)
И еще - может лучше последовательный протокол. Их много.И уже готовых.

Не, последовательный не хочется. Да и параллельный быстрее будет.

Quote:

Originally Posted by Vladimir_S (Post 598238)
А не проще передавать два байта? Один из которых обеспечивает информацию по протоколу.

Как-то оно так я себе это и представляю, просто я думал сделать так, один порт ввода/вывода самой микропроцессорной системы, например с номером 01h служит для передачи служебной информации, а второй, например с номером 02h для передачи байта данных. В итоге имеем максимум 16 линий для внешнего двунаправленного порта В/В.

---------- Post added at 13:36 ---------- Previous post was at 13:34 ----------

Для того, чтобы было понятнее, микропроцессор использоваться будет КР580ВМ80А и соответственно его система команд. А обращение к портам командами IN и OUT.

Vladimir_S 4th May 2013 13:48

Quote:

Originally Posted by Viktor2312 (Post 598255)
В итоге имеем максимум 16 линий

Даже по трем линиям можно передать 8 (от 0 до 7) кодов информации.

Viktor2312 4th May 2013 14:05

Quote:

Originally Posted by Vladimir_S (Post 598257)
Даже по трем линиям можно передать 8 (от 0 до 7) кодов информации.

В количестве линий проблем нет, сколько потребуется, столько и будет выделено под это дело. Хочется сделать максимально всё в железе, например на К555 серии, чтобы уменьшить программную часть. И получить максимальное быстродействие.

AIS 4th May 2013 14:52

Можно взять за основу протокол обмена данными с маленькими ЖКИ дисплеями : http://www.gaw.ru/pdf/lcd/lcm/melt/char/MT-16S2H.pdf
Там дополнительно к 8-битной шине данных используются ещё 3 сигнала : А0 - выбор передачи команды или данных, R/W - выбор чтение или запись, Е - строб данных.

Viktor2312 4th May 2013 15:32

Quote:

Originally Posted by AIS (Post 598268)
Можно взять за основу протокол обмена данными с маленькими ЖКИ дисплеями

Спасибо, будем подумать.

Vladimir_S 4th May 2013 15:53

Quote:

Originally Posted by Viktor2312 (Post 598279)
Спасибо, будем подумать.

Я бы посоветовал не просто думать, а сэмулировать все это на чем нибудь типа PROTEUS.

Viktor2312 4th May 2013 16:27

Quote:

Originally Posted by Vladimir_S (Post 598288)
Я бы посоветовал не просто думать, а сэмулировать все это на чем нибудь типа PROTEUS.

Да, я вот думаю, а ведь неверняка есть стандартные микросхемы в КР580 серии именно для этого и предназначенные. Для обмена данными между двумя микропроцессорными системами построенными на базе КР580 серии. Просто у меня небольшое сомнение возникло из-за того, что устройство Б в моём случае является как бы не ведомым по отношению к устройству А (как в случае с принтером или другим подобным внешним устройством), а является таким же полноценным устройством как и устройство А.

PROTEUS я пока не осваивал и не изучал, по сему пользоваться им не умею, пока.

Vladimir_S 4th May 2013 16:41

Quote:

Originally Posted by Viktor2312 (Post 598297)
Для обмена данными между двумя микропроцессорными системами построенными на базе КР580 серии.

КР580ВВ51 - приемопередатчик, но он последовательный.
http://www.google.ru/url?sa=t&rct=j&...,d.bGE&cad=rjt


All times are GMT +4. The time now is 02:08.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.