| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Помогите сэмулировать АТ клавиатуру
20.06.2010, 21:48
|
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
Сообщение от lode_stavr
|
Доброе время!
А если "разбудильник" подключить параллельно линиям CLOCK и DATA реальной клавиатуры?
|
Легко, там монтажное или и очень непробиваемой протокол.
|
|
|
|
21.06.2010, 00:39
|
|
|
Прохожий
Регистрация: 10.06.2006
Адрес: Молдова
Сообщений: 4
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите сэмулировать АТ клавиатуру
Может легче подать сигнал на кнопку включения компа?
|
|
|
|
21.06.2010, 03:31
|
|
|
Временная регистрация
Регистрация: 04.01.2007
Сообщений: 90
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите сэмулировать АТ клавиатуру
это не спортивно, и мозг не развивает, только мышцы пальцев
|
|
|
|
21.06.2010, 13:15
|
|
|
Временная регистрация
Регистрация: 08.09.2009
Сообщений: 65
Сказал спасибо: 28
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
Делал похожий девайс.
По тупому но работает.
Проверено на нескольких компах.
#include ‹mega8.h›
#include ‹stdio.h›
#include ‹delay.h›
#define clk_L {DDRD.3=1;PORTD.3=0;} //уровни на линии PS/2
#define clk_H {DDRD.3=0;PORTD.3=1;}
#define data_L {DDRD.4=1;PORTD.4=0;}
#define data_H {DDRD.4=0;PORTD.4=1;}
#define delay delay_us(40) //длительность импульсов PS/2
char parity(char b) { //подпрограма выччисления parity
char tmp, i;
tmp=1;
for(i=0;i‹8;i++) {
tmp=tmp^(b&1);
b››=1;
}
return tmp;
}
void send_b(unsigned char b) //подпрограма отправки бита
{
char tmp, i;
//start
tmp=b;
data_L;
delay;
clk_L;
delay;
//data 8 bit 01234567
for(i=0;i‹8;i++) {
clk_H;
if (tmp&1) data_H else data_L
delay;
clk_L;
tmp=tmp››1;
delay;
}
//par
clk_H;
if (parity(b)) data_H
else data_L
delay;
clk_L;
delay;
//stop
clk_H;
data_H
delay;
clk_L;
delay;
delay;
clk_H;
delay_ms(1);
// #asm("sei")
}
|
|
|
|
21.06.2010, 13:54
|
|
|
Прохожий
Регистрация: 02.06.2005
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите сэмулировать АТ клавиатуру
Сообщение от bolgar
|
|
Может легче подать сигнал на кнопку включения компа?
|
Поддерживаю, я использовал WOL (Wake On Line), подключил к разъему на материнке и настроил в биосе.
Девайс полагаю не серийный, как вариант, может и запинаете, взять убитую клаву, вырвать из нее мозг, и коммутировать желамые "клавиши". Так еще и фунционал девайса можна расширить...
|
|
|
|
22.06.2010, 21:11
|
|
|
Прописка
Регистрация: 25.09.2008
Сообщений: 89
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 6 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
3Существует 3 типа клавиатур:
1.Стандартные. Предназначены для IBM PC/XT.У них 83 или 84 клавишей.
2. Усовершенствованые. Многофункциональные MF (они же AT). Предназначены для работы с IBM AT+. У них 101(english type) или 102(european type) клавишей.
3. Специализированные для работы с конкретной операционки. У них те же возможносту как и у MF клавиатур, но брой клавишей 104 и больше.
Так имеется предположение что с AT клавы разберихи не будет пока не разберёшся со стандартной.
А это дело не из простых.
__________________
Русский язык стал изучать с 5-ого класса, а это было давно.
Последний раз редактировалось NESHEV; 22.06.2010 в 21:25.
|
|
|
|
22.06.2010, 22:39
|
|
|
Вид на жительство
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
NESHEV,
Знаеш, судя по документации про типы клавиатур можно сказать одно слово - пофигу
Все что втыкается в PS/2 порт имеет жесткий стандарт именуемый протокол связи. Количество клавиш, поддерживаемые команды и прочее нас не интересует пока внутри протокола связи и стандарта откликов есть общие правила взаимодействия на BIOS уровне.
Сделаю с таймингами и порядком который посоветовал e_one, потом отпишусь о результатах.
__________________
Найди путь или проложи сам!
|
|
|
|
23.06.2010, 00:15
|
|
|
Прописка
Регистрация: 25.09.2008
Сообщений: 89
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 6 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
Дело в том что у меня низкоуровневое мышление.
Как бы это не нравилось девушкам.
А на уровне BIOS-a (это какой BOIS, то там у Вас) как то не занимательно.
Решение найдеш для одного BIOS-a, а для другого не подойдет
Вот так то дела по моему в наличности.
__________________
Русский язык стал изучать с 5-ого класса, а это было давно.
|
|
|
|
23.06.2010, 00:35
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 28.02.2010
Сообщений: 2,294
Сказал спасибо: 52
Сказали Спасибо 460 раз(а) в 391 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
Не повезло в жизни с BIOS-ами? ;-( (оффтоп)
|
|
|
|
23.06.2010, 02:08
|
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
|
Re: Помогите сэмулировать АТ клавиатуру
Сообщение от MasterMushi
|
nml,
Пакеты данных с клавиатуры ЛЕГКО принимаются USARTom
|
Хм. Вы сами такое делали?
ИМХО, передача асинхронного протокола с девайса с некварцованной тактовой - уже путь к занимательному и длительному геморрою. А спецификация клавы - к времянкам протокола весьма неприхотлива. Да и то - на кой точные времянки, когда строб есть?
|
Цитата:
|
|
the clock pulses are typically 30-50 µs low and 30-50 µs
|
- как-то не согласуется с требованием USART - 2.5% ошибки тактовой - уже граница, после которой начинается разруха
Кварцев в клавиатурах - не видел никогда.
И вообще - определитесь - задача - сэмулировать клавиатуру или задача пробудить комп. Для пробуждения компа есть много других возможностей.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
Последний раз редактировалось nml; 23.06.2010 в 02:27.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:31.
|
|