У дома> Блог> Анализ на драйвери на сензорен екран за шофьор на екрана Експертиза

Анализ на драйвери на сензорен екран за шофьор на екрана Експертиза

February 25, 2025

Сензорните екрани на вградените устройства могат да бъдат разделени на пет категории според техните технически принципи: сензор на векторното налягане, резистивно, капацитивно, инфрачервена и повърхностна акустична вълна. Сред тях резистивните сензорни екрани се използват най -вече във вградени системи. Резистивните сензорни екрани могат да бъдат разделени на четири реда, пет линии и седем линии. Като цяло, дизайнът и внедряването на драйвер на сензорния екран на Wince има следните стъпки:

(1) Конфигурирайте и инициализирайте сензорния екран

Драйверът на сензорния екран ще извика функцията TouchPanElenable по време на процеса на инициализация. DDSI функциите, наречени от тази функция, са ddsitouchpanelenable и ddsitouchpaneldisable. Тези две функции на интерфейса DDSI са ключът към реализацията на драйвера, които се използват за включване и изключване на хардуера на сензорния екран. Но за да се намали консумацията на енергия, тези две функции всъщност не могат да управляват хардуера, а само да внедрят контрол на софтуера. В същото време тези конфигурации и инициализации трябва да се извършват по време на инициализация: Човек е да се създадат събития htouchpanelevent и hcalibrationsampleavailable, първият се задейства при натискане на сензорната писалка или трябва да се събира редовно, след като се натиска при нормални условия; И последният е в състояние на калибриране, той се задейства, когато има въвеждане на данни за калибриране. Второто е да се провери прекъсванията GintrTouch (прекъсване на сензорния екран) и GintrTouchChanged (прекъсване на таймера), необходими за инициализация, и да свържете тези две прекъсвания към събитието htouchpanelevent. Третото е да се създаде ISR нишка TouchPanelPISR, използван за чакане и справяне с събития на сензорен екран HtouchPaneLevent, той е и единственият източник на събития в целия драйвер.

(2) Калибриране на референтни параметри на сензорния екран

След като завършите предишната досадна работа, различните функции на водача са готови и сега всъщност можете да управлявате сензорния екран. Но най -общо казано, резистивният сензорен екран трябва да бъде калибриран, което означава, че MDD слоят извиква съответната функция DDSI, за да прочете данните за корекция в регистъра, за да коригира сензорния екран по време на процеса на стартиране на драйвера. В идеалния случай процедурата за калибриране трябва да се изпълнява само веднъж по време на първоначалния тест за захранване на вграденото устройство, а референтната стойност ще се съхранява в не-променлива памет, за да се предотврати калибрирането на потребителите по време на стартирането на захранването. Въпреки това, висококачественият драйвер за сензорен екран трябва да предостави на потребителите начин да влязат в рутината за калибриране, за да калибрират, когато калибрирането е неточно поради температурното отклонение или други фактори. В идеалния случай са необходими само два набора от сурови данни, за да се коригира референцията на сензорния екран, тоест минималните и максималните стойности, които се четат диагонално през екрана. Но в практически приложения, тъй като много резистивни сензорни екрани имат очевидна нелинейност, ако само проста стойност на позицията на вмъкване между минималните и максималните стойности ще доведе до много неточна водача. Следователно, множество точки за калибриране трябва да бъдат придобити при WINCE, а броят на често използваните точки за калибриране е 5.

Методът е: ① Първо, драйверът задава броя на точките за калибриране във функцията ddsitouchpanelgetDevicecaps; ② е системата за получаване на координатите на екрана на всяка точка на калибриране в TouchRiverCalibrationPointGetGettegettgette; ③ е да се покаже символ на позицията в координатите на точката на калибриране на интерфейса на екрана, потребителят натиска сензорния екран точно при символа на позицията; ④ Драйверът чете съответната стойност на координатата на сензорния екран чрез функцията TouchPanelReadCalibrationPoint; След това стартира следващата точка на калибриране, докато броят на координатите на сензорния екран и екранът за калибриране ще бъде събран, след като броят на циклите, зададени координатите, се изпращат на функцията TouchPanelSetCalibration за обработка. Тази функция ще генерира референтни параметри на калибриране. След приключване на калибрирането, сензорният екран може да започне нормална работа.

(3) Определете дали екранът е докоснат

След като приключат настройките на хардуера на сензорния екран, калибрирането на инициализацията и референтния параметър, е необходим надежден метод, за да се определи дали екрана е докоснат.

WINCE осигурява механизъм за откриване за това дали екранът е докоснат, а също така може да избере дали да прекъсне основния процесор, когато се появи докосване. Името на функцията на драйвера, който определя дали екрана е докосната, е Waitfortouchstate (). Прекъсване, което се събужда на хоста, когато екранът е докоснат първо, се нарича Pen_down прекъсване. Това позволява на драйвера да прекъсне изпълнението си, когато екранът не е докоснат, без да консумира никакви ресурси на процесора и след като потребителят докосне екрана, драйверът се събужда и влиза в режима на преобразуване.

След като се събуди, има група от аналогови-цифрови данни, които чакат преобразуване и се генерира сигнал за прекъсване. Прекъсванията са важен метод за справяне с хардуер и софтуер, така че повечето драйвери включват обработка на прекъсвания. Що се отнася до обработката на прекъсването, Wince използва уникален подход. Той разделя обработката на прекъсването на две стъпки: прекъсване на рутинната услуга (ISR) и прекъсване на сервизната нишка (IST). По -конкретно, заявката за прекъсване на устройството (IRQ) на всеки хардуер е свързана с ISR. Когато се появи прекъсване и не е маскирано, ядрото извиква ISR, регистрирано от прекъсването. Тъй като ISR работи в режим на ядрото, той трябва да бъде проектиран така, че да бъде възможно най -кратък. Основната отговорност на ISR е да ръководи ядрото да планира и да започне подходящия IST. IST е написан в модула на софтуера на Driver Driver, който придобива или изпраща код за данни и контрол от хардуера и допълнително обработва прекъсвания на устройството.

Драйверът на сензорния екран на Wince използва метод за прекъсване, за да открие натиснатото състояние на писалката за докосване. Когато се открие прекъсване, когато се натисне сензорната писалка, се задейства събитие за уведомяване на работната нишка, за да започне да събира данни. В същото време драйверът ще отвори хардуерен таймер, стига да открие, че сензорната писалка все още е натисната, той периодично ще задейства същото събитие, за да уведоми нишката на работника да продължи да събира данни, докато се повдигне писалката и след това да затвори таймера. Най -просто казано, драйверът ще използва двата източника на прекъсване на прекъсване на сензорния екран и прекъсване на таймера едновременно. Целта е не само да се следи притиснатото и повдигнато състояние на сензорната писалка, но и да се открие траекторията на влачене, когато се натиска писалката. Двете логически прекъсвания на прекъсването на сензорния екран са: sysintr_touch се използва за генериране на съответно прекъсване, когато сензорната писалка щракне върху сензорния екран; SYSINTR_TOUCH_CHANGE се използва за генериране на съответно прекъсване, когато сензорната писалка напусне.

В идеалния случай са необходими само два набора от сурови данни, за да се коригира референцията на сензорния екран, тоест минималните и максималните стойности, които се четат диагонално през екрана. Но в практически приложения, тъй като много резистивни сензорни екрани имат очевидна нелинейност, ако само проста стойност на позицията на вмъкване между минималните и максималните стойности ще доведе до много неточна водача. Следователно, множество точки за калибриране трябва да бъдат придобити при WINCE, а броят на често използваните точки за калибриране е 5.

Методът е: ① Първо, драйверът задава броя на точките за калибриране във функцията ddsitouchpanelgetDevicecaps; ② е системата за получаване на координатите на екрана на всяка точка на калибриране в TouchRiverCalibrationPointGetGettegettgette; ③ е да се покаже символ на позицията в координатите на точката на калибриране на интерфейса на екрана, потребителят се нуждае от натискане на сензорния екран точно при символа на позицията; ④ Драйверът чете съответната стойност на координатата на сензорния екран чрез функцията TouchPanelReadCalibrationPoint; След това стартира следващата точка на калибриране, докато броят на координатите на сензорния екран и екранът за калибриране ще бъде събран, след като броят на циклите, зададени координатите, се изпращат на функцията TouchPanelSetCalibration за обработка. Тази функция ще генерира референтни параметри на калибриране. След приключване на калибрирането, сензорният екран може да започне нормална работа.

Свържете се с нас

Author:

Mr. James

Phone/WhatsApp:

++86 13924613564

Популярни продукти
You may also like
Related Categories

Изпратете имейл до този доставчик

Предмет:
електронна поща:
съобщение:

Your message must be betwwen 20-8000 characters

Ще се свържем с вас незабавно

Попълнете повече информация, така че да може да се свърже с вас по -бързо

Декларация за поверителност: Вашата поверителност е много важна за нас. Нашата компания обещава да не разкрива личната ви информация на всяко разширяване с изричните ви разрешения.

изпращам