Escolar Documentos
Profissional Documentos
Cultura Documentos
CURITIBA, 2009
12
EDUARDO HENRIQUE CORRA FERREIRA
CURITIBA, 2009
13
EDUARDO HENRIQUE CORRA FERREIRA
BANCA EXAMINADORA
__________________________________________________
Professor Dr. Eduardo Parente Ribeiro Orientador
_________________________________________________
Professor M.Sc Ademar Luiz Pastro
_________________________________________________
Professor Dr. Gideon Villar Leandro
14
minha noiva, Marciany, meus pais,
Haroldo e Solange, e minha av Maria
Jos por terem me apoiado no s na
elaborao deste trabalho como em tudo
na minha vida.
15
AGRADECIMENTOS
16
RESUMO
17
ABSTRACT
18
LISTA DE ILUSTRAES
19
LISTA DE TABELAS
20
LISTA DE ABREVIATURAS E SIGLAS
ACK Acknowledge
CAN Controller Area Network
CEBus Consumer Electronic Bus
CSMA/CR - Carrier Sense Multiple Access / Colision Resolution
DLC Data Length Code
DSP Digital Signal Processor
EOF End Of Frame
FFD - Full-Function Devices
IDE - Identifier Extension
IEEE - Institute of Electrical and Electronics Engineers
ISO - International Organization for Standardization
MAC - Medium Access Control
PAN Personal Area Network
PCI - Peripheral Component Interconnect
RFD Reduced-Function Devices
RTR Remote Transmission Request
SAE Society of Automotive Engineers
SOF Start of Frame
SRR Subistitute Remote Request
USB Universal Serial Bus
21
SUMRIO
1 INTRODUO 23
2 PROTOCOLOS UTILIZADOS EM APLICAES RESIDENCIAIS 24
2.1 ZIGBEE 24
2.1.1 Camada Fsica .................................................................................. 25
2.1.2 Camada MAC ................................................................................... 26
2.1.3 Aplicaes ........................................................................................ 26
2.2 CEBUS 26
2.2.1 Comunicao via rede eltrica .......................................................... 27
2.2.2 Aplicaes ........................................................................................ 28
2.3 CONTROLLER AREA NETWORK (CAN) 29
2.3.1 Histrico ............................................................................................ 29
2.3.2 Camada Fsica .................................................................................. 30
2.3.3 Camada de Enlace ........................................................................... 34
2.3.3.1 Mensagens ................................................................................. 34
Quadros de Dados ........................................................................... 34
Quadros Remotos ............................................................................ 36
Quadros de Erros e Sobrecarga ...................................................... 37
2.3.3.2 Arbitragem .................................................................................. 38
2.3.3.3 Confinamento de Falhas............................................................. 39
2.3.3.4 Filtragem..................................................................................... 40
2.3.3.5 CANOpen ................................................................................... 41
3 AUTOMAO RESIDENCIAL E REDES CAN 43
3.1 PROPOSTAS 43
3.2 ESTRUTURA DA REDE 44
3.2.1 Hardware .......................................................................................... 44
3.2.1.1 Comunicao via Placa PCI ....................................................... 44
3.2.1.2 Comunicao via Controlador USB ............................................ 47
3.2.1.3 Topologia da Placa ..................................................................... 48
3.2.2 Software............................................................................................ 50
3.2.2.1 Sistema de controle de residncias ............................................ 50
3.2.3 Exemplos de Mensagens.................................................................. 52
3.2.3.1 Equipamentos de uma residncia .............................................. 53
4 CONCLUSES 57
REFERNCIAS BIBLIOGRFICAS 58
ANEXOS 60
1. FUNES DELPHI 60
1.1 FindUSBCANTarget............................................................................. 60
1.2 getUSBCAN ......................................................................................... 61
1.3 sendUSBCAN ...................................................................................... 63
22
1 INTRODUO
23
2 PROTOCOLOS UTILIZADOS EM APLICAES RESIDENCIAIS
2.1 ZIGBEE
24
As redes ZigBee por definio devem possuir pelo menos um dispositivo
FFD como mostra a figura a seguir.
25
2.1.2 Camada MAC
2.1.3 Aplicaes
2.2 CEBus
2.2.2 Aplicaes
28
2.3 CONTROLLER AREA NETWORK (CAN)
2.3.1 Histrico
30
barramento que carrega a informao, os fios deste barramento so
denominados CAN_H (High) e CAN_L (Low).
O conceito envolvido na transmisso de mensagens CAN baseado na
tcnica CSMA/CR (do ingls, Carrier Sense Multiple Access/ Colission
Resolution) onde, em caso de coliso a mensagem que apresentar o primeiro
bit dominante, ou seja, o bit que causar uma diferena de tenso entre CAN_H
e CAN_L, levar vantagem e continuar a ser enviado sem destruio ou
interferncia. Este processo ser visto mais profundamente no tpico sobre
mensagens CAN.
31
Figura 6 - Nvel de barramento, segundo ISO 11898
32
A conexo dos ns ao barramento CAN geralmente realizada atravs
de conectores DB 9, a configurao dos pinos do conector est apresentada na
tabela abaixo:
Pinos Nome do Sinal Descrio
1 Reservado A ser definido
2 CAN_L Dominante nvel baixo
3 CAN_GND Terra
4 Reservado A ser definido
5 CAN_SHLD Blindagem (Opcional)
6 GND Terra
7 CAN_H Dominante nvel alto
8 Reservado A ser definido
9 CAN_V+ Fonte
Tabela 2 - Pinagem dos conectores DB9 seguindo padro CAN
33
2.3.3 Camada de Enlace
2.3.3.1 Mensagens
Quadros de Dados
34
O campo de incio de quadro (Start of Frame SOF) composto por
apenas um bit dominante, este bit responsvel por informar o barramento que
uma mensagem ir comear a ser transmitida.
O campo de arbitragem (Arbitration Field) na verso 2.0 A possui um
campo de 11 bits chamado de Identificador da mensagem, e um campo de
requisio de retransmisso de dados (RTR Remote Transmission Request).
O campo Identificador de Mensagens responsvel por informar ao
barramento a prioridade da mensagem. E o campo RTR composto por
apenas um bit, se este bit for dominante, responsvel por informar aos
componentes que um quadro remoto deve ser enviado aps o recebimento
desta mensagem.
35
Figura 11 - Campos de arbitragem e controle de mensagem no formato CAN 2.0 B
Quadros Remotos
36
Figura 12 - Estrutura do pacote remoto
37
2.3.3.2 Arbitragem
39
Figura 15 - Estados de erro de ns CAN
2.3.3.4 Filtragem
40
Figura 16 - Esquema de Filtragem
2.3.3.5 CANOpen
41
Figura 17 - Exemplo de dicionrio de parmetros
42
3 AUTOMAO RESIDENCIAL E REDES CAN
3.1 Propostas
43
escravos seriam sensores e atuadores que possuem microcontroladores
capazes de interpretar mensagens CAN.
Para a aplicao de controle do sistema pode se usar qualquer
linguagem de programao que tenha acesso s portas seriais do computador,
como por exemplo, C#, Java ou Delphi. Este sistema terico tambm pode ser
estendido para uma aplicao de WebService, onde a casa estaria conectada
remotamente na internet.
3.2.1 Hardware
44
Modelo Fabricante Preo
46
Figura 22 Placa PC276
47
3.2.1.3 Topologia da Placa
Figura 23 - PIC18F2455
48
milhes de instrues por segundo e possui duas sadas Tx e Rx para
comunicao CAN.
Este processador possui ainda dois acumuladores com 40 bits cada,
cinco tipos de interrupo externa e sete nveis de prioridade totalmente
programveis.
Figura 24 - DSPIC33FJ256GP710
49
CAN, em caso afirmativo o pacote enviado para o DSP que se encarrega de
processar e enviar a mensagem ao barramento.
O caminho inverso ocorre da mesma forma, ao receber um pacote do
barramento CAN o processador filtra as mensagens CAN, se alguma
mensagem for destinada ao computador, o DSP envia o pacote para o PIC que
encapsula a mensagem no pacote USB e envia ao computador.
3.2.2 Software
51
Figura 26 - Fluxograma da funo getUSBCAN
52
3.2.3.1 Equipamentos de uma residncia
53
Cmodo Equipamento Nvel de Prioridade
Televiso Mdio
Aparelho de Som Mdio
Sala Computador Pessoal Mdio
Tomadas Baixo
Lmpada Alto
Geladeira Mdio
Fogo Eltrico Mdio
Cozinha Forno Microondas Mdio
Tomadas Baixo
Lmpada Alto
Televiso Mdio
Quarto Tomadas Baixo
Lmpada Alto
Tomadas Baixo
Banheiro
Lmpada Alto
Controle de Portas Alto
Sistema de Alarme Alto
Tabela 5 - Nveis de prioridade dos equipamentos
54
Seguindo a lgica de arbitragem foram escolhidos os identificadores de
cada equipamento como mostra a tabela a seguir:
Identificador (bits)
Equipamento b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 Nvel
Alarme 0 0 0 0 0 0 0 0 0 1 0 0 Alto
Controle de Portas12 0 0 0 0 0 0 0 0 0 1 1 1
Lmpada Sala 0 0 0 0 0 0 0 1 0 0 0 0
Lmpada Cozinha 0 0 0 0 0 0 0 1 1 0 0 0
Lmpada Quarto 0 0 0 0 0 0 0 1 1 1 0 0
Lmpada Banheiro 0 0 0 0 0 0 0 1 1 1 1 0
Computador Pessoal 0 0 0 0 0 1 0 0 0 0 0 0
Televiso da Sala 0 0 0 0 0 1 1 0 0 0 0 0
Aparelho de Som 0 0 0 0 0 1 1 1 0 0 0 0
Geladeira 0 0 0 0 0 1 1 1 1 0 0 0 Mdio
Fogo eltrico 0 0 0 0 0 1 1 1 1 1 0 0
Microondas 0 0 0 0 0 1 1 1 1 1 1 0
Televiso do Quarto 0 0 0 0 0 1 1 1 1 1 1 1
Tomada 1 da Sala (TS1) 1 0 0 0 0 0 0 0 0 0 0 0
TS2 1 0 1 0 0 0 0 0 0 0 0 0
TS3 1 0 1 1 0 0 0 0 0 0 0 0
TS4 1 0 1 1 1 0 0 0 0 0 0 0
TS5 1 0 1 1 1 1 0 0 0 0 0 0
Tomada 1 da Cozinha
(TC1) 1 0 1 1 1 1 1 0 0 0 0 0
TC2 1 0 1 1 1 1 1 1 0 0 0 0
TC3 1 1 0 0 0 0 0 0 0 0 0 0
TC4 1 1 1 0 0 0 0 0 0 0 0 0 Baixo
TC5 1 1 1 1 0 0 0 0 0 0 0 0
Tomada 1 do Quarto (TQ1) 1 1 1 1 1 0 0 0 0 0 0 0
TQ2 1 1 1 1 1 1 0 0 0 0 0 0
TQ3 1 1 1 1 1 1 1 0 0 0 0 0
TQ4 1 1 1 1 1 1 1 1 0 0 0 0
TQ5 1 1 1 1 1 1 1 1 1 0 0 0
Tomada 1 do Banheiro
(TB1) 1 1 1 1 1 1 1 1 1 1 0 0
TB2 1 1 1 1 1 1 1 1 1 1 1 0
Tabela 6 - Exemplo de identificadores de mensagem
12
Para o controle de portas cada porta possui um identificador passado juntamente com os dados do pacote.
55
Este exemplo serve para mostrar o mtodo de priorizao de
mensagens, e deteco de erros a partir de seu identificador. Seguindo o
princpio de dominncia de bits, as mensagens com baixo nvel de prioridade
possuem um bit recessivo logo no comeo do seu identificador, e conforme
aumenta o nvel de prioridade o cdigo binrio do identificador diminui. Cada
equipamento ira filtrar somente as mensagens contendo seu prprio
identificador, mostrando que a comunicao utilizando o protocolo CAN uma
comunicao totalmente segura, pois cada equipamento s opera se seu
identificador foi reconhecido.
O protocolo CAN permite muitas outras configuraes, o exemplo
acima poderia ser refeito de modo que cada nvel de prioridade possusse um
identificador fixo e cada equipamento possuiria um identificador passado como
um dado no pacote.
A escolha do padro de mensagens feita de modo singular levando em
conta as prioridades desejadas, a freqncia de uso de cada equipamento e a
funo deste na rede.
56
4 CONCLUSES
57
REFERNCIAS BIBLIOGRFICAS
58
Kvaser, Placa PCIcanx HS/HS. Disponvel em:
<https://secure.assurebuy.com/98057/98057.htm> Acesso em 25/09/2009
59
ANEXOS
1. Funes Delphi
1.1 FindUSBCANTarget
procedure TfrmPrincipal.findUSBCANTarget;
var i,j: Integer;
serverResponse, porta: LongWord;
begin
if not Port.Connected then
begin
Port.Timeouts.ReadInterval := 50;
porta:= $FEAD1234;
60
txdata[17] := $0D; // STOP <CR>
Port.Open;
for i:=0 to 17 do
Port.Write(txdata[i],1);
sleep(60);
for i:=0 to 17 do
Port.Read(rxdata[i],1);
Port.ClearBuffer(True,True);
end;
end;
1.2 getUSBCAN
61
try
for i:=0 to 17 do
rxdata[i] := $0
Port.Timeouts.ReadInterval := 250;
txdata[0] := $40; // START
txdata[1] := Make8(mensagem,3); // MID01
txdata[2] := Make8(mensagem,2); // MID02
txdata[3] := Make8(mensagem,1); // MID03
txdata[4] := Make8(mensagem,0); // MID04
txdata[5] := EXT; // EXTENDED IDENTIFIER
txdata[6] := RTR; // RETURN REQUEST
txdata[7] := NB; // NUMBER OF DATA BYTES
txdata[8] := DB0; // I2C DB00
txdata[9] := DB1; // I2C DB01
txdata[10] := DB2; // I2C DB02
txdata[11] := DB3; // I2C DB03
txdata[12] := DB4; // I2C DB04
txdata[13] := DB5; // I2C DB05
txdata[14] := DB6; // I2C DB06
txdata[15] := DB7; // I2C DB07
txdata[16] := CheckSum(); // CHECKSUM
txdata[17] := $0D; // STOP <CR>
if Port.Connected then
begin
for i:=0 to 17 do
Port.Write(txdata[i],1);
sleep(60);
for i:=0 to 17 do
Port.Read(rxdata[i],1);
if (rxdata[1] = $0) and (rxdata[2] = $0) and (rxdata[3] = $0) and (rxdata[4] =
62
$0) then
begin
Result := False;
Port.ClearBuffer(True,True);
Exit;
end;
if ((rxdata[1] = 0) and (rxdata[2] = 0) and (rxdata[3] = 0))then
Result:= False;
Result:= True;
end
else
begin
TimerRun.Enabled := False;
btRun.Caption := 'Run';
ShowMessage('Dispositivo No Conectado!');
Result:= False;
end;
Port.ClearBuffer(True,True);
except
on E : Exception do
begin
Result:= False;
Port.ClearBuffer(True,True);
Log.AdicionarErroCritico(E, 'Erro ao ler dados USB.');
end;
end;
end;
1.3 sendUSBCAN
63
var i:Integer;
begin
Sleep(25);
txdata[0] := $40; // START
txdata[1] := Make8(mensagem,3); // MID01
txdata[2] := Make8(mensagem,2); // MID02
txdata[3] := Make8(mensagem,1); // MID03
txdata[4] := Make8(mensagem,0); // MID04
txdata[5] := EXT; // EXTENDED IDENTIFIER
txdata[6] := RTR; // RETURN REQUEST
txdata[7] := NB; // NUMBER OF DATA BYTES
txdata[8] := DB0; // I2C DB00
txdata[9] := DB1; // I2C DB01
txdata[10] := DB2; // I2C DB02
txdata[11] := DB3; // I2C DB03
txdata[12] := DB4; // I2C DB04
txdata[13] := DB5; // I2C DB05
txdata[14] := DB6; // I2C DB06
txdata[15] := DB7; // I2C DB07
txdata[16] := CheckSum(); // CHECKSUM
txdata[17] := $0D; // STOP <CR>
if Port.Connected then
begin
for i:=0 to 17 do
Port.Write(txdata[i],1);
end
else
ShowMessage('Dispositivo No Conectado!');
Port.ClearBuffer(True,True);
end;
64
65