Sendbyte() für Infrarot-Datenübertragung in Hardware gegossen

© kner2006

FSM für Infrarot-Datenübertragung: Realisierung mit CPLD und ISE-Webpack in VHDL

Aufbau eines Frames:

  • Präambel = langer Burst (40kHz, Länge: 30 Pulse = 3/3)

  • Logisch 1 = mittellanger Burst (20 Pulse = 2/3)

  • Logisch 0 = kurzer Burst (10 Pulse = 1/3)

  • Pause = Dauer wie kurzer Burst, aber kein Ausgangssignal




FSM2:



liefert 10, 20, 30 Bursts abhängig vom Eingang count; die Bursts werden auf eine Led ausgegeben, wenn nicht eine Pause ansteht (EnableData=0); das Signal „fertig“ schaltet die FSM1 um einen Zustand weiter



FSM1:



schickt einen Frame aus Präambel + 8 Datenbits; zwischen den Datenbits wird immer eine Pause eingeschoben. Die Datenbits werden als Bursts auf die LED geschickt.

Die Datenbits werden vom Eingang bit geholt; getaktet wird die FSM durch den Mikrocontroller bzw. durch die zweite Statemachine, wenn diese die Bursts fertig ausgepulst hat.

Wenn ein Bit gesendet wurde, wird aus dem Schieberegister SR8CE das nächste Bit geschoben (shiftR) und gesendet.



Probleme: die Statemachines müssen als VHDL-Files in das Projekt eingebunden werden, nicht als State-Diagramme (*.DIA); das System lässt nur 1 .DIA-File zu




Summary

 Design Name

 top

 Fitting Status

 Successful

 Software Version

 I.34

 Device Used

 XC9572XL-5-VQ44

 Date

 11-23-2006, 8:27PM



RESOURCES SUMMARY

Macrocells Used

Pterms Used

Registers Used

Pins Used

Function Block Inputs Used

22/72  (31%)

70/360  (20%)

19/72  (27%)

6/34  (18%)

32/216  (15%)



Man sieht: der IC ist durch diese Anwendung zu ca 25% ausgelastet. (19 Flipflops, 70 Produktterme).



Simulation: es muß ein Testbench-File ins Projekt eingebunden werden und ISE auf Behavioral Simulation geschaltet werden.