Эмулятор и сниффер головного устройства для псевдографических дисплеев.
Первый эмулятор я делал для дисплея на автомобиле Hover , через LPT порт, теперь это газдо проще сделать на arduino (Arduino).
Для чего он нужен?
Эмулятор нужен для того чтобы расшифровать какими битами включаются сегменты псевдографического дисплея, чтобы на основе этой дешифровки можно было бы подключить головное устройство к компьютеру , а родной дисплей заменить на VGA. Мои исследования показали что принцип работы всех псевдографических дисплеев одинаков, за исключением колличества сегментов и используемых чипов.
Также можно дешифровать данные идущие на дисплей климат контроля и прочие устройства с псевдоргафическими дисплеями.
Линия шины CLK подключается к пину 13 на arduino
Линия шины DI подключается к пину 12 на arduino
Линия шины CE подключается к пину 11 на arduino
//=================================================== void loop() { if (Serial.available() > 19) { for (i = 0; i < 20; i++) { (ReadByte[i]) = Serial.read() ; // принимаем данные с компа в массив } Serial.flush(); //очистить входной буфер USB
Send_Adress(); // отправляем адрес устройства for (i = 0; i < 20; i++) { Byte_Out(DI, CLK, ReadByte[i]); //отправляем данные в шину в шину } digitalWrite(CE, LOW); // запретить прием данных подчиненым } delay(500); } //================================================== void Send_Adress() { Byte_Out(DI, CLK, ADDR); delayMicroseconds(5); digitalWrite(CE, HIGH);
} //================================================== void Byte_Out(uint8_t DI, uint8_t CLK, byte val) { int idx; for (idx = 0; idx < 8; idx++) { delayMicroseconds(10); if (((val << idx) & B10000000) == 128) digitalWrite(DI, HIGH); else digitalWrite(DI, LOW); // digitalWrite(DI, val & (1 << idx)); / digitalWrite(CLK, HIGH); // педний фронт синхроимульса delayMicroseconds(15); digitalWrite(CLK, LOW); // задний фронт синхроимульса } }
31.07.2009, 01:24
XsanderS
Re: Эмулятор головного устройства для псевдо графических дисплеев.
Re: Эмулятор головного устройства для псевдо графических дисплеев.
Отлично!
А я думаю где ты пропал :), а ты оказывается дешифровал
31.07.2009, 02:50
Diagnose
Re: Эмулятор головного устройства для псевдографических дисплеев.
Это что-то интересное,но пока не совсем въехал что,сорри....
31.07.2009, 03:00
Chip
Re: Эмулятор головного устройства для псевдографических дисплеев.
Ну например вот реализация климата на Hover, примерно на таком же чипе
На Lexus , Nissan и т.д. сделано тоже с использованием этой шины , отличие только в колличестве сегментов.
31.07.2009, 11:39
DmitriyZ
Re: Эмулятор головного устройства для псевдо графических дисплеев.
Re: Эмулятор головного устройства для псевдографических дисплеев.
Был снят дисплей с магнитолы и подключен к компьютеру через Carduino
В Carduino четырмя проводками, залил код из шапки и запустил программу из шапки ...
31.07.2009, 13:27
DmitriyZ
Re: Эмулятор головного устройства для псевдографических дисплеев.
Цитата:
Сообщение от Chip
Был снят дисплей с магнитолы и подключен к компьютеру через Carduino
В Carduino четырмя проводками, залил код из шапки и запустил программу из шапки ...
а как само слово COMPCAR рисовалось?
Предварительно были расшифрованы команды дисплея магнитолы и потом посланы с компа те, которые зажгли необходимые палочки для выведения этого слова (compcar)?
02.08.2009, 10:45
Chip
Re: Эмулятор головного устройства для псевдографических дисплеев.
Цитата:
Сообщение от DmitriyZ
а как само слово COMPCAR рисовалось?
Предварительно были расшифрованы команды дисплея магнитолы и потом посланы с компа те, которые зажгли необходимые палочки для выведения этого слова (compcar)?
Расшифровывались при помощи этого эмулятора и при его помощи выведены на дисплей.
02.08.2009, 10:50
Chip
Вложений: 2
Re: Эмулятор головного устройства для псевдографических дисплеев.
Теперь проведем обратную операцию :)
Теперь при помощи arDuino будем перехватывать данные с шины посланые магнитолой.
Программа которая выводит перехваченые данные с шины на экране PC
Код для сниффера на arduino:
PHP код:
//http://compcar.ru
// пины для использования хардверного SPI //pin 13 SCK CL //pin 12 MISO //pin 11 MOSI DI //pin 10 SS CE