- LiFePO4 Speicher Test         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Manchester Codierung???

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68

    Manchester Codierung???

    Anzeige

    Powerstation Test
    Ich habe ein Sender/Empfänger-Set gekauft. Nach Anleitung muss man bei diesem ein Rechtecksignal in Manchester Codierung am Sender anlegen. Was ist das???

    Ich habe bereits zum testen ein Rechtecksignal, das ich mit meinem Digital Multimeter herstellen kann am Sender angelegt. Die Übertragung klappte einwandfrei.
    Nun habe ich den Sender in ein Gerät eingebaut, hier erzeuge ich mit einem NE555 ein Rechtecksignal. Der Sender überträgt dieses aber nicht.

    Wo liegt jetzt der Unterschied zwischen diesen Signalen? Am Oszilloskop kann ich keinen erkennen.

    Außerdem: Wie kann ich ein Rechtecksignal in dieser Manchester Codierung herstellen???

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    49
    Beiträge
    1.146
    Hier der Wikipedia Eintrag zur Manchester-Codierung: http://de.wikipedia.org/wiki/Manchester_Code

    Um vernünftig damit arbeiten zu können, wirst Du das Signal wohl am einfachsten mit einem µC herstellen können. Oder Du erzeugst ein Trägersignal und ein Nutzsignal seperat, awobei das Trägersignal die doppelte Frequenz des Nutzsignals haben muss. Dann kannst Du beide Signale mit XOR verknüpfen und hast den Manchester-Code.

    Warum die Übertragung mit deinem Multimeter klappt und mit dem NE555 nicht, kann ich nicht sagen. Sind wirklich beide Signale 100%ig gleich (Amplitude und Frequenz)? Hast Du die Signale im angeschlossenen Zustand gemessen?

    askazo

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68
    Danke für das schnelle beantworten.

    Also ich möchte eigendlich nur einen einzigen schaltzustand senden. Ich bräuchte also diese Manchester Codierung nicht oder?

    An den Signalen zwischen dem Messgerät erkenne ich echt keinen Unterschied. Egal wie ich die frequenz und das Tastsignal am Multimeter verstelle, der sender sendet es und ich kann es super empfangen.

    Ich such dann mal weiter nach gründen an der schaltung...

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68
    Ich habe das Problem behoben. Es lag nicht am Signal. Eigendlich habe ich keine Ahnung wieso es nicht ging, auf jedenfall habe ich gerade noch rein intuitiv einen Elko in meine Schaltung eingelötet. Jetzt sendet der Sender mein Rechtecksignal, das sich hierdurch aber nicht verändert hat. Naja haupsache es geht.

    Danke nochmals


    Mfg

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    49
    Beiträge
    1.146
    Wo hast Du den Elko denn eingebaut?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    10.03.2005
    Alter
    35
    Beiträge
    967
    Welches Sende/EmpfängerSet ist das? Das von Conrad?
    Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2004
    Beiträge
    378
    Hi,

    hier ein Demo vom Proton+ Compiler zum Thema Manchester Code

    Code:
    ' Manchester ENCODE and DECODE, as well as CRC caulculator
    
    		Include "PROTON_G4.INT"				' Use an INTERNAL FONT
            
            Dim ENCODER_LOOP as Byte
            Dim CRC_LOOP as ENCODER_LOOP
            Dim TempVar as Byte
            Dim EncodedWord as Word
            Dim ERROR_FLAG as Bit       
            Dim CRC_OUT as Word
     		Dim CRC_IN as Byte
            
            Dim Y as Byte
    		      
            Symbol CRCPolynomial = $1021 		' CRC-CCIT
            
            TempVar = %10001001
            Cls
    
            For Y = 0 to 255
                TempVar = Y
            	Print at 1,1,"TEMPVAR ", bin8 Tempvar
                Gosub Encode					' MANCHESTER ENCODE the value held in TEMPVAR. Result in ENCODEDWORD
            	Print at 2,1,"ENC ", bin16 ENCODEDWORD
            	Gosub Decode					' MANCHESTER DECODE the value held in ENCODEDWORD. Result in TEMPVAR
    			Print at 5,1,"ERROR ",DEC ERROR_FLAG
            	CRC_IN = TempVar
    
                Gosub Calc_CRC					' Calculate a CRC of variable X. Result in CRC.HIGHBYTE
            	Print at 3,1,"CRC " , bin8 CRC_OUT
                
                CRC_IN = CRC_OUT.highbyte
            	Gosub Calc_CRC					' Calculate the CRC of variable X. Result in CRC.Lowbyte
            	
                Print at 4,1,"RESULT " , @CRC_OUT.lowbyte
            	Delayms 400
            Next
            Stop
    '--------------------------------------------------------------------------------------------------
    ' Manchester Encode The byte value in TEMPVAR, and place the result in WORD variable ENCODEDWORD
    ' Note that:
    ' 1. TEMPVAR is the byte we want to encode
    ' 2. We will encode it into a 16 bit word, the low byte will contain the lower nibble of the encoded
    ' variable; ' the high byte will contain the upper nibble of the encoded variable
    ' 3. A “0” will be equated to a 0-1 transition
    ' 4. A “1” will be equated to 1-0 transition
    ' 5. The below subroutine will encode each 8-bit byte to a 16-bit word with an equal number of 1’s and 0’s.
    ' Run length is 1. The upside is that this is perfect for DC balancing the receiver’s bit slicer. The
    ' downside is that this results in doubling the bandwidth.
    
    Encode:
            EncodedWord = 0
            Clear ENCODER_LOOP
            Repeat
    			EncodedWord = EncodedWord << 2
                EncodedWord.0 = 1				' Default to Bit = 1
    			EncodedWord.1 = 0
                If TempVar.0 = 0 Then 			
                    EncodedWord.0 = 0			' Bit = 0
    				EncodedWord.1 = 1					
    			Endif	
                TempVar = TempVar >> 1
            	Inc ENCODER_LOOP
            Until ENCODER_LOOP > 7
            Return
    '--------------------------------------------------------------------------------------------------
    ' Note that:
    ' 1. We will decode ENCODEDWORD (lower byte) as the lower nibble of TEMPVAR
    ' 2. ENCODEDWORD ( high byte) as the upper nibble of TEMPVAR
    ' 3. ERROR_FLAG will return SET is an invalid value was found i.e. 1-1 or 0-0 together
    
    Decode:
            Clear ENCODER_LOOP
            Clear ERROR_FLAG
            Repeat
    			TempVar = TempVar << 1
                If EncodedWord.0 = 0 Then If EncodedWord.1 = 1 Then	TempVar.0 = 0	' bit = 0
    			If EncodedWord.0 = 1 Then If EncodedWord.1 = 0 Then	TempVar.0 = 1	' bit = 1
            	If EncodedWord.0 = 0 Then If EncodedWord.1 = 0 Then	Set ERROR_FLAG	' error in bit decode
                If EncodedWord.0 = 1 Then If EncodedWord.1 = 1 Then	Set ERROR_FLAG	' error in bit decode
                EncodedWord = EncodedWord >> 2
                Inc ENCODER_LOOP
            Until ENCODER_LOOP > 7
            Return
    '--------------------------------------------------------------------------------------------------
    ' Calculate BYTE CRC; 16 bit crc based on CCIT polynomial
    ' Note:
    ' 1. The CRC polynomial was given in the Constant definition. Note that there is a plethora of material
    ' available on the internet about CRC calculations and the various polynomials used.
    ' 2. Caveat here: At the end of the CRC calculation on the transmitted data, the sum of the decoded CRC
    ' must equal to “0”. If the resulting CRC calculation is NOT 0 then there was a transmission error. Pay
    ' attention to the order in which you calculate the CRC when you transmit AND the order in which you
    ' calculate the CRC when you receive. Also when you transmit the CRC byte, remember to transmit
    ' High byte first. For further information, look at the below code.
    
    Calc_CRC: 
    		CRC_OUT = (CRC_IN * 256) ^ CRC_OUT
    		Clear CRC_LOOP
            Repeat			
                ROL CRC_OUT , CLEAR           
                If STATUS.0 = 1 then 
                    CRC_OUT = CRC_OUT ^ CRCPolynomial                
                Endif
                Inc CRC_LOOP
            Until CRC_LOOP > 7
    		Return
    
            Include "FONT"
    Vieleicht hilft es dir...

    Frohe Weihnachten und einen guten Rutsch!

    Bye Ulli

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68
    Danke für eure Antworten. Das mit der Manchester Codierung lasse ich aber, ist mir noch zu kompliziert, da ich bisher nur einige kleine Schaltungen mit PICs gebaut habe und nicht viel Ahnung von Microprozessoren hab.

    Den Elko hab ich am Spannungseingang vom Sender eingelötet. Allerdings weiß ich nicht warum das nötig war weil die Spannung geglättet genug war. Als ich das Signal aus meinem Multimeter genommen hab gings ja auch. Hab nur die Vermutung das vielleicht etwas vom Rechtecksignal auf die Versorgungsspannung kam und es dadurch kleine Schwankungen gab. Ich hab aber auf dem Ozilloskop nichts entdeckt.

    Auf jeden Fall geht es jetzt. Am Sender speise ich ein Signal von ca. 500Hz ein. Am Empfänger hab ich ne Schaltstufe aufgebaut und das ganze in ein kleines Handgehäuse gesteckt. Den Sender hab ich in ein Steckergehäuse gebaut. Ich kann diesen jetzt an irgendein beliebiges Gerät stecken und kann dann dessen Zustand am Empfänger ablesen.

    Ach so:
    Das Set hab ich vor einiger Zeit bei Conrad gekauft. Ich glaub das hier ist es. Sieht jetzt ein bisschen anders aus, ich weiß nicht ob die was dran geändert haben:

    SENDE-/EMPFÄNGERMODULSET 433MHZ
    Artikel-Nr.: 130428 - 62

    kostet 14,95€

    Die Reichweite (laut Text 200m) ist wirklich gut. Ich kann bequem durchs ganze Haus laufen (3 Stockwerke).


    Also dann;

    FROHE WEIHNACHTEN!!!!!

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    Ich würde mir das nicht kaufen, da ja unser schlauer Conrad den Schaltplan mit Platine veröfentlicht, also schnell nachbauen, ist auf jedenbilliger als beim magischen C

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    Der Kauf hat den Vorteil, dass er keine Schaltung bauen muss, die er nicht betreiben darf, weil sie nicht angemeldet ist und er kein Amateurfunker ist...

    Ausserdem dürfte er gewisse Schwierigkeiten haben, das SAW-Filter (bzw. Oszillator) irgendwo zu bekommen, wo er nicht mehrere hundert davon abnehmen muss.

    Die 15 Euro sind da vergleichsweise günstig, also eher kaufen anstatt nachbauen (auch wenn Conrad sonst eine Apotheke ist)

    Frohe Weihnachten,
    Stefan

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen