可能大部分单片机工程师对于开发都没有架构的概念,认为架构只存在于处理器设计,软件工程等听起来很高大上的领域,这种想法是不对的!在嵌入式领域,无论电路板设计还是程序设计,都需要一个优质的架构,它是做出高质量产品的一个重要保证!本文从以下几个方面讲述单片机应用系统架构:
作者并非从事硬件或者电路板设计工作,因此对此稍作讲解。在电路板设计初期,首先考虑电路板功能、功耗、体积、稳定性、抗干扰性等要求,然后据此设计原理图和PCB,它决定了单片机应用系统的硬件结构,是产品设计的重要阶段,最后SMT将电子部件装在电路板上,进行电气测试。良好的电路板设计需要一位经验丰富的电子工程师,当然了电路板设计需要长期的优化,升级过程。
关于软件架构方便,在8位单片机里,由于其计算资源和存储资源比较少,一般采用裸机编程的方式,其架构有基于前后台的顺序执行结构,时间片轮旬执行结构和RTOS结构。在32位单片机里,或者说微控制器里,例如以CORTEX-M为内核STM32系列微控制器、NXP系列微控制器等会选择运行实时操作系统ucos、freertos、rt-thread等;跑操作系统具备诸多优势,一方面降低开发难度,提高实时性,另一方面便于团队合作进行程序设计。
一个优质的软件应该具备高效率,可读性,可移植性等优势,而分层思想就可以提高这些优势。纵观现代的软件设计都有分层思想,尤其在团队合作里面尤为重要,不同的人员可以设计不同层次的软件。当然了软件分层思想在嵌入式领域同样适用。一个分层的原则就是,越往上层硬件无关性越强,这样的设计有利于后期软件的升级和维护。例如在一个智能车软件系统中可以将其分为三层,第一层是驱动层,有电机驱动,灯光驱动,喇叭驱动和传感器驱动等;第二层是中间层,它用于实现部分逻辑功能,例如智能车遇见障碍物,灯光闪烁提示,喇叭鸣笛等;第三层功能层,它是智能车最终功能的体现,例如智能车的寻迹模式,它调用各类中间模块,协调整车部件共同工作。
一款优秀的产品取决于它的架构的合理性,一个好的架构不仅让产品脱颖而出,而且可以明确开发过程和有利于后期升级,维护。