QP-UART数据协议解析模块设计思路

目的:用QP框架中结合事件驱动的层次状态机重构UART数据协议解析模块。

环境:QP,Cortex-M4,各种具有UART数据接口协议的通讯模块

设计思路:

  1. UART通过中断方式访问。接收部分产生收到单字符消息,发送则直接调用非阻塞式发送函数。
  2. 协议解析模块作为通讯模块主动对象的构件。用状态机方式处理单字符消息后根据协议产生各类协议消息。
  3. 通讯模块作为主动对象,订阅单字符消息和各类协议消息,单字符消息分发至协议解析模块构建,用状态机处理各类协议消息,据此保持和实体通讯模块运行状态同步,并适时发送异常消息。

优点:

  1. UART中断函数和访问库可重用。
  2. 协议解析模块和通讯模块应用正交模式,功能划分明晰。

不足:

  1. UART发送部分没考虑周全,可能会被阻塞,最好日后改用提示器模式实现。

你可能感兴趣的:(QP-UART数据协议解析模块设计思路)