Vitat's homepage
29 Mar 2024, 18:18 *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: 21.03.08 Произведено обновление сайта/Site was updated
 
  Home   Forum   Help Search Login Register  

Pages: [1] 2   Go Down
  Print  
Author Topic: Эксперименты с интерфейсом Honda - нид хелп  (Read 29737 times)
0 Members and 1 Guest are viewing this topic.
skvortsov
Junior
**
Posts: 42


View Profile
« on: 30 May 2006, 23:35 »

Сегодня подключился к интерфейсу магнитолы Honda Jazz. Схему собрал на ATMega162. В качестве компаратора использовал встроенный в мегу. Прошивку пока сделал простейшую - она "слушает" шину и логгирует через RS-232 длительность импульсов 0 и 1. В итоге получил я вот что:
1) сначала на выходе компаратора имеет 1
2) потом с разной периодичностью (где-то раз в секунду, но интервал скачет) на компараторе появляется 0 на 3 мкс.
3) после ресета моей схемы почему-то до первого 0-го импульса проходит несколько секунд (явно больше последующей периодичности импульсов). отсюда первый вопрос - откуда "голова" знает, что моя схема ресетилась?

Если я правильно понимаю, то в пионеровском IP-Bus голова сама инициирует передачи и первые 3 байта с адресом посылает не дожидаясь никакого ответа от чейнджера. В моем случае получается, что голова посылает только 0 бит периодически а дальше передачи нет.

Дальше я попробовал сделать следующее, сразу после смены первого 0 на 1 я открываю транзистор на 3 мкс (тот, который на схеме без CAN driver'а). После этого голова начинает передавать какую-то непонятную последовательность нулей и единиц. Прикладываю ее в виде лога. В нем в каждой строке сначала идет значение компаратора (32 - это единица, 0 - это 0), потом длительность этого состояния (в 1/8 мкс (засекал по таймеру, запущенному без прескейлера, скорость чипа 8МГц)). Я пока логики в этой последовательности никакой не усматриваю Sad Если есть у кого-то какие-то идеи - с радостью выслушаю...

Сергей.

* log.txt (0.88 KB - downloaded 831 times.)
« Last Edit: 31 May 2006, 12:29 by skvortsov » Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #1 on: 30 May 2006, 23:52 »

Сейчас еще смотрел на записанный лог. Вот какое свойство заметил:
1 (на компараторе) всегда бывает либо длительностью 24, либо 41 (24+17). 0 бывает разной длительности. Минимальная - 24. Все остальные длительности больше 24 на число, кратное 17 (41, 58, 75, 92 и т.д.). Максимальная длительность нуля в логе 551 (24 + 31*17). т.е. можно считать, что длительностей нуля разных 32 (5 битов)...

дальше пока логическая цепочка обрывается. буду думать дальше... придется, видимо, добывать чейнджер хондовский для логгирования реального трафика шины...
Logged
Vitat
Administrator
Full Member
*****
Gender: Male
Posts: 338


11507314
View Profile
« Reply #2 on: 31 May 2006, 13:09 »

Вникать пока нету времени. Но скажу, что инициализацию начинает чейнджер. Голова иногда умеет что-то посылать кому-то без подключенного чейнджера.
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #3 on: 31 May 2006, 13:53 »

Да, кажется я начинаю понимать... Я не до конца понял логику работы эмулятора. Меня сбило с толку условие в самом начале цикла
if (INPUT_IS_SET) ... Я думал, что как раз мы сначала ждем, пока нам голова что-то скажет. Буду лучше разбираться в коде эмулятора.

А какую команду первой посылает эмулятор?
В блоке, начинающемся с if (SendOK == true)
в начале работы первые три if вроде как не должны выполняться, пока голова нам ничего не посылала, а последний выполнится, после того как сработает обработчик таймера через 2 секунды и выставит Event = EV_STATUS. Получается, что первой командой будет STATUS?
Logged
brokly
Member
***
Posts: 82


View Profile
« Reply #4 on: 31 May 2006, 15:07 »

По таймингам очень похоже на этот самый IE-BUS. Голова при включении обязанна послать свой хидер, что бы засветиться, мол есть ведущий. Дальше ведомые сообщают о себе. А просто тупо пионеровский ченьджер не пробывал цеплять ?
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #5 on: 31 May 2006, 15:16 »

По таймингам очень похоже на этот самый IE-BUS. Голова при включении обязанна послать свой хидер, что бы засветиться, мол есть ведущий. Дальше ведомые сообщают о себе. А просто тупо пионеровский ченьджер не пробывал цеплять ?
Ты имеешь ввиду IP-BUS? Пионеровского чейнджера нет (кстати, может есть у кого в москве ненужный на недельку поэкспериментировать, за пиво? Smile ). кстати, надо действительно попробовать выключить магнитолу и засечь, что она шлет после включения. Я этого честно говоря не пробовал. Она у меня всегда работала.
Logged
vS
Junior
**
Posts: 15


View Profile Email
« Reply #6 on: 31 May 2006, 15:24 »

Сергей
а хондовский ченжер у тебя есть, или что ты "слушал" ?
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #7 on: 31 May 2006, 15:31 »

Сергей
а хондовский ченжер у тебя есть, или что ты "слушал" ?
Так в этом-то и проблема, что чейнджера у меня никакого нет. "слушал", что "голова" говорит Smile что-то, как видно, мне даже удалось услышать. я исходил из предположения, что говорить начинает голова, поэтому и надеялся что-нибудь услышать на шине, к которой ничего не подключено. теперь оказывается, что "говорить" вроде как чейнджер должен начинать... попробую еще и с этой стороны зайти. может что-нибудь другое в ответ "услышу" Smile
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #8 on: 01 Jun 2006, 10:15 »

Есть у меня подозрение, что вообще все неправильно я "наслушал". только сейчас понял, что у меня в цикле "слушания" был вставлен и логгинг через UART. а он же на 9600 бод тормозной и по идее должен был занимать кучу времени по сравнению с таймингами шины... Я привык к web-программированию, где временем, затрачиваемым на логгирование можно и пренебречь Smile

А как вообще в таком случае правильно логгировать? сначала буферизировать в память лог, а потом его скидывать в UART?
Logged
Vitat
Administrator
Full Member
*****
Gender: Male
Posts: 338


11507314
View Profile
« Reply #9 on: 01 Jun 2006, 10:35 »

Поставь 115200, а без буфера никуда.
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #10 on: 02 Jun 2006, 00:28 »

На данный момент имею вот что:
1) как только подключаю эмулятор к шине на компараторе (меговском, ЛМ339 никак не впаяю Sad) сразу начинает скакать то 0 то 1. при чем, даже если подкючить только один провод (плюсовой, например). вольтметр показывает напряжение 0 между BUS+ и BUS-.
2) отправка сообщения зависает в бесконечном цикле
3) чтение сообщений вообще не работает (видимо благодаря пункту 1, т.к. на входе мы имеем полную чушь Sad)

Есть вопросы по коду эмулятора:
1) timer0_source(CK64); //update every 1us
при скорости 14.5МГц и делителе 64 разьве мы получаем 1мкс??? Или комментарий уже не актуален?
2) как кодируются биты 0 и 1 на шине? 0 это длинный high, потом короткий low, а единица - high low одинаковой длительности? каковы длительности этих импульсов в микросекундах (на сайте http://mictronics.de/?page=cdc_proto#Pioneer есть данные про 33 и 7 мкс для 0 и 20 и 20 мкс для 1).
3) правильно ли я понимаю, что в схеме применен инвертирующий режим работы компаратора? т.е. когда + больше -, то на выходе имеем 0, ну и 1 в противном случае?
3) что такое high на шине? это когда BUS+ больше BUS-? т.е. на выходе инвертирующего компаратора мы имеем 0, что означает выполнение условия INPUT_IS_CLEAR?
4) для чего все же нужен диод между транзистором и шиной?

и еще мне не понятно, куда делись те нулевые импульсы по 3 мкс с периодичностью около секунды, которые я наблюдал позавчера... сегодня я почему-то ничего подобного увидеть не смог. только хаотическое изменение 0 на 1...


заранее большое (нет, даже огромное! Smile) спасибо за помощь!

Сергей
Logged
Vitat
Administrator
Full Member
*****
Gender: Male
Posts: 338


11507314
View Profile
« Reply #11 on: 06 Jun 2006, 00:46 »

На данный момент имею вот что:
1) как только подключаю эмулятор к шине на компараторе (меговском, ЛМ339 никак не впаяю Sad) сразу начинает скакать то 0 то 1. при чем, даже если подкючить только один провод (плюсовой, например). вольтметр показывает напряжение 0 между BUS+ и BUS-.
2) отправка сообщения зависает в бесконечном цикле
3) чтение сообщений вообще не работает (видимо благодаря пункту 1, т.к. на входе мы имеем полную чушь Sad)
Резистор 10к между bus+ и землей поставь если не стоит.

Есть вопросы по коду эмулятора:
1) timer0_source(CK64); //update every 1us
при скорости 14.5МГц и делителе 64 разьве мы получаем 1мкс??? Или комментарий уже не актуален?
2) как кодируются биты 0 и 1 на шине? 0 это длинный high, потом короткий low, а единица - high low одинаковой длительности? каковы длительности этих импульсов в микросекундах (на сайте http://mictronics.de/?page=cdc_proto#Pioneer есть данные про 33 и 7 мкс для 0 и 20 и 20 мкс для 1).
3) правильно ли я понимаю, что в схеме применен инвертирующий режим работы компаратора? т.е. когда + больше -, то на выходе имеем 0, ну и 1 в противном случае?
3) что такое high на шине? это когда BUS+ больше BUS-? т.е. на выходе инвертирующего компаратора мы имеем 0, что означает выполнение условия INPUT_IS_CLEAR?
4) для чего все же нужен диод между транзистором и шиной?
1. Наверно не актуален. Не помню уже. Very Happy
2. Так и есть.
3. Вроде да.
4. У Hitachi спроси. Я тупо срисовал внутреннюю структуру микросхемы с небольшими изменениями. Собрал, проверил - работает.

и еще мне не понятно, куда делись те нулевые импульсы по 3 мкс с периодичностью около секунды, которые я наблюдал позавчера... сегодня я почему-то ничего подобного увидеть не смог. только хаотическое изменение 0 на 1...
Здесь есть экстрасенсы? Wink
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #12 on: 06 Jun 2006, 10:16 »

Резистор 10к между bus+ и землей поставь если не стоит.
1. Наверно не актуален. Не помню уже. Very Happy
2. Так и есть.
3. Вроде да.
4. У Hitachi спроси. Я тупо срисовал внутреннюю структуру микросхемы с небольшими изменениями. Собрал, проверил - работает.
Здесь есть экстрасенсы? Wink
Резистор 10к есть. Пока к шине не подключен эмулятор - на компараторе устойчивое значение, т.к. есть небольшая разница напряжений. Но как только подключаю к шине, то напряжение между + и - становится 0 и  компаратор начинает "гулять". Померял, кстати, сопротивление между BUS+ и BUS- - 68 Ом. Так что по физике это явно IP-BUS.

Буду дальше экспериментировать, как время появится. пока этого самого времени нет. Ну а по поводу экстрасенсов - это так, мысли вслух были Smile
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #13 on: 06 Jun 2006, 10:44 »

Кстати, у меня в даташите на хитачи HA12187 вот какая схема нарисована (приаттачено).
Какой элемент обозначается двумя пересекающимися окружностями? Источник тока?
Эта схема, похоже, дергает как +, так и -


* hitachi.gif (4.54 KB, 290x215 - viewed 1378 times.)
Logged
skvortsov
Junior
**
Posts: 42


View Profile
« Reply #14 on: 06 Jun 2006, 13:59 »

to Vitat:
Глядя на хитачевскую схему нарисовал что-то такое (приаттачено). Как думаешь, работоспособный вариант?

P.S. только Q2, наверное, надо поменять на NPN и управлять им через отдельный выход придется видимо


* IPBusDriver.png (5.35 KB, 466x482 - viewed 1927 times.)
« Last Edit: 06 Jun 2006, 14:12 by skvortsov » Logged
Pages: [1] 2   Go Up
  Print  
 
Jump to:  

TinyPortal v1.0.5 beta 1© Bloc

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!