Entwicklung der Ansteuerung eines Funkmoduls über System on a Chip

Entwicklung der Ansteuerung eines Funkmoduls über System on a Chip

Beschreibung

In dieser Masterarbeit wurde ein XBee-Funkmodul über das DE2-70 Development and Education Board angesteuert. Als Schnittstelle zwischen dem DE2-70 Development and Education Board und dem XBee-Funkmodul wurde eine serielle Schnittstelle verwendet. Diese Schnittstelle wurde als VHDL-Komponente entwickelt. Zur Steuerung der Hardware-Komponente wurde mit dem SOPC-Builder, der in der Entwicklungsumgebung Quartus II integriert ist, ein Prozessorsystem erstellt. Die VHDL-Komponente „UART“, welche die serielle Schnittstelle enthält, wurde in dieses Prozessorsystem integriert.


Zur Verarbeitung der Daten, die über die serielle Schnittstelle an das XBee Funkmodul gesendet werden, wurden in Nios II verschiedene Funktionen erstellt. Die Verarbeitung der Daten basiert auf dem XBee-Standard des API-Protokoll. Zu Empfangene Daten werden durch ein ausgelösten Interrupt Byteweise aus dem VHDL-Modul ausgelesen und anschließend in einem Feld in C zwischengespeichert. Die Daten werden nun ausgewertet und die Payload des empfangenen Übertragungsrahmes wird auf dem LC-Display ausgegeben.


Will der Anwender des Programms Daten zu einem XBee-Modul übertragen, muss die Adresse des XBee-Moduls sowie die zu übertragenen Daten in zwei Defines in C abgelegt werden. Das Programm erkennt nun, wie viele Bytes die zu übertragenen Daten enthalten und bettet diese in den dafür vorgesehenen Übertragungsrahmen ein. Der Übertragungsrahmen wird Byteweise in das VHDL-Modul „UART“ geschrieben. Ist ein Byte übertragen worden, wird dies der Funktion in C durch einen Interrupt mitgeteilt und das nächste Byte wird an das VHDL-Modul übergeben. Wurde ein Rahmen an ein anderes XBee-Modul übertragen, wird daraus resultierende Status-Meldung des Empfängers ausgewertet. Der Empfangene Status wird ebenso wie die gesendeten Daten auf dem LC-Display des DE2- 70 Boards ausgegeben. Sollte die Statusmeldung keine Acknowledgement als Status zurückgeben, wird die Datenübertragung erneut gestartet.

Das gesamte Projekt wurde so gestaltet, dass einzustellende Parameter wie die XBee-Zieladresse, die zu übertragenen Daten und die Baudrate für die serielle Schnittstelle einfachüber Defines, bzw. Generics geändert werden können. Das Modul „UART“ ist in sich auch unabhängig, so dass die Schnittstelle auch für andere Projekte verwendet werden kann. 

Johannes Tirre (August 2011)