新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 主流32位单片机攻略连载:为什么要学STM32?

主流32位单片机攻略连载:为什么要学STM32?

作者:时间:2012-08-08来源:网络收藏

  1)产品需求文档:描述产品的特性

  2)功能需求文档:描述产品必须具备的功能

  3)工程说明文档:描述系统实现的方法和满足需求的手段

  4)硬件说明文档:对有关硬件进行描述

  5)软件或固件说明文档:描述特定处理器下设计微程序以及固件的方法

  6)测试说明文档:描述必须测试的项目和验证系统正常运行的方法

  1.需求定义

  需求定义用来描述产品的基本功能,对于公司来说,需求一般由该公司的市场销售部门或该公司的主要客户来制定;而对小公司或爱好者,技术人员可以自己负责定义需求,并撰写成文档;对于神舟系列开发板来说,主要就是提供各种接口,为大家开发产品时提供借鉴!

  通常需求定义是围绕以下几个因素而来:

  1)系统的用途(定义需要系统实现的各种功能)

  2)实际输入输出是何种方式实现的(为元器件的选型做参考)

  3)系统是否需要操作界面(涉及软件层操作系统的选型)

  其实对小型的嵌入式产品来说,定义需求是非常关键的,因为需求清楚了,就可以避免后续开发过程中出现的诸如随机存储器(RAM)容量不足或所选的CPU速度不能满足处理的需要等一系列问题。

  ----------------------------------------------------------------------------------------------------------

  下面举个简单的实际例子,供大家来参考:

  系统描述:用于从化温泉的水泵换水系统(用神舟III号开发板模拟实现)

  电源输入:使用来自于变压器的9V~12V直流电

  水泵功率:375W

  1)使用单相交流电机,由机械电气进行控制

  2)如果温泉池处于低水位,则输入开关闭合信号,以禁止水泵继续运行

  3)用户可以自由设置水泵运行或关闭的时间长度

  4)除了自动设置控制外,还需要提供一种人工装置来允许维护人员灵活控制水泵进行维修

  5)水泵开启/关闭/人工干预的时间可以30分钟为单位,在30分钟到23小时的范围内进行调节

  6)显示设备可以指示水泵的开关状态,剩余时间,以及水泵是否处于人工干预模式

  7)具备监视低水位的功能,并显示在屏幕上

  如果需要商用,那么除了上面给出的功能要求外,其设计文档中还要包括电磁干扰(EMI)和电磁兼容性(EMC)认证、安全认证以及使用环境(包括环境温度、湿度、盐雾腐蚀等)等方面的需求。

  实际上,以上的需求确定之后,接下来就是要考虑选择一款合适的CPU来满足和实现系统的功能,那么我们就要将上述7点用户能够理解的需求转化成我们专业领域的需求,转化如下,大家可以参考一下:

  a.处理或更新输入输出信号的速率究竟需要多快?

  解释:目前嵌入式处理器的主频一般都在几十兆到几百兆不等,的主频一般是几十兆,神舟系列开发板的CPU都是72MHZ,有的 ARM9,ARM11处理器可以到几百兆;我们主要看这个产品是否需要对大量数据进行处理,或是否需要对缓冲区进行频繁操作,是否有类似的占用CPU资料的工作要做,这就决定我们要选择一款合适的处理器来让该产品得到最佳的性能。

  b.是否可使用单片集成电路(专用IC)或FPGA来完成数据处理?

  解释:如果可以的话,就不一定要选择处理器来做,用这些专业芯片就能替代

  c.系统是否有大量的用户输入输出操作(如对开关和显示设备进行频繁操作)?

  解释:如果有的话,要在处理器选型的时候考虑这些因素,选择一款能够满足以上要求的CPU.

  d.系统与其他外部设备之间需要使用何种接口?

  解释:这也是需要评估处理器的一个关键问题,选择具备这些接口功能的处理器会方便于我们的电路设计以及软件编程

  e.设计完成后是否有可能需要进行改动,或在设计过程中系统需求是否可能出现变化?我们的设计是否能适应系统需求的变化?

  解释:要避免选择的处理器刚好满足当前要求,这样当以后事务要求逐渐提高,处理器性能如果还有一定空间的话,那么就可以重用目前的产品;第二个就是要选择不会即将停产的芯片,很多处理器用得很广乏,可以借鉴的资料也很多,但是很可能这款芯片已经在市场上流行很长时间了,芯片厂商已经推出更新换代的替代品了,如果你选择了这款芯片,很可能1,2年后就买不到这款处理器芯片了,导致不得不重新选择新的处理器,重新设计产品,这样的既耗费时间,金钱,更消耗人力,延误市场的战机。

2.处理器的选择

  2.1.需要使用的I/O管脚数量

  多数处理器都是使用内存和外部管脚来控制输入输出设备的,通常处理器都会有内置ROM和RAM的,如果内置的内存就已经满足需要,那么处理器就可以节省产生引用外部存储器信号的引脚,这样处理器可为输入输出提供较多的设备管脚(某些处理器支持外部RAM或ROM的使用,但对外部存储器进行访问时,处理器一般需要占用8条到10条I/O管脚)。

  还有,有些处理器带有专用的内部定时时钟,这类时钟也需要使用一个端口管脚来实现某些定时功能;某些处理器中还具有漏极输出和高电流输出能力,可以方便的直接驱动继电器或电磁铁线圈,而不再需要额外驱动硬件的支持。

  当对处理器I/O管脚进行计数时,我们一定要把使用处理器内部功能(如串行接口和定时器等)时限制使用的某些管脚考虑在内。

  2.2.需要使用的接口数量

  嵌入式处理器的主要功能是与应用环境中的硬件进行交互操作,这不仅需要外部硬件对接口具有实时处理能力,而且还要求处理器必须以足够快的速度对接口数据进行有效处理。

  举例来说,STM32神舟系列开发板的CPU是ST公司出品的一款工业级微处理器,它基于CORTEX M3的核心,处理主频可达72MHZ,同时处理器内部配置了USB、SPI、IIC等接口,像STM32神舟IV号的107处理器还支持Ethernet 等输出接口,其目的是更方便的利用这些接口开发出嵌入式产品。

  需要注意的是,由于许多处理器具有的局限性没有在处理器技术资料中给予足够的说明,因此一定要仔细阅读处理器的指标说明。例如,在阅读资料的过程中发现,该资料可能会说明其串行接口可以在最高波特率下工作,但仔细研究该处理器的指标数据时,可能会发现并非该串口接口的所有操作模式都可以在最大波特率下运行。

  深入了解并明确接口要求的方法:可以自己动手编写一些程序来对接口进行实际测试,以确认某种处理器是否可以满足应用的要求;因为,确认某个处理器是否可以满足接口要求并非是一件简单的任务。

  2.3.需要使用的内存容量

  决定内存容量的大小是嵌入式产品设计过程中的一个基本步骤,如果对所需内存容量估计过高,那么我们就有可能会选择成本较高的解决方案;反之,如果低估了所需内存容量,就有可能因系统需要重新设计而导致项目不能按时完工。

  a.RAM和ROM的区别:存储器分为随机存储器(RAM)和只读存储器(ROM)两种。其中ROM通常用来固化存储一些生产厂家写入的程序或数据,用于启动电脑和控制电脑的工作方式。而RAM则用来存取各种动态的输入输出数据、中间计算结果以及与外部存储器交换的数据和暂存数据。设备断电后,RAM中存储的数据就会丢失。

  b.随即存储器(RAM)的选择:RAM容量的预测是比较直观的,我们只需把所有变量数目与所有内部缓冲区的容量以及先入先出(FIFO)队列长度和堆栈长度直接相加,就能得到所需RAM容量的总数。

  如果所需内存容量超出这类处理器的寻址范围,那么只能通过增加外部RAM来满足需求;然而,增加外部RAM的同时将会占用一定数量的I/O管脚来对扩展内存进行寻址,这种扩展往往会影响到处理器来实现应用的初衷。



评论


相关推荐

技术专区

关闭