Միկրոկարգավորիչների վրա հիմնված տարբեր սարքերի մշակումը իրական համակարգչագործին արժանի գործունեություն է: Անկասկած, ցանկացած գաջեթի օգտակար հատկանիշը կլինի USB ինտերֆեյսը համակարգչին միանալու համար: Բայց ինչ անել, եթե AVR չիպը չի ապահովում USB-ի ապարատային աջակցություն:

V-USB. չափը կարևոր է

Սեփական գաջեթը մշակելիս հաճախ է առաջանում այն ​​համակարգչին միացնելու խնդիր։ Պետք է ասել, որ LPT և COM պորտերն այժմ էկզոտիկ են PC մայրական տախտակների վրա, էլ չեմ խոսում նոութբուքերի մասին, որոնց համար այս ինտերֆեյսները վաղուց անհետացել են։ Հետեւաբար, ժամանակակից համակարգիչները գործնականում այլընտրանք չունեն USB ինտերֆեյսին:

Եթե ​​չիպի ռեսուրսները օգտագործվում են հարյուր տոկոսով, ապա ավելի լավ է անմիջապես նայել սարքերի վրա, որոնք ունեն ունիվերսալ սերիական ավտոբուսի ապարատային աջակցություն (այդպիսի միկրոկոնտրոլերներ առկա են ցանկացած արտադրողի շարքում): Այլ դեպքերում, դուք կարող եք օգտագործել ծրագրային ապահովման USB:

Atmel միկրոկոնտրոլերների համար կա հիանալի V-USB նախագիծ, որն առաջարկում է ցածր արագությամբ USB 1.1 սարքի ծրագրային ներդրում: V-USB կոդը կաշխատի ցանկացած AVR սարքի վրա, որն ունի առնվազն 2KB Flash հիշողություն և 128 բայթ RAM՝ 12 ժամացույցով; 12.8; 15; 16; 16,8 կամ 20 ՄՀց:

Ապրանքը կարող է օգտագործվել ինչպես բաց կոդով GPL լիցենզիայի, այնպես էլ կոմերցիոն հիմունքներով: Որպեսզի ստեղծեք ձեր սեփական USB սարքերը, սովորաբար ձեզ հարկավոր է նաև լիցենզիա գնել: Բայց V-USB-ի տղաները նույնպես հոգացել են այս մասին՝ գնելով մի զույգ Վաճառողի ID՝ Ապրանքի ID և թույլ տալով բոլորին օգտագործել դրանք:

USB ավտոբուսը միկրոկառավարիչին միացնելու սարքավորումը շատ պարզ է։ Եթե ​​սարքը շատ չի սպառում, ապա այն կարող է սնուցվել անմիջապես ավտոբուսից (ենթադրվում է, որ համակարգչի USB հոսանքի գիծը կարող է հոսանք հասցնել մինչև 500 մԱ): Քանի որ տեղեկատվական գծերը (D+ և D–) օգտագործում են 3,6 Վ ազդանշանի մակարդակ, ի լրումն ընթացիկ սահմանափակող ռեզիստորների, անհրաժեշտ են նաև zener դիոդներ՝ չիպի 5 Վ լարման տրամաբանությանը համապատասխանելու համար: Միացման տեսակը նշելու համար դուք պետք է «բարձրացնեք» սնուցման լարումը 1,5 կՕհմ դիմադրության D– գծի միջոցով:

USB-ի միջոցով զուգակցման այլընտրանքային տարբերակն է նվազեցնել կարգավորիչի մատակարարման լարումը` օգտագործելով համապատասխան կայունացնող չիպ կամ պարզապես մի զույգ դիոդ: Վերջին դիագրամը կարելի է գտնել V-USB նախագծի կայքում:

USBtiny ծրագրավորող

AVR միկրոկոնտրոլերների համար շատ տարբեր ծրագրավորողներ կան: USBtiny-ն այստեղ նշվում է մասամբ, քանի որ այն պարունակում է USB-ի ծրագրային ներդրում, որը նման է V-USB-ին: Այս ծրագրավորողի սխեման պարզ է. 2-րդ տարբերակը պարունակում է երկու միկրոսխեման, իսկ առաջին տարբերակը պարունակում է միայն մեկը (հենց ATtiny2313 չիպը): Կայքում ներկայացված մանրամասն նկարագրության և պարզ բաղադրիչների շնորհիվ սարքը հեշտ է պատրաստել նույնիսկ սկսնակների համար: USBtiny-ն համատեղելի է հայտնի avrdude ծրագրի հետ, որն օգտագործվում է AVR միկրոկոնտրոլերների ծրագրավորման համար:

Միակ խնդիրը ծրագրավորողի չիպի մեջ որոնվածը բեռնելն է. դրա համար անհրաժեշտ է... ծրագրավորող: Եթե ​​ունեք LPT պորտով համակարգիչ, ապա կարող եք կատարել FBPRG տարբերակներից մեկը, որը կոչվում է «հինգ լար», որը.

Սահնակի պատրաստում

USB գաջեթի համար ամենապարզ որոնվածը ներդնելու համար պահանջվող ծրագրային գործիքները չափազանց ասկետիկ են՝ gcc-avr կոմպիլյատորը, avr-libc գրադարանը, avrdude ծրագրավորողը և AVR-ի համար նախատեսված binutils-ը: Debian/Ubuntu-ում ձեզ անհրաժեշտ ամեն ինչ տեղադրվում է մեկ հրամանով.

$ sudo apt-get տեղադրել avrdude binutils-avr gcc-avr avr-libc

Ինտերնետի հսկայական տարածքներում հեշտ է գտնել V-USB-ի և libusb-ի շատ մանրամասն ուղեցույց (անգլերեն): Ձեռնարկի համաձայն՝ նախագծին USB աջակցություն ավելացնելու համար ձեզ անհրաժեշտ կլինի արխիվից usbdrv պանակը V-USB-ի վերջին տարբերակով: Այս թղթապանակի սկզբում կա կազմաձևման ձևանմուշ usbconfig-prototype.h: Դուք պետք է պատճենեք այս ֆայլը՝ այն անվանելով usbconfig.h: Հաջորդը, շտկեք usbconfig.h-ը՝ նշելով պորտը (D), որի տողերը կօգտագործվեն I/O-ի համար, D+ (2) և D– (3) տողերի համարները, ինչպես նաև հաճախականությունը (12 ՄՀց) ժամը որի վրա աշխատում է չիպը (ATtiny2313):

#define USB_CFG_IOPORTNAME D #define USB_CFG_DMINUS_BIT 3 #define USB_CFG_DPLUS_BIT 2 #define USB_CFG_CLOCK_KHZ 12000

Սարքի համար V-USB լիցենզիա օգտագործելու համար ձեզ հարկավոր չէ փոխել արտադրողի և սարքի թվային ID-ները: Բայց դուք կարող եք ընտրել ձեր ցանկությամբ խորհրդանշական անուններ (դրանք թույլ կտան ձեզ տարբերակել մի քանի V-USB վրա հիմնված սարքեր, որոնք միացված են նույն համակարգչին).

#սահմանել USB_CFG_VENDOR_ID 0xc0, 0x16 #սահմանել USB_CFG_DEVICE_ID 0xdc, 0x05 #սահմանել USB_CFG_VENDOR_NAME "n","e","t","s","4","g","e","e","k" ,"s",".", "c", "o", "m" #define USB_CFG_VENDOR_NAME_LEN 14 #սահմանել USB_CFG_DEVICE_NAME "U","S","B","e","x","a" "m","p","l","e" #define USB_CFG_DEVICE_NAME_LEN 10

Տարբեր գաջեթներ

Որևէ սարքի գաղափար ունե՞ք: Մի շտապեք զոդել և ծածկագրել, բայց տեսեք, գուցե ինչ-որ մեկն արդեն նման բան արել է: Եթե ​​դուք չեք կարող օգտագործել պատրաստի դիագրամներ և աղբյուրներ, ապա գոնե ստիպված չեք լինի ամեն ինչ սկսել զրոյից:

Օրինակ, V-USB նախագիծը, իր արտոնագրման քաղաքականության շնորհիվ, կուտակել է պատրաստի (այդ թվում՝ ազատորեն տարածվող) լուծումների արժանապատիվ բազա։ Այստեղ դուք կարող եք գտնել ստեղնաշարերի, USB ադապտերների, joysticks-ի համար նախատեսված USB ադապտերների, գեյմփադների (ներառյալ հազվագյուտները, օրինակ՝ SNES/NES, Nintendo 64, ZX Spectrum joystick, Sony PlayStation 1/2) և այլն: DMX ադապտերներ, վիրտուալ COM և UART պորտեր, i2c, Servo, DCF77, IR անլար ինտերֆեյսներ՝ այն ամենը, ինչը կօգնի ձեզ ավելի շատ նոր սարքեր միացնել ձեր համակարգչին: Լոգերները, դետեկտորների և սենսորների հարթակները, LCD էկրանների ադապտերները, ծրագրավորողները և բեռնիչները նույնպես կարող են օգտակար լինել տնային տնտեսության մեջ:

Չիպի ծրագիրը տարրական է:

USB ավտոբուսի միջոցով շփվելիս համակարգիչը հիմնական սարքն է, որը պարբերաբար ուղարկում է հսկողության հարցման հաղորդագրություններ: Վերահսկիչը, համապատասխանաբար, ստրուկ է և պետք է պատասխանի խնդրանքներին: Վերահսկիչ հաղորդագրության ձևաչափը որոշվում է usbRequest_t կառուցվածքով usbdrv.h ֆայլից.

Typedef struct usbRequest ( uchar bmRequestType; uchar bRequest; usbWord_t wValue; usbWord_t wIndex; usbWord_t wLength;) usbRequest_t;

Եկեք ստեղծենք ֆայլ main.c նույն մակարդակի վրա, ինչ usbdrv թղթապանակը և նկարագրենք դրա մեջ անհրաժեշտ վերնագրի ֆայլերը, սահմանումները և փոփոխականները.

#ներառում #ներառում #ներառում #include "usbdrv.h" #define F_CPU 12000000L // MCU հաճախականությունը #include #define DATA_OUT 1 // Send command #define DATA_IN 2 // Receive command // Buffer static uchar replyBuf = "Hello World!"; static uchar dataLength = 0, data Received = 0;

main.c-ում մենք կչեղարկենք usbFunctionSetup ֆունկցիան, որն ավտոմատ կերպով կանչվում է, երբ նոր հարցում է ստացվում.

USB_PUBLIC uchar usbFunctionSetup(uchar data) ( usbRequest_t *rq = (void *)data; switch(rq->bRequest) ( case DATA_OUT: // Մշակեք հրամանը տվյալների ուղարկման համար usbMsgPtr = replyBuf; // Նշեք բուֆերի վերադարձի չափը of(re // Վերադարձեք բուֆերի չափը DATA_IN. dataLength > sizeof(replyBuf)) // Overflow check dataLength = sizeof(replyBuf return USB_NO_MSG // Return 255 ) ;

Ինչպես երևում է ցուցակից, տվյալներ համակարգչ ուղարկելու ամենահեշտ ձևը usbFunctionSetup-ը սահմանելն է usbMsgPtr ցուցիչի արժեքը RAM-ի բուֆերին (replyBuf), որտեղ գտնվում են տվյալները, և այնուհետև վերադարձնել դրա երկարությունը: Բուֆերի չափը չպետք է գերազանցի 254 բայթը: ATtiny2313-ի համար՝ իր 128 բայթ օպերատիվ հիշողությամբ, սա բավական է: Ավելի ֆունկցիոնալ սարքերի համար կա երկրորդ մեթոդ՝ գերագնահատելով usbFunctionRead ֆունկցիան:

Տվյալները ստանալու համար նախ անհրաժեշտ է օգտագործել usbFunctionSetup ֆունկցիան՝ հաղորդագրության երկարությունը հարցման wLength դաշտից հանելու և այն dataLength գլոբալ փոփոխականում պահելու համար։ Երկրորդ, main.c-ում դուք պետք է անտեսեք usbFunctionWrite ֆունկցիան, որը նախատեսված է ստացված տվյալները մշակելու համար և կանչվում է ավտոմատ կերպով (և ակնհայտորեն մի քանի անգամ), եթե usbFunctionSetup-ը վերադարձնի USB_NO_MSG (255) արժեքը.

USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) (uchar i; // Տվյալների ստացված մասը պահեք բուֆերում (i = 0; տվյալների ստացված< dataLength && i < len; i++, dataReceived++) replyBuf = data[i]; return (dataReceived == dataLength); }

Փաստորեն, usbFunctionWrite ֆունկցիան լրացնում է replyBuf բուֆերը ստացված տվյալներով։

Ի դեպ, այս մեթոդի աշխատանքի համար անհրաժեշտ է փոփոխություններ կատարել usbconfig.h-ում.

#define USB_CFG_IMPLEMENT_FN_WRITE 1

Դե, որոնվածի վերջին գործառույթը հիմնականն է.

Int main() ( usbInit(); // Նախաձեռնել USB usbDeviceConnect(); // Միացնել սարքը sei(); // Միացնել ընդհատումները // Սպասել կառավարման հաղորդագրություններին անսահման օղակում, իսկ (1) usbPoll(); վերադարձնել 0 ;)

Եկեք օգտագործենք USART/UART

Ծրագրային/ապարատային USB-ի լավ այլընտրանքը չիպի մեջ հանրաճանաչ USART/UART ինտերֆեյսի օգտագործումն է այս արձանագրության USB-ի երրորդ կողմի փոխարկիչով, որը կարող է պատրաստվել, օրինակ, FT232RL չիպի հիման վրա:

Libusb. ոչ հագած, ոչ մերկ

Կարող եք հարցնել՝ USB սարքը միացնելու համար պետք է համակարգչի օպերացիոն համակարգի համար դրայվեր գրե՞ք: Եթե ​​դուք օգտագործում եք libusb, կարող եք անել առանց միջուկի լիարժեք մոդուլի ներդրման: Libusb-ը բաց կոդով գրադարան է, որը թույլ է տալիս արագ ծրագրավորել, առաջին հերթին, որոնել սարքը ավտոբուսում, և երկրորդ՝ տվյալների փոխանակում դրա հետ:

Linux-ի ներքո գրադարանը և անհրաժեշտ վերնագրի ֆայլերը կարելի է ստանալ սկզբնաղբյուրներից: Ավելի լավ է օգտագործել ձեր բաշխման ստանդարտ պահեստը: Debian/Ubuntu-ի համար, օրինակ, այսպես.

$ sudo apt-get տեղադրել libusb-dev

Windows-ի համար կա նաև libusb պորտ՝ libusb-win32: Հակառակ նախագծի անվանման, աջակցվում են նաև Microsoft-ի 64-բիթանոց օպերացիոն համակարգերը (սկսած 1.2.0.0 տարբերակից)։

Բայց libusb-ը առանձին խոսակցության թեմա է։ Կարծում եմ, դուք ծանոթ եք համակարգչի ծրագրավորմանը և կարող եք ինքնուրույն պարզել այն: Այսպիսով, ես հակիրճ կլինեմ: Ստեղծեք usbtest.c ֆայլ և սկսեք այն լրացնել բովանդակությամբ: Նախ անհրաժեշտ վերնագրի ֆայլերը և սահմանումները.

#ներառում [...] // Համակարգչի համար հրամանների իմաստը հակադարձվում է, // բայց նշանակումները մնում են նույնը #define DATA_OUT 1 #define DATA_IN 2

Սարքը սկզբնավորելու usbOpenDevice ֆունկցիան.

Usb_init (); // Նախաձեռնել USB usb_find_busses(); // Գտնել ավտոբուսներ usb_find_devices(); // Գտնել սարքեր // Թվարկել բոլոր ավտոբուսները (bus=usb_get_busses(); bus; bus=bus->next) ( // Թվարկել բոլոր սարքերը ավտոբուսի համար (dev=bus->devices; dev; dev=dev- > հաջորդը) ( // Եթե վաճառողի և ապրանքի ID-ները չեն համընկնում... if(dev->descriptor.idVendor != vendor || dev->descriptor.idProduct != product) շարունակել; // ...բաց թողնել սա կրկնություն // Փորձեք ձեռք բերել սարքի բռնակ, if(!(handle = usb_open(dev))) (fprintf(stderr, "%s\n", usb_strerror()); շարունակել; ) վերադարձնել բռնակը; ) // Սարքը չի գտնվել վերադարձնել NULL;

Ինչպես տեսնում եք, usbOpenDevice պարամետրերը արտադրողի և սարքի թվային նույնացուցիչներն են: Եթե ​​սարքը առկա է ավտոբուսում, նրա նկարագրիչը վերադարձվում է: Եթե ​​V-USB-ում կան մի քանի սարքեր, դուք պետք է ավելացնեք վաճառողի և ապրանքի խորհրդանշական անունների ստուգում:

Եվ usbtest կոնսոլի օգտակար հիմնական գործառույթը.

Int main(int argc, char **argv) ( // Սարքի նկարագրիչ usb_dev_handle *handle = NULL; int nBytes = 0; char buffer; // Փնտրում եմ սարքի բռնիչը = usbOpenDevice(0x16C0, 0x05DC); if(handle == NULL) ( fprintf(stderr, «Չհաջողվեց գտնել USB սարքը:\n»); ելք (1); ) // Արգումենտ դուրս - ստացեք տվյալներ չիպից if(strcmp(argv, «out») == 0) ( nBytes = usb_control_msg (բռնակ, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, DATA_OUT, 0, 0, (char *)buffer, sizeof(buffer), 5000 printf("Got %d bytes: %s\n", buffer); Արգումենտ - ուղարկել տող (հաջորդ արգումենտ) ) else if(strcmp(argv, "in") == 0 && argc > 2) ( nBytes = usb_control_msg( handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, DA0 , strlen(argv)+1, 5000);< 0) fprintf(stderr, "%s\n", usb_strerror()); usb_close(handle); // Закрыть дескриптор return 0; }

usb_control_msg ֆունկցիան, որը հայտարարված է usb.h include ֆայլում, կառավարում է այստեղ տիրույթը: Այն ունի մի փունջ պարամետրեր և իրականում ստեղծում է այդ կառավարման հաղորդագրությունները, որոնց մշակումն իրականացվում է միկրոկոնտրոլերի որոնվածում։

Պրոտեուսը հանգստանում է

Բոլորի սիրելի էլեկտրական միացումների սիմուլյատորը՝ Proteus ISIS-ը, անօգուտ է ծրագրային ապահովման վրա հիմնված USB սարքեր մշակելիս: Դրա USB էմուլյատորն աջակցում է միայն չիպսեր, որոնք ունեն Universal Serial Bus ապարատային աջակցություն (օրինակ՝ AT90USB646 կամ AT90USB1286):

Մենք հավաքում ենք, բռնկում, փորձարկում

Ստորև ներկայացված է փոքրիկ, բայց շատ օգտակար Makefile-ը, որով կարող եք հեշտությամբ ձեռք բերել չիպի որոնվածը՝ main.hex և usbtest օգտակար երկուական՝ օգտագործելով make հրամանը main.c-ից և usbtest.c-ից:

CC = avr-gcc OBJCOPY = avr-objcopy CFLAGS = -Wall -Os -Iusbdrv -mmcu=attiny2313 OBJFLAGS = -j .text -j .data -O ihex OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrv.o usbdrv. .o main.o CMDLINE = usbtest # Նպատակ. հավաքել ամեն ինչ. main.hex $(CMDLINE) # Կառուցել կոմունալ համակարգչի համար $(CMDLINE): usbtest.c gcc -I ./libusb/include -L ./libusb /lib /gcc -O -Wall usbtest.c -o usbtest -lusb # Մաքրել նախագիծը երկուական կոդից՝ $(RM) *.o *.hex *.elf usbdrv/*.o # Ստանալով որոնվածի ֆայլը էլֆ ֆայլ %. վեցանկյուն՝ %.< $@ # Сборка elf-файла main.elf: $(OBJECTS) $(CC) $(CFLAGS) $(OBJECTS) -o $@ # Сборка файлов библиотеки V-USB $(OBJECTS): usbdrv/usbconfig.h # C в объектный код %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # asm в объектный код %.o: %.S $(CC) $(CFLAGS) -x assembler-with-cpp -c $< -o $@

Որոնվածը ներբեռնելու համար միկրոկոնտրոլեր օգտագործելով usbtiny ծրագրավորողը, մուտքագրեք հրամանը.

$ sudo avrdude -p t2313 -c usbtiny -e -U flash:w:main.hex:i -U fuse:w:0xef:m

Avrdude-ում ապահովիչների կարգավորումները այնքան էլ պարզ չեն, բայց դրանք հեշտությամբ կարելի է հաշվարկել առցանց հաշվիչներից մեկում:


Մենք սարքը միացնում ենք համակարգչին և ստուգում, թե ինչպես է այն աշխատում (usbtest-ը out պարամետրով կարդում է գիծը, ներսում - գրում է նշված տողը չիպի բուֆերին).

$ sudo ./usbtest in all_ok $ sudo ./usbtest out

Մի գդալ խեժ

Ծրագրային ապահովման USB-ն դեղամիջոց չէ: Ծրագրային ապահովման ներդրումը սովորաբար ունենում է մի շարք պարզեցումներ, ինչպիսիք են ստուգիչ գումարի և կապուղու համաչափության ստուգման բացակայությունը, ինչը բացասաբար է անդրադառնում աղմուկի անձեռնմխելիության վրա: Բացի այդ, ծրագրային գրադարանները սովորաբար օգտագործում են ցածր արագությամբ USB գործառնական ռեժիմներ: Իսկ USB գրադարանի կոդը «ուտում» է առանց այդ էլ փոքր չիպային հիշողությունը։

Եկեք նայենք...

Տրամաբանական մակարդակում USB արձանագրությունը, ըստ էության, բազմաստիճան փաթեթային տվյալների փոխանցում է: Հեշտ է դա հաստատել (և միևնույն ժամանակ շատ հետաքրքիր բաներ սովորել USB-ի մասին)՝ օգտագործելով Wireshark ցանցային արձանագրության անալիզատորը: Նախ պետք է ներբեռնեք USB մոնիտորի դրայվերը.

$ sudo modprobe usbmon

Այժմ կարող եք ընտրել USB ավտոբուսներ Wireshark ինտերֆեյսի ցանկից: Դուք կարող եք դիտել սարքի ավտոբուսի համարը, օրինակ, տեղեկամատյաններում:

Եզրակացություն

Հուսով եմ, որ այն բանից հետո, երբ դուք սովորեք, թե ինչպես փոխանցել տվյալներ ձեր համակարգչի և AVR միկրոկոնտրոլերի միջև, ձեր կիրքը էլեկտրոնիկայի նկատմամբ նոր ուժով կբռնկվի՝ առաջացնելով շատ օրիգինալ և օգտակար սարքեր: Մնում է միայն հաջողություն մաղթել այս դժվարին, բայց հետաքրքիր ոլորտում։

11

Ես ունեմ Linux հավելված, որի համար կցանկանայի ավտոմատացնել որոշ թեստեր, և դրա վիճակը պետք է փոխվի՝ ելնելով որոշ սարքերի վիճակից, օրինակ՝ USB սարքերից, WLAN սարքերից, WAN սարքերից: Այնուամենայնիվ, մենք այլևս չունենք ֆիզիկական USB սարքեր, WLAN, WAN և այլն սարքեր, ուստի ես պետք է պարզեմ այս ծրագիրը փորձարկելու միջոց՝ առանց ֆիզիկական սարքերը իրականում միացնելու, դրանք միացնելու/անջատելու և այլն:

Ես սկսում եմ պարզապես ստեղծելով վիրտուալ USB սարք, որը կարող եմ կառավարել օգտվողների տարածքից, բայց իմ կողմից գիտելիքի սկզբունքային պակաս կա, որն ինձ խանգարում է այս ֆորումներում նմանատիպ թեմաներից որևէ մեկը վերցնել և դրանք կիրառել իմ նախագծի մեջ: Ինձ թվում է, որ ես պետք է ստեղծեմ ինչ-որ վիրտուալ USB դրայվեր, այնուհետև այն կապեմ օգտագործողի մակարդակի որևէ ծրագրի, այլ ոչ թե usbfs-ի: Այնուամենայնիվ, նույնիսկ եթե ես ստեղծեմ այս վիրտուալ դրայվերը, ինչպե՞ս կարող եմ «մոնտաժել» այս սարքը օգտվողի տարածքից և իմ ծրագիրը գրանցել այս կոնկրետ դրայվերով: Հնարավո՞ր է այն, ինչ ես փորձում եմ անել:

  • 2 պատասխան
  • Տեսակավորում.

    Գործունեություն

0

Չե՞ք կարող VMWare-ի միջոցով հավելվածը վիրտուալ միջավայրում փորձարկել: Այնուհետև կարող եք «միացնել» ձեր համակարգչի ցանկացած վիրտուալ սարք հյուրի վիրտուալ մեքենային և այդ կերպ փորձարկել հավելվածը:

8

Լավագույն միջոցը Linux գաջեթների համար վարորդների և սարքավորումների օգտագործումն է, որոնք թույլ են տալիս լինել USB սարք: Գաջեթի դրայվերը թույլ է տալիս համակարգչին «ձևացնել» որպես ցանկացած սարք: Այնուհետև փորձարկվող ձեր համակարգն ունի մեկ USB OTG մալուխ գաջեթի համար: Դուք նույնիսկ կարիք չունեք անջատել մալուխը, եթե ձեր գաջեթն ունի համապատասխան սարքավորում: «Գաջեթի տուփը» կարող է լինել ձեր Linux աշխատասեղան/նոութբուքը (քանի դեռ այն աջակցում է USB OTG) կամ նույնիսկ Android հեռախոսը կամ Raspberry Pi-ն: (Զգույշ եղեք, որ USB մալուխները ծծվեն: Միայն այն պատճառով, որ մալուխը տեղավորվում է, չի նշանակում, որ այն պատշաճ կերպով միացված է USB OTG-ին):

USB OTG սարքավորումը միացնելուց հետո գաջեթը կցում է ամբողջ ծրագրակազմը.

1) Եթե փորձարկվող սարքն աջակցում է OTG-ին, համոզվեք, որ ձեր գործիքը չի փորձում դա անել և USB հոսթ չէ: (Այնուհետև փորձարկվող ձեր սարքը կդառնա USB-հաճախորդ:) I.e. համոզվեք, որ usb_storage-ի նման բաները ինքնաբերաբար չեն բեռնվում:

2) Միջուկը աջակցում է USB հանգույցների, USB-Ethernet-ի, USB-սերիական պորտերի և USB պահեստավորման սարքերի համար նախատեսված հարմարանքներ: Պարզապես բեռնեք անհրաժեշտ մոդուլները ձեր գործիքի մեջ և այն «պարզապես աշխատում է»: Օրինակ՝ USB կրիչ ստեղծելու համար կատարեք այսպես՝ «insmod g_file_storage.ko file=/dev/ram0»: Հեռավոր կողմը կկարծի, որ դուք միացրել եք USB կրիչ:

Սերիական սարքերի համար գաջեթը կարող է գործարկվել օգտատիրոջ տարածության կոդով, որը «վերցնում է հեռախոսը «/Dev/USBx»-ով և զրուցում փորձարկվող սարքի հետ: (Ակնհայտ է, որ նմանակում է 4G մոդեմը կամ որևէ այլ):

Տոննաներով սարքեր իսկապես «USB-ից սերիական» են գլխարկի տակ, քանի որ արտադրողը չափազանց ծույլ էր հասկանալ USB-ը:

3) Մի փոքր վերակազմավորմամբ կամ կազմաձևմամբ դուք կարող եք օգտագործել այս ընդհանուր սարքերը գաջեթի, ID-ի կամ տարբեր մատակարարների տողերի վերադարձման համար և այլն: Դա նույնը չի լինի, ինչ «իրական սարքավորման վրա փորձարկումը», բայց գոնե դուք փորձարկում են այս սարքերի ստանդարտ տարբերակը:

4) Սարքի տեսակների համար, որոնք դեռ միջուկում չկան (օրինակ՝ Wi-Fi կամ որևէ այլ բան), դուք միայնակ եք: Արյան բավականաչափ քրտինքով և արցունքներով դուք կարող եք գրել ձեր սեփական տեսակի գաջեթը: (Իդեալում, օգտագործեք հնարավորինս շատ օգտագործողի տարածքում և կարգավորեք միայն միջուկի կարևոր բաղադրիչները:)

Երբեմն իրավիճակ է ստեղծվում, երբ ձեզ անհրաժեշտ է ֆլեշ կրիչ, բայց այն ձեռքի տակ չունեք: Օրինակ, որոշ հաշվապահական և հաշվետվական ծրագրեր պահանջում են արտաքին սկավառակ: Նման իրավիճակում դուք կարող եք ստեղծել վիրտուալ պահեստավորման սարք:

Օգտագործելով հատուկ ծրագրաշար, դա կարելի է անել մի քանի ձևով. Քայլ առ քայլ նայենք դրանցից յուրաքանչյուրին։

Մեթոդ 1. OSFmount

Այս փոքրիկ ծրագիրը շատ օգտակար է, երբ ձեռքի տակ չունեք ֆլեշ կրիչ: Այն աշխատում է Windows-ի ցանկացած տարբերակի վրա:

Ծրագիրը ներբեռնելուց հետո կատարեք հետևյալը.



Այս ծրագիրը օգտագործելու համար կարող են պահանջվել լրացուցիչ հնարավորություններ: Դա անելու համար դուք պետք է մուտքագրեք տարրը հիմնական պատուհանում «Drive Actions». Այնուհետև հնարավոր կլինի օգտագործել հետևյալ տարբերակները.

  • Ապամոնտաժել – ապամոնտաժել ձայնը;
  • Ձևաչափ — ծավալի ձևաչափում;
  • Սահմանել մեդիա միայն կարդալու համար – արգելում է ձայնագրումը.
  • Extendsize – ընդլայնում է վիրտուալ սարքի չափը;
  • Savetoimagefile – օգտագործվում է անհրաժեշտ ձևաչափով պահելու համար:

Մեթոդ 2. Վիրտուալ ֆլեշ կրիչ

Լավ այլընտրանք վերը նկարագրված մեթոդին: Վիրտուալ ֆլեշ կրիչ ստեղծելիս այս ծրագիրը թույլ է տալիս գաղտնաբառի միջոցով պաշտպանել դրա մասին տեղեկատվությունը: Դրա առավելությունն այն է, որ այն աշխատում է Windows-ի հին տարբերակներում: Հետևաբար, եթե ձեր համակարգչում ունեք Windows XP կամ ավելի ցածր տարբերակ, այս օգտակար ծրագիրը կօգնի ձեզ արագ պատրաստել վիրտուալ պահեստավորման սարք ձեր համակարգչում:

Այս ծրագրի օգտագործման հրահանգները հետևյալն են.

  1. Ներբեռնեք և տեղադրեք վիրտուալ ֆլեշ կրիչ:
  2. Հիմնական պատուհանում սեղմեք կոճակը «Նոր լեռ».
  3. Կհայտնվի պատուհան «Ստեղծել նոր ծավալ», նշեք դրանում վիրտուալ մեդիա ստեղծելու ուղին և սեղմեք "ԼԱՎ".


Ինչպես տեսնում եք, ծրագիրը շատ հեշտ է օգտագործել:

Մեթոդ 3. ImDisk

Սա վիրտուալ անգործունյա սկավառակ ստեղծելու ամենատարածված ծրագրերից մեկն է: Օգտագործելով պատկերային ֆայլ կամ համակարգչային հիշողություն, այն ստեղծում է վիրտուալ սկավառակներ: Այն բեռնելիս հատուկ ստեղներ օգտագործելիս ֆլեշ կրիչը կհայտնվի որպես վիրտուալ շարժական սկավառակ:


Մեթոդ 4. Ամպային պահեստավորում

Տեխնոլոգիաների զարգացումը հնարավորություն է տալիս ստեղծել վիրտուալ ֆլեշ կրիչներ և դրանց մասին տեղեկատվությունը պահել ինտերնետում։ Այս մեթոդը ֆայլերով թղթապանակ է, որը հասանելի է կոնկրետ օգտագործողի համար ինտերնետին միացված ցանկացած համակարգչից:

Նման տվյալների պահեստները ներառում են Yandex.Disk, Google Drive և Mail.ru Cloud: Այս ծառայություններից օգտվելու սկզբունքը նույնն է.

Եկեք նայենք, թե ինչպես աշխատել Yandex Disk-ի հետ: Այս ռեսուրսը թույլ է տալիս անվճար պահել դրա վերաբերյալ տեղեկատվությունը մինչև 10 ԳԲ:



Նման վիրտուալ պահեստային միջավայրի հետ աշխատելը թույլ է տալիս ամբողջությամբ կառավարել ձեր տվյալները՝ խմբավորել դրանք թղթապանակների մեջ, ջնջել ավելորդ տվյալները և նույնիսկ կիսվել դրանց հղումներով այլ օգտվողների հետ:

Երբեմն լինում են իրավիճակներ, երբ դուք պետք է աշխատեք կոմունալ ծառայություններով (հաշվապահական, սոցիալական, որոնք պահանջում են արտաքին մեդիա համակարգչի վրա): Կամ պարզապես անհրաժեշտ է տեղադրել օպերացիոն համակարգի նոր տարբերակը: Բայց ինչ անել, եթե չկա ոչ ֆլեշ կրիչ, ոչ էլ անվճար CD: Ելք կա! Ձեզ անհրաժեշտ է հատուկ ծրագիր, որը կաշխատի որպես վիրտուալ ֆլեշ կրիչ:

OSFmount-ը փրկօղակ է նրանց համար, ովքեր ձեռքի տակ չունեն շարժական կրիչներ

OSFmount-ը փոքր ծրագիր է, որը կօգնի ձեզ ստեղծել սկավառակ: Այս հավելվածը կարող է ստեղծել և՛ սկավառակի պատրաստի պատկեր, և՛ օպերատիվ հիշողություն, որը գոյություն ունի միայն RAM-ում։ Անգործունյա կոշտ սկավառակ, արհեստական ​​օպտիկական սկավառակ և, ամենակարևորը, վիրտուալ ֆլեշ կրիչ. ծրագիրը կարող է տեղադրել այս բոլոր պատկերները: Windows 10, Windows 8, Windows 7 վիրտուալ ֆլեշ կրիչը կստեղծվի Windows-ի ցանկացած օպերացիոն համակարգում՝ ինչպես 64-բիթանոց միջավայրում, այնպես էլ 32-բիթանոց միջավայրում: Mount-ում կարող եք նույնիսկ որոշակի տառ սահմանել արհեստական ​​սկավառակի համար և սահմանել անհրաժեշտ ատրիբուտները: Միևնույն ժամանակ, կոմունալ ծրագրի չափը նույնիսկ չի հասնում 2 մեգաբայթի, դրա չափը կազմում է ընդամենը 1,95 ՄԲ: Միակ բացասական կողմն այն է, որ ծրագիրը չի աջակցում ռուսաց լեզվին:

OSFmount-ի օգտագործման ցուցումներ

Այն հեշտ է օգտագործել, և ֆլեշ կրիչ ստեղծելը շատ ժամանակ և ջանք չի պահանջում: Այսպիսով, ինչպես ստեղծել վիրտուալ ֆլեշ կրիչ ձեր համակարգչում, օգտագործելով OSFmount:


Ձեզ կարող է անհրաժեշտ լինել նաև որոշ տարբերակներ, որոնք բացվում են «Drive Actions» վրա սեղմելուց հետո: Այս տարբերակն ունի հետևյալը.

  • Ապամոնտաժել - ապամոնտաժելու համար;
  • Ձևաչափ - օգտագործելով այս տարբերակը կարող եք կատարել ֆորմատավորում;
  • Savetoimagefile - պահպանել անհրաժեշտ ձևաչափով;
  • Բացել - բացել;
  • Սահմանել մեդիա միայն կարդալու համար - արգելում է ձայնագրումը.
  • Extendsize - օգտագործվում է ընդլայնման համար;
  • Սահմանել մեդիա գրավոր - թույլ է տալիս ձայնագրել:

Ահա թե ինչպես կարող եք շատ հեշտությամբ ստեղծել վիրտուալ USB ֆլեշ ձեր համակարգչում: Վիրտուալ ֆլեշի համար կարող եք ընտրել ցանկացած պատկեր: Բայց bootable պատկերի դեպքում սկավառակը պետք է ֆորմատավորվի, և այն կբացվի միայն այս հավելվածում։

Այս հավելվածի այլընտրանքային տարբերակն է Virtual Flash Drive-ը, որը նույնպես շատ պարզ է և հարմար տեղեկատվության արհեստական ​​պահեստ ստեղծելու համար։ Նրանց տարբերությունն այն է, որ OSTmount-ն ունի ավելի շատ լրացուցիչ տարբերակներ, և բացի USB ֆլեշից, կարող եք պատրաստել այլ արհեստական ​​կրիչներ:

Եզրակացություն

Այժմ պարզ է դառնում, որ նույնիսկ եթե ձեռքի տակ չունեք որևէ արտաքին մեդիա, բայց դրանք ձեզ իսկապես անհրաժեշտ են, կարող եք մի քանի կտտոցով դրանց արհեստականորեն ստեղծված անալոգը պատրաստել:

Olof Lagerkvist նախագիծը հիանալի ծրագիր է սկավառակների նմանակման համար, բայց քանի որ բոլորը կարող են նմանակել սկավառակները, ոչ բոլորը կարող են պարծենալ ֆլեշ կրիչ կամ անգործունյա սկավառակ ստեղծելով: Սկավառակները ստեղծվում են վիրտուալ հիշողության մեջ: Տեղադրվելուց հետո ծրագիրը հասանելի է ԱՀ կառավարման վահանակից:

Սեղմեք «OK» և վիրտուալ պատկերը պատրաստ է:

Պատկեր
Անհրաժեշտության դեպքում պատկերը կարող է պահպանվել և տեղադրվել: Որտեղ սա օգտակար կլինի: Օրինակ, ծույլերի համար կարող եք CryptoPro-ի համար վկայականներ վերբեռնել նման վիրտուալ ֆլեշ կրիչի վրա։)) Կամ օգտագործել այն որպես սկավառակ RAM-ում՝ քեշը, էջի ֆայլը և այլ բաներ պահելու համար։
Կա նաև այլընտրանքային GUI.

Ավտոմատ միացում.
արձագանքն անջատված է
rem դրված է autoload ավտոմատ մոնտաժման համար
c:\WINDOWS\system32\imdisk.exe -a -f "%PROGRAMFILES%\flash.img" -m f: -o rem

Հրամանի տողի որոշ տարբերակներ.

imdisk.exe -e -s 300M -m B: - B սկավառակի ավելացում 300 ՄԲ-ով

imdisk -a -t ֆայլ -o ro -m y: -f C:\Boot.img- տեղադրեք Boot.img պատկերը Y սկավառակով, միայն կարդալու համար

imdisk -a -t ֆայլ -m y: -f C:\Boot.img- տեղադրեք Boot.img պատկերը Y սկավառակով, միայն կարդալ/գրել

imdisk -d -m y: - ապամոնտաժել սկավառակը Y

imdisk -a -s 150M -m #: -p "/fs:ntfs /y /q /v:imdisk- ստեղծել 150 ՄԲ չափով սկավառակ, դրայվի առաջին տառը անվճար է, ֆորմատավորումը NTFS-ով, սկավառակի պիտակը imdisk

imdisk -a -s 10% -m #: -p "/fs:ntfs /y /q /v:imdisk- նույնը, ինչ նախորդը, միայն չափը նշված է որպես ազատ հիշողության 10 տոկոս:

imdisk -a -s -500M -m #: -p "/fs:ntfs /y /q /v:imdisk- նույնը, ինչ նախորդը, միայն չափը նշվում է մինուս նշանով, այսինքն, հավասար է ազատ հիշողության քանակին հանած նշված չափը: 1200 ՄԲ ազատ հիշողության դեպքում սկավառակի չափը կդառնա 1200-500 = 700 ՄԲ

imdisk.exe -a -t վստահված անձ -o ip -f 127.0.0.1:80 -m Z:- օգտագործեք սերվերի հետ, գտել եք այն ինտերնետում, բայց իրականում չեք փորձարկել:

A - վիրտուալ միացում: սկավառակ.

D - անջատել վիրտուալը: սկավառակ.

E - խմբագրում վիրտուալ. սկավառակ.

_________________________

B - նշեք օֆսեթը, այսինքն՝ սկավառակի տվյալների սկիզբը, որը նշված է տարբեր ծրագրերում ստեղծված սկավառակների համար, որոնց պատկերներում անհրաժեշտ է բաց թողնել ֆայլի սկզբնական ատրիբուտները:

S - վիրտուալ սկավառակի չափը: Չափը բայթերի քանակն է, բացառությամբ այն դեպքերի, երբ ածանցվում են a (ավտոմատ), b (512 բայթ բլոկներ), k (հազար բայթ), m (միլիոն բայթ), g (միլիարդ բայթ), t (տրիլիոն բայթ), K (կիլոբայթ), M (մեգաբայթ), G (գիգաբայթ) կամ T (տերաբայթ): Հազար բայթը և կիլոբայթը տարբերվում են նրանով, որ կիլոբայթում կա 1024 բայթ, ոչ թե 1000: Օրինակ. -s 150M կամ -s 10% - 10 տոկոս ազատ հիշողության. -500M պարամետրը - մինուս նշանով որոշում է ստեղծված սկավառակի չափը որպես ազատ հիշողության քանակ՝ հանած նշված չափը:

O - սահմանված ընտրանքներ, որոնք օգտագործվում են ստորև նշված պարամետրերի հետ միասին

ro - միայն կարդալ

rw - կարդալ/գրել

rem - տեղադրեք որպես շարժական սկավառակ (ֆլեշ): Սա որոշում է սկավառակի հատկությունները, քեշավորումը և այլն:

fix - տեղադրել որպես մշտական, ֆիքսված սկավառակ (ի տարբերություն rem-ի)

cd - ստեղծելով վիրտուալ CD-ROM/DVD-ROM:

fd - ստեղծել անգործունյա սկավառակ: Կանխադրված 160K, 180K, 320K, 360K, 640K, 720K, 820K, 1200K, 1440K, 1680K, 1722K, 2880K, 123264K կամ 2347 չափերի համար:

hd - կոշտ բաժանման ստեղծում:

ip - պրոքսի սերվերին միանալու պարամետր:

comm - միացում հիշողության սերվերին COM պորտի միջոցով:

________________

M - նշում է սկավառակի տառը: Օրինակ, -m B: կամ -m y: կամ -m #: առաջին անվճար դրայվային տառն է:

F - վիրտուալ ֆայլի անունը: սկավառակ, օրինակ -f C:\Boot.img կամ -f \\server\share\image.bin կամ -F\Device\Harddisk0\Partition1\image.bin- վերջինս, երբ սկավառակի տառը չի նշանակվում և որոշվում է կոշտ սկավառակի համարով, բաժանման համարով (տրամաբանական սկավառակ) և այնուհետև իրական ճանապարհով:

Այս հոդվածը հասանելի է նաև հետևյալ լեզուներով. թայերեն

  • Հաջորդը

    Շատ ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ հոդվածում շատ օգտակար տեղեկատվության համար: Ամեն ինչ շատ պարզ է ներկայացված։ Կարծես մեծ աշխատանք է տարվել eBay խանութի աշխատանքը վերլուծելու համար

    • Շնորհակալություն ձեզ և իմ բլոգի այլ մշտական ​​ընթերցողներին: Առանց ձեզ, ես բավականաչափ մոտիվացված չէի լինի այս կայքի պահպանմանը շատ ժամանակ տրամադրելու համար: Իմ ուղեղը կառուցված է այսպես. ես սիրում եմ խորը փորել, համակարգել ցրված տվյալները, փորձել բաներ, որոնք նախկինում ոչ ոք չի արել կամ չի նայել այս տեսանկյունից: Ափսոս, որ Ռուսաստանում ճգնաժամի պատճառով մեր հայրենակիցները ժամանակ չունեն eBay-ով գնումներ կատարելու։ Նրանք գնում են Aliexpress-ից Չինաստանից, քանի որ այնտեղ ապրանքները շատ ավելի էժան են (հաճախ որակի հաշվին): Սակայն eBay-ի, Amazon-ի, ETSY-ի առցանց աճուրդները չինացիներին հեշտությամբ կառաջարկեն ֆիրմային իրերի, վինտաժային իրերի, ձեռագործ իրերի և տարբեր էթնիկ ապրանքների շարքում:

      • Հաջորդը

        Ձեր հոդվածներում արժեքավորը ձեր անձնական վերաբերմունքն է և թեմայի վերլուծությունը: Մի հրաժարվեք այս բլոգից, ես հաճախ եմ գալիս այստեղ: Այդպիսիները պետք է շատ լինենք։ Ինձ էլ Վերջերս նամակ ստացա առաջարկով, որ նրանք ինձ կսովորեցնեն, թե ինչպես առևտուր անել Amazon-ում և eBay-ում: Եվ ես հիշեցի ձեր մանրամասն հոդվածները այս արհեստների մասին: տարածք Ես նորից կարդացի ամեն ինչ և եզրակացրեցի, որ դասընթացները խաբեություն են։ Ես դեռ ոչինչ չեմ գնել eBay-ով: Ես Ռուսաստանից չեմ, այլ Ղազախստանից (Ալմաթի): Բայց մենք նաև լրացուցիչ ծախսերի կարիք չունենք։ Մաղթում եմ ձեզ հաջողություն և ապահով մնացեք Ասիայում:

  • Հաճելի է նաև, որ eBay-ի՝ Ռուսաստանի և ԱՊՀ երկրների օգտատերերի ինտերֆեյսը ռուսաֆիկացնելու փորձերը սկսել են արդյունք տալ: Ի վերջո, նախկին ԽՍՀՄ երկրների քաղաքացիների ճնշող մեծամասնությունը օտար լեզուների լավ իմացություն չունի։ Բնակչության 5%-ից ոչ ավելին խոսում է անգլերեն։ Երիտասարդների շրջանում ավելի շատ են։ Հետևաբար, գոնե ինտերֆեյսը ռուսերեն է. սա մեծ օգնություն է այս առևտրային հարթակում առցանց գնումների համար: eBay-ը չի գնացել իր չինացի գործընկեր Aliexpress-ի ճանապարհով, որտեղ կատարվում է ապրանքի նկարագրությունների մեքենայական (շատ անշնորհք ու անհասկանալի, երբեմն ծիծաղ առաջացնող) թարգմանություն։ Հուսով եմ, որ արհեստական ​​ինտելեկտի զարգացման ավելի առաջադեմ փուլում հաշված վայրկյանների ընթացքում իրականություն կդառնա բարձրորակ մեքենայական թարգմանությունը ցանկացած լեզվից ցանկացած լեզվով։ Առայժմ մենք ունենք սա (eBay-ում վաճառողներից մեկի պրոֆիլը ռուսերեն ինտերֆեյսով, բայց անգլերեն նկարագրությամբ).
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png