2. 1.- Motivació
2.-Objectius plantejats.
3.- Investigo què puc fer per assolir objectius.
3.1 Com funciona un bus KNX .
3.2 Quins dispositius estandarditzats existeixen al
mercat
4.- Com ho faig?
5.- Resultats obtinguts
3. Desenvolupar un projecte relacionat amb les
tecnologies domòtiques actuals, amb les que treballo a
diari com a professor d’FP, i que d’altra banda, pogués
dur a terme amb eines tecnològiques d’us quotidià
també en el meu àmbit professional.
4. Dissenyar un mòdul electrònic que s’integri en una
estructura de bus KNX i que sigui plenament operatiu
pel que respecta a:
1.- Comportament , evers altres dispositius, dins
de la xarxa com a dispositiu d’entrades o sortides ,
segons la seva configuració.
2 .- Comportament , evers el software de
programació E.T.S com un dispositiu estandarditzat
que respongui a les funcions bàsiques de programació,
supervisió i monitoratge.
6. A.A.15
A.L.1
Disp. 255
A.L.2 A.L.15
Disp. 255 Disp. 255
Es basa en una topologia en
“arbre” construïda a partir dels
conceptes d’àrea , línia i
Dispositiu.
A.A.1
A.L.1
Disp. 255
A.L.2 A.L.15
Disp. 255 Disp. 255
Adreces físiques de
component:
A A A A L L L L C C C C C C C C
Àrea. (1..15) Línia. (1..15) Component. (1..255)
1.1.1
1.0.0
1.1.0
1.1.255 1.15.255
15.0.0
7. Les adreces de grup relacionen els objectes de comunicació dels
diferents dispositius connectats a la xarxa.
Octet 1 Octet 2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Grup principal Grup intermedi Grup secundari
0 0..15 0..7 0..255
1/1/1
9. Capa física: Connexió del medi físic al
dispositiu. TP0, TP1 , PLC, RF i Ethernet.
Capa d’enllaç: Lliurament de dades node a
node.
Capa de xarxa: Lliurament de les dades des
de l’origen al destí, a través de múltiples
xarxes.
Capa de transport: Ofereix 4 modes de
comunicació:
Punt a multipunt, no orientat a la connexió.
Multicast
Punt a tots els punts, no orientat a la
connexió. Broadcast
Punt a punt, no orientat a la connexió.
Punt a punt , orientat a la connexió.
Capa d’aplicació: Proporciona una gran
varietat de serveis pels diferents processos
d’aplicació que es puguin generar.
10. 3.- Investigo que puc fer per assolir objectius.
3.2 Quins dispositius estandarditzats existeixen al mercat
B.I.M Bus interface module:
Incorpora un microcontrolador
amb tota la pila knx programada
TP_UART, Twisted Pair - Universal
Asynchronous Receive Transmit – IC:
Permet la connexió directa al bus
implementant la capa física i la practica
totalitat de la capa d’enllaç.
11. 3.- Investigo que puc fer per assolir objectius.
3.2 Quins dispositius estandarditzats existeixen al mercat.
TP_UART
Implementa les capes física i d’enllaç deixant la resta (Aplicació ,transport i xarxa )
pel microcontrolador de l’aplicació, amb que es comunica mitjançant les línies RxD
i TxD, en format sèrie mitjançant un conjunt de comandaments propis.
12. 4.- Com ho faig. El microcontrolador.
Motivació: Microcontrolador habitual en els projectes d’escola.
Ràpidament es va exhaurir la memòria de programa de 628A i setmanes més tard
del 648A . Cal un pas endavant.
13. 4.- Com ho faig. El microcontrolador. El pas definitiu.
Microcontrolador RISC amb només 35 instruccions totes d’un sol cicle d'instrucció
excepte les de salts. També incorpora un port sèrie(ideal per comunicar amb la TP-
UART).
14. 4.- Com ho faig. Programari. PCWHC Compiler de
la casa CCS inc.
Encara que no és l’eina oficial de microchip, és un compilador molt eficient i econòmica.
Es van trobar algunes dificultats a l’hora de definir estructures de dades que s’extenien entre
dos bancs de memòria RAM.
15. 4.- Com ho faig. Programador hardware i software.
PicKit 3 de microchip permet programar i depurar el chip in situ mitjançat un port. ICSP
L’eina software Pickit3 Software permet carregar el programa compilat a l PIC
16. 4.- Com ho faig. Hardware. Analitzador lògic.
Analitzador lògic compatible amb el software Saelogic.
Amb 8 canals TTL és l’eina ideal per analitzar les comunicacions entre el microcontrolador i
la TP-UART a través de les línies RxD i TxD.
17. 4.- Com ho faig. Programari. Analitzador lògic. Programari
Analitzador lògic compatible amb el software Saleae Lògic.
18. 4.- Com ho faig. Programar i monitorar el Bus,
amb l’ETS Engineering tool software
L’ETS 3 , es l’eina oficial de l’organització KNX i permet programar qualsevol dispositiu de
qualsevol marca prèvia importació de la seva base de dades i/ monitorar el tramat.
19. 4.- Com ho faig. Monitorar el Bus. Amb software
propi i el programari BinTerm
Amb el monitoratge proporcionat per l’ETS no va ser suficient.
El software propi permet enviar determinades trames impossibles de generar amb l’ETS.
El Binterm amb llicència freeware captura totes les trames circulant per la xarxa.
20. 4.- Com ho faig. Eina de disseny Eagle 6.1.0.
Eina molt estesa en el disseny de circuits impresos de nivell professional.
Extensa base de dades amb multitud de components
Encaminament manual i automàtic .
21. 4.- Com ho faig. Estudi de les trames vs capes .
La trama pot incorporar des de un mínim de 8 bytes fins un màxim de 23 depenen de la
longitud indicada a part baixa del byte 8.
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
AT
T ranspo rt
co ntro l F ield
Octet 9 …Octet 8
Byte 0 Byte 1 Byte …
Octet22
Control Origen HOrigen L Destí H Destí L LSDU length
Octet 0 Octet 1 Octet 2 Octet 3 Octet 4 Octet 5 Octet 6 Octet 7
Capa d'enllaç
Capa
Xarxa
Capa
d'enllaç
Capa
de transport
Capa d'aplicació
Capa
d'enllaç
Aplication control Field Check
…
Longituddelesdades(1..16)
TPCI:TransporterLayerprotocol
controlInformation
APCIAplicationlayercontrolinformation
APCI/Dades
Dades
Dades
AT:0=AdreçaFisica1=Adreçadegrup
NetworkcontrolField
(Campdecontroldexarxa)
22. 4.- Com ho faig. Estudi de les trames, capa
d’enllaç. Byte de control i de adreçament.
Octet 0
Control
7 6 5 4 3 2 1 0
l/s 0 r 1 pr1 pr0 ack 0
l/s 1--> Trama curta, és a dir de 0..15 octets
0--> Trama llarga, és a dir mes de 16 octets.
r repeat 0--> trama repetida
1--> trama no repetida
Prioritat
pr1,pr0
00 més urgent, prioritat de sistema
01 Molt urgent
10 Prioritat normal
11 Baixa prioritat
ack 0--> no es necessari l'ack
1--> és necessari l'ack
Octet 1 Octet 2
Adreça Origen H Adreça Origen L
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Àrea Línea
Dispositiu
Sub xarxa
Octet 3 Octet 4
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Grup principal Grup intermedi Grup secundari
0 0..15 0..7 0..255
23. 4.- Com ho faig. Estudi de les trames, capa
d’enllaç. Byte de longitud i checksum .
AT= 1 destí és grup.
Lenght = 0.. 15. a comptar des de el byte 7. Lenght=0 la trama té 8 bytes.
Checksum = NXOR de tots els bytes que el precedeixen
24. 4.- Com ho faig. Estudi de les trames, capa d’enllaç.
Accés al medi CSMA/CA Carrier Sense Multiple Access with
Collision Avoidance.
25. 4.- Com ho faig. Estudi de les trames, capa de xarxa. NPDU
Network Protocol Data Unit
Lliurament (origen - destí ) a través de múltiples xarxes.
Amb el NPDU i l’ajuda dels encaminadors (Acobladors de línea i d’àrea ).
26. 4.- Com ho faig. Estudi de les trames, capa de transport
TPDU Transport Protocol Data Unit
Diferents modes de transmissió:
• Punt a multipunt, no orientat a la
connexió. Multicast. Membres d’un grup .
• Punt a tots els punts, no orientat a la
connexió. Broadcast. Tothom
• Punt a punt, no orientat a la connexió.
• Punt a punt , orientat a la connexió.
UNICAST MULTICAST BROADCAST
28. 4.- Com ho faig. Estudi de les trames, capa d’aplicació.
Octet 6 Octet 7
Aplication control field
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0APCI
APCI
APCI
APCI
APCI/Date
APCI/Date
APCI/Date
APCI/Date
APCI/Date
APCI/Date
0 0 0 0 0 0 0 0 0 0 A_GroupValue_Read Multicast
0 0 0 1 A_GroupValue_Response Multicast
0 0 0 0 0 0 0 0 1 0 A_GroupValue_Write Multicast
Serveis que es destinen a tot un grup , p.ex. :
A_GroupuValue_Write escriure un determinat valor sobre tots el
membres d’un mateix grup.
El servei associat de la capa de transport serà el T_data_group
29. 4.- Com ho faig. Estudi de les trames, capa d’aplicació.
Octet 6 Octet 7
Aplication control field
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
APCI
APCI
APCI
APCI
APCI/Date
APCI/Date
APCI/Date
APCI/Date
APCI/Date
APCI/Date
0 0 1 1 0 0 0 0 0 0 A_IndividualAddres_Write BroadCast
0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 A_IndividualAddres_Read BroadCast
0 1 0 1 0 0 0 0 0 0 A_IndividualAddres_Reponse BroadCast
Serveis Broadcast , destinats a tots els dispositius , p.ex. :
Incorporarà el servei Broadcast des de la capa de transports
T_Data_Boadcast
A_individual Addres_Read
30. 4.- Com ho faig. Hardware a dissenyar.
KNX-TP1
Rx/Tx
5 v
TP-UART PIC16F886
CC/CC
MAX 232
Opto
aïlladors
Rx/Tx
R
x
/
T
x
Rx/Tx
5 v
Adaptador
KNX /IP
Knx/IP
31. 4.- Com ho faig. Hardware a dissenyar.
KNX-TP1
5 v
TP-UART PIC16F886
Opto
aïlladors
Rx/Tx Rx/Tx
+ =
Capes física i
enllaç.
Capes
d’enllaç,transport,
xarxa i aplicació.
32. 4.- Com ho faig. Hardware a dissenyar.
KNX-TP1
5 v
TP-UART MAX 232
Opto
aïlladors
Rx/Tx Rx/Tx
+ =
Capes física i
enllaç.
Adaptador de
nivells
33. 4.- Com ho faig. Software a dissenyar.
init_timers();
Llegeix la informació gravada
amb l’ETS a la EEPROM i la
passa a variables de treball
Return()
· Configuracions inicials.
· Activar interrupcions port sèrie.
init_timers();
Bucle infinit
· Deshabilitar interrupcions.
decod_trama();
EOF=0;
Final Paquet?
EOF=1?
Sempre
Si
Fi bucle infinit
no
Main Sortides
TA==1
Adreça física o
Adreça de grup
Taula_Dassociacions(Taula_Grups());
Grup
Física
#interrupció sèrie()
Guardar caràcter del buffer del
port sèrie al buffer intern de
treball. Ent[id]
Final de la
trama?
EOF=1;
Return()
decod_trama();
Extreu parametres bàsic de la trama rebuda.
decod_trans(TA,TCP_H,TCP_L);
decod_apli(TA,APC,LENGH);
Return()
Descod_transp();
Descodifica la capa de
transport
Per Th=
0 : T_data_individual();
64: T_data_connected();
128: Per (Tl)
0:T_connect();
1:T_disconnect();
192: Per (Tl)
2:T_Ack();
3:T_NAck();
Return()
Descod_Aplicació();
Descodifica la capa
d’aplicació
Per APC_A=
3 :A_IndividualAdrr_Write();
4:A_IndividualAdrr_Read();
8: ack();
A_Memory_Read();
10: ack();
A_Memory_Write();
12: ack();
A_DeviceDescriptor_read();
14:A_Restart();
Return()
T_connect();
Esborrar comptadors de trama :
Messi i sacks;
Return()
A_IndividualAdrr_Write()
Return()
Grava la nova adreça física
proporcionades a la trama
d’entrada (bytes dades_0 i
dades_1), a l’eprom 0x17 i
0x18