Пояснительная записка (1231534), страница 14
Текст из файла (страница 14)
Павлов. – Саров: Изд-во СарФТИ, 2005. 204 с.: ил.5.Меркулов,А.В.Проектированиемикропроцессорныхустройств управления [Текст] : учеб, пособие / А.В. Меркулов. – Хабаровск : Изд-во ДВГУПС, 2010. – 147 с. : ил.6.Universal Serial Bus. Specification. Revision 1.1 September 23,1998 Compaq, Intel, Microsoft, NEC7.USB Universal Serial Bus Specification Универсальная после-довательная шина [электронный ресурс] – Режим доступа. — URL:www.softelectro.ru (дата обращения: 05.04.2016)8.V-USB is a software-only implementation of a low-speed USB de-vice for Atmel’s AVR® microcontrollers [электронный ресурс] – Режим доступа. — URL:https://www.obdev.at/products/vusb/index.html (дата обращения: 15.04.2016)9.ATmega16(L) Datasheet (file size: 7482304, 357 pages, revisionT, updated: 07/2010)9710.
Работа с SPI модулем [электронный ресурс] – Режим доступа.—URL:http://chipenable.ru/index.php/programming-avr/item/137-avr-spi-module.html (дата обращения: 20.04.2016)11. Перельман, Б.Л. Отечественные микросхемы и зарубежныеаналоги [Текст] : Справочник / Б.Л Перельман., В.И. Шевелев. - Изд-воНТЦ Микротех, 1998. - 376 с.12. Продукция ЗАО "Руднев-Шиляев"[электронный ресурс] – Режим доступа. — URL: http://rudshel.ru/production.html (дата обращения:10.05.2016)13. ООО "Резонит" [электронный ресурс] – Режим доступа.
—URL: http://newservice.rezonit.ru/ (дата обращения: 16.05.2016)14. Интернет магазин электронных компонентов «Чип и Дип»[электронный ресурс] – Режим доступа. — URL: http://www.chipdip.ru (дата обращения: 10.05.2016)15. Федеральный закон от 28.11.2015 № 347-ФЗ "О внесении изменений в статью 33.1 Федерального закона "Об обязательном пенсионном страховании в Российской Федерации" и статью 58.2 Федерального закона "О страховых взносах в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации, Федеральный фонд обязательного медицинского страхования"16.
Тумали,Л.Е.Оценкаэкономическойэффективностиустройств железнодорожной автоматики и телемеханики [Текст] : метод.пособие по выполнению экономической части выпускной квалификационной работы специальности 190402.65 «Автоматика, телемеханика исвязь на железнодорожном транспорте» / Л.Е. Тумали.
– Хабаровск :Изд-во ДВГУПС, 2013. – 35 с. : ил.17. Безопасность жизнедеятельности [Текст] : Сборник лабораторных работ / под ред. Б.А. Мамота. – Хабаровск: Изд-во ДВГУПС,2004. – 100 с.9818. Правила устройства электроустановок УТВЕРЖДЕНЫ Приказом Минэнерго России От 08.07.2002 № 204 / Минэнерго СССР. – 6-еизд., перераб. и доп. – М.: Энергоиздат, 1986.19. Пельменева, Н.А. Основные требования по оформлению дипломного проекта [Текст] : Методическое пособие / Н.А. Пельменева. –Хабаровск : изд-во ДВГУПС 2006.- 41 с.; ил.99Приложение А(справочное)Код, реализующий алгоритм инициализации USB устройства с использование библиотеки Lib USB на языке Object PascalconstRQ_IO_READ:integer=$11; RQ_IO_WRITE:integer=$12;USB2PC = USB_ENDPOINT_IN; PC2USB = USB_ENDPOINT_OUT;aPIND = $10; aDDRD = $11; aPORTD = $12; aPINC = $13;aDDRC = $14; aPORTC = $15; aPINB = $16; aDDRB = $17;aPORTB = $18; aPINA = $19; aDDRA = $1A; aPORTA = $1B;bit0=1; bit1=2; bit2=4; bit3=8; bit4=16; bit5=32; bit6=64; bit7=128;{$R *.dfm}typeTPString = array [0..255] of Char;function usbGetStringAscii(handle: pusb_dev_handle; index: Integer;langid: Integer;var buf: TPString;buflen: Integer ): integer;varbuffer: array [0..255] of char;rval, i: Integer;beginrval := usb_control_msg(handle, USB_ENDPOINT_IN,USB_REQ_GET_DESCRIPTOR, (USB_DT_STRING shl 8) + index, langid, buffer,sizeof(buffer), 1000);result:=rval;if rval < 0 then exit;result:=0;if buffer[1] <> char(USB_DT_STRING) then Exit;if BYTE(buffer[0]) < rval thenrval := BYTE(buffer[0]);rval:= rval div 2;(* преобразование к ISO Latin1 *)for i := 1 to rval-1 dobeginif i > buflen then (* назначить переполнение буфера *)break;buf[i-1] := buffer[2 * i];if buffer[2 * i + 1] <> #0 then (*не в диапазоне ISO Latin1 *)buf[i-1] := char('?');end;buf[i-1] := #0;Result := i-1;end;100constUSB_ERROR_NOTFOUND = 1;USB_ERROR_ACCESS = 2;USB_ERROR_IO= 3;function usbOpenDevice(var device: Pusb_dev_handle; vendor: Integer; vendorName: pchar ;product: Integer; productName: pchar): Integer;const{$J+}didUsbInit: integer = 0; //не константа, а статическая переменная{$J-}varbus: Pusb_bus;dev: Pusb_device;handle: Pusb_dev_handle;errorCode: integer;S: TPstring;len: Integer;beginhandle:=nil;errorCode := USB_ERROR_NOTFOUND;if didUsbInit=0 thenbegindidUsbInit := 1;usb_init;end;usb_find_busses;usb_find_devices;bus := usb_get_busses;While assigned(bus) dobegindev := bus^.devices;while assigned(dev) dobeginif(dev.descriptor.idVendor = vendor) and (dev.descriptor.idProduct = product) thenbeginhandle := usb_open(dev); (* открыть устройство для проведениянеобходимых запросов *)if not assigned(handle) thenbeginerrorCode := USB_ERROR_ACCESS;raise Exception.Create('Warning: cannot open USB device'+usb_strerror());continue;end;if (vendorName = nil) and (productName = nil) then break; (* имяустройства не имеет значения *)(* проверить соответствие имён *)len := usbGetStringAscii(handle, dev.descriptor.iManufacturer, $0409,S,sizeof(S));101if (len < 0) thenbeginerrorCode := USB_ERROR_IO;raise Exception.Create('Warning: cannot query manufacturer for device: '+usb_strerror());endelsebeginerrorCode := USB_ERROR_NOTFOUND;(*определить VID устройства *)if StrPas(S)=vendorName thenbeginlen := usbGetStringAscii(handle, dev.descriptor.iProduct, $0409,S,sizeof(S));if (len < 0) thenbeginerrorCode := USB_ERROR_IO;raise Exception.Create('Warning: cannot query product for device: '+usb_strerror());endelsebeginerrorCode := USB_ERROR_NOTFOUND;(*определить PID устройства *)if StrPas(S)=productName thenbreak;end; //if lenend; //if string_end; //if len<0usb_close(handle);handle := nil;end; //if dev descriptordev := dev.next;end; //пока назначается (dev)if handle<>nil then break;bus := bus.next;end; //пока назначается (bus)if (handle <> nil) thenbeginerrorCode := 0;device := handle;end;Result := errorCode;end;procedure SendUSBControlMessage(direction: BYTE; request, value, index, buflen: integer;var buffer: array of char);varhandle: Pusb_dev_handle;i: integer;USBDEV_SHARED_VENDOR:integer;102USBDEV_SHARED_PRODUCT:integer;Product:PANSIChar;Vendor:PANSIChar;beginUSBDEV_SHARED_VENDOR:=strtoint('$16C0');USBDEV_SHARED_PRODUCT:=strtoint('$05DC');Product:=pansichar('LEDControl');Vendor:=pansichar('obdev.at');usb_init();if (usbOpenDevice(handle, USBDEV_SHARED_VENDOR, Vendor,USBDEV_SHARED_PRODUCT, Product) <> 0) thenbeginraise Exception.Create(Format('Could not find USB device "'+Product+'" with vid=$%x and pid=$%x !',[USBDEV_SHARED_VENDOR, USBDEV_SHARED_PRODUCT]));exit;end;usb_control_msg(handle, USB_TYPE_VENDOR or USB_RECIP_DEVICE or direction, request, value, index, buffer, sizeof(buffer), 5000);usb_close(handle);end;103.