Last modified by Olli S. on 2017/04/28 21:52

From version 25.2
edited by Olli S.
on 2016/08/18 07:56
Change comment: Update document after refactoring.
To version 25.3
edited by Olli S.
on 2017/04/28 21:52
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -26,7 +26,7 @@
26 26  
27 27  )))
28 28  
29 -Die Datei „M-0083_A-007-12-AADB.xml“ lässt sich gut mit z.B. dem Notepad++ öffnen.
29 +Die Datei „M-0083_A-0047-12-AADB.xml“ lässt sich gut mit z.B. dem Notepad++ öffnen.
30 30  
31 31  Nun sollte man sich klar machen, welche Daten überhaupt für ein KNX Gerät zur Identifizierung benötigt werden:
32 32  Hersteller Code (manufacturer)
... ... @@ -35,7 +35,7 @@
35 35  Hardware Version
36 36  Typ des Busankopplers
37 37  
38 -Für den Start kann man sich am besten ein bestehendes Programm aus dem Repository von selfbus laden und dieses verändern. Um eine lauffähige Umgebung zu bekommen sollte dieses Tutorial durch gearbeitet werden: [[Eclipse_ARM (Link konnte nicht erstellt werden...)>>doc:Selfbus.WebHome]]
38 +Für den Start kann man sich am besten ein bestehendes Programm aus dem Repository von selfbus laden und dieses verändern. Um eine lauffähige Umgebung zu bekommen sollte dieses Tutorial durch gearbeitet werden: [[Eclipse_ARM>>doc:Eclipse_ARM]]
39 39  Anschließend kopiert man sich ein Projekt in LPCXpresso und kann loslegen:
40 40  In der Datei „app_main.cpp“ findet sich die Routine „void setup()“ in der sich wiederrum der Aufruf der Routine „bcu.begin“ befindet.
41 41  
... ... @@ -55,7 +55,7 @@
55 55  Diese hat die Übergabeparameter
56 56  void BcuBase::begin(int manufacturer, int deviceType, int version)
57 57  
58 -Der Hersteller Code (manufacturer), der Gerätetyp (deviceType) und die Version ist aus dem Dateinamen der bereits erwähnten Datei „M-0083_A-007-12-AADB.xml“ zu entnehmen.
58 +Der Hersteller Code (manufacturer), der Gerätetyp (deviceType) und die Version ist aus dem Dateinamen der bereits erwähnten Datei „M-0083_A-0047-12-AADB.xml“ zu entnehmen.
59 59  In diesem Fall ist
60 60  0x0083 der Hersteller Code (manufacturer),
61 61  0x0047 der Gerätetyp (deviceType) und
... ... @@ -63,12 +63,12 @@
63 63  
64 64  Analog dazu sind die entsprechenden Stellen für andere Geräte auszuwerten.
65 65  
66 -Die Hardware Version, die wie in Abbildung 3 abgebildet ist, in einem Array abgelegt und anschließend in das userEeprom kopiert wird, lässt sich aus der Datei „M-0083_A-007-12-AADB.xml“ entnehmen. Sie ist unter dem Parameter „LdCtrlCompareProp“ zu finden. In der Datei ist in diesem Fall der Eintrag
66 +Die Hardware Version, die wie in Abbildung 3 abgebildet ist, in einem Array abgelegt und anschließend in das userEeprom kopiert wird, lässt sich aus der Datei „M-0083_A-0047-12-AADB.xml“ entnehmen. Sie ist unter dem Parameter „LdCtrlCompareProp“ zu finden. In der Datei ist in diesem Fall der Eintrag
67 67  <LdCtrlCompareProp ObjIdx="0" PropId="78" InlineData="00000000004800000000" />
68 68  zu erkennen. Dieser wird folgerndermaßen ausgewertet:
69 69  Die Angabe ist Hexadezimal und 6 Byte lang. Angefangen wird hier bei der linken Stelle (MSB) und dann entsprechend 6 Bytes hinunter. Diese Daten werden dann in das Array übertragen.
70 70  
71 -Für die Wahl des korrekten Busankopplers, für die die sblib kompiliert werden muss und an den auch die Parameter des Projektes in LPCXpresso angepasst werden müssen, ist der Parameter „MaskVersion“ wichtig. In der Datei „M-0083_A-007-12-AADB.xml“ ist der Eintrag MaskVersion="MV-0701" zu finden.
71 +Für die Wahl des korrekten Busankopplers, für die die sblib kompiliert werden muss und an den auch die Parameter des Projektes in LPCXpresso angepasst werden müssen, ist der Parameter „MaskVersion“ wichtig. In der Datei „M-0083_A-0047-12-AADB.xml“ ist der Eintrag MaskVersion="MV-0701" zu finden.
72 72  Ist dort *70*, so wie hier zu finden, handelt es sich um ein BIM112 Busankoppler.
73 73  *01* steht für eine BCU1, *02* für eine BCU2.
74 74  Die Parameter in LPCXpresso für das neu erzeugte Projekt müssen an folgenden Stellen angepasst werden:
... ... @@ -80,7 +80,7 @@
80 80  
81 81  (((
82 82  (((
83 -(% style="font-size:11.0pt;line-height:115%; font-family:~"Calibri~",~"sans-serif~";mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:~"Times New Roman~";mso-bidi-theme-font:minor-bidi; mso-ansi-language:DE;mso-fareast-language:EN-US;mso-bidi-language:AR-SA" %)Abbildung 4: Projekteinstellungen C++ Compiler für den Busankoppler
83 +(% style="font-family:~"Calibri~",~"sans-serif~"; font-size:11.0pt; line-height:115%; mso-ansi-language:DE; mso-ascii-theme-font:minor-latin; mso-bidi-font-family:~"Times New Roman~"; mso-bidi-language:AR-SA; mso-bidi-theme-font:minor-bidi; mso-fareast-font-family:Calibri; mso-fareast-language:EN-US; mso-fareast-theme-font:minor-latin; mso-hansi-theme-font:minor-latin" %)Abbildung 4: Projekteinstellungen C++ Compiler für den Busankoppler
84 84  )))
85 85  
86 86  (((
... ... @@ -110,13 +110,13 @@
110 110  
111 111  Nun sollte auch das Programm im Gerät auf die entsprechenden Daten zugreifen können, die mittels ETS in das Gerät geschrieben wurden. Diese Daten werden im sogenannten userEeprom abgelegt und können dort ausgelesen werden. Nun muss man für das Auslesen eine bestimmte Adresse angeben, an der sich die gewünschten Daten verbergen. Wie kommt man also an die Informationen, an welcher Adresse sich welche Daten befinden?
112 112  
113 -Dafür nimmt man sich wieder die Datei „M-0083_A-007-12-AADB.xml“ vor und hält nach einer Sektion Ausschau, die die Anfangsparameter <Parameter… und in der nächsten Zeile <Memory… hat. In diesem Fall ist das ab Zeile 1309:
113 +Dafür nimmt man sich wieder die Datei „M-0083_A-0047-12-AADB.xml“ vor und hält nach einer Sektion Ausschau, die die Anfangsparameter <Parameter… und in der nächsten Zeile <Memory… hat. In diesem Fall ist das ab Zeile 1309:
114 114  
115 115  (((
116 116  [[image:knxprod_xml_memory.png||height="322" width="1639"]]
117 117  )))
118 118  
119 -(% style="font-size:11.0pt;line-height:115%; font-family:~"Calibri~",~"sans-serif~";mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:~"Times New Roman~";mso-bidi-theme-font:minor-bidi; mso-ansi-language:DE;mso-fareast-language:EN-US;mso-bidi-language:AR-SA" %)Abbildung 6:Ausschnitt der Applikationsprogramm-Parameter
119 +(% style="font-family:~"Calibri~",~"sans-serif~"; font-size:11.0pt; line-height:115%; mso-ansi-language:DE; mso-ascii-theme-font:minor-latin; mso-bidi-font-family:~"Times New Roman~"; mso-bidi-language:AR-SA; mso-bidi-theme-font:minor-bidi; mso-fareast-font-family:Calibri; mso-fareast-language:EN-US; mso-fareast-theme-font:minor-latin; mso-hansi-theme-font:minor-latin" %)Abbildung 6:Ausschnitt der Applikationsprogramm-Parameter
120 120  
121 121  
122 122  (((
... ... @@ -137,7 +137,7 @@
137 137  Nun gilt es die Adresse dieses Parameters in dem userEeprom zu finden. Dazu wird der Parameter aus Zeile 1325 „CodeSegment=“M-0083_A-0047-12-AADB_AS-4400“ herangezogen. Die 0x4400 in diesem Parameter sind die Grundadresse aller Parameter. Dazu kommt jeweils der Offset, in diesem Fall Offset=“361“. Dieser Parameter ist allerdings in dezimaler Schreibweise angegeben! Somit sind 361 dez = 0x169, welche sich für die Gesamtadresse zu den 0x4400 hinzuaddieren.
138 138  
139 139  Für das Auslesen benötigt man allerdings noch die Information, wie viele Bytes man ab dieser Startadresse lesen möchte.
140 -Dazu sucht man in der Datei „M-0083_A-007-12-AADB.xml“ die Sektion
140 +Dazu sucht man in der Datei „M-0083_A-0047-12-AADB.xml“ die Sektion
141 141  <ParameterType Id="M-0083_A-0047-12-AADB_PT-TempCycle" Name="TempCycle">
142 142  Die Id wird aus der Zeile 1324 unter „ParameterType“ herausgenommen und entsprechend danach gesucht.
143 143  
... ... @@ -145,7 +145,7 @@
145 145  [[image:knxprod_xml_size.png||height="303" width="1041"]]
146 146  )))
147 147  
148 -(% style="font-size:11.0pt;line-height:115%; font-family:~"Calibri~",~"sans-serif~";mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:~"Times New Roman~";mso-bidi-theme-font:minor-bidi; mso-ansi-language:DE;mso-fareast-language:EN-US;mso-bidi-language:AR-SA" %)Abbildung 8: Datentypgröße eines Applikationsprogramm-Parameters
148 +(% style="font-family:~"Calibri~",~"sans-serif~"; font-size:11.0pt; line-height:115%; mso-ansi-language:DE; mso-ascii-theme-font:minor-latin; mso-bidi-font-family:~"Times New Roman~"; mso-bidi-language:AR-SA; mso-bidi-theme-font:minor-bidi; mso-fareast-font-family:Calibri; mso-fareast-language:EN-US; mso-fareast-theme-font:minor-latin; mso-hansi-theme-font:minor-latin" %)Abbildung 8: Datentypgröße eines Applikationsprogramm-Parameters
149 149  
150 150  
151 151  In dieser Sektion ist der Parameter „SizeInBit=8“ (Zeile 222) zu finden.