Home

Communication for distributed control of slotcar vehicular platoon

image

Contents

1. The data exchange model could be modified as well e g we can activate timer on all slotcars and add the synchronization information into the states packets Another idea for the communication model is based on the current one However the coordinator calls the leader to broadcast and the timer is activated only in case when the data exchange stops The goal could be to compare communication models and find the most efficient one Finally we would like to provide experiments with a larger number of cars and different track forms 30 6 Conclusion In this bachelor work the concept of the inter vehicle communication is introduced and tested on the real slotcar platoon This thesis consists of two parts creating the communication driver based on the ZigBee standard and preparing the communication system which allows vehicles to share their measurements The first phase was done on the prototype model The ZigBee standard research was undertaken and it facilitates choosing optimal configurations such as nonoverlapping with Wi Fi channel device type enabling the direct communication with each node in the network etc The second phase of the project started with testing this driver on slotcars lts functionality was confirmed Also we prepared the state automaton in the main program cycle which determines the slotcar behaviour It provides address exchange position determination parameters configuration and read out To the exis
2. 11 3 ZigBee standard specification Because we hold CC2530 in reset by setting the RESET pin low the ZNP will return the external reset reason The application processor sends the ZCD NV STARTUP OPTION command Table 23 to overwrite all the configuration parameters It s the SREQ command The parameter 0x00 prevents network state loss or erase of the existing configuration caused by an accidental device reset If the network parameters need to be changed the value of the parameter must be 0x02 The response form is in Table 24 All response packets contain the status value The status value 0x00 indicates that the command was successfully executed The 0x01 value indicates ZFailure Other values of status parameters are described in the 4 7 chapter in CC2530ZNP Interface Specification 21 Application processor sets CC2530 RESET _N pin low holding CC2530 in reset Modification of ZCD NV STARTUP OPTION parameter requires a CC2530 ZNP device reset before it can take effect hence the second reset is required The application processor sets CC2530 RESET _N pin high and CC2530 starts operation 10 The CC2530 response with SYS RESET IND During the development phase it was discovered that it s necessary to have a delay after changing the RESET _N state approximately 20 ms Without a delay the network processor behaves erratically e g not responding to SREQ command or it sends a failure response The project use
3. 250 non leader 200 A E E RR P predecessor E gt 150 y que AMV ah A AV gt Ma STO KAS VZ NM VN W WV M E 100 PP RO eter O VOTE ee SPR SOE O AEE NE A 2 5 10 15 20 25 time s Figure 38 Third car front distance measurements We calculated the standard deviation ZB N 1 and the standard error for the front distance measurements S reference mean standard standard approximate vehicle value error deviation settling time non 151 601 0 287 5 111 16 s leader 148 566 0 434 5 421 4 s predecessor 148 738 0 306 4 999 4 s Table 12 Distance error Obtained results are placed in Table 12 We expected that the feed forward loop will not only shorten the settling time but provide smaller deviation from the desired value However this second assumption wasn t confirmed Technical problems The longest experiment which we managed to do lasted for 45 seconds before the car restarted An undesired slotcar restart happens because the car isn t getting a 34 5 2 Experiments results constant supply of electricity So the slotcar should be removed from the track and the communication order is disturbed If the leader suddenly restarts the whole experiment must be stopped Power for the slotcar is carried by metal strips on the track and is pitched up by contact brushes which are placed alongside the guide flag During the ride they can be displaced and cause the car to disc
4. 3 1 The ZigBee base IEEE 802 15 4 User Defined 4 Application Layer APL Application gta Objects eee Defined by Object ZigBee Standard Application Support Sublayer APS ZigBee Security Wireless Services Networking Network Layer NWK Medium Access Control Layer MAC Defined by IEEE 802 15 4 Physical Layer PHY Standard Figure 8 ZigBee Wireless Networking Protocol Layers Source 15 p 5 The IEEE 802 15 4 is a standard which specifies the physical layer and media access control MAC for low rate wireless personal area networks 19 It provides compatible interconnection for wireless data communication and is designed for low cost low data rate and low power devices The IEEE 802 15 4 operates in unlicensed radio frequency RF bands the 868 MHz band in Europe the 915 MHz band in North America Australia and the 2 4 GHz band worldwide 3 2 Interaction between the ZNP and the application processor The PHY layer is responsible for activating and deactivating the radio transceiver transmitting and receiving data and selecting the channel frequency When a device wants to transmit it performs two functions Energy Detection ED and Clear Channel Assessment CCA It scans the medium and reports if the channel is not in use by any other device 802 15 4 uses two techniques to avoid data collision CSMA CA and GTS The Carrier Sense Multiple Access Collision Avoidance is the most common each node listens to the
5. 3 ZigBee standard specification ZigBee is based on an IEEE 802 15 4 standard a part of the IEEE family of standards for physical and link layers It offers a good coexistence among 2 4GHz RF products Bluetooth Wireless USB Wi Fi and low bit error rate ZigBee has very good anti interference performance however it s important to choose the right frequency in case of Wi Fi operating within a very short range 2 meters More information can be found in the Atmel AT02845 application note 16 To reduce channel load ZigBee standard allows the ACK mechanism to be disabled So there is more free space for transmission and it reduces waiting time before the node can send the data It s very useful in case of the real time control where timeliness may be more important than reliability In other words we prefer to lose some data rather than to resend them and cause delay in the data flow ZigBee offers basically four kinds of different services 1 association and authentication to allow valid nodes to join to the network 2 extra encryption services 17 3 routing protocol 18 4 application services e g binding service for linking devices that are related We will concentrate on the first one Later in this chapter the base characteristics of the IEEE 802 15 4 standard and ZigBee network processor configuration will be described The process of the network creation joining and data exchange will also be demonstrated
6. If it s registered the function fills the Packet structure and forwards it to the MHL layer by calling the zigbeel_callback 4 2 Main program layer services 4 2 Main program layer services After all necessary configurations the program will enter the main event loop Each program cycle the following functions are performed e data transmission from the transmission queue e data processing from the reception queue e measurements updating e automaton step execution Figure 23 Only the first two automaton steps are executed automatically Then the slotcar enters the waiting state and transition to other states can be done by sending a command with the defined message type Register Leader Send Waiting Determine Address State Position Figure 23 Main cycle state automaton Register leader To control the car platoon wirelessly it s necessary to know the leader vehicle For the next 10000 cycles each cycle lasts approximately 1 ms the slotcar waits for the front distance value The distance sensor may take several seconds to settle to its final output value Then it compares this value with the maximum distance 30 cm and based on the result determines if it s in front or not Despite of the result the program goes to the next state Send address At this step the slotcar announces itself by broadcasting its ZigBee short address and ZigBee logical address The leader slotcar broadcasts its position numbe
7. It is independent on the particular hardware implementation ZigBee Nordic The unified communication stack allows implementation of new communication drivers lt also allows the creation of new services in the main program layer Figure 21 shows the data passing structure Configuration parameters E Ha Register interface Register address oe Register known queue Received data callback Recei IRQ pa Service callback gt data received Message handling l va Main program layer MHL es Transmission queue m data Figure 21 Data passing structure Transmit data lt Transmit data Transmit data Each layer provides services for the next layer The main program layer MPL finishes the processing of the data does the system setup and provides callbacks for different message types The MPL layer can give the transmit data command direct to the HW layer The Message handling layer MHL stores data in queues and calls service functions corresponding to the received message type The MHL calls the HW layer transmit function when there are data in transmission queue The HW layer receives and transmits data and forwards received data to the MHL layer One of the goals of this project is to implement the HW ZigBee driver The first section 4 1 describes the main ZigBee HW layer functions 4 1 The ZNP driver implementation The HW ZNP driver implements the following functi
8. Two CC2531 USB Dongle devices are used for data exchange control On one of them has the Packet Sniffer application installed The other one is programmed with CC2531ZNP Pro firmware and plugged into the tablet with the android application written by Alexander Duben The first application is very useful to control the joining and association process address exchange and position determination process Unfortunately Texas Instruments doesn t provide the tool to export data from Packet Sniffer to another program e g Matlab So the tablet took over the Coordinator role from the CC2530 evaluation module It can not only send required commands but it provides additional capabilities such as graph plotting and the data export into Matlab The time assigned by the android application to the received packets is precise enough to make some conclusions about measurements exchange influence on the regulator work Provided experiments are described in the next chapter 29 5 Experiments After the program enters the Experiment state besides the measurements exchange it starts to execute the regulation function each program cycle The output of this function is the pwm duty cycle which controls the motor There are two types of regulation in the car speed and distance The leader slotcar has the speed regulator For other cars the user can set the regulation type This chapter describes the regulation model and demonstrates how th
9. 2 00 3 2 Interaction between the ZNP and the application processor Sd O aa ER STM32F4 External interrupts lt lt lt 3 3 CC2530 ZNP power up procedure 3 4 GC2530 ZNP startup procedure Network formation Sueca ca a vs l dal de We E Network Discovery Join lt lt lt 44 lt Data ransterss tos ba te ist ak oa oe ed ds Bo The data path in NWK layer isda a eras a eR ES 3 4 1 ZigBee addressing 2 00 eee ee eee d SOM III 4 Communication infrastructure 4 1 The ZNP driver implementation 2 004 4 2 Main program layer Services lt lt lt lt lt lt lt 4 4 44 Registerdeader tios ms Boe amp hk a Sok Ole am Bee DENG Addres lt lt EEE do ed amp oe BE ad Sas ob i Slot car parameters configuration 040 Position determination lt lt lt lt lt 4 4 lt lt 4 lt 4 Experiment 4 9 es Aa A a 5 Experiments 5 1 The regulation model z 34 3 eme 4 38 t G 4 Jede Soe Z eee 5 2 Experiments results Le bi ee dd ack we oe ee ee eS Deze IDIStance Error pase arte ees A a OS ee 8 Technical problems s peo as ir BES OSS eS D22 BULUBOWOTK ea pl aa dy A Oo BO OG E ee Be 08 6 Conclusion Appendices A Hardware specifications B ZigBee Interface parameters vl N em oP WW Go O con 11 11 12 15 16 17 18 19 19 21 21 23 23 23 24 25 21 30 30 31 34 34 39 3
10. Second car ZOO Joe dose tah oz Second car 7 20071 i Third car 100 4 100 0 2 4 6 8 10 12 2 4 6 8 10 12 time s time s Figure 30 Measured speed 2 Next we tested the cascade model with 0 feed forward input In Figure 32 we can see how the speed controller handles to follow the reference speed determined by the distance controller The distance regulator settling time also can be determined from this test Ref speed 600 mm s Ref dist Ref dist Te FoS 150 mm 150 mm Speed controller Distance controller Distance controller Figure 31 The vehicle platoon model with 0 feed forward input l o Experiments 1000 900 800 700 300 250 gt aoe 600 E E 500 150 F S 2 400 2 100 7 300 measured speed 7 200 7 50 m distance regulator output i third car front distance 0 i i 0 i i i 0 6 8 10 12 0 10 20 30 40 50 60 time s time s a Third car measurements b Third car front distance Figure 32 The 0 feed forward input experiment results 3 Afterwards we tested the regulation model shown in Figure 28 To the distance controller output is added the leader s speed The results are shown in Figure 34 This experiment verified the assumption that the control signal value generated by the distance regulator is minimized when the leading vehicle measurements in a combined fee
11. e ARM processor by ST Microelectronics SIM32F405RGT6 debug communication processor Nordic Semiconductor nRF24L01 gyro with integrated accelerometer LSM330DLC INA213AIDCKT current shunt monitor QRE1113 reflective object sensor is used for speed measurements A VEMT3700F silicon NPN phototransistor and a VSML3710 infrared emitter are placed on the distance measurement board There are two such boards in the slotcar for back and front distance measurements On the separate board is located the ZigBee CC2530 communication processor The hardware design and implementation was done by Ing Jaromir Dvorak Figure 2 The slotcar with the secondary ZigBee radio board The project is being developed in Eclipse CDT C C Development Tooling 4 In the project are used the ARM Cortex Microcontroller libraries Jaromir Dvorak wrote the basic program system functions and the Bootloader program to load the compiled code into the chosen slotcar After the run of the project the program asks for the car address which is a number from 1 to 10 written on the vehicle For loading Nordic nRF51 Dongle is used The slotcar bond graph modeling identification and linearization were done by Martin Lad 5 He also designed and implemented two speed measuring methods by IRC sensor and back emf and speed regulator One of the main achievements was enabling of regulation of low speeds such as 200mm so The creation of the distance measuring sensor is descr
12. e CFGO indicates if there is a 32kHz crystal connected to the CC2530 ZNP in this project the CFGO pin is set low and the CC2530 uses the internal RC oscillator e with CFG1 the user can choose UART or SPI transport mode To use SPI transport mode the CFG1 pin should be set high e MISO MOSI SCK and CS are the standard SPI signals The master role has the application processor and the slave role has the network processor So the Chip Select signal should be low MOSI is the master line for sending data to the slave and MISO is the slave line for sending data to the master e MRDY is Master ReaDY an active low signal It is set by the application processor when it has the data to send e SRDY is Slave ReaDY a bi modal signal It indicates if the network processor is ready to receive or send data Since the program is written for the application processor the communication process will be described from the AP side of view The protocol scenarios are as follows e POLL The network processor CC2530 ZNP requests to start the communication e SREQ The application processor sends a command to the network processor and waits for SRSP frame synchronous response To indicate the right protocol scenario we need to follow MRDY and SRDY signals If the SRDY level is changed before the MRDY level the network processor wants to transmit to the application processor data POLL command If the AP has the data for the network processor then
13. of addressing 16 bit short addressing and 64 bit extended addressing It s possible to use either 16 bit or 64 bit addressing The short address allows communication within a single network Using the short address reduces the length of the packet and saves memory which is required for storing an address ZigBee 2007 Pro and newer versions use Stochastic Addressing that means that addresses are randomly chosen and assigned to joining devices by the coordinator The coordinator address is always 0x0000 and the broadcast address is OxFFFF Other special addresses could be found in Table 17 in the Appendix B To find out the short address device we need the ZB GET DEVICE INFO command Table 39 It is a SREQ operation This command retrieves a device information The Param variable is the identifier of the device information If a 0x02 parameter is used CC2530 returns its short address See the full list of parameters in Table 21 The value always has 8 bytes in length even though the actual value may be smaller in size The remaining bytes can take any value ZB GET DEVICE INFO command is called after the Router returned DEV ROUTER status 3 5 Summary The whole process of power up and startup procedure of Coordinator and Router and the entire communication between devices is shown in Figure 20 The short CC2530 ZNP configuration instruction is placed in the Appendix C and includes all necessary packets 19 3 ZigBee standard spe
14. which contains information about the device PAN ID All nearby ZigBee devices will send a beacon back The PAN ID exchange is called the active scan There can be only one coordinator in the network and only the coordinator can form a network determine a unique PAN ID and a channel When the network formation is finished the ZDO returns the 15 3 ZigBee standard specification DEV_ZB_COORD status It means that the device has successfully started as a Coordinator See the ZDO status table 20 Network Discovery Join Figure 15 shows the joining process of the Router to the Coordinator Coordinator C User app ZDO NWK MAC Request to join the network Discover PAN Perform active scan Beacon request Beacon response 1 o Beacon gt reguest Beacon Scan response N Discovery confirmed DEV NWK DISC confirmed status DEV NWK JOINING status Associate reguest Associate gt reguest Associate L Associate response confirm Join DEV NWK DISC confirmed status Figure 15 NWK Discovery Join Source 24 ZDO requests Network PAN discovery the discovery function will call the MAC s active scan service and it will perform the Beacon request When other devices see the beacon request they will respond with an 802 15 4 beacon frame It contains MAC information about the responding device and a beacon payload for generic data Within that payload the responding d
15. 0x00 for COORDINATOR or 0x01 for ROUTER Table 27 COMMAND ZCD NV LOGICAL TYPE Length 0x03 Cmd0 0x26 Cmd1 0x05 Configld 0x87 pery Table 28 RESPONSE ZCD NV LOGICAL TYPE Length 0x01 Cmd0 0x66 Cmd1 0x05 Status C 2 3 PAN ID SREQ Table 29 COMMAND ZCD NV PANID Length 0x03 Cmd0 0x26 Cmd1 0x05 Configld 0x83 Len 0x02 Value 0x03 Table 30 RESPONSE ZCD NV PANID Length 0x01 Cmd0 0x66 Cmd1 0x05 Status C 2 4 Simple Descriptor SREQ Application profile and endpoint Table 31 COMMAND AF_ REGISTER Length 0x17 Cmd0 0x24 Cmd1 0x00 EndPoint 0x08 AppProfld 0x0D AppProfld OxBF AppDeviceld 0x00 C 3 Transmit data SREQ AppDeviceld 0x00 AppDevVer 0x01 LatencyReq 0x00 AppNumInClusters 0x00 AppNumOutClusters 0x00 Table 32 RESPONSE AF_ REGISTER Length 0x01 Cmd0 0x64 Cmd1 0x00 C 2 5 Start device in the network SREO Table 33 COMMAND ZDO STARTUP FROM APP Length 0x01 Cmd0 0x25 Cmd1 0x40 StartDelay 0x00 0x00 Fable 34 RESPONSE ZDO STARTUP FROM APP Length 0x01 Cmd0 0x65 Cmd1 0x40 Status C 2 6 Device status POLL Table 35 RESPONSE ZDO STATE CHANGE IND Length 0x01 Cmd0 0x45 Cmd1 0xCO The application processor should receive the ZDO STATE CHANGE IND commands POLL until the State gets the DEV ROUTER 0x07 value in case of Router or DEV ZB COORD 0x09 va
16. 6 37 39 C Commands for CC2530 ZNP configuration Cl POWO UDI 2 6 k dene ee Boe ee Be eae eee eee ee C 1 1 System state after reset POLL C 1 2 The device startup options configuration SREQ Cale Oat sl je net A ee ae SE A a Se ss e EDA G2 Channel SREO B de aeaea did ee a bs Ut dvd 0 22 Device logical role SREQ 304 644 ke se C 23 PAN ID SREO 000 0 cee eee eee C 2 4 Simple Descriptor SREQ Application profile and endpoint C 2 5 Start device in the network SREQ C26 Device status POLL s 282 4 4 o4 40 2 653 62 5 d GA Transmit data SRBO coo mak doe ds CA Receive Data POLL cx pta si e Boe se ae ee C 5 Get device information SREQ o D The attached CD content Bibliography 41 41 41 41 41 41 42 42 42 43 43 43 44 44 45 46 vil Abbreviations Abbreviation AP API APL CCA CRC CSMA CA EM FCS FFD GTS HW MAC MCU MHL MPL NWK PAN PHY RF IC RFD SPI ZC ZDK ZDO ZED ZHA ZNP LR vill Phrase Application Processor Application Programming Interface Application layer Clear Channel Assessment Cyclic Redundancy Code Carrier Sense Multiple Access Collision Avoidance Evaluation Model Frame Check Sequence Full Function Device Guarantee Time Slots Hardware layer Medium Access Control layer Microcontroller Unit Message Handler Layer Message Program Layer Network layer Persona
17. A current draw The cause wasn t detected it could be an open or a short circuit Functional boards were programmed via SmartRF05EB evaluation board with CC2530ZNP Pro hex file The evaluation board is equipped with a debug connector that allows debugging and programming of an external RF microcontroller from Texas Instruments The pin out of the connector is placed in the SmartRF05 Evaluation Board User s Guide p 22 8 The secondary radio board pin out is shown in Figure 4 Only three manufactured boards were detected by the evaluation board Next the secondary radio board was connected to the main board Table 16 in Appendix A shows the CC2530 and radio connector pin configuration The 3 3V GND and RESET SPI signal pins were misplaced in the secondary radio board connector 2 CC2530 communication processor Figure 4 Secondary Radio Board Debug Connector and were connected with the main car board with wires The scheme of Secondary Radio Board and Secondary Radio Connector is placed in slotcar_vir1 pdf 9 The radio board was implemented into three slotcars A new version of the slotcar is currently being developed and shall be ready at the end of the May 2015 Because of this new model becoming available soon no further investments in the current model have been done not to mention time limitation 2 2 Prototype model for the ZigBee driver development Directly developing of the ZigBee driver on the slotcars has one disad
18. Clusters registration is a part of the Application object configuration as well A cluster is a list of attributes and a command handler When the data come to the Application object Device Rx Frame Handler function checks the incoming message cluster ID and calls the Command Handler corresponding to the received cluster ID The command handler actions can be defined by the user or be given by chosen specification and depends on received attributes There are ZigBee Cluster Libraries e g lightning general measurement amp sensing Each Application Profile supports some of them We use the manufacturer specific profile own profile so we can t use already prepared ZigBee Cluster Libraries At this point it should be noted that slotcars communicate not only using ZigBee standard but also Nordic which will be replaced with Wi Fi in the next model Hence the network processor should be 3 4 CC2530 ZNP startup procedure responsible only for transmitting addressing receiving and proceeding data to the application processor It means that we don t need cluster services All afore mentioned parameters must be configured by calling the AF_ REGISTER SREQ command Table 31 We set the EndPoint parameter to 0x08 AppProfld to OxBF00 and the number of Input and Output cluster Ids AppInClusterList and AppOutClusterList to 0x00 5 Device starts in the network Finally the ZDO STARTUP FROM APP SREQ command Table 33 is sent by the applicatio
19. EJOIN 0x05 DEV END DEVICE UNAUTH 0x06 DEV END DEVICE 0x07 DEV ROUTER 0x08 DEV GCOORD STARTING 0x09 DEV ZB COORD 0x10 DEV NWK ORPHAN Parameter Size 0x00 1 byte 0x01 o bytes 0x02 2 bytes 0x03 2 bytes 0x04 o bytes 0x05 1 byte 0x06 2 bytes 0x07 o bytes 40 Description Device state See 20 Device IEEE address Device short address Short address of the parent device IEEE address of the parent device Channel on which the ZigBee network is operating PAN ID of the ZigBee network Extended PAN Id of the ZigBee network Table 21 Parameter values for ZB GET DEVICE INFO command Appendix C Commands for CC2530 ZNP configuration C 1 Power up C 1 1 System state after reset POLL Table 22 RESPONSE SYS RESET IND Length 0x06 Cmd0 0x41 Cmd1 0x80 TransRev 0x02 ProductId 0x01 MajorRel C 1 2 The device startup options configuration SREO Table 23 COMMAND ZCD NV STARTUP OPTION Length 0x01 Cmd0 0x26 Cmd1 0x05 Configld 0x03 Len 0x01 Value 0x02 Table 24 RESPONSE ZCD NV STARTUP OPTION Length 0x01 Cmd0 0x66 Cmd1 0x05 C 2 Start up C 2 1 Channel SREQ Table 25 COMMAND ZCD_NV_CHANLIST Length 0x03 Cmd0 0x26 Cmd1 0x05 Configld 0x84 41 Appendix Commands for CC2530 ZNP configuration Table 26 RESPONSE ZCD_NV_CHANLIST Length 0x01 Cmd0 0x66 Cmd1 0x05 C 2 2 Device logical role SREQ The value parameter can be set
20. P Pro STM32F4 SPI radio board slotcar cognitive vehicle platooning CACC position identification IV Abstract Tento dokument ze zabyv implementac bezdr tov komunikace mezi autodr hovymi auticky Tato komunikace je pouzita pro implementaci dopredn ho r zen o kter je roz en ji implementovany zp tnovazebn kask dn regul tor vzd lenosti pou vaj c pouze veli iny m en lok ln mi senzory na aut ku Ka d aut ko je vybaveno ARM procesorem a komunika n m ipem CC2530 poskytuj c ZigBee Pro standard Tato pr ce se tak zab v samotnou konfigurac a popisem tohoto ipu Pou it m bezdr tov komunikace jsou aut ka schopna pos lat data b hem experimentu do po ta e To umo nuje bezdr tov ovl d n kolony konfiguraci parametr a ur en po ad aut ek Kl ov slova ZigBee CC2530 CC2530ZNP Pro STM32F4 SPI radio board slotcar CACC ur en pozice Contents 1 Introduction LED JMIOEIVEtION enge br da a a a a Se 1 2 The Slotcar platooning project lt lt lt lt lt lt lt lt lt 2 CC2530 communication processor 2 1 The secondary radio board implementation 2 2 Prototype model for the ZigBee driver development CC2530 ZigBee Development Kit SD PMB2FA0TC DISCO ui bs a OE Se lab 04 3 ZigBee standard specification 3 1 The ZigBee base IEEE 802 15 4 0
21. as a bitmask A value of 0x80 means that bit 7 is set and routing will be bypassed for the packet a value 0x10 sets bit 4 to request APS acknowledgement for the packet Other options can be found in CC2530 ZNP Interface Specification 21 The Radius value specifies the number of hops allowed delivering the message and can be configured as well We will use this ZigBee feature to reduce message retransmission when we will need to increase the information transmission speed In case of important information exchange the radius value will be increased For example slotcar address information or initial parameters sent by the user to the vehicles In the ZigBee Pro stack profile network with mesh topology only the CSMA CA technique is used to avoid data collision The device router or coordinator transmits once the channel is clear The data exchange is shown in Figure 17 The frame format of the Beacon as standardized in the IEEE 802 15 4 specification includes GTS field but in the context of ZigBee this field is 0 It means that the Coordinator doesn t permit GTS requests 17 3 ZigBee standard specification Device 1 Device 2 Data Acknowledgment if requested si Figure 17 Non Beacon Data Transfer The data path in NWK layer Two diagrams in this section explain how data is proceeded in the Network Layer Data to be transmitted flows down from an upper layer Received data come up from the lower layer or do a U turn if the
22. bachelor s thesis Communication for distributed control of slotcar vehicular platoon Anastasia Vlasova May 2015 Supervisor Herman Ivo Ing Czech Technical University in Prague Faculty of Electrical Engineering Department of Control Engineering Czech Technical University in Prague Faculty of Electrical Engineering Department of Control Engineering BACHELOR PROJECT ASSIGNMENT Student Anastasia Vlasova Study programme Cybernetics and Robotics Specialisation Systems and Control Title of Bachelor Project Communication for distributed control of slot car vehicular platoon Guidelines 1 Implement an interface to a communication chip through an appropriate bus The goal is to prepare a simple API which will be then used by upper control layers 2 Prepare a communication infrastructure for a platoon control algorithms in which vehicles share their states with the others CACC LOR 3 If possible implement identification algorithm of the car s position in the platoon Bibliography Sources 1 C Siva Ram Murthy B S Manoj Ad Hoc Wireless Networks Architectures and Protocols Prentice Hall 2004 2 Sarangapani J Wireless Ad hoc and Sensor Networks Protocols Performance and Control CRC Press 2007 3 Drew Gislason Zigbee Wireless Netowrking Newnes 2008 Bachelor Project Supervisor Ing Ivo Herman Valid until the summer semester 2015 2016 Prague December 12 2014 Ack
23. bs org index php Blog Zigbee A Brief Tutorial on the ZCL with Examples from FreakZ html visited on 01 05 2015 Freaklabs Zigbee Network Layer Tutorial Part 4 Network Management 1 URL http www freaklabs org index php Blog Zigbee Zigbee Network Layer Tutorial Part 4 Network Management 1 html visited on 03 01 2015 Wikipedia Cascade control URL http en wikipedia org wiki PID_ controller Cascade_control visited on 15 05 2015 Jennic ZigBee Software Architecture URL http www jennic com elearning zigbee files content_frame htm visited on 06 05 2015 AA4CC Slotcar Platoon System Description URL https support dce felk cvut cz mediawiki index php Slotcar Platoon System Description visited on 01 21 2015 Low Power Wireless and ZigBee Networking Workshop ZigBee Stack URL http processors wiki ti com images 8 8a 08_ _ZigBee_Stack pdf visited on 03 01 2015 Freaklabs Zigbee Network Layer Tutorial Part 3 Broadcasts and Neighbors URL http www freaklabs org index php Blog Zigbee Zigbee Network Layer Tutorial Part 3 Broadcasts and Neighbors html visited on 03 01 2015 Freaklabs Zigbee Network Layer Tutorial Part 2 The Rx Data Path URL http www freaklabs org index php Blog Zigbee Zigbee Network Layer Tutorial Part 2 The Rx Data Path html visited on 03 01 2015 Freaklabs Zigbee Network Layer Tutorial Part 1 The Tx Data Path URL htt
24. ched CD content Electronic version of the thesis in PDF project video project source code Platoon_implementation fw description of the project part responsible for ZigBee driver and state automaton implementation Platoon_implementation doxygen html index html 45 Bibliography Li Li and Fei Yue Wang Advanced Motion Control and Sensing for Intelligent Vehicles 2007 S Tsugawa Super Smart Vehicle System Its Concept and Preliminary Works In Vehicle Navigation and Information Systems Conference Proceedings 1991 AA4CC group Distributed control of spatially distributed systems URL http aa4cc dce fel cvut cz content distributed control spatially distributed systems visited on 30 04 2015 Eclipse Eclipse CDT URL http www eclipse org cdt visited on 21 01 2015 Martin Lad Design and implementation of a control system for a slot car Bachelor thesis CTU Prague 2014 Jan Moravec Distribuovan rizeni kolon vozidel na autodraze Bachelor thesis CTU Prague 2014 Texas Instruments CC2530 URL http www ti com product cc2530 visited on 07 05 2015 SmartRF05 Evaluation Board Texas Instruments 2010 Jaromir Dvorak Scheme Slotcar vir1 2014 Texas Instruments CC2580 ZigBee Development Kit URL http www ti com tool cc2530zdk visited on 14 01 2015 Z Stack User s Guide For CC2530 Zigbee PRO Network Processor Sample Applications Texas Instruments 2010 Texas In
25. cification Coordinator Router ARM cC2530 p CC2530 ARM Reset with the RESET N pin gt lt Reset with the RESET pin SYS_RESET_IND SYS_RESET_IND gt ZCD_NV_STARTUP_OPTION gt N L zcD NV STARTUP OPTION Reset with the RESET N pin gt SYS RESET IND Reset with the RESET pin SYS RESET _ ND gt ZCD_NV_LOGICAL_TYPE gt ZCD NV PANID gt gt CD_NV_LOGICAL_TYPE ZCD_NV_CHANLIST gt gt lt CD NV PANI lt lt ZDO_STARTUP_FROM_APP gt AF_REGISTER ZDO STATE CHANGE IND 0x09 ZDo STARTUP FROM APP lt BEACON REQUEST ZDO STATE CHANGE IND 0x02 gt BEACON e lt ASSOCIATION REQUEST ASSOCIATION RESPONSE gt ZDO STATE CHANGE IND 0x05 gt ZDO STATE CHANGE IND 0x07 gt DEVICE ANNOUNCE ZB GET DEVICE INFO Short Address AF DATA REOUEST DATA REOUEST Read attribute AF_INCOMING_DATA AF_DATA_REQUEST gt DATA REQUEST Read attribute response AF INCOMING DATA gt Figure 20 Power up startup and communication process between Coordinator and Router 20 4 Communication infrastructure The unified communication stack was created by Jaromir Dvorak and Martin Lad
26. dback and feed forward loops are used Also the front distance reached the reference value 4 times faster than in 0 feed forward input experiment Ref _ speed Speed controller a Ref dist 150 mm Distance controller Ref dist 150 mm 500 n Co ge wee Distance controller Figure 33 The vehicle platoon model with the feed forward input determined by the leader s speed 1000 T T T measured speed 800 distance regulator output 600 400 speed mm s 200 i l j i i i i j 2005 2 4 6 8 10 12 time s 14 16 a Third car measurements 18 300 250 200 distance mm 3 1007 50 second car front distance third car front distance l l l i l 8 10 12 14 16 18 time s b Second and third cars front distances Figure 34 The leader following experiment results 4 This experiment is very similar to the previous one However the reference speed 32 5 2 Experiments results is sent by the preceding vehicle We can t make a conclusion about the influence of the information flow topology because there are only three cars in the platoon Ref Speed Ref Ref d B00 Co e a ef_spee a Ref_dist Ref dist 150 mm 77150 mm Speed controller Distance controller Distance controller Figure 35 The vehicle platoon model with the feed forward in
27. distance int 2 reference PWM duty cycle lt 0 1 gt float 3 reference speed mm s lt 0 1000 gt int 4 reference front distance mm lt 50 300 gt int 5 measured speed mm s lt 0 1000 gt int 6 speed reg proportional term lt 0 inf gt double 7 speed reg integral term lt 0 inf gt double 8 distance reg proportional term lt 0 inf gt double 9 distance reg integral term lt 0 inf gt double 10 distance weight lt 0 inf gt float Table 2 Slotcar s parameters 24 4 2 Main program layer services e reg NON No regulator will be used the speed of car can be set by PWM value e reg SPEED Speed regulator will be used the speed of car can be set by reference speed value e reg DISTANCE Distance regulator will be used the distances can be set by reference distance value The measured speed value is read out for control Before the experiment start it should be 0 Table 3 Get parameters packet msg type length dest addr Table 4 Get parameters packet response MY_ADDR 100 1 ACK reg speed kp 29 36 37 44 45 52 53 56 reg speed ki distance kp distance weight The default parameters can be changed by sending the set parameter packet Table 5 Each parameter has a corresponding number Table 2 The parameter value follows its number The user chooses the number of parameters that he wants to set and the destination slotcar The parameters readout or change can be done during the waiti
28. e data exchange influences the control signal value of the distance regulator its output 5 1 The regulation model reference slotcar s speed mm s Duty Speed Distance cycle 0 1 mm s E mm reference distance mm Distance Speed Integrator regulator regulator Slotcar model Figure 28 The regulation model with feed forward loop realized by wireless data exchange The car model identification and linearization is placed in the bachelor thesis 5 The model is represented by transfer function Figure 28 The input of the system is pwm duty cycle in range of 1 to 1 and the output is measured speed The difference between a measured process variable and a desired setpoint is the PI speed controller input The speed controller implementation was done by Martin L d 5 The regulator s values are e Proportional term is 0 002 e Integral term is 0 01 The distance controller includes the speed loop The output of the outer distance controller determines the set point reference speed for the inner speed controller The output of the inner controller is used to adjust the control variable This is called cascade control 25 It is used to improve dynamic performance Due to the integrator which converts speed into distance the outer loop is slower than the inner one The PI distance controller was designed by Jan Moravec 6 The regulator s values are e Proportional term is 10 e Inte
29. e the simple descriptor parameters The set of stack parameters that need to be configured to specific values along with the above device type values is called a stack profile p 3 22 It defines the network type and shape and the features that are available to applications e g the types of security All devices in a network must conform to the same stack profile i e all devices must have the stack profile parameters configured to the same values The ZigBee Alliance defined ZigBee and ZigBee PRO stack profiles ZigBee Pro is used in this project The profile shown in Figure 13 is an Application profile or a stack subprofile It s a set of agreements on application specific message formats and processing actions a fully compliant ZigBee solution The ZigBee standard offers the option to use public application profiles in developing an application For example Z Stack Home is TI s ZigBee Home Automation ZHA compliant protocol stack for the CC2530 and CC2538 System on Chip It already has prepared functions for creating an application for smarter homes The range of public application profiles is O0x0000 to Ox7fff Slotcar uses a manufacturer specific profile 16 bit number with a range of OxBF00 to OxFFFF viz OxBF00 Application object Simple Descriptor endpoint profile and clusters Cluster List Cluster 1 Cluster N Device Rx Frame Handler Figure 13 The Application Object structure Source 23
30. ence the CPU clock speed must be reduced from 168 MHz to 84 MHz more information in 2 CC2530 communication processor Table 15 A user manual for Discovery kit for STM32F401 line 14 is available on the STMicroelectronics website The ST LINK V2 programming and debugging tool is integrated on the STM32F401 DISCO board The board connects to the computer via USB cable type A to mini B The ST LINK V2 USB driver must be installed on the computer For upgrading or downgrading the software on a board ST LinkUpgrade software is used Usually it s placed in the STMicroelectronics STM32ST LINKUtility ST LINKUtility folder This project uses the Keil MDK Version 5 software as a development environment MDK contains all development tools including IDE Compiler Flash Programmer and Debugger The firmware version on ST Link must be compatible with Keil MDK version The corresponding firmware is placed in the Keil_v5 ARM STLink ST LinkUpgrade The STM32 firmware used in this project has version V2 J20 3 ZigBee standard specification The vehicle communication standard should fulfil the following criteria e reliability and robustness e low cost low power consumption easy implementation ubiquity and public availability large network support possibility to regulate data flow mesh topology Slotcars were equipped with the nRF24L01 module by Nordic Semiconductor It s a cheap ultra low power 2 4 GHz ISM band wireless solution device How
31. ers Address OxFFFF OxF FFD OxFFFC OxFFFB Audience All Devices All Devices with Receiver on Permanently Routers and Coordinators Low Power Routers Table 17 Broadcast addresses Channel Value NONE 0x00000000 ALL CHANNELS 0x07FFE800 CHANNEL 11 0x00000800 CHANNEL 12 0x00001000 CHANNEL 13 0x00002000 CHANNEL 14 0x00004000 CHANNEL 15 0x00008000 CHANNEL 16 0x00010000 CHANNEL 17 0x00020000 CHANNEL 18 0x00040000 CHANNEL 19 0x00080000 CHANNEL 20 0x00100000 CHANNEL 21 0x00200000 CHANNEL 22 0x00400000 CHANNEL 23 0x00800000 CHANNEL 24 0x01000000 CHANNEL 25 0x02000000 CHANNEL 26 0x04000000 Table 18 Channel values 39 Appendix B ZigBee Interface parameters Subsystem Value CON DOK WN F O Subsystem Name RPC Error interface SYS interface Reserved Reserved AF interface ZDO interface Simple API interface UTIL interface Reserved Table 19 Subsystem values Description All Devices Initialized not connected to anything Discovering PAN s to join Joining a PAN ReJoining a PAN only for end devices Joined but not yet authenticated by trust center Started as device after authentication Device joined authenticated and is a router Starting as Zigbee Coordinator Started as Zigbee Coordinator Device has lost information about its parent Table 20 State values for ZDO STATE CHANGE IND command Value Name 0x00 DEV HOLD 0x01 DEV INIT 0x02 DEV NWK DISC 0x03 DEV NWK JOINING 0x04 DEV NWK R
32. ever in practice it was found to be difficult to configure instead of the expected 20 to 30 meters the range under 0 5 meter was gained The Nordic solution isn t a well known standard and it led to implementation problems The cheap Bluetooth module with data range 723 kbit s is a good solution for slotcar to base station communication but doesn t support other topologies It can have only eight nodes which isn t sufficient for future platform development ZigBee is the most expensive solution and the slowest one 250 kbit s of the aforementioned but it has the biggest range to 300 m it supports 65000 nodes and uses different topologies such as mesh star and tree 7 per o a One ZigBee Coordinator per Network ao e O o ae OO ZigBee End Device RFD or A Va P ZigBee Coordinator FFD O 8 i O ZigBee Router FFD gt Mesh Link F gt o Star Link i o o Figure 7 ZigBee Network Model Source measure feld cvut cz ZigBee is a reliable and flexible standard It defines a set of communication protocols for low data rate short range wireless networking 15 ZigBee was developed by the ZigBee Alliance This technology is used in commercial building and home automation security and healthcare Such networks have become the widely adopted wireless sensor network standard It offers a possibility to use it in the real time systems although it s not its main purpose
33. evice will include ZigBee network information such as the protocol ID and version amount of routers and end devices allowed to join the device profile that is being used and other somewhat useful information ZDO returns DEV NWK DISC status discovering PAN s to join From active scan information the router should choose the Coordinator slotcars will join to the coordinator operating on the registered channel and with the same PAN ID Two coordinators on the same channel and with the same PAN ID can t exist After ZDO sends DEV_NWK_ JOINING joining a PAN to the user application and calls a network join request it calls the MAC s association service and initiates an association request to the Coordinator The response will pass up to the network layer via the MAC s association response If the join request was successful the device will update it s NWK and MAC information tables to include the new network address PAN ID and also update the neighbour table to specify its parent the network join confirmation is proceeded to the ZDO The user receives the DEV ROUTER status device joined authenticated and is a router After joining the device will broadcast a device announcement which includes a 16 bit network address a 64 bit IEEE address and the network status The Router joining process from the Coordinator side in shown in Figure 16 When 16 3 4 CC2530 ZNP startup procedure ZDO NWK MAC PHY Router Associate ee re
34. experiment packet also includes the time in ms which determines the transmission interval for each car The Coordinator has its own transmission slot where it can send e g the new reference speed for the leader The time slot allocation is a difficult task in the system where beacon requests are disabled and we can t afford to send additional packets for timers synchronization it will slow down measurements exchange Hence the timer is enabled only in the leader vehicle The timer interrupt TIM2 has 84MHz clock Two values are required for configuration prescaler and period These parameters are 16 bit max value 65535 The timer prescaler specifies the prescaler value used to divide the TIM clock The timer period specifies the period value for reload In other words the timer _clock prescaler is timer speed and period is a distance We need to count the time by dividing these two values prescaler 1 period 1 84 10 In the actual computation the program adds 1 to each value in case the user will set them on 0 We set the prescaler to 84000 The period value is transmission_interval car count 1 where the car_count is the count of nonzero ZigBee short addresses in the address table and 1 is added for the base station So the transmission cycle time in ms will be car_count 1 transmission interval The transmission cycle time value is 65535 With the time slot 20 ms the platoon can consist of more t
35. gral term is 2 To the existing feedback control loop we added the feed forward loop To the speed regulator input is added the reference slotcar s speed sent by the leader or preceding car The final regulation model is shown in Figure 28 30 5 2 Experiments results 5 2 Experiments results The experiments are provided on the platoon which consists of 3 slotcars The leader slotcar always has a speed controller and its reference speed is set to 600 mm s The second and third vehicles have the distance controller unless otherwise stated The desired distance between cars is 150 mm Figures below demonstrate how the experiments were performed and their results red lines signify the wireless communication 1 To test the inter vehicle communication we enabled only speed regulation and set the default reference speed for the second and third slotcars to 0 The speed controller takes the predecessor s speed as an input value All vehicles successfully started and were travelling at the desired speed during the whole test Ref speed 500 mm a 77 ja ou o Speed controller Speed controller Speed controller Figure 29 The model for the inter vehicle communication testing 1000 T T 1000 90k VER s ZOOMU VIS OPT PS RN E SM 900 A PROM NY 7 800 J 800 v v a o E 9 First car n BOO E E ES J A
36. han 3000 vehicles The acknowledgements aren t requested for the packet it reduces the channel load As 28 4 2 Main program layer services mentioned before we would rather lose some data than resend them During tests it was found out that the optimal size of the time slot is 20 ms At this transmission speed packets go in the right order Smaller time slot size will cause the following situation where one car will transmit several packets one by one Other vehicles will wait for a clear channel store measurements information in the ZNP transmission queue and then transmit everything at once including the old measurements It s important to emphasize that packets will be stored in the ZNP not in the Message handle layer MHL transmission queue The request to transmit data goes directly from the Main program layer MPL to the Hardware layer HWL It saves processor time Although the whole transmission cycle time is strictly determined the gap between each node transmission varies between 12 and 30 ms The archived result is that four devices three slotcars and the base station can share information with each other 12 times per second To stop the experiment the user should send the stop command Table 11 The regulator type is switched to NON and the pwm duty cycle is set to 0 Before starting the new experiment the user should again set necessary parameters Table 11 Stop msg type length dest_ addr
37. hows that channels 15 20 25 and 26 are not overlapped with Wi Fi channels so it s safe to use them For slotcar communication we will need only one channel so we can choose the most suitable one viz 15 The Coordinator can choose multiple channels from the aforementioned by multiple 3 4 CC2530 ZNP startup procedure 22 MHz Channel 1 Channel 6 Channel 11 2400MHz 2412 MHz 24 37 MHz 2462MHz 2483 5MHz Zigbee Channel 11 2 MHz 4 Channel 26 k 2405 2410 2415 2420 2425 2430 2435 2440 2445 2450 2455 2460 2465 2470 2475 2480 2483 5MHz 2400MHz Figure 11 Wi Fi and ZigBee Overlapping Channels in 2 4GHz ISM Band 16 p 7 calls of the channel configuration command perform energy scan and establish the network on it 3 PAN ID The application processor sends ZCD_NV_PANID SREQ command Table 29 to configure the address of a network within a channel Personal Area Network Identifier PAN ID was implemented for the logical separation of ZigBee nodes located in the same physical channel or vicinity ZigBee PAN IDs are 16 bit numbers that range from 0x0000 to 0x3FFF The OxFFFF PAN ID specifies that the application requests the ZigBee stack to obtain the identifier dynamically by detecting other networks operating in the same frequency channel and choosing a PAN ID that does not conflict with theirs However we register only o
38. ibed in the thesis of Jan Moravec 6 There are shown results of testing distance control algorithms on the car platoon Results of the current project were tested with the android application which was written by Alexander Dube A more detailed description of provided experiments are placed in the final chapter 2 CC2530 communication processor The CC2530 is an IEEE 802 15 4 compliant true System on Chip by Texas Instruments It supports the ZigBee ZigBee PRO and ZigBee RF4CE standards The CC2530 offers a high performance microcontroller core up to 256 KB Flash 8 KB RAM for ZigBee profiles and an extensive peripheral set including 2 USARTS and 21 general purpose GPIO pins 7 It also has very low power consumption excellent receiver sensitivity and robustness to interference In comparison with the previous generation the CC2430 the CC2530 supports ZigBee PRO mesh network applications 2 1 The secondary radio board implementation The CC2530 requires very few external components The secondary radio board contains ZigBee CC2530 communication processor ABM3B 32Mbhz crystal TLV70030DCKT linear regulator debug connector SPI connector RF IC Figure 3 Connecting the secondary radio board to the main slotcar board To check the board functionality we connected the 3 3V and GND pins to the power supply The normal current draw for the secondary radio board is 0 3 A Some of boards showed 0 or high 0 8
39. ing values e measured speed e front distance e back distance 6 o speed regulator output distance regulator output Table 10 States packet MY_ADDR 100 0 no ACK next node_addr reg speed _Y 15 22 23 26 27 30 reg distance VY distance front distance back The next node address choice depends on how the transmission is executed in the position order Figure 26 or in the car number order Figure 27 When using the position order the following vehicle will broadcast next The position determination must be done beforehand If using the car number order the slotcar will choose the car number below its own in the address table and with nonzero ZigBee short address The leader starts from 21 4 Communication infrastructure Timer interrup a p Coordinator gap Figure 26 Data exchange in position order the beginning of the table and can t choose its own address If there are no active addresses left the next car field will have a Coordinator address value The model with interrupt is reliable In case of the data becoming lost the data exchange will be restored by the leader Coordinator q Leader sap Figure 27 Data exchange in car number order We use the TDMA Time division multiple access method to order the data flow The number of the vehicles remains constant during the experiment so the information can be transmitted in suitably fixed intervals The start
40. is project a falling edge detection is used To distinguish SREQ and POLL commands the MRDY pin value is checked also At the interrupt moment it s low for SREQ command the data need to be sent and high for POLL command the data need to be received 3 3 CC2530 ZNP power up procedure In this section the power up process of the CC2530 ZNP is described We followed the recommended approach as specified in the CC2530ZNP Interface Specification 21 All below mentioned commands are placed in the Appendix C 1 The application processor and CC2530 power up 2 The application processor initializes its SPI interface and configure EXTI Linel SRDY and disables interrupt 3 The application processor sets CC2530 RESET pin low holding CC2530 in reset 4 The application processor sets the CC2530 CFGO low internal RC oscillator and CFG1 high SPI transport mode 5 The application processor sets CC2530 RESET pin high and CC2530 starts operation 6 The SYS_RESET_IND Table 22 message is sent by the CC2530 network processor to the application processor using the POLL command This command ensures the proper reset of the radio and brings the radio into configuration mode The ZNP response includes a reason value which indicates why the network processor was reset It can be one of the following values e power up e external the RESET signal was driven low for a time greater than 200 ns e watch dog a hardware fault or program error
41. l Area Network Physical layer Radio Frequency Integrated Circuit Reduced Function Device Serial Peripheral Interface ZigBee Coordinator ZigBee Development Kit ZigBee Device Object ZigBee End Device ZigBee Home Automation ZigBee Network Processor ZigBee Router 1 Introduction The main goal of the project is to implement a communication infrastructure for platoon control algorithms in which vehicles share their states with the others To do it we need to choose a suitable communication standard and implement the solution into the slotcar This thesis describes the implementation process which includes the study of the vehicle hardware and software the SPI initialization detailed research on the ZigBee communication standard and creating the ZigBee hardware driver which provides the transmission and reception services Different algorithms were implemented in the main program layer as well e g position determination in the platoon address information or parameters setting 1 1 Motivation The Super Smart Vehicle System SSVS was created to make multiple improvements such as the following reduce car accidents optimize speed and handling increase fuel efficiency and prevent traffic jams The SSVS was introduced by JSK Association of Electronic Technology for Automobile Traffic and Driving in Japan in 1990 1 The SSVS consists of 4 fields information systems for a single vehicle information systems for inter vehic
42. les information systems for vehicle to road relations and studies on vehicle to driver relations 2 Figure 1 Autonomous Vehicle Design Source www nuvation com One of the main goals of this work is to extend the already existing slotcar platoon model 3 to the cognitive vehicles platooning where vehicles are coupled together by wireless communication Previous works were focused on creating the controllers to follow the reference distance and speed based only on sensor measurements Using the preceding or the leading vehicle measurements in a combined feedback and feed forward loop improves the response to the preceding car and minimizes the control signal value The motivation was not only to improve the existing platform but try different algorithms on it which could hardly be realized without data exchange For example car s position identification in the platoon 1 Introduction Through the course of this research project further knowledge about microcontrollers and communication protocols especially ZigBee was gained 1 2 The Slotcar platooning project This project was started in the Department of Control Engineering by the AA4CC group 3 The goal of this work is to create a slotcar platoon model for testing distributed control algorithms on it The main part of the system is a slotcar by Carrera It is equipped with custom made electronics The following are the most important components placed on the main board
43. lue in case of Coordinator The list of ZDO states is placed in the table 20 C 3 Transmit data SREO Table 36 COMMAND AF DATA REQUEST Length 0x0A 0x6D Cmd0 0x24 Cmd1 0x01 DstShortAddr LSB DstShortAddr MSB DestEndpoint 0x09 SrcEndpoint 0x09 ClusterID 0x34 TransID 0x01 Options 0x90 Radius 0x04 43 Appendix Commands for CC2530 ZNP configuration For no ACK data request the options field has the 0x80 value The data field can contains O to 99 bytes of data without any security Table 37 RESPONSE AF_DATA REQUEST Length 0x01 Cmd0 0x64 Cmd1 0x01 C 4 Receive Data POLL Table 38 RESPONSE AF_INCOMING_MSG Length 0x11 0x74 Cmd0O 0x44 Cmd1 0x81 Groupld Groupld ClustedId 0x34 ClusterId 0x12 SrcAddr SrcAddr SrcEndpoint 0x09 DestEndpoint 0x09 WasBroadcast LinkQuality TimeStamp TransSegNumber The data field can contains 0 to 99 bytes of data without any security C 5 Get device information SREO The 0x02 parameter is used CC2530 returns it s short address See the full list of parameters 21 Table 39 COMMAND ZB GET DEVICE INFO Length 0x01 Cmd0 0x26 Cmd1 0x06 Param 0x02 Table 40 RESPONSE ZB GET DEVICE INFO Length 0x09 Cmd0 0x66 Cmd1 0x06 The value always has 8 bytes in length even though the actual value may be smaller in size The remaining bytes can take any value 44 Appendix D The atta
44. medium If another node transmits other nodes wait for a random time The Guarantee Time Slots GTS uses a centralized node which gives slots of transmission time to each node For better coexistence DSSS Direct Sequence Spread Spectrum is used It extends the transmitted signal over the larger bandwidth than is needed The resulting signal appears as a noise signal and shows greater resistance to interference 20 The MAC provides the interface between the PHY and the next higher layer above the MAC NWK layer generates beacons synchronizes the device to the beacon employs the CSMA CA for channel access manages GTS channel access provides personal area network PAN association and disassociation services and support for security 16 bit Frame Check Sequence based on the Cyclic Redundancy Check CRC is used in the IEEE802 15 4 to detect if any of bits were received incorrectly Two types of physical devices are provided in the IEEE 802 15 4 wireless network full function devices FFDs and reduced function devices RFDs FFD Devices can perform all available operations within the standard such as coordination tasks sending tasks and routing mechanism RFD Devices have limited capabilities and can talk only with an FFD device The Network layer NWK and Application layer APL layers are defined by the ZigBee standard and will be described later 3 2 Interaction between the ZNP and the application processor The comm
45. n processor and starts the device in the network StartDelay parameter specifies the time delay before the device starts in milliseconds We didn t set any delay so the slotcars start to look for the network immediately after the configuration The response status value can be 0x00 for restored network state 0x01 for new network state or 0x02 for leave and not started Network formation After the user requested the device to start the CC2530 network processor will send to the application processor the ZDO STATE CHANGE IND responses Table 35 The ARM should send POLL commands read responses and check the ZDO status The status shows in which state a network configuration is Figure 14 shows how the Coordinator forms the network User app ZDO NWK MAC PHY Request to form Form PAN Perform Energy the network passive scan scan Scan confirmed Perform Beacon active scan request Beacon response 1 o Beacon reguest Beacon Scan response 2 Formation confirmed confirmed DEV ZB COORD status Figure 14 NWK formation Source 24 The NWK layer is responsible for managing the network formation and routing First the ZDO calls the network formation function The coordinator provides the energy scan and will choose from the channels with the lowest amount of traffic and the fewest networks In our case the coordinator will start operate on the channel chosen by the user Then the ZDO broadcasts a beacon request a packet
46. ne channel 15 and non default PAN ID 0x0003 for the Coordinator and the same for Routers to prevent the joining to the wrong ZigBee network operating on the same channel or with the same PAN ID 4 Simple descriptor The highest protocol layer in the ZigBee wireless network the APL layer hosts the application objects p 22 15 Application objects are developed to control and manage protocol layers in a ZigBee device There can be 240 application objects in a single device Figure 12 Each application object has a unique endpoint address endpoint 1 to endpoint 240 The ZigBee Device Object ZDO endpoint address is zero Its function is to be the network manager Application layer Endpoint 0 Endpoint 1 Endpoint 2 Endpoint 240 Application Application Application 20O object object object Figure 12 The Application Objects on the APL layer The endpoints are the main interface between the user application and the stack The user application can manage the network by making requests and handling callbacks to this object Hence the software should be the same for all slotcars 13 3 ZigBee standard specification 14 and we don t need to separate received information for different applications it s very important to configure the same endpoint to prevent the confusion in message addressing Figure 13 shows the Application object structure The obligatory part of the Application object build up is to configur
47. ng and the experiment states Table 5 Set parameters packet msg type length dest addr Payload 0 0x00 0x44 ZigBee log addr 1 ACK AL ae byte e Ge bytes count param number value param number value Position determination Except for the leader slotcar the rest of the platoon doesn t know its position By sending the determine position command Figure 6 the user will obtain packets with position information from each car Table 7 When the leader receives this command it broadcasts the position packet Table 7 and checks if there is another car behind If not it will broadcast the determine position finished packet Table 8 Regardless 25 4 Communication infrastructure the result the car will change its position by setting the pwm duty cycle to 0 5 value for next 8000 program cycles it will travel approximately 600 mm Other vehicles after receiving determine position command save the initial front distance value and start to compare it with the updated value each program cycle The distance change that could be reliably detected by the car is 50 mm The vehicle which detects the front distance change increases the position number from the last received position packet and repeats the same procedures as the first slotcar except one step It sets pwm duty cycle not for 8000 program cycles but until the front distance is less than the reference distance chosen by the u
48. nowledgement I would like to offer my sincerest gratitude to my supervisor Ing Ivo Herman who lead me through this project helped me with the development and writing of this thesis T d like to thank Ing Dan Martinec and Bc Martin L d for valuable advises I am also grateful for the support of my family and friends Declaration I declare that I worked out the presented thesis independently and I quoted all used sources of information in accord with Methodical instructions about ethical principles for writing academic thesis Prague 22 2015 Abstract This research focuses on the preparing of the inter vehicles communication system for the slotcar platoon model T he communication is implemented as a feed forward signal and improves the existing cascade feedback controller which uses only the onboard sensors measurements The slotcar platoon model consists of three slotcars provided by Carrera Each vehicle is equipped with ARM Microcontroller and radio board with CC2530 wireless MCU which runs full ZigBee Pro solution This thesis also deals with the ZigBee network processor configuration and contains the description of the ZigBee hardware driver implementation Being equipped by wireless communication capabilities slotcars communicate with each other and the base station It allows to control vehicles wirelessly read out data during the experiments and identify car s position in the platoon Keywords ZigBee CC2530 CC2530ZN
49. onnect from the track Some slotcar s parts may have expired as well It s also important to remember that we configured the communication chip inside slotcar as Full Functional Device Router and during constant data exchange its power consumption can t be neglected To prevent it in the next slotcar model a supercapacitor is used for energy storage It allows to hold the car functional for 5 s without energy supply 5 2 2 Future work The results gained in this project motivate to continue working on it The new car model should remove energy supply problems and provide new sensors It will allow better data analysis Beyond the verifications of aforementioned experiments we would like to test the communication model shown in Figure 39 The speed regulation cycle is faster than the distance one Hence it would be even more interesting to see how communication influences the output of the speed regulator and if the communication speed is sufficient reference slotcar s pwm duty cycle 0 1 Duty cycle 0 1 Speed reference speed mm s Speed regulator Slotcar model Figure 39 The speed regulation model with feed forward loop realized by wireless data exchange The communication analysis could have been realised in this project if there was a time to encode the timeStamp field in the received packets Unfortunately there is no information about it in the CC2530 ZNP documentation 21
50. ons e zigbee_conf zigbee_settings settings this function includes the SPI initialization interrupt configuration and CC2530 ZNP power up and start up procedures The zigbee _conf is called in the main function As an input it requires the zigbee _settings structure with following variables device logical type ZigBee logical address channel 15 PAN ID 0x0003 pall 4 Communication infrastructure 22 pointer to the function that should be called when the HW layer has data for MHL layer Slotcars are programmed as Routers to have the possibility to directly communicate with each other and the base station The CC2530 evolution model connected to the SmartRFO5EB board has a Coordinator role Many address types were already mentioned Here is a quick summary Logical address or slotcar number The current platform consists of 10 slotcars As previously mentioned every slotcar has its number with a range of 1to 10 Three of cars have the CC2530 communication chip implemented 5 6 and 10 ZigBee short address It s the 16 bit short address assigned to every Router slotcar by the Coordinator base station This address type was described in the chapter 3 4 1 ZigBee logical address It s the number in range of 101 0x65 to 110 Ox6E 99 0x63 is for the Coordinator and 100 0x64 is for broadcasting To determine the slotcar ZigBee logical address to the car number 100 is added ca
51. p www freaklabs org index php Blog Zigbee Zigbee Network Layer Tutorial Part 1 The Tx Data Path html visited on 03 01 2015 47
52. put determined by the predecessor s speed 1 200 T T T T 300 T T T T measured speed 1000 p 250 second car distance regulator output third car N o o 600 speed mm s distance mm 8 o o T i 200 5 10 15 20 25 0 5 10 15 20 25 time s time s a Third car measurements b Second and third cars front distances Figure 36 The predecessor following experiment results 5 Finally we demonstrated the capability to change the leading vehicle reference speed during the experiment The platoon configurations are the same as in the previous step 700 T 1200 r r 1 leader speed mm s 600 second car front distance mm 10005 second car speed mm s third car front distance mm 210 0 na P third car speed mm s 2 800 D D 2 400 z D 600 gt 2 300 E E 400 2004 A ee 100 SP 200 0 j i i i i 0 j i i i i 0 5 10 15 20 25 0 5 10 15 20 25 time s time s a Leader and second car measured speeds b Second and third cars measured speeds Figure 37 Reference speed change during the experiment 33 o Experiments 5 2 1 Distance error Figure 38 shows the main project result It demonstrates that depending on the feed forward loop presence the distance controller settling time differs
53. quest Associate mn response confirmed Figure 16 The parent side of the join process Source 24 a MAC association request arrives to the potential parent it sends an indication to the network layer that a device is trying to join The potential parent will then look through its neighbour table to see if the 64 bit IEEE address of the joining device already exists If not the parent allows devices to join it and adds the device to the neighbour table generating a new 16 bit network address for it Then this information is sent out as a MAC associate response If it exists then the parent sends the same network address which was generated when requesting device was asked to join the first time Data Transfer After the power up and startup procedures devices can start to transmit and receive data When the interrupt on SRDY line is received we check the MRDY level to assure that it s a POLL command The user application sends zero payload and receives from the network processor AF_INCOMING_MSG response Table 38 This response contains received data The data field can contain O to 99 bytes of data without any security The Application processor uses AF DATA REQUEST SREQ command Table 36 to build and send a message through the AF layer Besides the address and the destination endpoint the user can set options such as bypass routing request APS acknowledgement for this packet etc The options field is organized
54. r also It s necessary to bind the car number with its short address Hence the address table is implemented When the short address is assigned the device adds it to the address table on the ZigBee logical address 100 position and then broadcasts it with the message type 0x3C When the packet with this message type is received the device adds the received logical and short addresses to the address table and rebroadcasts its own address with the message type 0x3D When the packet with 0x3D is received the 23 4 Communication infrastructure device adds received addresses to the address table without rebroadcasting its own Figure 24 shows the described algorithm Data received Data frame Save addresses the msg type y Save addresses Broadcast own address packet Figure 24 Addresses exchange Table 1 Address packet 0x3C 0x3D MY ADDR 100 1 ACK short addr LSB short addr MSB ZigBee log addr To ensure that the address packet will be received by all active slotcars and the base station acknowledgement is required The payload 0 indicates if the ACK is on 1 or off 0 Slot car parameters configuration After the slotcar has announced itself in the network and has entered the waiting state the base station sends the get parameter packet Table 3 to determine slotcar default parameters number parameter s name range data type 1 regulation type non speed
55. r number 100 In the previous chapter 3 3 were described more configurable parameters than in the zigbee_settings structure Every ZNP initialization and configuration step has its own function These functions are placed in the zigbee _conf The parameters such as the application endpoint or the application profile could be changed there zigbee transmit data Packet packet the purpose of this function is to build and send the data through AF layer The Packet structure is shown in Figure 22 Bytes 1 1 1 1 message payload destination source payload type length address address Figure 22 Packet structure The destination and source addresses help to distinguish the destination or the source HW layer The ZigBee HWL will be called for data transmission if the destination address value will be equal or more than 99 The same for the received data and the source address The message type determines what function must be called In the main function it is possible to register known callbacks The Zigbee _transmit _data transmits data regardless of the msg _type value ZIGBEE_ISR this is the EXTI15 _10 _IRQHandler interrupt service routine handler for pins connected to lines 10 to 15 It manages the data reception and passes payload the data field to the zigbee _received _data function zigbee_received_data int received_payload this function checks the first received _payload byte which contains the message type
56. rational USB device that can be plugged into a PC The dongle comes preprogrammed to work as a Packet Sniffer It can be used together with SmartRF Packet Sniffer application 12 This application was used during the software development to see data exchange between slotcars To program the ZNP image hex file with the SmartRF Flash Programmer 13 onto 2 2 Prototype model for the ZigBee driver development Figure 5 CC2530 ZigBee Development Kit Source 11 a CC2530EM the EM needs to be plugged directly into one SmartRFO5EB board The hex file used in this project is placed in TexasInstruments Z StackHome1 2 0 Projects zstack ZAP ZNP HexFiles CC2530ZNP Pro hex The detailed instruction how to connect and program devices is placed in Z Stack User s Guide For CC2530 ZigBee PRO Network Processor Sample Applications 11 STM32F401C DISCO The CC2530EM interfaces through an SPI to the same ARM processor as placed on the main slotcar board The ARM processor is placed on the STM32F401C DISCO board It s a very suitable solution for the project start It s possible to connect 4 evaluation boards per SPI and 2 modules are enough to create a network and test the communication between them ON9 o ODSIG ITOPAZEWILS 12 De A Figure 6 STM32F401C DISCO Source http www wvshare com The development was started with a STM32F407 DISCOVERY board Later DISCOVERY board was replaced with a DISCO board The main differ
57. s the delay function from STM32 examples It s not properly calibrated so the delay time can differ for other MCU types 3 4 CC2530 ZNP startup procedure After the power up procedure some mandatory commands should be executed to configure the ZigBee device 12 1 Logical type The application processor sends ZCD NV LOGICAL TYPE SREG command Table 27 to configure the device role to the CC2530 ZNP device There are three types of logical devices in a ZigBee network coordinator ZC router ZR and end device ZED e A ZC is the main device it scans the RF environment chooses a channel and a network identifier PAN ID forms the network and might bridge to other networks There can t be two coordinators in the same network e The ZR device passes data from other devices and allows child nodes to connect to it The ZC and ZR devices have the radio always on e The ZED talks to its parent node it can t relay data from other devices These devices have a sleep mode in order to conserve power The value parameter can be set 0x00 for coordinator 0x01 for router and 0x03 for end device Channel The application processor sends ZCD NV CHANLIST SREQ command Table 25 to configure a physical channel of the RF spectrum There are 16 available channels Although as was previously mentioned the IEEE 802 15 4 adopts many mechanisms for coexisting with other 2 4GHz radio products we can adopt additional measures Figure 11 s
58. ser or the default one We need to have a reference distance between slotcars to prepare the platoon for the experiment The aforedescribed algorithm is shown in Figure 25 The determine position step isn t obligatory It can be skipped if the information about car position isn t required for the experiment Position packet Determine position Am first N OP HAS Save position number Last received position number Yes Broadcast position Am last Move distance d No Broadcast determine position finished y Move distance d Figure 25 Process of position determination Table 6 Determine position packet msg type length dest_ addr 0x5A Table 7 Position information MY_ADDR 100 1 ACK 4 2 Main program layer services position number Table 8 Determine position finished msg type length dest addr Payload 0 0x5B MY ADDR 100 1 ACK i position number Experiment The user begins the experiment by sending the start experiment packet Table 9 Table 9 Start experiment msg type length dest addr Payload 0 0x3 time me When the leader car receives the start packet it activates the timer interrupt and starts to broadcast states packet at specifically timed intervals This packet includes position number measurements and the address of the node which must broadcast as next The slotcars measure and broadcasts the follow
59. struments SmartRF Protocol Packet Sniffer URL http www ti com tool packet sniffer visited on 14 01 2015 Texas Instruments SmartRF Flash Programmer URL http www ti com tool flash programmer visited on 14 01 2015 UM1669 User manual Discovery kit for STM32F401 line STMicroelectronics 2013 Shahin Farahani ZigBee Wireless Networks and Transceivers 2011 Atmel Corporation Atmel AT02845 Coexistence between ZigBee and Other 2 4GHz Products URL http www atmel com Images Atmel 42190 Coexistence between ZigBee and Other 24GHz Products _ AP Note _ AT02845 pdf visited on 06 05 2015 Triple Security in ZigBee Link Network and Application layer Encryptions URL http www libelium com security in zigbee networks visited on 30 04 2015 Triple Security in ZigBee Link Network and Application layer Encryptions URL https hal archives ouvertes fr inria 00187849 document visited on 30 04 2015 Wikipedia IEEE 802 15 4 URL http en wikipedia org wiki IEEE_802 15 4 visited on 30 12 2014 Wikipedia Direct sequence spread spectrum URL http en wikipedia org wiki Direct sequence_spread_spectrum visited on 08 05 2015 CC2580 ZNP Interface Specification Texas Instruments 2010 2013 30 31 Bibliography Inc Texas Instruments Z Stack Developer s Guide 2006 2012 Freaklabs Zigbee Network Layer Tutorial Part 4 Network Management 1 URL http www freakla
60. the MRDY level is changed first SREQ command After both processors show that they are ready the application processor starts to transmit data If it has no data to send the data request is initialized by the network processor POLL command the application processor transmits zeros The AP waits for the ZNP ready status SRDY high and starts to receive data Each data unit has a Command field It helps to determine the purpose of the following payload It can 10 3 3 CC2530 ZNP power up procedure be the response to the command e g the application processor sends the request to establish the network the ZNP responds with successful or unsuccessful status Or it could be received data from another node Figure 10 shows the general frame and the command field formats The Type field is 0 for POLL 1 for SREQ 2 for AREQ and 3 for SRSP commands The ID field maps to a particular interface message The Subsystem Values and Names are placed in Table 19 in Appendix B Bytes Bits CmdO Cmd1 1 2 0 250 7 5 4 0 7 0 a b Figure 10 a General frame format b Command Field Source 21 STM32F4 External interrupts To process the incoming data we need to configure the SRDY pin to be an interrupt STM32F4 has 7 interrupt handlers for GPIO pins handler for pins connected to line 0 4 5 9 10 15 For PC1 SRDY pin EXTI1_IRQHandler is used It s possible to configure if a falling or rising edge will be detected In th
61. ting regulation model was added the feed forward loop realized by wireless data exchange Vehicles receive predecessor s or leader s speed through a wireless communication channel The provided experiments show the smaller distance controller s corrections and 4 times faster settling of the reference distance The results of this work proves the benefits of inter vehicles communication The platoon consists only of three cars equipped with the CC2530 SoC hence we can t say how the topology of information flow influences the controllers work The new slotcar model currently being development promises better hardware functionality The information gained through this research can be used for the future platform development 36 Appendix A Hardware specifications Table 13 Connection of Kit CC2530 and Disco Kit per SPI1 Pin CC2530 Debug Pin CC2530 P1 P10 STM32pin PA7 PA6 PA5 PC5 PCO PC1 PC2 PC3 PC4 Table 14 Connection of Kit CC2530 and Disco Kit per SPI2 Pin CC2530 Debug Pin CC2530 P1 P10 STM32pin 37 Appendix A Hardware specifications Table 15 the CPU clock speed parameters system_stm32f4xx c STM32F4 Discovery 168 MHz STM32F401C DISCO 84 MHz 336 define PLL_M facie PLL_Q T Table 16 Connection of CC2530 and Secondary Radio Board Connector CC2530 ZNP signal CC2530 Pin Secondary Radio Board Pin 38 Appendix B ZigBee Interface paramet
62. unication between the CC2530 ZigBee network processor and the application processor the main slotcar processor is provided via SPI The slotcar processor runs the application code which uses CC2530 ZigBee Network Processor ZNP Application Program Interface The CC2530 ZigBee Soc runs full Z Stack solution ZigBee Pro and provides connectivity with the IEEE 802 15 4 Radio Figure 9 shows the interaction process between the ARM processor and the network processor 3 2 1 Initializing SPI The first thing that should be done is SPI initialization The CC2530 ZNP pin configuration is described in CC2530ZNP Interface Specification 21 The SPI Interface must be configured with following parameters e SPI master e Bit order MSB first e Clock speed must be greater than 500kHz and less than 4 MHz we set SPI frequency to 1 35 MHz e Clock polarity 0 and clock phase 0 on CC2530 All aforementioned parameters must be set during SPI initialization It s necessary to assign pins explicitly to the SPI interface enable all the clocks and the SPI Interface 3 ZigBee standard specification Application Processor ee Application nem CC2530 ZNP API EZ SPI UART USB interface ZigBee stack and 802 15 4 MAC IEEE 802 15 4 Radio Figure 9 Interaction between the AP and the ZNP Source 11 For communication are required RESET CFGO CFG1 MISO MOSI CS SCK SRDY and MRDY signals e RESET is used to hard reset the module
63. vantage it s difficult to debug There are several reasons for this e The electronics are custom made there are no guarantees that it will work correctly Therefore it s hard to tell if the problem is in the code or in the hardware e Constantly soldering and unsoldering of debug wires can have a bad effect on the other working parts e During the configuration phase before the device starts in the network the communication between ARM and CC2530 processors can be seen only on the oscilloscope Hence the evaluation modules were used as a prototype model and as a study platform for ZigBee solution and configuration It was used as a base station during the project development as well CC2530 ZigBee Development Kit The CC2530ZDK is a compliant System on Chip solution based on the CC2530 system on chip SoC and contains all hardware software tools and documentation necessary to build a ZigBee compliant product 10 The SmartRF05EB evaluation board is the main board in the kit with a wide range of user interfaces The EB is the platform for the evaluation modules EM and can be connected to the PC via USB to control the evaluation module The CC2530EM evaluation module contains the RF IC necessary external components and matching filters for getting the most out of the radio The module can be plugged into the SmartRFOSEB The EM is used as a reference design for a RF layout The CC2531 USB Dongle is a fully ope
64. y should be retransmitted All slotcars and the base station are in range of each other that means that they all have each other s address in the neighbour table The data flow is restricted to the highlighted area APS NWK Destination address The address is in Get the frame to its Yesa gt is broadcast the neighbour table as destination in one hop Yes Choose the broadcast audience and send the data The address is in Get the frame to Yes the routing table its next hop No y Get the frame to Make a route discovery Successful p gt i its next hop Unsuccessful Figure 18 Data Transmission on NWK Layer When a frame is received it s stored and the indication is sent to the MAC layer The MAC layer takes the frame up decodes the MAC header and if it s a MAC data frame passes it up to the NWK layer using the Data Indication service 18 3 5 Summary C d Decode Frame received koi frame the command ID Data frame Mesh route discovery link maintenance rejoining leaving the network NWK Doesn t address match matches Broadcast Send the frame up to the next layer y Send it up Find the next hop address to the next layer Decrementthe frame radius value and retransmit if it s necessary Figure 19 Data Reception on NWK Layer 3 4 1 ZigBee addressing Each device in a network has a unique address The IEEE 802 15 4 uses two methods

Download Pdf Manuals

image

Related Search

Related Contents

SL450 - CNET Content Solutions  pdf  Chamberlain WD822KS User's Manual  Manual de Instruções  C70/4 C70/10 C70/15 C70/24 C70x2/24  Vertikal Ballenpresse DIXI 60 S/80 S - DIXI Press  Energizer PIR2AAE User's Manual  high power audiophile amplifier with dac and preamp    Large-screen Panels for Any Occasion  

Copyright © All rights reserved.
Failed to retrieve file