From 950eca52511826b61e32fe2b296d5d561b19666c Mon Sep 17 00:00:00 2001 From: zouhaitao Date: Mon, 6 Jul 2026 11:29:23 +0800 Subject: [PATCH] docs: restore flowchart and translate implementation_plan.html back to Chinese --- Docs/implementation_plan.html | 143 +++++++++++++++++----------------- 1 file changed, 73 insertions(+), 70 deletions(-) diff --git a/Docs/implementation_plan.html b/Docs/implementation_plan.html index 2c78c57..ec2f63f 100644 --- a/Docs/implementation_plan.html +++ b/Docs/implementation_plan.html @@ -1,8 +1,8 @@ - + - Plan d'implémentation - Bracelet Intelligent + 手环端开发计划书 (V1.2) - 纯法语 UI & 幻彩 RGB LED
-

Plan d'implémentation du Bracelet (V1.2)

-
Documentation technique de la version française et du pilote de LED RGB (XL-2020RGBC-2812B)
+

手环端开发计划书 (V1.2)

+
STC32G12K128 核心手环系统开发及 UI 渲染方案说明(法语及单线 RGB 版)
-
Topologie de communication et brochage matériel
+
手环系统硬件接口与数据流拓扑图
@@ -148,61 +143,61 @@ - ENTRÉES / BOUTONS & RF + INPUTS / 输入与按键 - Boutons (▲ / ▼ / SOS) - P0.1: BOUTON_UP (▲) - P0.3: BOUTON_DOWN (▼) - P0.2: BOUTON_SOS + 按键输入 (▲ / ▼ / SOS) + P0.1: KEY_UP (▲) + P0.3: KEY_DOWN (▼) + P0.2: KEY_SOS - Récepteur RF 433MHz - P2.1: Données RF (RXD) - P2.2: Mode veille (SHUT) - P3.7: Alimentation RF + LR690L 433MHz 接收 + P2.1: RF_RX_DATA + P2.2: SHUT (低使能) + P3.7: RF_RX 电源开关 - MCU / Machine d'état + MCU / 核心业务逻辑 - Machine d'état principale - ● STATE_NORMAL (Veille/Clock) - ● STATE_PAIR (Appairage) - ● STATE_ALARM (Alarme active) + 主程序状态机 + ● STATE_NORMAL (时钟/待机) + ● STATE_PAIR (对码配对) + ● STATE_ALARM (告警响应) - Ordonnancement & Stockage - Timer 1: Anti-rebond 1ms - Moteur / Logiciel LED - IAP Flash: Stocke 16 capteurs + 时间片调度与存储 + Timer 1: 1ms 消抖与时钟 + 模拟 LED / 马达时序控制 + IAP Flash: 保存对码数据 - SORTIES / AFFICHAGE & RETRO. + OUTPUTS / 交互与显示 - Écran OLED RM69310 - Résolution: 120 x 240 - Police ASCII 8x16 & 16x32 - Interface utilisateur française + OLED 局部刷新渲染 + RM69310 (CS/RST/DCX/SPI) + ASCII 8x16 & 16x32 + 全法语 UI 显示界面 - Actionneurs Physiques - LED RGB (P0.0: Signal unique) - Bus série 800Kbps (NZR) - P2.5: Vibration Moteur + 物理反馈警报输出 + 单线 RGB (P0.0: WS2812 DIN) + 800Kbps 归零码串行驱动 + P2.5: 振动马达驱动 @@ -213,104 +208,112 @@
+ + +
📊 代码逻辑运行流程图
+
+
主循环与 Timer1 中断、RF 双模解码流程
+ 主程序运行流程 main() 系统初始化 (时钟/GPIO/Timer1/OLED) 读取 IAP/EEPROM 传感器对码表 进入 STATE_NORMAL 并开启接收管 while(1) 轮询 有按键事件触发? 处理按键 (状态切换/对码/SOS) 有RF信号输入? 解析协议 (报警触发 / 主机广播) 执行 OLED 局部增量刷新渲染 Timer 1 中断 (1ms 软件调度) 定时器中断服务程序 (ISR) 1. 系统软件时钟累加 (维护 毫秒/秒/分钟 时钟滴答) 2. 按键检测与软件消抖 (每10ms) (检测单击、长按3秒/5秒组合事件) 3. RGB LED 呼吸灯 PWM 翻转 (20ms软件占空比发生器,控制亮度) 4. 警报马达振动时序控制 (控制振动/暂停毫秒脉宽计数器) 中断退出 (RETI) RF 双模解码流程 RF_Decode() 检测引脚 P2.1 (RF_RX_DATA) 为高电平 是否为 EV1527 同步头脉宽? -> 解调 24 位传感器 ID -> 校验前导0x55/同步0xA55A +
+ -
I. Table de configuration des broches et caractéristiques électriques
+
一、 硬件引脚映射与电气特性
- - - - + + + + - + - + - + - + - + - + - + - + - + - +
Catégorie de matérielAlias du portBroche STC32GDescription de la logique de commande硬件功能分类端口别名STC32G 引脚驱动电气逻辑说明
🌈 LED RGB Adressable🌈 单线制幻彩 RGB LED WS2812_DI P0.0Signal de commande unique, protocole 800Kbps, initialisé à 0.单线级联数据输入,800Kbps 归零码协议,推挽输出,上电初始化输出 0
📳 Moteur de Vibration📳 振动驱动马达 MOTOR P2.5Commande tout-ou-rien. Sortie à 1 active la vibration, 0 l'arrête.直流控制,输出 1 开启马达,输出 0 停止。
▲ Bouton de direction (Haut)▲ 方向按键 (上) KEY_UP P0.1Entrée avec résistance de pull-up interne. Actif à l'état bas (0).按下为 0,带内部上拉输入。
▼ Bouton de direction (Bas)▼ 方向按键 (下) KEY_DOWN P0.3Entrée avec résistance de pull-up interne. Actif à l'état bas (0).按下为 0,带内部上拉输入。
🆘 Bouton d'urgence / Appairage🆘 紧急/对码按键 KEY_SOS P0.2Entrée avec résistance de pull-up interne. Actif à l'état bas (0).按下为 0,带内部上拉输入。
-
II. Décisions clés de conception (Design Decisions)
+
二、 核心设计决策 (Design Decisions)
-
💡 Décision 1 : Interface utilisateur 100% en Français (French-only UI)
+
💡 决策 1:纯法语语言包(French-Only UI)
- Conformément aux exigences actuelles, le système prend uniquement en charge l'affichage en langue française. Toutes les chaînes de l'interface ont été traduites pour tenir sur l'écran OLED de 120 pixels de largeur (maximum 15 caractères par ligne). Les coordonnées horizontales des icônes ont été ajustées en conséquence pour garantir un centrage parfait et éviter les chevauchements. + 由于系统调整为仅需要法语界面,因此移除了原本复杂的中文字库寻址及字库空间分配方案。全界面文案已替换为符合法语习惯的词汇。为了适应 120 像素宽的 OLED 屏幕边界,各短语的长度被严格控制在 15 个字符以内以防止屏幕溢出,并微调了各个关键界面的显示坐标(如 "DESARME" 页面图标与文字)实现完美居中。
-
📡 Décision 2 : Intégration de la LED RGB Adressable (XL-2020RGBC-2812B)
+
📡 决策 2:单线制幻彩 RGB LED 驱动集成 (XL-2020RGBC-2812B)
- Les trois LED d'origine sont remplacées par une unique LED intelligente utilisant un protocole de type WS2812B (800Kbps). Pour conserver la logique temporelle existante de clignotement et de contrôle d'état, nous émulons LED_R, LED_G, LED_B en tant que bits mémoire virtuels. Lorsque l'interruption détecte un changement d'état, elle génère dynamiquement la trame GRB 24 bits et l'envoie à la broche P0.0 par modification logicielle directe (bit-bang) avec désactivation temporaire des interruptions. + 原三路 GPIO 独立驱动的共阳极三色 LED 更换为内置 IC 的单线级联式幻彩 LED 珠。由于 STC32G 工作在 24MHz 1T 模式下(每周期 41.67ns),通过在软件上实现精准 NOP 指令延时的 bit-bang 驱动,通过 P0.0 引脚向 LED 发送符合 800Kbps 时序(T0H/T0L/T1H/T1L 归零码)的 24 位 GRB 数据流。为了不影响原有各状态下复杂的灯效和马达波形逻辑,我们仅将 LED_R/G/B 重新定义为内存中的虚拟 bit 变量。在 1ms 中断服务程序末尾,当检测到这些虚拟变量的数值发生改变时,自动触发一次单线数据发送,从而实现了上层逻辑的 100% 兼容。
-
III. Rendu de l'interface et gestion de l'écran
+
三、 UI 渲染引擎细节与坐标规划
-

1. Envoi séquentiel de trames binaires (`LCD_DrawMonoBitmap`)

-

Utilise l'interface SPI matérielle pour adresser une fenêtre rectangulaire, éliminant tout besoin de mémoire tampon en RAM (zéro allocation de frame buffer). Les performances de balayage d'écran sont ultra-rapides et optimales.

+

1. 直流流式送数驱动 (`LCD_DrawMonoBitmap`)

+

基于硬件 SPI 接口,在写图前设置矩形窗口 (x, y) -> (x+w-1, y+h-1),然后从 Flash 字模中逐 Bit 扫描:如果是 1 则流式送入前景色,0 则送入背景色。此方案**零显存开销**,完全避开了单片机 RAM 资源瓶颈,且写屏速度极快。

-

2. Définition des coordonnées d'affichage

-

L'affichage utile sur l'écran circulaire est optimisé dans les coordonnées suivantes :

+

2. 圆形视口安全区域划分

+

由于屏幕物理切边,有效显示区收拢在 X 坐标 [10, 110],Y 坐标 [30, 210] 的安全圆形范围内:

    -
  • Page Horloge : Icône de batterie à X=92, Y=27, et pourcentage "85%" à X=62, Y=24. La date "JEU 07-02" est au centre à Y=155. Les icônes et textes "ARME" (X=52) / "DESARME" (X=42) sont parfaitement centrés à Y=202.
  • -
  • Menu d'appairage : Affiche le titre "MENU APPAI." à Y=30. Les éléments du menu (ex. "DETEC. PORTE") sont dessinés de manière dynamique et le choix actif est encadré à Y=118 par un rectangle de couleur cyan.
  • -
  • Alerte & SOS : Pour l'alarme SOS, le titre "SOS EMIS" s'affiche à Y=125, et "BRACELET ACTIF" à Y=155. Pour les capteurs, le nom (ex. "PORTE ENTREE") est affiché à Y=120, et le texte "ZONE X | ALARME" est affiché à Y=155.
  • +
  • 时钟待机页:右上角电池图标设在 $X=92, Y=27$,电量百分比文字 "85%" 设在 $X=62, Y=24$,留出 6 像素的安全间距。日期及星期 "JEU 07-02" 居中设在 $Y=155$。下方布防 "ARME" 位于 $X=52, Y=202$;撤防 "DESARME" 位于 $X=42, Y=202$。
  • +
  • 配对菜单页:标题为 "MENU APPAI." 位于 $Y=30$。菜单项(如 "DETEC. PORTE")采用 3 行滚动布局,选中行($Y=110$)画出 $100 \times 28$ 边框,高亮显示。
  • +
  • 告警与呼救页:本机 SOS 发射界面显示 "SOS EMIS" ($Y=125$)以及 "BRACELET ACTIF"($Y=155$)。接收普通传感器报警时,名称(如 "PORTE ENTREE")显示于 $Y=120$,下行显示 "ZONE X | ALARME" 位于 $Y=155$。
-
IV. Liste de contrôle des validations (Task Checklist)
+
四、 验证任务清单 (Task Checklist)
  • - +
  • - +
  • - +
  • - +