Você está na página 1de 7

PROJEKTY

Urzdzenie diagnostyczne do sieci CAN


Analiza ruchu sieciowego umoliwia realizacj szeregu zada diagnostycznych pozwalajcych na np. wykrywanie rnego rodzaju nieprawidowoci, symulowanie nieprzewidzianych sytuacji, optymalizowanie sieci, przeprowadzanie konfiguracji, zbieranie danych statystycznych itp. Wymaga to nie tylko duej wiedzy, ale rwnie odpowiednich narzdzi sprztowych i programistycznych. Jednymi z nich s przyrzdy diagnostyczne umoliwiajce nasuchiwanie pakietw danych. Rekomendacje: przyrzd przyda si integratorom systemw automatyki przemysowej, serwisom motoryzacyjnym oraz konstruktorom urzdze elektronicznych przeznaczonych dla motoryzacji.
CAN jest standardem komunikacyjnym powstaym w latach osiemdziesitych XX wieku w firmie Robert Bosch GmbH z myl o zastosowaniach w przemyle samochodowym. Entuzjastyczne przyjcie tej technologii przez motoryzacj zaowocowao szybk ekspansj standardu do innych dziedzin wymagajcych przesyu danych. Obecnie CAN jest popularn przemysow metod transmisji danych, wykorzystywan w rnego rodzaju zastosowaniach cywilnych i wojskowych. S to nie tylko rodki transportu (samochody osobowe i ciarowe, autobusy, samoloty, statki, maszyny rolnicze itp.), ale rwnie np. systemy automatyki budynkowej, sieci sensorowe iwiele innych. Jest to standard zdefiniowany woparciu o model warstwowy OSI/ISO. Specyfikacja CAN definiuje dwie pierwsze warstwy: fizyczn i cza danych. Warstwy 3...6. nie s uywane, natomiast warstw 7. (aplikacji) pozostawiono do zdefiniowania przez projektantw danego systemu. CAN wwarstwie 1. jest zbudowany z dwch przewo-

Dodatkowe materiay na CD iFTP

AVT 5280
dw nazywanych CAN High (CANH) oraz CAN Low (CANL), ktre su do rnicowego przesyania sygnaw (stan magistrali idane interpretowane s za pomoc rnicy napi midzy przewodami). Linie sygnaowe na obu kocach s ze sob poczone za pomoc rezystorw o opornoci 120 V, co zapewnia dopasowanie energetyczne. Podstawow topologi sieci CAN jest magistrala, a wic architektura sieciowa polegajca na poczeniu szeregowym wzw sieci do wsplnego medium transmisyjnego (rysunek1). W sieci CAN mona przesya dane z prdkoci do 1 Mbit/s, jednak tak warto prdkoci mona uzyska tylko wmagistralach omaym zasigu, nieprzekraczajcym 40 metrw. Wyduenie magistrali jest moliwe do uzyskania kosztem prdkoci transmisji. W skrajnym przypadku mona osign dugo magistrali rzdu 10 km (przy prdkoci transmisji 5 kbit/s, rysunek2). Warstwa druga modelu OSI/ISO standardu CAN specyfikuje cztery rodzaje ramek komunikacyjnych. S to: ramka danych, ramka zdalnego wywoania, ramka sygnalizacji bdu, ramka przepenienia. Informacje s przesyane w ramce danych. Doku-

mentacja firmy Bosch wyrnia dwa rodzaje ramek danych: standardow (wersja CAN 2.0A) oraz rozszerzon (CAN 2.0B). Te dwie wersje definiuj odmienne formaty ramek wiadomoci, gwnie rnice si dugoci identyfikatora. Standard CAN 2.0A cechuje si adresem ramki o dugoci 11 bitw (rysunek 3), natomiast w standardzie CAN ELEKTRONIKA PRAKTYCZNA 3/2011

22

Urzdzenie diagnostyczne do sieci CAN


AVT-5280 w ofercie AVT: AVT-5280A pytka drukowana AVT-5280B pytka drukowana + elementy Podstawowe informacje: Pytka o wymiarach 39 mm34 mm Zasilanie z portu USB Komunikacja USB w trybie Virtual COM Port Ukad mikroprocesorowy ARM Cortex-M3 z rodziny STM32 (STM32F105RCT6) firmy ST Microelectronics Nadawanie i odczyt ramek CAN ze sterowaniem z poziomu komputera PC Dodatkowe materiay na CD i FTP: ftp://ep.com.pl, user: 10460, pass: 0646g3n0 wzory pytek PCB karty katalogowe i noty aplikacyjne elementw oznaczonych w Wykazie elementw kolorem czerwonym

Rysunek 1. Struktura sieci CAN

Tabela. 1. Protokoy warstwy 7. oparte na standardzie CAN


Nazwa Gwne obszary wykorzystania NMEA 2000 Statki J1939 Pojazdy koowe Zastosowanie przemysowe np. DeviceNet fabryki CANopen Systemy wbudowane ISOBUS Maszyny rolnicze MILCAN Zastosowania wojskowe dywidualnymi zapotrzebowaniami i konkretnymi zastosowaniami danej sieci. Na przestrzeni lat powstao wiele protokow bazujcych na standardzie CAN zokrelon warstw aplikacyjn. Gwne znich wymieniono wtabeli1. Znajduj one zastosowanie wrnorodnych dziedzinach przemysu.

Rysunek 2. Korelacja pomidzy szybkoci przesyania danych adugoci magistrali

Rysunek 3. Struktura ramki danych (format ramki standardowej CAN 2.0A)

Koncepcja budowy idobr podzespow


Rysunek 4. Struktura ramki danych (format ramki rozszerzonej CAN 2.0B) 2.0B adres zawiera 29 bitw (rysunek 4). Niezalenie od uywanego standardu wielko pola danych jest niezmienna iwynosi 8 bajtw. Pozostae elementy skadajce si na ramk danych s wykorzystywane jako pola sterujce, konfiguracyjne lub zapewniajce poprawno przesyanych danych: - SOF (Start Of Frame) pocztek ramki, - RTR (Remote Transmission Request Bit) rodzaj ramki, - IDE (Identifier Extension) format ramki danych (podstawowy lub rozszerzony), - r0 bit zarezerwowany, - DLC (Data Length Code) liczba bajtw danych, - CRC (Cyclic Redundancy Check) suma kontrolna, - ACK (Acknowledgement) potwierdzenie wysania/odebrania danych, - EOF (End of Frame) zakoczenie ramki, - IFS (Intermission) przerwa przed nastpn ramk. CAN jest standardem transmisyjnym typu multi-master (nie ma wyodrbnionej jednej, niezmiennej jednostki nadrzdnej), dlatego konieczna staa si implementacja algorytmw regulujcych dostp do medium transmisyjnego wtaki sposb, by nie dopuci do utraty danych przy prbie dostpu do medium wicej ni jednego moduu wdanej chwili. Zastosowano metod dostpu do medium zwan CSMA, umoliwiajc ledzenie stanu dostpnoci medium i wykrywanie kolizji w przypadku prby rwnoczesnej transmisji danych przez wicej ni jeden modu. Brak zdefiniowania warstwy 7. stwarza moliwo jej implementacji zgodnie z inObecnie w ofercie producentw znajduj si liczne urzdzenia diagnostyczne do sieci CAN. Analiza ich funkcjonalnoci umoliwia okrelenie podstawowych cech autorskiej konstrukcji, ktra wmoliwie duym stopniu powinna odzwierciedla profesjonalne, ale zarazem kosztowne narzdzia komercyjne. Gwnym zadaniem tego typu urzdze jest zapewnienie dostpu do sieci CAN, co polega na: - odbiorze ramek CAN przesyanych przez sie i wizualizowanie ich operatorowi za pomoc czytelnego interfejsu, R E K L A M A

Rysunek 5. Interpretacja funkcjonalnoci urzdzenia ELEKTRONIKA PRAKTYCZNA 3/2011

23

PROJEKTY
Na CD: karty katalogowe i noty aplikacyjne elementw oznaczonych w Wykazie elementw kolorem czerwonym

Wykaz elementw Rezystory: R1: 10 kV (SMD, 0805) R2: 1 MV (SMD, 0805) R3: 1,5 kV (SMD, 0805) R4, R5: 22 V (SMD, 0805) R6: 120 V (SMD, 0805) R7...R9: 150 V (SMD, 0805) Kondensatory: C1..C6: 100 nF (SMD, 0805) C7, C8: 22 pF (SMD, 0805) C9: 10 mF (tantalowy, A) C10, C11: 1 mF (0805) Pprzewodniki: IC1: STM32F103RCT6 IC2: MCP1802T-33 IC3: SN65HVD230 Inne: Q1: 25 MHz (SMD) RX, TX, PWR: dioda LED (3 mm) USB_CON: gniazdo USB typu B, ktowe SWD_CON: gniazdo IDC10 proste JP1: zcze szpilkowe (2 goldpiny) JP2: zcze szpilkowe (3 goldpiny) Obudowa ABS-2A

Tab. 3. Najwaniejsze dane techniczne mikrokontrolera STM32F105RCT6


Nazwa parametru Napicie zasilania Czstotliwo taktowania Ilo pamici FLASH Ilo pamici SRAM Warto 2.03.6 V do 72 MHz 256 kB 64 kB cztery 16-bitowe oglnego przeznaczenia, jeden 16-bitowy dedykowany do sterowania silnikiem prdu staego, dwa 16-bitowe do przetwornika C/A, dwa typu Watchdog, jeden 24-bitowy systemowy dwa 12-bitowe dwa 12-bitowe USB (1), CAN (2), USART (5), I2C (2), SPI (3) 40+ 125 C LQFP64

Ilo i rodzaj licznikw

Liczba i rodzaj przetwornikw A/C Liczba i rodzaj przetwornikw C/A Rodzaj i ilo interfejsw komunikacyjnych Temperatura pracy Obudowa

Stacjonarny charakter urzdzenia i obsuga transmisji USB umoliwiaj zasilanie urzdzenia z gniazda USB, dlatego kolejn integraln czci testera powinien by stabilizator napicia. Schemat blokowy obrazujcy wzajemne relacje midzy tymi komponentami przedstawiono na rysunku6. W zrealizowanym projekcie wykorzystano mikrokontroler STM32F105RCT6 firmy STMicroelectronics. Naley on do rodziny Rysunek 6. Schemat blokowy analizatora CAN ukadw STM32 (rdze ARM Cortex-M3) z grupy Connectivity Line. Mikrokontroler jest bogato wyposaony w zasoby wewntrzne, do ktrych nale dua ilo pamici (256 kB Rysunek 7. Wyprowadzenia oraz struktura wewntrzna ukaFlash, 64kB SRAM) oraz du SN65HVD230 liczne peryferie: moduy Tab. 4 Parametry ukadu SN65HVD230 zegarowe (PLL do 72MHz), ukady licznikoNazwa parametru Warto we, przetwornik A/C oraz C/A, interfejsy komunikacyjne. Wrd ostatniej wymienionej Napicie zasilania 3.03.6 V grupy znajduj si interfejsy CAN (2) oraz Prdko transmisji do 1 Mbit/s USB (1). Istotn cech jest moliwo rwPobr prdu Tryb Normal do 17 mA noczesnego korzystania z obu peryferii, co Tryb Sleep mode 40 nA byo niemoliwe wdotychczasowych ukaTryb Standby mode 370 uA dach STM32, gdzie interfejsy te korzystaj Temperatura pracy 40+ 85 C ze wspdzielonych zasobw. SzczegoObudowa 8SOIC we zestawienie parametrw ukadu STM32F105RCT6 przedstawiono wtabeli3. Jako ukad nadawczo-odbiorczy CAN uyto SN65HVD230 firmy Texas Instruments. Do komunikacji zmikrokontrolerem ukad ma wyprowadzenia D i R, natomiast CANH i CANL do poczenia z magistral CAN (rysunek7). Do cech charakterystycznych ukadu mona zaliczy niski pobr prdu, mechanizm wyczenia w przypadku przegrzania oraz dostosowanie do zasilania napiciem 3,3V (tabela4). Na potrzeby projektu zastosowano stabilizator MCP1802T-33, ktry suy do zasilania mikrokontrolera oraz ukadu interfejsowego CAN. Atutem tego ukadu jest niewielka liczba komponentw potrzebnych do prawidowej pracy wystarcz dwa kondensatory ceramiczne 1mF. Wyprowadzenia oraz struktur wewntrzn ukadu wida na rysunku8. Dokadne parametry stabilizatora zamieszczono wtabeli5. 32F105RCT6 (IC1). Jego schemat aplikacyjny zaczerpnity zosta zdokumentacji producenta. Zgodnie zzaleceniami producenta do kadego wyprowadzenia zasilajcego (VBAT, VDDA, VDD1VDD4) doczono ceramiczny kondensator blokujcy 100 nF (C1...C6). W celu wybrania rodzaju pamici, z ktrej wykonywany jest kod programu,

- wysyaniu ramek CAN o parametrach podanych przez operatora. Spenienie tych zaoe realizowane jest poprzez dwukierunkow konwersj CAN/USB, dziki czemu caa warstwa interfejsu uytkownika dostpna jest w postaci aplikacji komputerowej. Blokowy model funkcjonalnoci urzdzenia przedstawiono na rysunku5. Przyjcie takiej koncepcji wymaga wyboru odpowiednich ukadw elektronicznych. Naley do nich przede wszystkim mikrokontroler, ktry powinien by wyposaony winterfejsy CAN oraz USB. Nastpnym potrzebnym elementem jest ukad transmisyjny CAN umoliwiajcy komunikacj zsieciami pracujcymi wtym standardzie.

Tab. 5 Parametry ukadu MCP1802T-33


Nazwa parametru Napicie wyjciowe Maksymalne napicie wejciowe Poziom napicia dropout Wydajno prdowa Prd upywnoci Pobr prdu trybie Shutdown Dokadno napicia wyjciowego PSRR Obudowa Warto 3,3 V 10 V 200mV @ 100 mA 300 mA 25 uA 0.01 uA + 2% 70 dB @ 10kHz SOT-23-5

Budowa
Schemat ideowy urzdzenia pokazano na rysunku 9. W centralnym miejscu umieszczono mikrokontroler STM-

24

ELEKTRONIKA PRAKTYCZNA 3/2011

Urzdzenie diagnostyczne do sieci CAN

Rysunek 8. Wyprowadzenia oraz struktura wewntrzna ukadu MCP1802T-33 nka BOOT0 poczona zostaa zmas, co powoduje wybranie wewntrznej pamici Flash ukadu. Kolejnym doczonym do mikrokontrolera elementem jest kwarc Q1. Suy on jako rdo sygnau zegarowego, umoliwiajc taktowanie ukadu z wykorzystaniem ptli PLL. Elementami wspierajcymi dziaanie kwarcu s kondensatory C7, C8 oraz rezystor R2. Programowanie i debugowanie mikrokontrolera odbywa si poprzez interfejs SWD, ktrego linie wyprowadzono na gniedzie SWD_CON. Standard ten ma liczne zalety, gdy wymaga minimalnej liczby pocze oraz nie potrzebuje dodatkowych rezystorw podcigajcych, zachowujc jednoczenie pen funkcjonalno klasycznego interfejsu JTAG. Listing 1. Realizacja konwersji CAN=>USB Linie sygnaowe USB D+ oraz USB D s doprowadzone do mikrokontrolera przez wczone szeregowo rezystory R4, R5 (odpowiednio PA12, PA11). Dodatkowo, do linii USB D+ doczono rezystor podcigajcy R3, ktrego obecno informuje kontroler USB komputera o zgodnoci z trybami transmisji USB Full Speed oraz USB High Speed. Pierwszym ukadem peryferyjnym mikrokontrolera jest transceiver CAN (IC3). Transmisja midzy nim amikrokontrolerem odbywa si za pomoc linii sygnaowych TXD iRXD. Poczenie ukadu zmagistral CAN jest moliwe przez zcze JP2, gdzie wyprowadzone zostay linie CAN High oraz CAN Low. Rwnolegle midzy obiema liniami zosta umieszczony rezystor R6. Jego doczenie do magistrali jest moliwe przez zamknicie zworki JP1, co powinno zosta zrobione, gdy analizator jest doczony na jednym zkocw magistrali CAN. Napicie wejciowe stabilizatora IC2 pochodzi zgniazda USB (5V), po czym jest ono filtrowane przez kondensator tantalowy C8. Dodatkowo zgodnie ze schematem aplikacyjnym producenta, na wejciu iwyjciu ukadu umieszczono po jednym kondensatorze ceramicznym opojemnoci 1mF (C10, C11). Stabilizator zapewnia napicie 3,3 V ijest rdem zasilania dla mikrokontrolera oraz ukadu transmisyjnego CAN. Stan pracy urzdzenia sygnalizowany jest przez diody LED. Dioda PWR (kolor zielony) informuje oobecnoci napicia zasilania. Diody TX (kolor ty) iRX (kolor czerwony) informuj otrwajcej wdanej chwili transmisji (odpowiednio nadawczej dla TX iodbiorczej dla RX).

void CAN1_RX0_IRQHandler(void) { CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); //odbior ramki CAN if(RxMessage.ExtId != 0) //adres (rozszerzony) { RX_Buffer[0] = (RxMessage.ExtId & 0xFF000000)>>24; RX_Buffer[1] = (RxMessage.ExtId & 0x00FF0000)>>16; RX_Buffer[2] = (RxMessage.ExtId & 0x0000FF00)>>8; RX_Buffer[3] = RxMessage.ExtId & 0x000000FF; } if(RxMessage.StdId != 0) //adres (podstawowy) { RX_Buffer[0] = (RxMessage.StdId & 0xFF000000)>>24; RX_Buffer[1] = (RxMessage.StdId & 0x00FF0000)>>16; RX_Buffer[2] = (RxMessage.StdId & 0x0000FF00)>>8; RX_Buffer[3] = RxMessage.StdId & 0x000000FF; } RX_Buffer[4] = RxMessage.Data[0]; RX_Buffer[5] = RxMessage.Data[1]; RX_Buffer[6] = RxMessage.Data[2]; RX_Buffer[7] = RxMessage.Data[3]; RX_Buffer[8] = RxMessage.Data[4]; RX_Buffer[9] = RxMessage.Data[5]; RX_Buffer[10] = RxMessage.Data[6]; RX_Buffer[11] = RxMessage.Data[7]; RX_Buffer[12] = RxMessage.DLC; RX_Buffer[13] = RxMessage.IDE; USB_SIL_Write(EP1_IN,RX_Buffer,14); SetEPTxValid(ENDP1); GPIO_SetBits(GPIOA, GPIO_Pin_1); my_delay(20000); GPIO_ResetBits(GPIOA, GPIO_Pin_1); //dane

Zasada dziaania iobsuga


Schemat blokowy programu mikrokontrolera przedstawiono na rysunku 10. Po doczeniu analizatora CAN do gniazda USB komputera PC nastpuje automatyczne wczenie urzdzenia. Dziaanie programu rozpoczyna si od skonfigurowania ukadu R E K L A M A

//dlugosc pola danych //rodzaj ramki //transfer USB //miganie diody LED

ELEKTRONIKA PRAKTYCZNA 3/2011

25

PROJEKTY
STM32. Na pocztku wczony zostaje zegar taktujcy rdze (zwielokrotniony przez ptl PLL) oraz zegary dla peryferii (CAN, USB). Nastpnie zostaj skonfigurowane wyprowadzenia: PA1, PA2 (diody LED), PA11, PA12 (USB), PB8, PB9 (CAN). Kolejnym krokiem jest inicjalizacja interfejsw CAN oraz USB. Oba zostaj uruchomione zobsug przerwa. Po wykonaniu tej czynnoci koczy si etap konfigurowania urzdzenia. Sposb doczenia urzdzenia do magistrali CAN pokazano na rysunku 11. Bdc jednym z wzw sieci, analizator ma moliwo odbioru wszystkich ramek. Kadorazowo po odebraniu ramki odczytuje j, kopiuje zniej informacje oadresie, danych, rodzaju ramki i dugoci pola danych, po czym przesya je do komputera interfejsem USB. Realizujc te czynnoci funkcj obsugi przerwania CAN1_RX0_IRQHandler(void) przedstawiono na listingu1. Wewntrz niej znajduje si funkcja odbierajca ramki CAN CAN_Receive(CAN1, CAN_FIFO0, &RxMessage). Odczytana ramka znajduje si wstrukturze RxMessage, ktrej pola zpotrzebnymi informacjami kopio-

Rysunek 9. Schemat elektryczny analizatora CAN

26

ELEKTRONIKA PRAKTYCZNA 3/2011

Urzdzenie diagnostyczne do sieci CAN


wane s do 14-bajtowego bufora RX_Buffer, anastpnie przesyane do komputera funkcj USB_SIL_Write(EP1_IN,RX_Buffer,14). Konwersja w odwrotn stron przebiega analogicznie. Odpowiednio sformatowane dane s przesyane interfejsem USB i odbierane przez mikrokontroler (funkcja USB_SIL_Read(EP3_OUT, USB_Rx_Buffer)). Nastpnie tworzona jest nowa ramka CAN, wypeniane s pola: rodzaju ramki, adresu, danych itp., po czym gotowa ramka wysyana jest na magistral (funkcja CAN_Transmit(CAN1,&TxMessage)). Wizualizacja odbieranych przez komputer ramek z sieci CAN oraz moliwo wysyania ramek wtym standardzie wymagaj stworzenia przeznaczonej do tego celu aplikacji komputerowej, ktra udostpnia bdzie operatorowi interfejs uytkownika. Znacznym uatwieniem tego zadania jest wykorzystywany przez mikrokontroler STM32 tryb pracy interfejsu USB, ktrym jest VCP (Virtual COM Port). Tryb ten tworzy w komputerze wirtualny interfejs szeregowy COM (rysunek 11, rysunek 12). Dziki pracy interfejsu USB wtrybie VCP do obsugi analizatora CAN zamiast skomplikowanej implementacji stosu USB wystarczy prosta aplikacja wykorzystujca popularny interfejs RS-232. Do napisania aplikacji komputerowej wybrano jzyk C# i rodowisko Microsoft Visual C#. Platforma ta ma wbudowane komponenty programowe do obsugi transmisji RS-232, dziki czemu stworzenie odpowiedniego nie jest trudne (rysunek13). Widok gotowej aplikacji przedstawiono na rysunku14. Wyrni wniej mona cztery bloki funkcjonalne. Pierwszy (prawy grny rg) suy do nawizywania komunikacji z analizatorem CAN, co realizowane jest przez wybranie ipoczenie si zodpowiednim portem COM. Drugi blok (prawy dolny rg) umoliwia zmian konfiguracji pracy analizatora CAN (przeczenie na inn prdko transmisji CAN). Kolejny blok (lewy dolny rg) realizuje wysyanie ramek CAN. Ostatni z blokw (lewy grny rg) to pole wywietlajce odebrane ramki

Rysunek 11. Widok zakadki menedera urzdze wsystemie Windows (analizator CAN widoczny jako STM Virtual COM Port)

Rysunek 10. Schemat blokowy oprogramowania R E K L A

Rysunek 12. Informacje na temat analizatora CAN widoczne zpoziomu systemu Windows (zakadka Waciwoci wmenederze urzdze) M A

ELEKTRONIKA PRAKTYCZNA 3/2011

27

PROJEKTY
CAN. Kada linia to jedna ramka (format szesnastkowy): pierwsze cztery bajty to adres, kolejne osiem to dane.

Monta
S c h e m a t montaowy urzdzenia pokazano na rysunku 15. Monta warto rozpocz od przytwierdzenia mikrokontrolera, co naley wyko- Rysunek 13. Widok tworzonej aplikacji komputerowej wrodowina z naleyt sku Microsoft Visual C# precyzj gwarantujc styczno wyprowadze z odpowiaoobsug popularnych protokow CAN wardajcymi im padami pytki. Nastpn czynstwy 7. modelu OSI/ISO, ktre wymienione noci powinien by monta pozostaych zostay na pocztku artykuu. Umoliwioby elementw SMD. Wkolejnym kroku naley to obiektow interpretacj danych przesyawlutowa elementy przewlekane (gniazda, nych przez sie iwizualizacj ich wformie zcza, diody LED). konkretnych parametrw, ich wartoci oraz Opcjonalnie mona dodatkowo osadzi jednostki. Istotn kwesti moe by ponadurzdzenie wobudowie (za pomoc przewito dodanie obsugi dodatkowych prdkoci dzianych otworw na rubki) oraz przygotransmisji CAN, ktre w obecnej chwili s towa przewd i zcze umoliwiajce wyograniczone do 4 wartoci. godne podczanie analizatora do sieci CAN Szymon Panecki (rysunek16). szymon.panecki@pwr.wroc.pl Ostatnim etapem jest zaprogramowanie mikrokontrolera. Oprogramowanie zostao Bibliografia: napisane przy wykorzystaniu rodowiska Daniluk A. USB Praktyczne programowanie Raisonance RIDE7 (kompatybilny z nim zWindows API wC++, 2009 programator to R-Link), jednake kod moe Etschberger K. Controller Area Network:bazosta atwo przeniesiony na inne platforsics, protocols, chips and applications, 2001 my programistyczne. Listing 2 Realizacja konwersji USB=>CAN

Rysunek 15. Schemat montaowy analizatora CAN

Rysunek 16. Wykonany na podstawie gniazda DB9 interfejs komunikacyjny CAN Mielczarek W. USB Uniwersalny interfejs szeregowy, 2005 Voss W. AComprehensible Guide to Controller Area Network, 2005 Yin J. The Definitive Guide to the ARM Cortex-M3, 2007 www.arm.com SWD Serial Wire Debug www.microchip.com MCP1802 datasheet www.st.com STM32F10xxx hardware development: getting started www.st.com STM32 datasheet www.ti.com SN65HVD230 datasheet

Podsumowanie
Wartykule przedstawiono autorski projekt urzdzenia diagnostycznego do sieci CAN. Urzdzenie moe by realn alternatyw dla istniejcych rozwiza komercyjnych, gdy cechuje si zblion do nich funkcjonalnoci i niezawodnoci. Dodatkowym atutem opracowanej konstrukcji jest prostota budowy, gdy wykorzystano minimaln ilo elementw elektronicznych, ktre jednoczenie s tanie iatwo dostpne na rynku. Istnieje moliwo dalszego ulepszania projektu. Interesujcym kierunkiem rozwoju jest np. uzupenienie aplikacji komputerowej

void EP3_OUT_Callback(void) { USB_SIL_Read(EP3_OUT, USB_Rx_Buffer);

//odczyt USB

if(USB_Rx_Buffer[12] == 1) //adres (rozszerzony) { TxMessage.ExtId = (USB_Rx_Buffer[0] << 24); TxMessage.ExtId = TxMessage.ExtId + (USB_Rx_Buffer[1] << 16); TxMessage.ExtId = TxMessage.ExtId + (USB_Rx_Buffer[2] << 8); TxMessage.ExtId = TxMessage.ExtId + USB_Rx_Buffer[3]; } if(USB_Rx_Buffer[12] { TxMessage.StdId = TxMessage.StdId = TxMessage.StdId = TxMessage.StdId = } == 0) (USB_Rx_Buffer[0] TxMessage.ExtId + TxMessage.ExtId + TxMessage.ExtId + //adres (podstawowy) << 24); (USB_Rx_Buffer[1] << 16); (USB_Rx_Buffer[2] << 8); USB_Rx_Buffer[3]; //dane

TxMessage.Data[0]=USB_Rx_Buffer[4]; TxMessage.Data[1]=USB_Rx_Buffer[5]; TxMessage.Data[2]=USB_Rx_Buffer[6]; TxMessage.Data[3]=USB_Rx_Buffer[7]; TxMessage.Data[4]=USB_Rx_Buffer[8]; TxMessage.Data[5]=USB_Rx_Buffer[9]; TxMessage.Data[6]=USB_Rx_Buffer[10]; TxMessage.Data[7]=USB_Rx_Buffer[11]; TxMessage.IDE= USB_Rx_Buffer[12]; TxMessage.RTR= USB_Rx_Buffer[13]; TxMessage.DLC= USB_Rx_Buffer[14];

//rodzaj ramki //dlugosc pola danych

Rysunek 14. Widok aplikacji komputerowej wtrakcie pracy

TransmitMailbox = CAN_Transmit(CAN1,&TxMessage); while(CAN_TransmitStatus(CAN1, TransmitMailbox) != CANTXOK) { } GPIO_SetBits(GPIOA, GPIO_Pin_2); my_delay(20000); GPIO_ResetBits(GPIOA, GPIO_Pin_2);

28

ELEKTRONIKA PRAKTYCZNA 3/2011