len
Transcription
len
Energooszczędne układy radiowe Contrans TI Mariusz Kaczor Sylwester Nowocień Piotr Tadrzak Texas Instruments – kilka słów o firmie Mariusz Kaczor Sylwester Nowocień Piotr Tadrzak Mikrokontrolery i procesory Applications Processors & DSP Microcontrollers 32-bit ARM 32-bit Real-time MSP430 ARM C2000 Ultra-low Power Industry Std Low Power Fixed & Floating Point Up to 25 MHz <100 MHz Up to 150 MHz 16-bit Flash 1KB to 256KB Flash 64KB to 1 MB Applications Processors DSP/ARM Video SoC USB, ENET, ADC, PWM, SPI PWM, ADC, CAN, SPI, I2C Measurement, Sensing, General Purpose Host Control Motor control, digital power, lighting $0.49 to $9 $2 to $8 $1.50 to $20 High-Perf Single/MultiCore DSP C6000, OMAP3, DM3x, DM64x, C5000, C6000, OMAP-L1, C64x+ A8, ARM9 C64x+, ARM9 ARM9, C64x+, C67x, C55x Low Power, Leadership DSP Video optimized Power efficient perf High perf, GPP, Performance accel. & periph and value Open Source S/W 2.01 DMIPS/MHz 4800 MMACs/ 1.07 DMIPS/MHz 2400 MMACS MMU MMU, Cache Up to 256 KB RAM USB, LCD, MMC, EMAC VPSS, USB, EMAC, MMC USB, EMAC, PCI, McBSP Lin/Win O/S User Apps Lin/Win O/S + Video, Imag, MM Comm, Audio, Signal Proc. $8 to $35 $12 to $65 $4 to $99 Flash 32KB to 512KB Analog I/O, ADC LCD, USB, RF Low-Power Processors 48000 8-bit MMACS Up to 3 MB L2 Cache 1G EMAC, SRIO, DDR2, PCI-66 Comm, Military, Industrial/ Medical Imaging $99+ Mikrokontrolery MSP430 ● • 0.1uA w trybie powerdown • 0.8uA w trybie standby • 250uA / 1MIPS • start zegara w <1us • upływność portu <50nA • Zero-power BOR ● • Signal Chain on Chip (SCoC) • buforowane porty komunikacyjne i przetworniki A/C • wielofunkcyjne peryferia ● ● ● • budżetowe narzędzia - eZ430 - Emulator za 20$ - eZ430-RF2500 – narzędzie do komunikacji bezprzewodowej za 49$ • szerokie portfolio przykładowych aplikacji • optymalizowana dla języka C • łatwość adresowania • brak wady pojedynczego akumulatora • ortogonalność adresowania wyjątkowo niski pobór energii RISC 8/16/18/25MHz bogate peryferia (ADC 10/12/16, DAC12, DMA, RTC) wkrótce USB 1.1 slave (kwiecień 2009 MSP430F55x) MSP430+radio (w produkcji lato 2009 MSP430F6xx/CC430) MSP430-zastosowania • mierniki poziomu cukru i cholesterolu, termometry, EKG, monitory pracy serca, pulsoksymetry • napięcie, natężenie prądu, temperatura, ciśnienie, współczynnik pH • mierniki energii • wodomierze • gazomierze • zdalny odczyt opomiarowania • infrastruktura opomiarowania • podzielniki ciepła • systemy alarmowe, czujniki dymu • domowa automatyka i sterowanie • bezprzewodowe śledzenie • czujniki bezprzewodowe • telefony komórkowe, aparaty cyfrowe, odtwarzacze MP3 • zegarki sportowe, czujniki • szczoteczki golarki • zdalne sterowanie • klawiatury, myszy bezprzewodowe MSP430F54xx Product Overview ● ● ● ● ● ● ● ● ● ● ● ● Low Supply-Voltage Range: 1.8V to 3.6V Ultra Low Power Consumption ● Active Mode: 165uA/MHz ● Standby mode (RTC Mode): 2.6uA ● Off Mode (RAM Retention): 1.6uA ● Shutdown Mode: 0.1uA Wake-up in <5us (From Standby Mode) 16-bit RISC Architecture ● Extended Memory (Up to 256KB Flash/16KB RAM) Unified Clock System ● FLL, VLO, REFO, 32kHz Crystals) Flexible Power Management System ● Integrated LDO w/ programmable regulated core supply voltage ● Supply voltage supervision, monitoring, and brownout 32x32-Bit Hardware Multiplier ADC12_A, RTC_A, WDT 4 USCI, 3-Ch DMA, Timer0_A5, Timer1_A3, Timer_B7 Temp range: -40 to 85 deg C 80-pin QFP, 100-pin QFP, 113-ball BGA package options YC/VR 01/30/2008 6 Product Overview of MSP430F55xx Full-speed USB (12 Mb/s) ● Low supply voltage range ● 1.8V to 3.6V ● Ultra low power consumption ● Active mode: 160uA/MHz ● Standby mode with RTC:1.5uA ● Wake-up in <5us ● Up to 128KB flash memory ● Up to 8KB +2KB RAM ● 2K data buffers (System RAM when USB module is disabled) ● Flexible power management system ● Fully integrated LDO with programmable regulated core supply voltage ● Supply voltage supervision, monitoring, and brownout ● Unified clock system (UCS) ● Other peripherals: ● ADC12_A, Comp_B ● 2 USCI, 3-ch DMA ● MPY 32x32 ● Timer0_A5, Timer1_A3, Timer_B7, Timer2_A3 ● Up to 60 GP I/O ● 80-pin TQFP, 64-pin QFN and 113-ball BGA YC/VRoptions 01/30/2008 ● Temp range: -40 to 85 deg C ● 7 Procesory DSP TMS320C2000 ● ● ● ● ● ● sterowanie przetwarzaniem energii systemy baterii słonecznych modemy telekomunikacyjne sterowanie silnikami Czujniki Nowa rodzina - Piccolo!!! Piccolo Family Scaleable Solutions • – Single Supply With Integrated Reset + Brown Out Detection – Reduce Support Pins, More Functional Pins – Smaller Packaging – Lower Power F2803x Performance TM 128kB Flash 60MHz w/ CLA F2802x TM 64kB Flash 60MHz 64kB Flash 40MHz 128kB Flash 60MHz w/ CLA w/out CLA w/out CLA 64kB Flash 60MHz w/ CLA 64kB Flash 60MHz w/ CLA w/out CLA w/out CLA 32kB Flash 60MHz 32kB Flash 40MHz 38-pin 48-pin 64-pin 80-pin Lower Device & System Cost • Flexible Options – Option with and without CLA based on performance requirements F2803x MCU Family Piccolo B Performance 60 MHz C28x 32-bit CPU Control Law Hardware Accelerator Full software compatibility with previous generations Features Core C28x 32-bit CPU Single cycle 32-bit MAC 60MHz Performance Control Law Hardware Accelerator Memory Flash: 64, 128 KB RAM: 20 KB Applications include: Air Conditioners, Washing Machine, Induction Cooking, Compressors, Digital Power, LED Lighting, Electric Power Steering, Hybrid Battery Management, Radar Collision Avoidance, Audio, Advanced Sensing TMS320F2802x Memory C28x 32-bit CPU 60 MHz 32x32-bit Multiplier RMW Atomic ALU Control Law Accelerator Highlights Single 3.3V supply High accuracy on-chip oscillators (10MHz) Best in class PWM and event capture capability 150ps resolution on PWM frequency 12-bit ratio-metric ADC with individual channel triggers Two analog comparators with 10-bit reference CAN 2.0B up to 16 mailboxes Up to 44 General Purpose I/Os Packages: 64-pin TQFP, 80-pin LQFP 64-128 KB Flash 20 KB RAM Boot ROM Power & Clocking Dual OSC 10MHz 3.3 V Supply Power on Reset Brown Out Reset (On-chip 1.9V) Debug Real Time JTAG Peripheral Bus Peripherals Analog Modules Serial Interfaces SPI x2 SCI 12-bit, 13-/16ch Up to 4MSPS CAN I2C Comparators Up to 3x LIN Timer Modules ePWM x12 (5x HR PWM) QEP Up to 1x eCAP x1 Procesory DSP TMS320C6000 telekomunikacja systemy śledzenia obiektów technologie video w rodzinie jednostki stało- i zmiennoprzecinkowe oraz procesory wielordzeniowe TMX320C6474 Performance Optimized Multicore Processor Features New C64x+™ Core Three 16/32 (3) C64x+ DSP Core at 1GHz each bit ISA, doubled MPY vs C64x core Memory 32 kB L1 program memory, 32 kB L1 data memory 3 MB of total L2 memory (2 configurations) 1MB / 1MB / 1MB or 1.5MB / 1MB / 0.5MB Boot ROM, DDR2-667MHz 32-bit TMS320C6474 C64x+™ Core C64x+™ Core C64x+™ Core Peripherals L1 Data L1 Data L1 Data 10/100/1000 L1 Prog L1 Prog L1 Prog L2 Memory L2 Memory TCP2 McBSP Mbps Ethernet - SGMII (TDM) High-speed interconnects 2x sRIO (1x links) Antenna interface supporting OBSAI / CPRI – 6 links • 65nm Process • 561 BALLS, 23x23 MM FC-BGA (5 Rows + 11x11 center array) L2 Memory EDMA 3.0 with Switch Fabric GPIO PLL I2C Timers Others Boot ROM Benefits • 3GHz Raw performance • Interconnect efficiency due industry standards (sRIO, OBSAI / CPRI, DDR Memory, etc) • SmartReflex to minimize power consumption A Controller McBSP DDR-2 IF 10/100/ 1G Ethernet Antenna Interface TCP2 VCP2, VCP2 Acceleration Serial RapidIO EVM Available 12 Development tools and support ease customer migration C6474 Evaluation Module Software debug platform for high performance application development EVM highlights: • Two C6474 processors • High-speed DSP interconnect enabled by EMAC, AIF and SRIO SERDES interfaces • 256MB of 667MHz DDR2 per C6474 processor • SGMII switch provides Gigabit Ethernet connection • McBSP, Timer, GPIO interfaces accessible via connector • Onboard JTAG emulation plus a XDS560T (Trace Pod) Header • Board-specific Code Composer Studio™ Integrated Development Environment • Simple setup • Includes design files such as Orcad and Gerber • Board support library accelerates software development on the EVM Support: • Broad market support: Product Information Center - FAE - Community forums - Documentation - Training AIF JTAG Power Modules AMC Connector DDR Memory C6474 Processors Power Power Modules DDR Memory JTAG SGMII Switch CPLD AIF TMDXEVM6474: $1995 Now Available www.ti.com/c6474evm 13 Procesory DSP TMS320C5000 multimedia wizualizacja danych telekomunikacja indywidualna systemy pomiarowe Procesory OMAP OMAP = ARM + DSP + system operacyjny komputery przenośne nawigacja satelitarna OMAP35x – ARM Cortex A8 600MHz DaVinci - procesory DM355 kamery sieciowe przenośne urządzenia TV nawigacja satelitarna przenośne urządzenia multimedialne DSP C6000 + ARM9 ISO722x: Single, Dual, Triple and Quad High-Speed Digital Isolators •SiO2 Dielectric Capacitor process provides highest reliability and life expectancy (>25 years) •High magnetic immunity maximizes signal integrity in noisy environments •Lowest skew and jitter minimizes error and noise •4kV ESD on all pins ideal provide high reliability in harsh environments Supports: • Industrial Process Control • HVAC/Building automation • Industrial Networks/Communication ADS1232/4 2/4 Channel 24-bit Bridge Sensor ADCs • • • • • • • • • Only 17nVRMS input-referred noise (G=128) ±20mV input range with Up to 23.5 ENOB 10SPS or 80SPS data rate Onboard PGA (selectable 64 or 128) Internal oscillator w/external opt. Onboard temp sensor Over 100dB of 50Hz and 60Hz noise rej. Simple serial interface -40°C to +105°C temp range • • • • • Single-chip weigh scale front-end Bridge sensors Strain gauges Pressure transducers Ratiometric measurements up to 5V • Greatly Reduces Design Cycle Time − Complete Low Noise Front-End Solution • Low Software Overhead - Pin Configurable Simplicity - No Digital Registers to Program • Easy to Use Reference Design Board 24pin / 28pin TSSOP EVM ADS1232REF ADS1232: $3.90 (1k pcs) ADS1234: $4.50 (1k pcs) Oversampling (∆Σ) ADC’s ADS1274/8: Widest Bandwidth, 4/8-channel, Simultaneous Sampling, 24-bit ∆Σ ADC Eight 128ksps 24-bit ADC’s synchronized in one package provide high performance while lowering system cost and complexity Pin configurable operating modes - high speed, high resolution, low power, low speed maximize design flexibility while reducing software overhead Daisy chainable output up to 106 simultaneous channels Identical package offers drop-in expandability Supports: • Vibration Analysis • Acoustics/Dynamic Strain Gauges • Power Conditioning/Metering • ECG/Multi-channel Data Acquisition Systems ADS1282 Ultra-High Performance ΔΣ ADC with PGA • Extremely High Resolution - SNR: 130dB (250SPS, G=1) - SNR: 125dB (250SPS, G=16) • Ultra-Linear - THD -122dB, INL: 0.5ppm • Flexible Data Rate - 250SPS to 4kSPS • Onboard High Performance Digital Filter - SINC + FIR + IIR (selectable) - Linear or Minimum Phase - 0.5Hz to 7.5Hz High Pass - Filter Bypass Mode • Low Power - ADS1282: 25mW (17mW Low Power Mode) Unmatched Performance, Integration and Low-power Operation Single-chip Solution for Digitizing Geophones or Hydrophones Filter Bypass Mode Allows Direct Access to Modulator Data for Use with External Digital Filter ADS1282: MUX + PGA + Mod. + Dig. Filter AVDD V DVDD REF CLK SYNC ADS1282 MUX PWDN RESET In1 PGA • • • • Seismic / Energy Exploration Geophone / Hydrophone Recording Earthquake/Building Monitoring Scientific Instrumentation In2 ADS1282: $36.95 (1k pcs) 1 to 64 4th order ∆Σ Mod. Programmable Digital Filter & Calibration SPI 3 Serial Interface I/O Mod. Out Over-Range AVSS DGND ADS5562: 16-bit 80-MSPS ADC Featuring Highest Signal to Noise Ratio 84dBFS @ 3MHz IF and lowfrequency noise suppression mode offers 6dB greater SNR and 0.6 ENOB than competing solutions and improves system accuracy Dynamic power scaling reduces power consumption to 540mW @ 25MSPS enhancing battery life and reducing thermal effects Supports: • Wireless Communications • Medical Imaging – MRI, PET • Radar and Guidance Systems • Test, Measurement, and Instrumentation Small 7x7mm form factor and pin compatible sample rate options in same family (ADS5560: 16-bit 40MSPS) save board space and improve design flexibility DAC8881: Lowest Noise, Low Power 16-bit DAC with Buffer Low noise (24nV/√Hz) and low INL (+/- 1LSB) ideal for open loop and waveform generation applications where high accuracy is required Internal output buffer reduces number of external components Low power consumption (6mW) and power down mode improves battery life Supports: 18-bit upgrade path provides design flexibility (DAC9881 – avail. 2Q) • Portable Instrumentation • Industrial Process Control • Automatic Test Equipment • Waveform Generators DRV401-EP Sensor Signal Conditioning IC for Vacuumschmelze Magnetic Current Sensor •Temp range: -55C to 125C •One chip solution for VAC Magnetic Sensors •Linearity Error: < 0.1% •Overload Detection •Fault Detection •Built-In Degauss System •Dynamic Error Correction •Inherent Galvanic Isolation •Included Integrated Filter Compensation drive Out1 Out 2 • Combined with VAC sensors, the DRV401 monitors both ac and dc currents to high accuracy. • Improves VAC sensor accuracy • Recovers the probe loop in the case of distortion noise and excessive overload. • Detects fault conditions such as output shorts, low load or low supply conditions • Restores high magnet performance after a strong overload condition • Ensures DC precision over temperatures and long term accuracy • Protects application circuitry • Reduces noise RS DRV401 S2 IP VAC Current Sensor Diff.AMP S 1 Sensor Interface Integrator Filter Timing, Error Detection, Power Control, V Out Ref-In. H-Bridge Driver 1k Price: $7.25 DeGauss VRef. 2.5V Clock +5V GND Vref OPA333, OPA2333 Very Low Power Zero-Drift Operational Amplifier Ultra-Low Quiescent Current: 25µA (max) Low Offset Voltage: 10µV (max) Offset Voltage Drift: 0.05µV/˚C (max) Low Voltage Noise: 1.1 µVP-P Bandwidth: 350kHz Rail-to-Rail Input and Output Supply Voltage 1.8V to 5.5V TemperatureRange: -40°Cto+125°C Lowest Power Increases Battery Life Low Offset and Drift Removes Need for Calibration RRIO Increases Dynamic Range 1.8V Supply Excellent for Battery Devices Micro SC70 Package Saves Board Space MicroPackages: Singles (OPA333): SC70-5, SOT23-5, SO-8 Duals (OPA2333): QFN-8, SO-8 Battery-Powered Instruments Temperature Measurement Precision Strain Gages Precision Sensor Applications Medical Instrumentation Handheld Test Equipment 1KU $.95 Single 1KU $1.50 Dual INA210 – INA214 Zerø-Drift – Bi-directional Current Shunt Monitor • Complete Bi-directional high/low-side current sensing • Permits measurement of bidirectional shunt currents • Voltage offset: ±35µV (max, INA210) • Enables shunt drops of 10mV full-scale • 10mV Full-scale input voltage • Cost savings : smaller shunt resistors and best power efficiency • 1% error (max over temp) • Cost savings: smaller error margins needed in design • CMR: - 0.3V to +26V with +2.7V to +26V Supply • High CM inputs using a low single supply • 100µA (max) supply current in SC70 package • Ideal for power and space sensitive applications • Voltage output with three gain options: • INA210: 200V/V – Released! • INA211: 500V/V – in sign-off • INA212: 1000V/V – in sign-off • INA213: 50V/V – Released! • INA214: 100V/V – Released! 1k Price: $0.65 • • Battery management Computers • Servers • Desktop • Notebook Package: SC-70 EVM INA210EVM – call Niki INA209: Zero-Drift Power Shunt Monitor over I2C Bus Monitors current and voltage, and calculates power providing complete thermal management solution Triple watchdog limits (underlimit, overlimit, and separate critical path) offers design flexibility and fast shutdown capability High 0V to 26V common mode inputs from single 3V to 5.5V supply saves power Supports: • Computers – Servers, Desktop • Battery Management • Power Supplies +/-40mV full scale input range and 1% max temp error improves accuracy at low voltage drops PGA11x: Single-Ended, Single-Supply Zero-Drift PGA with MUX 2 channel and 10 channel versions provide design flexibility RRIO increases dynamic range Binary and Scope gain options for optimum A/D range matching Internal calibration channels allow easy gain and offset adjustment < 4µA shutdown is ideal for power sensitive applications Supports: • Industrial Process Control • Programmable Logic Controllers • Portable Instrumentation PGA308 - Auto-Zero Sensor Amp w/Prog. Gain & Offset Auto Zero: 0.2uV/C Drift, 50uV Offset (max) Offset Adj: Coarse (+/-100mV) & Fine (+/-VREF/2) Gain Adj: PGIA (4 -1600), Output (2-6), Fine (0.33-1) 7xOTP Memory (7 Individual Banks) One-Wire Programming Interface Fault Detection + Over & Under-Scale Limits 2x2 Input Mux Low Noise: 50nV/rt-Hz Low Power: 2mA w/ 20uA Shutdown Mode +2.7V to +5.5V Operation Extended -40C to +125C Temp Range 10-MSOP Package, 3x4mm DFN-10 Enables precision drift and offset for top performance Digital Calibration of Offset and Gain eliminates costly ‘analog’ bridge trim methods Allows up to 4 times calibration to prevent error 1-Wire digital serial interface simplifies programming Ideal for protection and system level diagnostics Capable of sensor lead swapping electronically Reference or V supply PGA308 Reference Input Coarse Offset 1k Price: $1.85 Bridge sensors Remote 4-20ma transmitters Strain, load, and weigh scales Input Mux Fine Offset Auto-Zero P GIA + PGA308EVM Fine Gain Serial Interface VC L A M P /DOU T Over S cale Fault Monitor OTP Memory EVM Digital Out or V CLAMP Output Amplifier Under S cale Limit Ckt VOU T 1W TPS780xx/781xx Low IQ LDO with Dual-Level Outputs • : : • • • • Fits a wide variety of power requirements Very low power consumption Powered from standard voltage rails Full range of µC voltage needs • • Optimizes performance or power saving modes Small solution size • • Rated Output Current: 150mA Ultra low Power - 500nA typ (TPS780xx) - 1uA typ (TPS781xx) Drop out Voltage: 200mV @ 150mA Input Voltage Range: 2.2V to 5.5V Output Voltages: Fixed (1.5 to 4.2V) and Adjustable (1.22 to 5.25V) Toggle Between Two Factory EEPROM Preset Values Stable with 1μF Ceramic Output Capacitor TSOT23-5, 2X2mm SON Packages • • • • TI MSP430 Attach Applications Wireless Handsets Portable Media Players Battery Operated Devices w/ extended sleep times • • • • 0.65-Ω Dual SPDT Analog Switch With Negative Rail Capability and Click-Pop Suppression TS5A22362, TS5A22364 Features ● ● ● ● ● ● Negative Signaling Capability : Analog I/O Range = V+ - 5.5V to V+ Internal Shunt Switch prevents audible click-and pop when switching between two sources (TS5A22364 only ) Low ON-State Resistance (0.65-Ω typ) Excellent ON-State Resistance Matching 2.3-V to 5.5-V Power Supply (V+) TS5A22362/TS5A22364 Packaging Options ● WCSP-10 (0.5mm pitch - YZP) 1.9mm x 1.4mm ● SON-10 (DRC) 3mm x 3mm ● VSSOP-10 (DGS) 4.9mm x 3mm TS5A22362/4 R1 Ref R L L1 Audio Source 1 TPA6130A2 Applications ● ● ● ● Cell Phones PDAs Portable Instrumentation Audio Routing R2 L2 Audio Source 2 Część 3 – Projekt 2 – transmisja P2P Mariusz Kaczor Sylwester Nowocień Piotr Tadrzak Co to jest HAL? ● HAL (Hardware Abstraction Layer) – część oprogramowania pośrednicząca pomiędzy aplikacją (polecenie logiczne) a elementami wykonawczymi (sygnały fizyczne) Co to jest HAL dla MSP-EXP i CC2500? Biblioteki dla MSP430 do pracy z transceiverami CC1100/CC2500 przygotowanie przez Texas Instruments Więcej szczegółów: AN049 (swra141) HAL – struktura oprogramowania HAL zawiera: ● Część specyficzną dla urządzenia (MCU, wbudowane peryferia MCU) ● Część niezależną od urządzenia (układy I/O, interfejs użytkownika, interfejsy komunikacyjne, w tym radio HAL – drzewo plików hal ● common hal_spi hal_spi_config hal_int hal_rf include hal_exp430 ● hal_board hal_mcu hal_uart hal_timer hal_digiio hal_led hal_lcd ● hal_common ● common: biblioteki obsługi peryferiów, biblioteki obsługi przerwań hal_exp430: biblioteki wykonawcze dla MSP_EXP hal_template: wzorzec bibliotek dla innych platform (PCB) include: definicje zmiennych, itp. HAL – przykładowe funkcje obsługi transceivera void halRfBurstConfig( const HAL_RF_BURST_CONFIG rfConfig,const uint8* rfPaTable,uint8 rfPaTableLen) //blokowy zapis konfiguracji transceivera uint8 halRfGetChipId(void) //odczyt znacznika ID transceivera HAL_RF_STATUS halRfWriteReg(uint8 addr, uint8 value) //zapis rejestru konfiguracyjnego z odczytem statusu HAL_RF_STATUS halRfWriteFifo(uint8* data, uint16 length) //zapis danych do FIFO uprzednim odczytem statusu HAL – przykładowe funkcje obsługi peryferiów MCU void halMcuInit(void) //inicjalizacja mikrokontrolera void halMcuSetPowerMode(uint8 mode) //sterowanie trybem poboru mocy uint8 halDigioConfig(const digioConfig* pin) //konfiguracja wyprowadzeń wg zdefiniowanej tablicy (tablica typu struct) void halUartRead(uint8* buffer, uint16 length) //odbiór danych z portu szeregowego (Contrans TI) HAL – przykładowe funkcje obsługi LCD void halLcdInit(void) //inicjalizacja wbudowanego kontrolera LCD void halLcdWriteValue(uint16 value, uint8 radix, uint8 line) //zapis liczby (wartość, system liczenia,...) void halLcdWriteSymbol(uint8 symbol, uint8 on) //zapis znaku specjalnego void halLcdClear(void) //kasowanie zawartości wyświetlacza Projekt 2 – transmisja P2P – terminal znakowy Połączenie terminali za pomocą fal radiowych: ● MSP-EXP + CC2500 pracuje jako modem komunikacyjny z portem RS-232 ● ● ● ● Radio jest całkowicie „przeźroczyste” Używamy bibliotek HAL Ustawienia terminala PC : 9600,8,NONE,Off Transmisja po CRLF hello :) MSPEXP radio CC2500 hello :) MSPEXP radio CC2500 Projekt 2 – algorytm Projekt 2 – co należy konfigurować? 1) Nawiązanie komunikacji P2P Zespół nr 1 Parametry Ćwiczenie nr 1 250kB; MSK; Sensitivity; 6 Ćwiczenie nr 2 115kB; 2-FSK; Current; 2 Ćwiczenie nr 3 main.c → msg[4]=?? smpl_config.dat → DTHIS_DEVICE_ADDRESS= "{0x??, 0x??, 0x??, 0x??}" gdzie: ?? − numer stanowiska 2) Zabezpieczenie sieci przed przesłuchami ● ● ● Zmiana kanału komunikacyjnego (najprostszy) Filtracja adresów (zalecany) Filtracja długości pakietów (wymaga głębszej analizy) Projekt – drzewo plików ● Aplikacja main.c (do edycji) ● ● ● Biblioteki HAL Ustawienia RF: my_rf_settings.h (do edycji przy użyciu SmartRF Studio) ● Część 4 – SimpliciTI Mariusz Kaczor Sylwester Nowocień Piotr Tadrzak Ankieta ● Moja ocena szkolenia ● Co dalej? ● Do czego wykorzystam wiedzę? Sonda: jak mógłby wyglądać mój projekt „radiowy” Zbuduję radio sam, czy poszukam gotowego rozwiązania? Jeśli gotowe rozwiązanie to jakie powinno mieć cechy? Ankieta jest anonimowa 2 Co jest na pendrive? Ćwiczenia: Dokumenty: ● SmartRF Studio ● Noty projektowe ● HAL ● Karty katalogowe ● SimpliciTI ● Narzędzia ● Noty aplikacyjne ● Projekty referencyjne Podręcznik ● Podręcznik PDF 3 Co jest na pendrive? Firmware: ● HAL dla MSP-EXP ● SimpliciTI ● 1.03 1.06 dokumentacja Oprogramowanie PC ● CCE3 ● IAR EW 430 ● IAR EW 430 Eval ● Packet Sniffer ● SmartRF Studio ● Inne inne /.../solutions (rozwiązania zadań) Ćwiczenie 3, wersja dla eZ430-RF2500 Ćwiczenie 3, oprogramowanie AP dla eZ430-RF2500 4 SimpliciTI – czym jest? Cechy protokołu: protokół sieciowy – firmowy (Texas Instruments) dwie architektury: gwiazda oraz p2p częstotliwości pracy: sub 1GHz, 2.4GHz prosty w implementacji – kilka podstawowych funkcji API przeznaczony dla urządzeń o niskim poborze energii (sleeping devices) szyfrowanie: sprzętowe, programowe (w przyszłości) dynamiczna zmiana kanału (frequency agility) trzy typy urządzeń: punkt dostępowy (Access Point), urządzenie końcowe/terminal (End Device) i retransmitter (Range Extender) nie wymaga dużych zasobów: ~6k Flash, ~512 RAM na różne platformy: MSP430+CC1100/2500, SoC (CC1110/2510, CC1111/CC2511), DSSS (w przyszłości) otwarty – dostępne pliki źródłowe darmowy (przy wykorzystaniu układów Texas Instruments) 5 Obszar zastosowań systemy zabezpieczeń / alarmowe (czujniki dymu/tlenku węgla, antywłamaniowe) liczniki / rejestratory (gazomierze, wodomierze, ciepłomierze, liczniki energii elektrycznej) sieci strukturalne (obsługa drzwi garażowych, czujniki środowiskowe, przekaźniki i sterowniki) 6 Sieć czujników z bramką dostępową i AP Bramka dostępowa może mieć funkcję zdalnego raportowania stanu sieci. Posiada funkcjonalność urządzenia dostępowego i zarządza siecią. Retransmitery zwiększają zasięg 7 Sieć aktywnych znaczników (tagów) radiowych Tagi mogą pojawiać się w zasięgu sieci zupełnie przypadkowo. Tagi muszą mieć możliwość szybkiego dołączenia do sieci przy zachowaniu niskiego poboru energii 8 Sieć czujników dymu Punkt dostępowy (opcjonalnie) Czujnik / retransmiter Sm oke Ala rm Urządzenie alarmujące Sm oke Ala rm Sm oke Ala rm Sm oke Ala rm Sm oke Ala rm Sm oke Ala rm Sm oke Alar m Gatew C ay Sm oke Ala rm Sm oke Ala rm Sm oke Ala rm Przepływ komunikatu 9 SimliciTI / ZigBee Protokół: SimpliciTI ZigBee Sieć typu mesh Nie Tak Typowa liczba węzłów 2 - kilkadziesiąt 2 do setek Topologia point-to-point i gwiazda Tak Tak Platforma sprzętowa MSP430 + CC, SoC (8051) MSP430F2418 + CC2420, CC2430 Częstotliwość, typ modulacji sub 1GHz, 2.4GHz IEEE 802.15.4 DSSS, 2.4GHz oprogramowanie darmowe darmowe Źródła oprogramowania darmowe nie Rozmiar kodu po kompilacji ~6k – zależny od konfiguracji 50-60k – zależny od konfiguracji Zgodność pomiędzy urządzeniami pochodzącymi od różnych dostawców Nie Możliwa Kodowanie 128bit AES wbudowane, inne programowo 128bit AES Właściwości sieci: Oprogramowanie i sprzęt 10 Architektura sieci End Device (ED): realizuje funkcje warstwy aplikacji dwa tryby pracy: controlled listen lub sleeping/polling może pracować w trybie „tylko nadawanie” zasilany bateryjnie ● Range Extender (RE): dokonuje retransmisji wiadomości może posiadać funkcjonalność ED zasilany w sposób ciągły ED ED AP ED ● RE ED Access Point (AP): zarządza siecią – dynamiczne przyłączenie i odłączanie do/z sieci ED zarządza częstotliwością pracy (frequency agility) gromadzi i udostępnia wiadomości dla ED typu sleeping/polling (data hub), może posiadać funkcjonalność ED zasilany w sposób ciągły ● ED ED 11 Archtektura oprogramowania Struktura warstwowa: Brak formalnej warstwy Link i PHY Board Support Package (BSP) w miejsce HAL dopasowanie do różnych MCU, obsługa interfejsu SPI, przerwań Minimal RF Interface (MRFI) realizacja interfejsu z radiem (RF), zapis/odczyt danych, formowanie ramki Network Layer (NWK) zarządza pracą radia, transmisją, kolejkowaniem, dekodowaniem portów Network Applications (NWK APPs) realizacja funkcji zarządzania siecią, połączeniami, kanałami częstotliwościowymi User Applications ● 12 Tylko 6 wywołań API inicjacja smplStatus_t SMPL_Init (uint8 (*pCB)(linkID)) linkowanie smplStatus_t SMPL_Link (linkID_t *linkID) smplStatus_t SMPL_LinkListen (linkID_t *linkID) transmisja smplStatus_t SMPL_Send (linkID_t lid, uint8 *msg, uint8 len) smplStatus_t SMPL_Receive (linkID_t lid, uint8 *msg, uint8 *len) konfiguracja void SMPL_Receive (ioctlObject_t object, ioctlAction_t action, void *val) 13 Parametry transmisyjne /* Przykład konfiguracji parametrów radiowych */ /*..\Simpliciti\Components\mrfi\smartrf\CC1101\ */ #ifndef SMARTRF_CC1101_H #define SMARTRF_CC1101_H #define SMARTRF_RADIO_CC1101 #define SMARTRF_SETTING_FSCTRL1 0x0C #define SMARTRF_SETTING_FSCTRL0 0x00 #define SMARTRF_SETTING_FREQ2 0x22 #define SMARTRF_SETTING_FREQ1 0xB1 #define SMARTRF_SETTING_FREQ0 0x3B #define SMARTRF_SETTING_MDMCFG4 0x2D #define SMARTRF_SETTING_MDMCFG3 0x3B #define SMARTRF_SETTING_MDMCFG2 0x13 #define SMARTRF_SETTING_MDMCFG1 0x22 #define SMARTRF_SETTING_MDMCFG0 0xF8 #define SMARTRF_SETTING_CHANNR 0x14 #define SMARTRF_SETTING_DEVIATN 0x62 #define SMARTRF_SETTING_FREND1 0xB6 #define SMARTRF_SETTING_FREND0 0x10 ... /* Przykład konfiguracji kanałów częstotliwościowych */ /*..\Simpliciti\Components\mrfi\radios\common\mrfi_f1f2.c */ #if defined( MRFI_CC2500 ) || defined( MRFI_CC2510 ) || defined( MRFI_CC2511 ) static const uint8_t mrfiLogicalChanTable[] = { 3, 103, 202, 212 }; ... 14 Statyczna konfiguracja /* przykład smpl_config.dat (ED) */ /* przykład smpl_nwk_config.dat (ED)*/ // Liczba połączeń -DNUM_CONNECTIONS=1 // liczba hop'ów dla wiadomości -DMAX_HOPS=1 // wielkość buforów wiadomości transmisyjnego / odbiorczego -DSIZE_OUTFRAME_Q=1 -DSIZE_INFRAME_Q=1 // liczba hop'ów od AP -DMAX_HOPS_FROM_AP=1 // adres urządzenia -DTHIS_DEVICE_ADDRESS="{0x06, 0x06, 0x06, 0x06}" // typ urządzenia -DEND_DEVICE //-DACCESS_POINT // tryb pracy dla ED -DRX_POLLS // maksymalna wielkość obszaru payload wiadomości -DMAX_APP_PAYLOAD=10 // link token -DDEFAULT_LINK_TOKEN=0x01010101 // join token -DDEFAULT_JOIN_TOKEN=0x05060708 // tryb frequency agility //-DFREQUENCY_AGILITY // tryb pracy dla AP //-DAP_IS_DATA_HUB // w trybie 'data hab', wielkość bufora //-DNUM_STORE_AND_FWD_CLIENTS=3 15 Konfiguracja dynamiczna void SMPL_Ioctl (ioctlObject_t object, ioctlAction_t action, void *val) Parametry: object – obiekt determinujący działanie action – akcja val – wskaźnik do struktury danych Obiekty: IOCTL_OBJ_FREQ – odczyt/ustawienie kanału częstotliwościowego (frequency agility) IOCTL_OBJ_CRYPTKEY – ustawienie klucza szyfrującego (niezaimplementowane) IOCTL_OBJ_RAW_IO – wysłanie/odczyt wiadomości IOCTL_OBJ_RADIO – kontrola trybu pracy radia, odczyt/zapis podstawowych parametrów IOCTL_OBJ_AP_JOIN – blokada/zezwolenie na przyłączenie do sieci (AP) IOCTL_OBJ_ADDR – odczyt/zmiana adresu urządzenia IOCTL_OBJ_CONNOBJ – zwolnienie połączenia i zasobów przez nie zajmowanych IOCTL_OBJ_FWVER – odczyt wersji oprogramowania IOCTL_OBJ_PROTOVER – odczyt wersji protokołu 16 Adresowanie, sposoby komunikacji Opis: Adres fizyczny – statyczne, 4B lub adres rozgłoszeniowy (broadcast) Adres sieci – join token, 4B Identyfikacja połączenia – link token, 4B Logical path ED 2 ED 1 RE ED 1 Data path NWK management ED 2 ED 1 ED 1 RE AP AP Poll Poll Sleeping ED 2 Sleeping ED 2 17 Format pakietu Opis: PREAMBLE/SYNC – synchronizacja sprzętowa LENGTH – długość ramki MISC – zarezerwowane DSTADDR/SRCADDR – adres docelowy/źródłowy PORT – typ szyfrowania (brak,SW, HW,) oraz identyfikator aplikacji (nr portu) DEVICE INFO – typ urządzenia (ED, RE, AP) oraz tryb pracy (controlled listen, sleeps/polls) TRACEID – nr ramki (identyfikator tranzakcji) PAYLOAD – ciało wiadomości (maks. wielkość 52B) FCS – suma kontrolna 18 Cechy środowiska IDE: IAR Embedded Workbench, CCEssentials (również) Platforma: MSP430 i SoC (8051) Cechy oprogramowania: statyczna alokacja pamięci (nie jest wymagany obszar heap) praca synchroniczna (nie wymaga architektury wielowątkowej) zajęty jeden licznik (TA), wykorzystany system przerwań konieczność zadbania o realizację potwierdzenia wiadomości lub i jej powtórzenia Platformy ewaluacyjne: EXP (MSP430 Experimenter board) MSP430FG4618 + radio EM eZ430RF MSP430F2274 + CC2500 SRF04 8051 (SoC EM) SRF05 MSP430F2618 + CC2520EM Moduły radiowe RF: CC1100EM/CC1101EM CC1110EM/CC1111EM (SoC) CC2500EM/CC2510EM/CC2430EM CC2520EM (SoC) 19 Sprzętowe wsparcie oprogramowania Experimenter's board (MSP430FG4619) złącze modułów EM (CC1100/CC2500) LCD złącze RS232 klawiatura pojemnościowa mikrofon + wzmacniacz wzmacniacz słuchawkowy ● eZ430RF-2500 (MSP430F2274+CC2500) emulator USB adapter zasilania bateryjnego ● CC2510-CC2511DK, CC1110-CC1111DK współpraca z SmartRF Studio, Smart Sniffer LCD złącze RS232 ● 20 Przykład Access Point: zasilanie ciągłe konfiguracja: data hub cykliczny pomiar temperatury i Vcc cykliczne przesyłanie żądania wartości pomiarowych do ED przesyłanie zebranych informacji do komputera Sieć: struktura: gwiazda praca dynamiczna, struktura otwarta n 1 End Device: zasilanie bateryjne konfiguracja: sleeping/polling cykliczny pomiar temperatury i Vcc na żądanie AP lub użytkownika (przycisk) przesłanie mierzonych wartości AP 2 3 21 Jak to działa ... 22 Algorytm działania – AP 23 inicjalizacja procesora i peryferiów BSP_Init() MCUInit() inicjalizacja protokołu, dołączenie do sieci (join) SMPL_Init() połączenie z AP (link) SMPL_Link() konwersja ADC zakończona? Algorytm działania – ED błąd pauza 1s błąd pauza 1s tak rozpocznij konwersję ADC przełącz rf w tryb aktywny cykliczne przerwanie (timestamp) dane w buforze AP? SMPL_Receive() nie tryb uśpienia nie konwersja ADC zakończona? nie tak wyznaczenie temp. i Vcc AdcValCalc() naciśnięty przycisk? nie tak format ramki prawidłowy? tak nie formatowanie wiadomości zapis temp. i Vcc wysłanie wiadomości SMPL_Send() przełącz rf w tryb uśpienia 24 Uruchamiamy projekt smplStatus_t SMPL_Send (linkID_t lid, uint8 *msg, uint8 len) Parametry zwracane: SMPL_SUCCESS – operacja zakończona sukcesem. SMPL_BAD_PARAM – niewłaściwa wartość parametru/ów SMPL_NOMEM – brak miejsca w buforze transmisyjnym Parametry: lid – identyfikator połączenia (LinkID) msg – wskaźnik bufora wiadomości len – długość wiadomości smplStatus_t SMPL_Receive (linkID_t lid, uint8 *msg, uint8 *len) Parametry zwracane: Parametry: lid – identyfikator połączenia (LinkID) msg – wskaźnik bufora dla wiadomości len – długość wiadomości SMPL_SUCCESS – zapisano wiadomość w buforze *msg SMPL_BAD_PARAM – niewłaściwa wartość parametru/ów SMPL_NO_FRAME – brak wiadomości SMPL_NO_PAYLOAD – wiadomość bez zawartości (payload) SMPL_TIMEOUT - (Polling Device) brak odpowiedzi od AP. SMPL_NO_AP_ADDRESS - (Polling Device) nieznany adres AP SMPL_NOMEM (Polling Device) brak miejsca w buforze transmisyjnym SMPL_NO_CHANNEL (Polling Device) – nie udało się odnaleźć właściwego kanału transmisyjnego ( Frequency Agility) 25 Projekt 3 – drzewo plików ● Aplikacja: Temperature_monitor_ ED_main.c ● bsp ● mrfi ● nwk ● nwk_app 26 Pytania??? 27 Dziękujemy za uwagę 28