Temps de trame UART
Ce calculateur transforme une configuration UART en durée de transmission exacte.
Lancer gratuitement
Indiquez le débit en bauds, les bits de données, la parité et les bits d’arrêt pour obtenir la période d’un bit, le nombre total de bits, le temps de trame dans plusieurs unités et le débit théorique de trames. Le modèle inclut le bit de départ obligatoire et toute la surcharge configurée ; il est donc plus juste qu’une simple division des octets utiles par le débit. Déterministe et sans accès réseau, il convient aux budgets temporels, aux micrologiciels, aux essais et à la documentation série.
Comptez chaque partie de la trame UART
Une liaison UART ne place pas seulement les données utiles sur le fil. La ligne au repos change d’abord d’état pendant un bit de départ, transporte les bits de données, peut ajouter un bit de parité, puis se termine par une ou plusieurs périodes d’arrêt. Le calculateur additionne ces éléments avant de diviser le total par le débit en bauds. Le format courant 8N1 comprend un bit de départ, huit bits de données, aucune parité et un bit d’arrêt, soit dix périodes par trame. À 115200 bauds, la durée vaut donc dix divisé par 115200 secondes, et non huit divisé par 115200. Les parités paire, impaire, marque et espace ajoutent chacune une période. Un réglage de 1.5 ou 2 bits d’arrêt est également compté. La réponse détaille les composants et exprime la durée en secondes, millisecondes et microsecondes afin que vous puissiez préparer un délai d’attente, une mesure d’oscilloscope, une annotation d’analyseur logique ou une note technique sans conversion manuelle.
Interprétez correctement les bauds et les résultats
Dans une UART binaire classique, un symbole représente un bit : 9600 bauds correspondent donc à 9600 périodes de bit par seconde. La période d’un bit vaut un divisé par le débit, tandis que celle d’une trame vaut le nombre total de périodes divisé par ce même débit. La valeur frames_per_second est une limite idéale en émission continue. Elle suppose des trames jointives et ignore les pauses logicielles, le contrôle de flux, les intervalles de paquets, les interruptions, l’ordonnancement USB et le traitement applicatif. Considérez-la comme un plafond, jamais comme une garantie de débit réel. Le calcul décrit le cadrage temporel, pas les tolérances d’oscillateur ni l’erreur de baud admissible. Consultez la fiche technique du microcontrôleur, du pont UART ou de l’émetteur-récepteur. Les valeurs d’arrêt admises sont 1, 1.5 et 2 ; la parité accepte none, even, odd, mark et space. Toute autre valeur est refusée au lieu d’être arrondie silencieusement.
Exploitez le temps pour les tampons et protocoles
Le temps de trame est particulièrement utile lorsqu’un protocole série échange des messages de longueur fixe. Multipliez frame_time_seconds par le nombre de caractères pour obtenir le temps sur le fil, puis ajoutez le silence imposé par le protocole et une marge réaliste de traitement. Vous pouvez ainsi choisir un délai de réception assez long pour le lien, mais assez court pour détecter une réponse absente. frames_per_second facilite aussi le dimensionnement des tampons : cette arrivée maximale sans pause se compare au rythme de la tâche consommatrice. Lors de la validation matérielle, confrontez les périodes calculées aux curseurs d’un analyseur logique pour repérer un diviseur erroné ou une parité inattendue. Le modèle s’arrête à une trame et ne suppose ni longueur de message, ni intervalle, ni norme électrique, ni contrôle de flux. RS-232, RS-485 et UART TTL utilisent des tensions et topologies différentes, mais suivent la même équation de durée lorsque le débit indiqué est celui du signal.
Cas d’usage
Régler un délai de réception
Estimez le temps minimal d’un caractère avant d’ajouter la longueur du message, le traitement et une marge de sécurité.
Contrôler une capture logique
Comparez les largeurs mesurées des bits et trames aux valeurs prévues pour la configuration UART choisie.
Estimer le débit série maximal
Utilisez les trames idéales par seconde pour évaluer les tampons et quantifier la surcharge de cadrage.
Questions fréquentes
Combien coûte le calculateur de trame UART ?
Il fonctionne gratuitement dans le navigateur. Un calcul réussi via l’API coûte $0.002.
Une trame UART possède-t-elle toujours un bit de départ ?
Oui. Ce modèle inclut un bit de départ dans chaque trame UART asynchrone.
Comment la parité modifie-t-elle la durée ?
Les parités paire, impaire, marque et espace ajoutent une période ; none n’en ajoute aucune.
Pourquoi 8N1 compte-t-il dix bits plutôt que huit ?
Aux huit bits de données s’ajoutent un bit de départ et un bit d’arrêt, soit dix périodes.
Les trames par seconde représentent-elles le débit applicatif ?
Non. Il s’agit du plafond idéal sans pause, hors contrôle de flux, traitement, ponts de transport et protocole.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/elec/uart-frame-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"baud_rate":115200}'const res = await fetch("https://api.kit.forhosting.com/elec/uart-frame-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"baud_rate": 115200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/uart-frame-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"baud_rate": 115200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/uart-frame-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"baud_rate":115200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"baud_rate":115200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/uart-frame-time", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"baud_rate": 115200
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.uart_frame_time",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |