没有合适的资源?快使用搜索试试~ 我知道了~
从零开始开发一款嵌入式系统设备.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 126 浏览量
2022-07-14
06:20:06
上传
评论
收藏 34KB PDF 举报
温馨提示
试读
11页
从零开始开发一款嵌入式系统设备.pdf
资源推荐
资源详情
资源评论
如何从零开始开发一款嵌入式产品( 20 年的嵌入式经验)
首先,如果你有幸看到这篇文章,千万不要试图在 2 个小时内阅读完,就算你 2
个小时阅读完, 我相信你也不会理解里面讲解的精华之处, 我相信, 你应该将此
文章,慢慢品尝,这绝对是一篇需要品尝 2~3 天,再结合自己过往的经验,加上
自己的思考, 我相信会对你不仅仅是技术能力, 甚至包括整体的思维方式都会有
一个非常大的提高。
我写这篇文章的目的,是用本人 20 年的嵌入式经验呈现给大家一副完整的
产品,项目开发蓝图, 用本人多年经的历总结了一些教训无私的分享给各位, 希
望各位今后能站在本人的肩膀之上,少走弯路,多为公司,为个人多做贡献,那
我的愿望就达到了, 也同时希望能看到大家反馈和回复, 留个脚印, 留下你的见
解和智慧,为后人乘凉打点基础,先在这谢谢各位了。
那么由此开始我们充满知识的旅程吧, 最重要的一点, 就是在一个产品或项目的
开发过程中, 如果没有明确的目标, 那么成功将无从谈起, 做任何事的第一步必
须明确目标。
与日常生活中的大多数事务一样, 设计一个嵌入式产品的过程也必须从确定
目标开始, 对生产的产品进行明确定义。 对产品进行定义主要是对产品是什么和
能有什么功能进行描述, 其次是在我们的整个开发过程中, 应该要撰写一些开发
文档,大概的框架的如下:
1)产品需求文档:描述产品的特性
2)功能需求文档:描述产品必须具备的功能
3)工程说明文档:描述系统实现的方法和满足需求的手段
4)硬件说明文档:对有关硬件进行描述
5)软件或固件说明文档:描述特定处理器下设计微程序以及固件的方法
6)测试说明文档:描述必须测试的项目和验证系统正常运行的方法
1. 需求定义
需求定义用来描述产品的基本功能,对于公司来说,需求一般由该公司的市
场 销 售 部 门 或 该 公 司 的 主 要 客 户 来 制 定 ; 而 对 小 公 司 或 爱 好 者 ( 就 像
armjishu.com 里的爱好者一样 ) ,技术人员可以自己负责定义需求,并撰写成文
档。
通常需求定义是围绕以下几个因素而来:
1)系统的用途(定义需要系统实现的各种功能)
2)实际输入输出是何种方式实现的(为元器件的选型做参考)
3)系统是否需要操作界面(涉及软件层操作系统的选型)
其实对小型的嵌入式产品来说, 定义需求是非常关键的, 因为需求清楚了, 就可
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2007
For Evaluation Only.
以避免后续开发过程中出现的诸如随机存储器( RAM)容量不足或所选的 CPU速
度不能满足处理的需要等一系列问题。
下面举个简单的实际例子,供大家来参考:
系统描述:用于从化温泉的水泵换水系统
电源输入:使用来自于变压器的 9V~12V直流电
水泵功率: 375W
1)使用单相交流电机,由机械电气进行控制
2)如果温泉池处于低水位,则输入开关闭合信号,以禁止水泵继续运行
3)用户可以自由设置水泵运行或关闭的时间长度
4)除了自动设置控制外,还需要提供一种人工装置来允许维护人员灵活控制水
泵进行维修
5)水泵开启 / 关闭/ 人工干预的时间可以 30 分钟为单位, 在 30 分钟到 23 小时的
范围内进行调节
6)显示设备可以指示水泵的开关状态,剩余时间,以及水泵是否处于人工干预
模式
7)具备监视低水位的功能,并显示在屏幕上
如果需要商用, 那么除了上面给出的功能要求外, 其设计文档中还要包括电
磁干扰( EMI)和电磁兼容性( EMC)认证、安全认证以及使用环境(包括环境温
度、湿度、盐雾腐蚀等)等方面的需求。
实际上,以上的需求确定之后, 接下来就是要考虑选择一款合适的 CPU来满
足和实现系统的功能, 那么我们就要将上述 7 点用户能够理解的需求转化成我们
专业领域的需求,转化如下,大家可以参考一下:
a. 处理或更新输入输出信号的速率究竟需要多快?
解释:目前嵌入式处理器的主频一般都在几十兆到几百兆不等, 单片机的主频一
般是几十兆, ARM处理器可以到几百兆;我们主要看这个产品是否需要对大量数
据进行处理, 或是否需要对缓冲区进行频繁操作, 是否有类似的占用 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. 需要使用的接口数量
嵌入式处理器的主要功能是与应用环境中的硬件进行交互操作,这不仅需要
外部硬件对接口具有实时处理能力, 而且还要求处理器必须以足够快的速度对接
口数据进行有效处理。
举例来说, AT91RM9200是 ATMEL公司出品的一款工业级 ARM9微处理器,它
基于 ARM920T核心,处理速度可达 200MIPS,同时处理器内部配置了 USB、
Ethernet 、支持 RS485的红外串口、 IIC 、SPI、SSC 等输出接口,其目的是更
方便的利用这些接口开发出嵌入式产品。
需要注意的是,由于许多处理器具有的局限性没有在处理器技术资料中给予
足够的说明, 因此一定要仔细阅读处理器的指标说明。 例如,在阅读资料的过程
中发现,该资料可能会说明其串行接口可以在最高波特率下工作, 但仔细研究该
处理器的指标数据时, 可能会发现并非该串口接口的所有操作模式都可以在最大
波特率下运行。
深入了解并明确接口要求的方法:可以自己动手编写一些程序来对接口进行
实际测试, 以确认某种处理器是否可以满足应用的要求; 因为,确认某个处理器
剩余10页未读,继续阅读
资源评论
hwx18537729388
- 粉丝: 1
- 资源: 9万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功