Hardware Reference
In-Depth Information
gramm, Abb. 3.30 b beschreibt ihn als eine nebenläufige Prozedur und Abb.
3.30 c zeigt noch einmal das Empfangssignal, aus dem das übertragene Byte
zurückgewonnen wird. Der Empfänger erkennt den Übertragungsbeginn an
der fallenden Flanke zwischen dem Stoppbit der letzten Übertragung und
dem Startbit der aktuellen Übertragung. Von da aus wartet er zuerst 1,5 Bit-
zeiten bis zur Mitte des ersten Datenbits und dann jeweils eine Bitzeit auf den
nächsten Bitübernahmezeitpunkt. Von den empfangenen Bits wird gleichfalls
die EXOR-Summe gebildet und mit dem Wert des empfangenen Paritätsbits
verglichen. Bei einer Abweichung oder, wenn zum Abtastzeitpunkt des Stopp-
bits der Wert des Empfangssignals
ungleich »1« ist, wird ein Fehlersignal
aktiviert. Nach Empfang aller Bits wird das Ready-Signal, das nach Erkennen
der Startflanke deaktiviert wurde, wieder aktiviert. Auch der Empfangsablauf
ist in eine Endlosschleife eingebettet.
RxD
Bearbeitungsstand: Auch für den Empfänger ist die Funktion jetzt in
einer simulierbaren Weise beschrieben.
Schritt 4: Simulation der seriellen Übertragung
Die wichtigste Anforderungen an eine UART ist, dass die versendeten Daten
korrekt empfangen werden. Dazu ist die gesamte UART mit dem Modell des
Senders, dem Modell des Empfängers, einem Modell für die Übertragungs-
strecke sowie Hilfsprozessen für die Bereitstellung der zu versendenden Daten
und für die Kontrolle der empfangenen Daten zu simulieren. In dem nachfol-
genden Testrahmen werden der Sender und der Empfänger durch die beiden
nebenläufigen Prozeduren und die Übertragungsstrecke durch eine nebenläu-
fige Signalzuweisung mit einer Transportverzögerung beschrieben. Die Bitzeit
für den Empfänger wurde 1% kleiner als die des Senders gewählt, um den
zufälligen Taktversatz und die unvermeidlichen geringen Abweichungen zwi-
schen den Periodendauern des Sendertaktes und des Empfängertaktes ansatz-
weise zu berücksichtigen. Besser wäre eine geringfügige zufällige Variation der
Taktperioden:
signal x, y: tByte;
signal Start, busy, TxD, RxD, ready, Err:std_logic;
constant tbit:delay_length:= 10ns ;
...
Sender(Start=>Start, x=>x, TxD=>TxD, busy=>busy, tbit=>tbit);
Empfaenger(RxD=>RxD,y=>y,ready=>ready,Err=>Err,tbit=> 0.99 *tbit);
RxD <= transport TxD after 5ns ; -- Leitungs modell
)WEB-Projekt:P3.4/Test_UART1.vhdl
Der nachfolgende Eingabeprozess stellt die Daten für zwei Übertragungszy-
klen bereit. Für jeden Übertragungszyklus werden ein Startimpuls erzeugt, die
 
Search WWH ::




Custom Search