
Прекъсване на USB връзка за автоматизирано тестване
Трябва набързо да скова нещо за една тестова фикстура. Постановката е следната:
- ПЦ с USB хост, към което се свързва DUT с usb device с full-speed (12мбит/с)
- устройството се прави на USB CDC и на ПЦ-то се обслужва от стандартния виндоуски usb serial драйвер (няма къстъм драйвери), self-powered
- на ПЦ върви софтуер (виндовс/линукс), който си говори с това устройство през виртуалния ком порт на виндоуса
Трябва да се разшири покритието от тестове със случаи на нестандартно поведение:
- вадене на кабела по средата на комуникация
- вкарване на кабела в различни моменти/състояния на ПЦ софтуера (hot plug)
- различни тайминги - вкл. забождане за кратко, вадене след милисекунди, мушкане пак обратно, и така много пъти
Досега тия неща са правени ръчно - но е ужасно бавно и тегаво, отделно не ми пасва на CI подхода. Търся да направя нещо, което по мрежа, по цифров вход, сериен, усб или каквото и да е, да прави контролираните изключвания и включвания по команда от теста. Хубаво би било да не е много дървено "с алармаджийски релета", и да има някаква минимална идея за signal integrity. Може би аналогови ключове?
План максимум е да може да се контролират няколко аспекта на свързването:
- D+
- D-
- gnd (сигнална)
- 5V
- оплетка на "кабела"
Всъщност се гони основно симулирането на ръчното вкл. и изкл. на усб кабел - т.е. ограничаваме случаите до реалните възможни с истински кабел, като евентуално ще е добре ако може и някакви дефекти в кабела да се симулират, ама това е по-скоро за дисертацията

(няма такава, стар съм за тия неща - бъзикам се).
Комуникацията за контрол трябва да е извън канала на тествания сериен порт - друго усб, мрежа, цифров вход или каквото и да е. Най-добре етернет, защото така ще имам възможност да логвам събитията на централния syslog, който се ползва и от останалите оборудвания за тестовете.
Та търся идеи - сигнални релета, особено мислени за диференциални сигнали, готови устройства - не знам как работят разните KVM-и дали не мога да "изрежа" нещо от готова платка там. Специализирани оборудвания са извън бюджета, предполагам.
Не се търси сертифициране на усб-то, а по-скоро проверка на приложния софтуер дали се държи ОК. Разбира се, при наличие на постановката, ще се направят и тестове на по-ниско ниво, т.е. още на COM порт - особеността е че в устройството cdc-то е софтуерно направено в микроконтролер - не е ftdi или подобно, т.е. знае се че има трески за дялане, които трябва да бъдат открити и покрити с тестове на ниско ниво, но няма да могат да бъдат решени в ембедед софтуера само - много устройства са на пазара и не могат да бъдат ъпдейтнати. Т.е. посоката е че ще търсим workaround-и и документиране на известните бъгове, което трябва да се гарантира от тестовете.