Académique Documents
Professionnel Documents
Culture Documents
v1.0
Arkadiusz Materek
12 marca 2007
Spis treści
1 Wstęp 2
2 Hardware 2
2.1 Opis układu CC1000 . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Interfejs CC1000 z mikrokontrolerem . . . . . . . . . . . . . . . . . 3
2.2.1 Interfejs konfiguracji . . . . . . . . . . . . . . . . . . . . . . 4
2.2.2 Interfejs danych . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.3 Wyjście RSSI/IF i CHP OUT . . . . . . . . . . . . . . . . . 6
2.3 Budowa modemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Software 8
3.1 Konfiguracja CC1000 . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 Wybrane parametry pracy . . . . . . . . . . . . . . . . . . . 8
3.1.2 Resetowanie układu . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.3 Budzenie układu ze stanu uśpienia . . . . . . . . . . . . . . 9
3.1.4 Przełączanie w stan nadawania . . . . . . . . . . . . . . . . 10
3.1.5 Przełączanie w stan odbioru . . . . . . . . . . . . . . . . . . 11
3.1.6 Kalibracja VCO i PLL . . . . . . . . . . . . . . . . . . . . . 11
3.1.7 Inicjalizacja CC1000 . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Format ramki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Nadawanie ramki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Odbieranie ramki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5 Transmisja RS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.6 Algorytm działania modemu . . . . . . . . . . . . . . . . . . . . . . 14
4 Podsumowanie 15
Spis rysunków 15
Spis tablic 15
Literatura 16
1
1 Wstęp
Opisywany modem radiowy został opracowany z myślą o taniej i prostej komu-
nikacji robota z komputerem. Komunikacja z modemem odbywa się przez protokół
RS232 z wykorzystaniem linii RX, TX, CTS oraz RTS. Do realizacji transmisji ra-
diowej wykorzystano układ CC1000 firmy Chipcon. Wymaga on sterowania trans-
misją danych, do tego celu wykorzystano mikrokontroler ATMega8 firmy Atmel.
2 Hardware
Zasięg do 2000m
1
W Polsce dozwolone są pasma 433MHz i 868MHz
2
Parametr 433MHz 868MHz 915MHz jednostki
Czułość przy 2.4kBaud -111 -107 -105 dBm
Max. moc wyjściowa 8 2.5 0.5 dBm
Pobór prądu, TX 24 24 23 mA
Pobór prądu, RX 9.7 11.7 11.7 mA
Pobór prądu, PD 100 100 100 nA
RSSI/IF
MIXER
RF_IN LNA IF STAGE DEMOD CONTROL DIO
DCLK
PDATA, PCLK, PALE
3
/N
RF_OUT PA
BIAS R_BIAS
~
XOSC_Q2
CHARGE
VCO LPF PD /R OSC
PUMP XOSC_Q1
L1 L2 CHP_OUT
CC1000 MCU
PALE
PCLK
PDATA
DIO
DCLK
(Optional)
CHP_OUT
(Optional)
RSSI ADC
3
2.2.1 Interfejs konfiguracji
CC1000 MCU
przebiega następująco:
2
W przypadku mikrokontrolerów AVR uniemożliwia to programowanie przez ISP.
4
Ustawienie przez mikrokontroler linii PALE w stan wysoki
PCLK
PALE
PCLK
PALE
5
Użycie tego trybu pracy ułatwia przesyłanie danych np. przez podłączenie bezpo-
średnio do linii TXD i RXD mikrokontrolera, jednak używanie tego trybu pracy
jest nie zalecane.
1.3
1.2
1.1 433Mhz
1 868Mhz
0.9
Voltage
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50
dBm
Wyjście CHP OUT jest wygodnym (dla mikrokontrolera - nie wymaga od-
czytywania rejestru, jedynie sprawdzanie stanu pinu) monitorowania wybranych
bitów w rejestrach układu (dokładne informacje w dokumentacji technicznej [1] na
stronie 43).
Najczęściej sprawdzanym bitem jest ten odzwierciedlający stan pętli PLL. Gdy
częstotliwości nadawania i odbierania wymagają zmiany w rejestrze PLL, niezbęd-
ne jest, aby zaczekać aż PLL będzie ustalona. W niektórych przypadkach może
nastąpić zatrzaśnięcie się generatora, co jest opisane w [4], wtedy należy go zrese-
tować.
6
220n
IC4
C9
+5V
C7 1
C1+
2
V+
220n C11
220n
3
C10
C1-
6
V-
4
C2+
100n
C8
5 X1
C2- GND
220n 1
TXD_ 11 T1IN T1OUT
14 RXD RXD 2 6
RTS_ 10 T2IN T2OUT
7 CTS TXD 3 7 RTS
RXD_ 12 R1OUT R1IN
13 TXD 4 8 CTS
CTS_ 9 8 5 9
GND
R2OUT R2IN RTS
+5V
4k7
MAX232D
R11
MEGA8-AI
29 23
PC6(/RESET) PC0(ADC0)
24
GND
PC1(ADC1)
21 25
AGND PC2(ADC2)
20 26
GND
AREF PC3(ADC3)
18 27
ANT
100n
C5
AVCC PC4(ADC4/SDA)
28
+5V PC5(ADC5/SCL)
19
ADC6
7 22
+3V3
Q1 PB6(XTAL1/TOSC1) ADC7
ANT
1 2 8 30 RXD_
PB7(XTAL2/TOSC2) PD0(RXD)
31 TXD_
PD1(TXD)
C1 14.7456 C2
10
32 DCLK_
8
PD2(INT0)
3 1 DIO_
+3V3
GND PD3(INT1)
22p 22p
+5V
5 2 CHP_OUT_ 1
GND PD4(XCK/T0) 3k3 6k8 PALE
ANTENA
VDD
GND 4 9 PALE_ 2
VCC PD5(T1) PDATA
GND 6 10 PCLK_ 3
VCC PD6(AIN0) R1 3k3 R2 6k8 PCLK IN OUT
11 PDATA_ 11
PD7(AIN1) RSSI ADJ
4 C6
+
12
3k3 R3 6k8 R4 5
DCLK
PB0(ICP) RTS_ DIO IC2
GND3
GND2
GND1
+5V 13 CTS_ LF33CDT 10u
PB1(OC1A) R5 3k3 R6 6k8
14 6
PB2(SS/OC1B) CHP_OUT
15 GND GND
PB3(MOSI/OC2)
16
3k3 R7 6k8 R8
PB4(MISO) IC3
12
9
7
17 CC1000PP
PB5(SCK) R9 R10
IC1
GND GND
IC5
+5V
+5V
+5V
+5V
7.5V-12V 7805L
3 1 C3 C4 C12
+
SV1-1 VI VO
GND 10u 100n 100n
2
SV1-2
GND GND GND
GND GND
3
dwu i jednokierunkowe translatory napięcia, maksymalna prędkość do 16Mbps. www.maxim-
ic.com
7
liczba wartość oznaczenie na schemacie
rezystory
5 3k3Ω R1, R3, R5, R7, R9
1 4k7Ω R11
5 6k8Ω R2, R4, R6, R8, R10
kondensatory
2 22p C1, C2
4 100n C4, C5, C11, C12
4 220n C7, C8, C9, C10
2 10µ C3, C6
półprzewodniki
1 ATMega8-16 IC1
1 LF33 IC2
1 CC1000PP IC3
1 MAX232 IC4
rezonatory
1 Q1 14.7456MHz
inne
1 X1 Złącze D-SUB9 (Żeńskie)
1 ANT 16.4cm/50Ω
Tabela 2: Zestawienie elementów medemu radiowego
3 Software
W tej części zostaną opisane rozwiązania softwerowe zastosowane w modemie.
Program do mikrokontrolera ATMega8 został napisany w języku C, i skompilowany
przy użyciu darmowego kompilatora avr-gcc.
8
Rysunek 8: Interfejs programu SmartRF Studio
Odczekać 2ms
Odczekać 2ms
9
Nazwa adres wartosc RX/TX
MAIN 0x00 0x11/0xE1
FREQ 2A 0x01 0x42
FREQ 1A 0x02 0x00
FREQ 0A 0x03 0x00
FREQ 2B 0x04 0x42
FREQ 1B 0x05 0x04
FREQ 0B 0x06 0x9C
FSEP1 0x07 0x02
FSEP0 0x08 0x80
CURRENT 0x09 0x44/0x81
FRONT END 0x0A 0x12
PA POW 0x0B 0x0F
PLL 0x0C 0x48/0x48
LOCK 0x0D 0x10
CAL 0x0E 0x26
MODEM2 0x0F 0xB7
MODEM1 0x10 0x6F
MODEM0 0x11 0x54
MATCH 0x12 0x70
FSCTRL 0x13 0x01
PRESCALER 0x1C 0x00
TEST6 0x40 0x10
TEST5 0x41 0x08
TEST4 0x42 0x3F
TEST3 0x43 0x04
TEST2 0x44 0x00
TEST1 0x45 0x00
TEST0 0x46 0x00
Tabela 4: Konfiguracja rejestrów CC1000
Odczekać 2ms
Odczekać 200µs
10
Wpisać do rejestru CURRENT wartość 0x81
Odczekać 250µs
Odczekać 250µs
4
jeśli wartość rejestru PLL jest taka sama dla nadawania i odbioru to można pominąć
5
Od tej wartości zależy moc nadawania
6
jeśli wartość rejestru PLL jest taka sama dla nadawania i odbioru to można pominąć
11
3.1.7 Inicjalizacja CC1000
Zresetować CC1000
Obudzić układ
12
Bajt określający ilość danych w ramce
13
Zaimplementowano obsługę linii RTS, która jest zerowana w momencie gdy w
kolejce odbierania jest mniej niz 1/4 miejsca, i ustawiana w momencie gdy w bufo-
rze jest więcej niż 1/2 miejsca. Nadawanie danych jest zrealizowane w przerwaniu
RXC (recive complited).
Zaimplementowano obsługę linii CTS, gdy jest w stanie wysokim następuje
zaprzestanie nadawania dopóki nie będzie w stanie niskim.
– Jeśli iczba prób wysyłania ramki nie jest wyczerpana to włącz nada-
wanie preambuły. w przeciwnym wypadku zeruj licznik prób wysyłania
ramki.
14
– Włącz wykrywanie preambuły.
– Jeśli bufor odbiornika uart nie jest pusty to włącz nadawanie preambuły.
4 Podsumowanie
Po przetestowaniu modemu byłem zadowolony. Działał poprawnie, jedyną wa-
dą jest mała prędkość transmisji – w jednym kierunku maksymalnie do ok 2kB/s.
W przypadku gdy modemy wymieniają się jednym bajtem na przemian ilość prze-
słanych bajtów przez jeden modem w ciągu sekundy jest równa tylko ok 60.5.
Podczas pracy z modemem zauważono pewien problem: gdy dwa modemy chcą
nadawać w tym samym czasie dane, to te dane zostaną utracone. Ze względu na
to, że obydwa modemy są w trybie nadawania nie mogą odebrać ramki.
Aby urządzenie uczynić bardziej funkcjonalnym możnaby zaimplementować in-
terfejs konfiguracyjny umożliwiający ustawienia parametrów transmisji radiowej
oraz pokazujący statystyki transmisji i poziom odbieranego sygnału. W celu opty-
malizacji kod można napisać w assemblerze.
Spis rysunków
1 Schemat blokowy układu CC1000 . . . . . . . . . . . . . . . . . . . 3
2 Schemat połączenia układu CC1000 z mikrokontrolerem . . . . . . 3
3 Schemat połączenia układu CC1000 z mikrokontrolerem (SPI) . . . 4
4 Operacja zapisu rejestru CC1000 . . . . . . . . . . . . . . . . . . . 5
5 Operacja odczytu rejestru CC1000 . . . . . . . . . . . . . . . . . . 5
6 Zależność napięcia na RSSI od mocy odbieranego sygnału . . . . . . 6
7 Schemat modemu radiowego . . . . . . . . . . . . . . . . . . . . . . 7
8 Interfejs programu SmartRF Studio . . . . . . . . . . . . . . . . 9
9 Format ramki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Spis tabel
1 Typowe parametry układu CC1000 przy VCC=3V/25 . . . . . . 3
2 Zestawienie elementów medemu radiowego . . . . . . . . . . . . . . 8
15
3 Przyjęte parametry transmisji radiowej . . . . . . . . . . . . . . . . 9
4 Konfiguracja rejestrów CC1000 . . . . . . . . . . . . . . . . . . . . 10
Literatura
[1] www.chipcon.com, „CC1000 Data Sheet”, Chipcon products from Texas In-
struments, 2005.
[4] www.chipcon.com, „CC1000 Errata Note 001, rev. 1.0”, Chipcon products from
Texas Instruments.
16