| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Нужна констультация "бывалых" |
| Автор: relline 9.7.2009, 16:21 |
| Есть некая система с центральным контролером(заводского производства без документации) и парой вспомагательных. Центральный контролер згорел=( Мы удачно его функционал перепрограмировали это не проблема, но вот со связкой вспомагательных контролеров попали в тупик. Вспомагательный контролер представляет из себя программируемую микруху ispGAL22V10C-15LJ, 2 микрухи AY0438 подключены каскадно(32-Segment CMOS LCD Driver) ну и собсно LCD дисплей H4059A. Работало это предлизительно так: Главный контролер слал битовую последовательность на програмируемую микруху, она обрабатовала эту последовательность и выводила цифирки на ЛСД. Вопрос: Как я могу сымитировать эту последовательность, что бы потом вычислить как нам в новом контролере слать сигналы? Прокатит такая последовательность с COM или LPT порта? |
| Автор: smalcom 9.7.2009, 21:28 |
| может получится сопоставить данные с логического анализатора и то, что отображено |
| Автор: relline 10.7.2009, 08:58 |
| в ходи изучения проблемы возник следующий вопрос: Com порт передает сигнал посылками: старт бит+5-8бит+проверочный бит+стоп бит, сигнал логической "1" 12В, нам же нужна последовательность без вспомагательных бит и с логической "1" в 5В, с 5В можно решить через микросхему MAX232, а вот со старт-стопными битами загвоздка=( У кого какие мысли по поводу передачи по кому неприрывной битовой последовательности без старт-стопных битов. |
| Автор: UniBomb 10.7.2009, 10:37 |
С чего вы это взяли? Старт и стоп биты это неотъемлемая часть практически любого последовательного протокола, без них организация обмена данными была бы очень затруднена. Объясню почему. Линия даных может иметь два устойчивых состояния - "0" и "1". Когда линия свободна на ней висит состояние "1". Это нужно для того, что бы организовывать мультимастер-сети, т.е. сеть, инициировать передачу в которой могут несколько устройств. Задача арбитража осуществляется в таком случае легко - если на линии висит "1" какое-то время, то она свободна. Передача битов данных "1" происходит последовательным изменением лини из состояния "0" в состояние "1" и обратно. Соответсвенно бит "0" передаётся состоянием "0" на линии. Время, в течении которого линия при передачи данных имеет состояние "1" или "0" определяется скоростью передачи даных и мониторится с помощью внутренних генераторов синхроимпульсов. А как же начать передачу данных? Естественно линию надо занять, т.е. перевести её состояние из "1" в "0". Спадающий фронт и называется "СТАРТ-бит". Хотя по сути это т.н. "полубит". Аналогично происходит окончание передачи - нарастающий фронт освобождает линию. Это соответсвенно "СТОП-бит", который тоже полубит. Соответсвенно старт и стоп генерируются на аппаратном уровне и адекватно воспринимаются аппаратной частью принимающей стороны и в регистр данных эти полубиты не заносятся. Иными словами от них можно избавится только выбором другого интерфейса. Так почему вы решили, что они вам не нужны? Добавлено через 1 минуту и 43 секунды Хотя в случае с RS232 я немного наврал - мультимастер тут не сделать, но всё остально относится и к 232-ому... |
| Автор: relline 10.7.2009, 12:19 |
| 2UniBomb, это все я прекрасно понимаю, токо фактически мне надо сымитировать соединение контроллер контролер, при том что подчиненый контролер с GAL логикой, а она(на скоко я понял) эти биты откидать не может. кабель которым соединены 2 контроллера состоит из: clk, data, ds1,ds2, switch, +12vdc, gnd. первые 2 провода понятно зачем следующие 2 под вопросом, потом идет провод который указывает на нажатие клавиши на подчиненом контролереб ну и потом питание. Моя задача сымитировать clc и data чтобы посмотреть как будет вести себя ЛСД и в результате попробовать опредилить как на ЛСД целенаправлено слать значения которые нам надо. Изначально там стоял контролер аналог этому http://holit.ua/ru/news/2782.html токо канадского производства но с него осталось куча угля=) мы приспособили советский http://holit.ua/ru/news/2782.html но вот 2 дополнительных 7 сегментных, 6 разрядных индикатора покачто подключить ума не хватает=( С канадского контролера выходили ихние какието специфические шнуры и разьемы подключения у нас же нуно пробовать либо по COM или USB для особого изврата есть еще Ethernet. |
| Автор: UniBomb 10.7.2009, 13:18 |
| relline, посмотрел я даташит на микросхему ispGAL22V10C-15LJ, из интерфейсов там только jtag. Поэтому никаких clk, data там нет. Вопрос такой - между главным контроллером и ispGAL22V10C-15LJ есть ещё что-нибудь? |
| Автор: relline 10.7.2009, 16:17 |
| UniBomb, основной контролер сильно погорел и посмотреть дорожки марки микрух на нем нету возможности, clk, data, ds1,ds2, switch, +12vdc, gnd это дело взято из скудной документации по контролеру, точнее из схеми електромонтажа всей установки, имхо мое ГАЛ исполюзуется как некий ключ(разрешения/запрета) вывода а саму битовою последовательность формировал главный контролер, за выходные соберу стенд и буду пробовать через ЛПТ слать мусор, в понедельник напишу результат(если комп не спалю=)) Сор за не знание в этой теме, до этого восновном токо програмировал промышленые контролеры типа Simatic и в C++ Delphi MASM, но все таки "из интерфейсов там только jtag" это что? можно просто ссылку на статью, я просто с контролерами такого плана неделю токо вожусь=) Добавлено через 13 минут и 30 секунд вика штука хорошая http://ru.wikipedia.org/wiki/JTAG я так понял ты о 1,8,15 и 22 пине на микрухе ГАЛ - на скоко я понял это для ее программирования. судя с дорожек провод clk подключен ко 2 пину ГАЛ а провод data к 3 пину ГАЛ, с 27 пина ГАЛ идет дорожка на 37пин AY0438 и тот же clk подключен к 44 пину ds1 и ds2 уходят под сам чип ГАЛ и к чему подключины вычислить некак=( |
| Автор: UniBomb 10.7.2009, 16:49 |
| relline, я имел в виду со стороны "вспомогательного контроллера". Просто если верить даташиту (http://www.latticesemi.com/lit/docs/datasheets/pal_gal/22v10.pdf) ispGAL22V10C-15LJ это просто ПЛК, имеющий только дискретные входы (первый раз я смотрел старый даташит и модуль jtag там был, сейчас нет). Так вот возникла мысль, что линии clk и data предназначены для другой микросхемы, которая преобразует последовательный код в параллельный. Первая же ссылка в гугле по запросу "jtag" ведёт на http://ru.wikipedia.org/wiki/JTAG замечательную страницу. |
| Автор: UniBomb 10.7.2009, 17:15 |
Походу дела какой-либо интерфейс там реализован программно. Тогда неизвестно ни с какой скорость туда передаются данные, ни какого формата. Но в любом сучае: - нужен какой-нибудь конвертер интерфейсов (для генерирования синхроимпульсов, для обеспечения двухсторонней передачи данных по линии data). или колдовать с lpt портом - стартовый и стоповый бит присутсвуют в любом случае, иначе прибор не сможет опознать начало приёма данных и не сможет различать одну посылку от другой |
| Автор: relline 13.7.2009, 09:32 |
| c LPT все получилось, там просто передавалось 64бита которые потом соответствовали определеным сегментам индикатора, ГАЛ выступал что то вроде ключа, от сигналов ds1,ds2 зависело разрешение на вывод даных. Тему можно клоуз |