Inhaltsverzeichnis
Network Controller/PC Spezifikationen
Für das Projekt "Network Controller/PC" werden hier die ganz konkreten Spezifikationen angelegt. Als "Sprache" wird Pseudo-Code, an C angelehnt, verwendet.
Spezifikationen Layer-0 UART
- Kontrollzeichen
#define CTL_M_MASK 0xF8 #define CTL_M_ADON 0x10 #define CTL_C_BASE 0xA8 #define CTL_C_STX CTL_C_BASE + 1 #define CTL_C_ETX CTL_C_BASE + 2 #define CTL_C_PFX CTL_C_BASE + 3
- Code-Beispiel/Muster für Paket-senden
( transmit() stellt die Funktion für den tatsächlichen physischen Output dar).
static unsigned char bTxBcc; // Checksum für BCC
// --------------------------------------------------------------
void TxStartFrame ( void )
{
bTxBcc = 0
transmit ( CTL_C_STX )
}
// --------------------------------------------------------------
void TxCloseFrame ( void )
{
transmit ( bTxBcc )
transmit ( CTL_C_ETX )
}
// --------------------------------------------------------------
void TxSendFrameByte ( unsigned char bTxChar)
{
bTxBcc ^= bTxChar
if (bTxChar & CTL_M_MASK) == CTL_C_BASE)
{
transmit ( CTL_C_PFX )
transmit ( bTxChar | CTL_M_ADON )
}
else
{
transmit ( bTxChar )
}
}
- Die entsprechende Empfangsroutine ist etwas komplexer und wird wesentlich mehr vom Geschick und den Gewohnheiten des Programmieres bestimmt.
Autor
Siehe auch